PT153, одно обращение к хт = 2 обращения к массиву.
Структуры помогают только когда ты записываешь в хт индекс структуры, по которому и ищеш данные в массивах.
Для переодик таймера я уже кинул пример как еще можно, там вовсе локалки.
widget можно дать кастомное число, и туда я записываю номер структуры. SetUserData быстрее доступа в хеш? Просто я хотел лишь иметь такую же функцию у таймеров.
спойлер - хештаблицы медленнее в сравнении с доступом по массиву. как только ты дописываешь еще пару строк к массиву (т.к. тебе надо вычислить ключ), внезапно хт становится быстрее. так что не мудри
нет ничего быстрее нативок. а каждая строка JASS-кода существенно замедляет работу. Экономия на спичках
Ага, то есть
integer array DATA
...
local integer a = DATA[GetHandleId(timer)]
медленнее чем
hashtable DATA
...
local integer a = LoadInteger(DATA, GetHandleId(timer), 0)
TriggerEvalute наследует поток из которого запущен
Я вот так тоже думал, хотел убедиться в этом. А зачем тогда добавлять действия, если они никогда не вызываются? И это нормально, что TriggerAddAction берёт функцию, которая что-то возвращает?
Ещё вот что интересно. В TriggerAddCondition() можно просто передавать функцию (то есть без Condition), причём даже функцию, которая возвращает что-то отличное от boolean (вроде). Но тут всё же используется функция Condition(). Зачем?
Покрутите графу "Тип". Если не поможет, то перезапустите редактор. Если и это не поможет, то уберите галку "Нестандартные технологии" и используйте триггеры.
Создай на основе предметной способности Аура Смерти или любой другой, у которой показывается иконка, поставь в неё все данные другого предмета, убрав лишнее, и войну дай ту и ту способность и будет тебе иконка.
Зачем юзать ауры, когда можно взять готовые болванки, типа Asth или Agyb.
Только ручное применение - неизвестно, я так и не нашел инфы по этому.
Тут как всегда локализаторы постарались. В оригинале это Unique Cast, что интуитивно понятно, что значит: если отдавать приказ группе, то заклинание будет использовано только одним юнитом, а не всеми.
адрес будет переиспользован, когда объект больше в игре не существует. хендл при этом может и не освободиться - т.е. прошлый останется навсегда "занятым". Реальный адрес никакой роли при этом не играет. RemoveUnit заставляет движок забыть о юните, что иногда чревато, лучше убивать, а потом таймером Remove, либо просто позволить ему разложиться (с тем же эффектом, но стандартная работа игры)
Хм, а если у юнита стоит Can't raise, does not decay, то он сразу разложится, как только пройдёт Death Time?
Действительно, выдаёт ошибку, но у меня виспы идут вовнутрь и добывают золото. А, это был обычный рудник.
А зачем создавать кастомный рудник?
С кастомным рудником тоже работает, но я ещё создал кастомный оплетённый рудник. Ошибка всё же выдаётся.
Я понял, о чём речь. Райтклик работает, а вот приказ через саму способность "Собирать" - нет.
Да, это очень странно. Попробуйте создать кастомную способность "Собирать".
Или, как предлагали выше сделать триггерно. Если отдаётся приказ "Собирать", то без всякой паузы отдавайте приказ "smart".
А последнее не работает. :c
» WarCraft 3 / Создание image
Ред. PT153
» WarCraft 3 / Создание image
» WarCraft 3 / Создание image
» WarCraft 3 / Покупка в спелбуках
» WarCraft 3 / Иниц. глоб. переменных
По-моему, когда я пытался так написать, меня крашился вар. Тоже самое с CreateRegion().
» WarCraft 3 / DestroyGroup()
» WarCraft 3 / GetTimerUserData
PT153: Хотелось бы это узнать.
» WarCraft 3 / GetTimerUserData
Ред. PT153
» WarCraft 3 / GetTimerUserData
Я думаю, что нет, но суть понял, спасибо.
Ред. PT153
» WarCraft 3 / как сделать из обычного юнита героя
Последствия мне неизвестны.
» WarCraft 3 / Строение структур
» WarCraft 3 / Строение структур
Ред. PT153
» WarCraft 3 / Строение структур
И это нормально, что TriggerAddAction берёт функцию, которая что-то возвращает?
Ещё вот что интересно. В TriggerAddCondition() можно просто передавать функцию (то есть без Condition), причём даже функцию, которая возвращает что-то отличное от boolean (вроде). Но тут всё же используется функция Condition(). Зачем?
Ред. PT153
» WarCraft 3 / Юниты пропали из меню "Технологии"
» WarCraft 3 / Иконки способностей для предметов
» WarCraft 3 / Как сделать свиток телепорта из доты?
Ред. PT153
» WarCraft 3 / Настройка Канала
Ред. PT153
» WarCraft 3 / Утечка или не утечка.
Ред. PT153
» WarCraft 3 / Утечка или не утечка.
» WarCraft 3 / Герою отнимается здоровье днем.
» WarCraft 3 / Десинк при работе триггера создать боевую единицу
Ред. PT153
» WarCraft 3 / Добыча ресурсов нестандартными юнитами
А, это был обычный рудник.
А зачем создавать кастомный рудник?
С кастомным рудником тоже работает, но я ещё создал кастомный оплетённый рудник. Ошибка всё же выдаётся.
Я понял, о чём речь.
Райтклик работает, а вот приказ через саму способность "Собирать" - нет.
Да, это очень странно. Попробуйте создать кастомную способность "Собирать".
Или, как предлагали выше сделать триггерно. Если отдаётся приказ "Собирать", то без всякой паузы отдавайте приказ "smart".
А последнее не работает. :c
» WarCraft 3 / Hide unit через GetLocalPlayer() вызовет десинк?
» WarCraft 3 / PreloadAbility( integer )
Ред. PT153
» WarCraft 3 / PreloadAbility( integer )