DazzleFirst, нет
ему нужно триггерно манипулировать количеством юнита в таверне
с юнитами добавлеными через ро это невозможно
поэтому он делает это кодом
а слк похоже для удобства юзается(или для доп возможностей)
временный отлов атаки работает одновременно с отловом у пасивки
вместо этого можно у пасивки сделать проверку что скил включен и атакованый юнит == наш юнит
я всё правильно понял
это ты просто тупиш
Это не бред, ибо на время действия способности создается один триггер на отлов атаки и урона именной одной взятой цели, а не нескольких, как ты мне предлагаешь.
для каждой пассивной способности по отдельному триггеру с евентом
то есть во время действия способности любая атака отлавливается N(количество пассивок) раз
+ атаку по твоему юниту отлавливает N+1 раз
я же предлагаю отлавливать лишь 1 раз
т. к. у тебя более 1 пассивки то N>1
следовательно мой вариант выгоднее
ибо он требует в N раз меньше оперативной памяти и процессорного времени
что за бред
когда твоего юнита атакуют то будет срабатывать 2 триггера и у обоих будут проверятся условия
вместо этого можно просто написать в действии триггера с общим событием атаки
if(GetTriggerUnit()==myunit){
// your code
return;
}
где myunit это юнит которому ты планировал давать событие EVENT_UNIT_ATTACKED
а your code это код который ты собирался выполнять для этого юнита
не кажется что это проще чем создавать триггер ради 1 юнита
DazzleFirst, ну так вместо 3 триггеров можно юзать 1
учитывая вес триггера и то что триггеры это потоки получается неплохая экономия
в функции SkillW_A_Func_Adder переменная левел юзается только 1 раз а значит нафиг не нужна
также не стоит писать в условиях большой код (иногда бывает баг из за которого условие не успевает вернуть результат а действие уже проверяет результат условия)
SсRealm, не неси бред
вообще не понимаю как тебя ещё не посадили в психушку за постоянный бред ssbbssc, в первом триггере не триггерный игрок а владелец триггерного юнита
на будущее добавляй дебаг
DazzleFirst, что за бред ты пишешь
ты же сказал что событие атаки у тебя используется не только в этом триггере и не только во время этой способности
вот я и говорю что вместо нескольких триггеров с 1 событием лучше использовать 1 триггер с этим же событием
включать/выключать триггер это больший бред чем удаление
Sucsonius, через скилы реализовать покупку/продажу юнитов(все действия описывать триггерно, а инфу показывать в мультибоарде)
ещё можно отдать дамми герою приказ на покупку и таким образом уменьшать
можно создать кучу зданий с разным количеством двенадцатого юнита и при необходимости сменить количество удалять здание и создавать новое возвращая выделение и количество юнитов с 1 по 11
можно сделать полноэкранную таверну с помощью дгуи
имхо последнее лучше всего будет Sucsonius:
который обходит данную проблему
костыли не обходят проблему
они извращают всё таким образом что проблема не заметна на фоне этих костылей
если тебе надо обойти проблему то пиши новый вар3
и обрабатывать в нём всех юнитов которые атакуют
а не плодить кучу триггеров с одинаковым событием
и не смотреть на то как они отбирают друг у друга процессорное время
ибо помнится мне, у select hero была иконка смены выбора героя... может в этом дело?
иконка есть у обоих, просто в настройках абилки её можно отключить Sucsonius, по твоему вопросу
триггерно можно добавить только 11 юнитов
либо добавляй 12 через ро
либо юзай различные костыли
ну или перепиши вар
либо юзай 2 таверны (в каждой по 6 юнитов)
это кстати можно было узнать погуглив минут 10-15
если вас это не устраивает то пишите близам(это их косяк)
вдруг выпустят новый патч по вашей просьбе
Buulichkaa, ну если ктото уже юзает её то надо использовать структуры для того чтобы хранить в ней несколько значений
в общем так можно избежать ненужных конфликтов/костылей
DazzleFirst, вот тебе имба способ
создаёшь массив интежеров в котором хранятся индексы юнитов
обращение к массиву через хэндл
int GetIndex(unit u){
return indexes[GetHandleId(u)-FIRST_HANDLE_UNIT];
}
где indexes массив индексов а FIRST_HANDLE_UNIT константа равная хэндлу первого юнита в игре
она всегда одинаковая так что просто на тестовой мапе поставь юнита и выведи на экран его хэндл
» WarCraft 3 / Замена юнитов в таверне не работает должным образом
ему нужно триггерно манипулировать количеством юнита в таверне
с юнитами добавлеными через ро это невозможно
поэтому он делает это кодом
а слк похоже для удобства юзается(или для доп возможностей)
» WarCraft 3 / [JASS] Оптимизация
вместо этого можно у пасивки сделать проверку что скил включен и атакованый юнит == наш юнит
я всё правильно понял
это ты просто тупиш
» WarCraft 3 / Подскажите где хостить карты, что бы норм люди заходили!
» Ангар Истребителя / C#: bool с сюрпризом
» Ангар Истребителя / C#: bool с сюрпризом
а то что в c++ можно писать следующий код ты не знал?
хз, мб и в c# также можно писать
Ред. nvc123
» WarCraft 3 / [JASS] Оптимизация
DazzleFirst:
+ атаку по твоему юниту отлавливает N+1 раз
я же предлагаю отлавливать лишь 1 раз
т. к. у тебя более 1 пассивки то N>1
следовательно мой вариант выгоднее
ибо он требует в N раз меньше оперативной памяти и процессорного времени
» WarCraft 3 / [JASS] Оптимизация
до этого ты говорил что да
» WarCraft 3 / [JASS] Оптимизация
когда твоего юнита атакуют то будет срабатывать 2 триггера и у обоих будут проверятся условия
вместо этого можно просто написать в действии триггера с общим событием атаки
а your code это код который ты собирался выполнять для этого юнита
не кажется что это проще чем создавать триггер ради 1 юнита
Ред. nvc123
» WarCraft 3 / [JASS] Оптимизация
учитывая вес триггера и то что триггеры это потоки получается неплохая экономия
в функции SkillW_A_Func_Adder переменная левел юзается только 1 раз а значит нафиг не нужна
также не стоит писать в условиях большой код (иногда бывает баг из за которого условие не успевает вернуть результат а действие уже проверяет результат условия)
» WarCraft 3 / В чем моя ошибка?
вообще не понимаю как тебя ещё не посадили в психушку за постоянный бред
ssbbssc, в первом триггере не триггерный игрок а владелец триггерного юнита
на будущее добавляй дебаг
Ред. nvc123
» WarCraft 3 / [JASS] Оптимизация
ты же сказал что событие атаки у тебя используется не только в этом триггере и не только во время этой способности
вот я и говорю что вместо нескольких триггеров с 1 событием лучше использовать 1 триггер с этим же событием
включать/выключать триггер это больший бред чем удаление
Ред. nvc123
» WarCraft 3 / Проблема с опытом
подробнее в статьях(статья по бд есть) и в комонджи
Ред. nvc123
» WarCraft 3 / Замена юнитов в таверне не работает должным образом
ещё можно отдать дамми герою приказ на покупку и таким образом уменьшать
можно создать кучу зданий с разным количеством двенадцатого юнита и при необходимости сменить количество удалять здание и создавать новое возвращая выделение и количество юнитов с 1 по 11
можно сделать полноэкранную таверну с помощью дгуи
имхо последнее лучше всего будет
Sucsonius:
они извращают всё таким образом что проблема не заметна на фоне этих костылей
если тебе надо обойти проблему то пиши новый вар3
» WarCraft 3 / Проблема с опытом
Ред. nvc123
» WarCraft 3 / [JASS] Оптимизация
а не плодить кучу триггеров с одинаковым событием
и не смотреть на то как они отбирают друг у друга процессорное время
» WarCraft 3 / как прокачать способность
если утверждаете что чтото не работает то кидайте пруф (карту с вашей попыткой)
» WarCraft 3 / PolarProjectionBj?
ответ дан в статьях
https://www.xgm.guru/p/wc3/jass_optimisations_and_leaks
Ред. nvc123
» WarCraft 3 / Замена юнитов в таверне не работает должным образом
Sucsonius, по твоему вопросу
триггерно можно добавить только 11 юнитов
либо добавляй 12 через ро
либо юзай различные костыли
ну или перепиши вар
либо юзай 2 таверны (в каждой по 6 юнитов)
это кстати можно было узнать погуглив минут 10-15
если вас это не устраивает то пишите близам(это их косяк)
вдруг выпустят новый патч по вашей просьбе
» WarCraft 3 / [JASS] Оптимизация
DazzleFirst:
Ред. nvc123
» WarCraft 3 / [JASS] Оптимизация
то есть 2 обращения к массиву медленнее чем 1 обращение к хэшу
DazzleFirst:
создавать триггер ради того чтобы его уничтожить
зачем?
» WarCraft 3 / Выделение неограниченного количества юнитов
других вариантов нету
https://www.xgm.guru/p/wc3/detachsys
» WarCraft 3 / [JASS] Оптимизация
в общем так можно избежать ненужных конфликтов/костылей
» WarCraft 3 / [JASS] Оптимизация
создаёшь массив интежеров в котором хранятся индексы юнитов
обращение к массиву через хэндл
она всегда одинаковая так что просто на тестовой мапе поставь юнита и выведи на экран его хэндл
» WarCraft 3 / [JASS] Оптимизация
если размер массив <3 то ещё ладно но если 3 и более то выгоднее будет юзать хэш/структуры
» WarCraft 3 / Скорость меньше чем 0.01
вопрос закрыт ибо ответ есть в статьях