SсRealm, и заметь, этот индекс сам по себе является уникальным для юнита и ты можешь его использовать для своих задач (кроме как для хранение иных данных о юните).
SсRealm, сохранять в кастом значение этот уникальный номер как ИНДЕКС. А потом по этому индексу получать/хранить/изменять значения в массивах. При этом сами массивым могут быть любогого типа, хоть целочисленные хоть строки хоть реальные, но значение будет принадлежать конкретному юниту с конкретным индексом :)
SсRealm, по сути это личная целочисленная переменная юнита. Она всего одна такая, так что используй только для одной системы в карте)
Чтобы не пересекалась с другими системами.
SсRealm, тебе надо сохранять какие-то значения для юнитов, потом изменять их? или добавлять новые? а старые удаляются со временем? А если юнит умрет то и значения поудалять? Это одно значение для одного юнита или их несколько?
SсRealm, еще раз, опиши задачу, а то непонятно что тебе нужно в конкретном вопросе если нет условий :D
Ты говоришь о решении, а что решаешь непонятно :D
Опиши в чем изначальная задача, зачем ты это делаешь. + скрин триггера было бы неплохо увидеть, это более точные данные нежели слова.
Но как вариант (не зная что и зачем тебе надо), если хочешь хранить какой-то счетчик для юнитов - можно просто записывать в его обычное значение самого юнита. Если ты хочешь контролировать отдельно в триггерах - как вариант можно использовать массив Юнитов А[t]=юнит, куда ты сохраняешь нового юнита, и значение в массив значение, B[t]=счетчик
Если надо повысить счетчик - проходимся по массиву юнитов, если не нашли нашего юнита, тогда добавляем его. Если же нашли юнита, значит используем текущий индекс t для второго массива чтобы увеличить его счетчик B[t] = B[t] + 1
Есть еще вариант через хэш-таблицы сохранять счетчика, не придется делать 2 параллельных массива.
quq_CCCP, хах, а забавный факт)
Да и в целом подобные способки "на себя" лучше заменить на не аурные аналоги, даже если будут состоять из нескольких скрытых способок.
Решение прекрасно работает. Только если у тебя нет каких-то особенностей у юнита, которые могут не сохраниться после такого пересоздания, к примеру он был триггерно перекрашен, ты ему давал способку или еще что. (иначе вариант nazarpank тоже подойдет, хоть и там могут быть свои костыли)
На любых фриланс площадках для художников, можешь выложить там заявки. Еще вариант поискать конкретных по уже готовым артам с ключевыми словами варкрафт, wow и тд (ты же в подобном стиле хочешь).
MpW, ну все верно, вот триггер, больше 10 000 он просто не воспринимает и устанавливает 10к. Это уже лучше, чем 5000 (как по стандарту), но как преодолеть этот порог не знаю, надо искать.
Поделил на ноль. Если хочешь нормальный ответ - скинь карту. Или если знаешь, из-за какого триггера могло произойти - скинь скрины триггера.
Вариантов множество, из-за чего фаталит. Даже кривая моделька, которую импортировал карту, могла сломать варик.
Вот как выглядит скрипт решения на золото. Работает прекрасно, если нет расходов, и не важно какие ты там налоги расставишь между игроками. И при стандартной добычи золота (10 монеток, иначе надо делать доп условия. Как с деревом надо бы).
Если да, то я тут потестил, можно вполне создать скрипт... но со сложностями, учитывая твои условия...
Смысл способа в том, чтобы ловить каждую добычу. По моему примеру это 3 монеты с рудника.
Для этого нам понадобится переменная для хранения последней зарегистрированной добычи игрока (ибо я не нашел способ понять, сколько золота мы получили).
Текущее добытое золото - последняя зарегистрированное золото из переменной = добытое золото (3 монет)
Устанавливаем золото текущее у игрока = золото текущее - потерянное налогом золото (7 монет)
Выключаем этот триггер (чтобы не засечь добавление добычи)
Даем игроку триггерно потерянное налогом золото (7 монет)
Сохраняем текущее добытое золото в переменную (регистрируем).
Включаем этот триггер
Готово.
Как получили 7? Добытое золото можно было бы использовать для формулы, чтобы понять, сколько ты потерял из добычи, но это невозможно, когда проценты могут потерять единицы добычи. Как в примере выше 3+3+3+1 (где 3 для игроков а 1 потеряли монетку)
Поэтому единственный костыль - это прямо делать жесткую привязку добытого золота к числу компенсации. Типа если добытое золото = 3, то потеря равна 10-3=7 (при делении на 3 игроков).
Расчеты на 2-их игроков более легкие без потерь, там все окей. Да и расчеты мои работают при условии, что добыча стандартная 10 монет. Если говорить про дерево - то там же могут и 20 дерева добывать и 200, нужны свои условия и проверки на добытое кол-во.
Еще одна проблема - это расходы за лимиты (которые справа сверху отображаются, 30%, 60%). Прикол в том, что даже при 30% ты теряешь не 30% СВОЕГО золота, а 30% ВСЕГО золота, что добывал. То есть из 3 добытых монеток потеряешь все 3, то есть добудешь 0 монет. А значит по твоей системе налогов играть с расходами невозможно.
» WarCraft 3 / Массивы и циклы
Ред. konvan5
» WarCraft 3 / Массивы и циклы
» WarCraft 3 / Массивы и циклы
» WarCraft 3 / Массивы и циклы
Чтобы не пересекалась с другими системами.
Ред. konvan5
» WarCraft 3 / Массивы и циклы
Вот тебе простейшее решение, где каждый юнит получит свое уникальное значение 1 2 или 3 и тд в кастомное значение, при этом одноразово.
Ред. konvan5
» WarCraft 3 / Массивы и циклы
Ред. konvan5
» WarCraft 3 / Массивы и циклы
Ред. konvan5
» WarCraft 3 / Массивы и циклы
Ты говоришь о решении, а что решаешь непонятно :D
» WarCraft 3 / Массивы и циклы
Если надо повысить счетчик - проходимся по массиву юнитов, если не нашли нашего юнита, тогда добавляем его. Если же нашли юнита, значит используем текущий индекс t для второго массива чтобы увеличить его счетчик B[t] = B[t] + 1
» WarCraft 3 / Проблема с ACac
Да и в целом подобные способки "на себя" лучше заменить на не аурные аналоги, даже если будут состоять из нескольких скрытых способок.
Ред. konvan5
» WarCraft 3 / Как воскресить юнита?
(иначе вариант nazarpank тоже подойдет, хоть и там могут быть свои костыли)
» WarCraft 3 / Как воскресить юнита?
Ред. konvan5
» WarCraft 3 / Проблема с ACac
» WarCraft 3 / Как изменить "иконку нейтрального здания"
» WarCraft 3 / Как изменить "иконку нейтрального здания"
Могу предположить, что размер иконки должен быть обязательно 16х16.
» WarCraft 3 / Где можно найти художника?
Ред. konvan5
» WarCraft 3 / Проблема с ACac
» WarCraft 3 / Как сделать бесконечную дальность прорисовки?
» WarCraft 3 / Доходы от налогов других игроков не отображаются в рекордах
Сделать проверку для игрока, что если есть налоги тогда делать перерасчеты, это как раз не проблема.
» IT и Наука / Suno.ai - генерация музыки с вокалом
» WarCraft 3 / фатал ерор
Вариантов множество, из-за чего фаталит. Даже кривая моделька, которую импортировал карту, могла сломать варик.
» WarCraft 3 / Выделение контретной переменной юнита из группы
» WarCraft 3 / Доходы от налогов других игроков не отображаются в рекордах
» WarCraft 3 / Доходы от налогов других игроков не отображаются в рекордах
» WarCraft 3 / Доходы от налогов других игроков не отображаются в рекордах
Смысл способа в том, чтобы ловить каждую добычу. По моему примеру это 3 монеты с рудника.
Для этого нам понадобится переменная для хранения последней зарегистрированной добычи игрока (ибо я не нашел способ понять, сколько золота мы получили).
Текущее добытое золото - последняя зарегистрированное золото из переменной = добытое золото (3 монет)
Выключаем этот триггер (чтобы не засечь добавление добычи)
Даем игроку триггерно потерянное налогом золото (7 монет)
Сохраняем текущее добытое золото в переменную (регистрируем).
Включаем этот триггер
Готово.
Поэтому единственный костыль - это прямо делать жесткую привязку добытого золота к числу компенсации. Типа если добытое золото = 3, то потеря равна 10-3=7 (при делении на 3 игроков).
Расчеты на 2-их игроков более легкие без потерь, там все окей. Да и расчеты мои работают при условии, что добыча стандартная 10 монет. Если говорить про дерево - то там же могут и 20 дерева добывать и 200, нужны свои условия и проверки на добытое кол-во.