Вот есть переменная, в неё хочу поместить значение количество полученного золота при убийстве.
Что-то типа такого:
Событие - Юнит умирает
Условия - Нет
Действия - Установить Gold = кол-во золота полученного при убийстве
Вот только такой строчки "Установить Gold = кол-во золота полученного при убийстве" нет. Я делал "преобразование реального в целочисленное" и там тоже похожей строчки нет. Единственное что похоже на то, что я хочу - это "Свойство игрока - золото добыто".

Принятый ответ

Простым способом это не сделаешь, т.к нельзя отловить кол-во полученного золото с убийства (патч 1.26). Но, если игрок не получает больше неоткуда золото, кроме убийства крипов, то можно ловить изменения голды игрока.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
26
5 лет назад
0
Ну вот добавишь 0.5, игроки получат по 2, то есть в сумме 12, а не 11.
Как бы не критично в ситуации с 11, но если, например, будет награда 9, то игроки получат всего 12, что в целом для команды выгоднее, если ластхитить будут не они, а Игрок 11.
0
15
5 лет назад
Отредактирован exAres
0
per_player = R2I( current_gold / players_count )
diff = current_gold - ( current_gold / players_count - per_player ) * players_count
как-то так. Я не могу вспомнить, есть ли modulo.
0
26
5 лет назад
0
Что это за странная формула у diff?
0
15
5 лет назад
Отредактирован exAres
0
8gabriel8:
Что это за странная формула у diff?
modulo, но без modulo) (остаток от деления)
0
26
5 лет назад
Отредактирован 8gabriel8
0
modulo вроде abs.

current_gold и players_count по умолчанию integer, то есть ты их как бы заранее перевёл в real.
( current_gold / players_count - per_player ) вычисляет остаток от деления количества золота, который игроку вернётся со следующей партией. Потом умножаешь остаток на количество игроков и вычитаешь из текущего золота, чтобы вычислить всё золото, которое игроки должны получить, то есть
diff = players_count * per_player
0
15
5 лет назад
Отредактирован exAres
0
8gabriel8, O_o... abs это откидывание знака, а modulo это остаток от деления ( 8 mod 3 = 2, поскольку наибольшее число после 8, которое на 3 делится без остатка - 6, а 8 - 6 = 2 ). Но в целом да, я ошибся, там для diff не нужно отнимать от всего золота, т.к. у 11 игрока должен остаться именно остаток от деления.
diff = ( current_gold / players_count - I2R(per_player) ) * players_count
0
32
5 лет назад
0
Есть событие - кол-во золота изменилось, ну а далее просто, золота стало больеше - игрок получил откуда то золото, золота стало меньше - игрок потратил золото.
0
19
5 лет назад
0
Есть событие - кол-во золота изменилось, ну а далее просто, золота стало больеше - игрок получил откуда то золото, золота стало меньше - игрок потратил золото.
3 чел уже это говорит))
0
26
5 лет назад
Отредактирован 8gabriel8
0
exAres:
O_o... abs это откидывание знака, а modulo это остаток от деления
Ступил, никогда этот остаток от деления не требовался, из-за созвучности подумал про модуль)
Вроде бы видел в функциях варика modulo, но убедиться не могу, так как HDD решил выйти на пенсию. Специально под новую версию твоего Диабло взял SSD)
0
28
5 лет назад
0
Вроде бы видел в функциях варика modulo
Есть, а новых патчах его нативно ввели через символ %.
0
4
5 лет назад
0
KaneThaumaturge:
Если подходит, то берём эту систему, если нет, то пишем свою, ручонками.
Например, при убийстве для каждого типа юнита настраиваем кол-во полученной голды и делим на кол-во игроков.
Ну способ не очень, ещё для каждого юнита прописывать стоимость. Ещё и "махинации" с хэш таблицами.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.