28

» WarCraft 3 / Замена юнитов в таверне не работает должным образом

DazzleFirst, нет
ему нужно триггерно манипулировать количеством юнита в таверне
с юнитами добавлеными через ро это невозможно
поэтому он делает это кодом
а слк похоже для удобства юзается(или для доп возможностей)
28

» WarCraft 3 / [JASS] Оптимизация

временный отлов атаки работает одновременно с отловом у пасивки
вместо этого можно у пасивки сделать проверку что скил включен и атакованый юнит == наш юнит
я всё правильно понял
это ты просто тупиш
28

» Ангар Истребителя / C#: bool с сюрпризом

открыл Америку
а то что в c++ можно писать следующий код ты не знал?
int a=5;
if(a){
// code
}
а так как c# это наследник с++ то об этом можно легко догадаться
хз, мб и в c# также можно писать
28

» WarCraft 3 / [JASS] Оптимизация

DazzleFirst, тогда перестань писать бред и противоречить сам себе
DazzleFirst:
Это не бред, ибо на время действия способности создается один триггер на отлов атаки и урона именной одной взятой цели, а не нескольких, как ты мне предлагаешь.
для каждой пассивной способности по отдельному триггеру с евентом
то есть во время действия способности любая атака отлавливается N(количество пассивок) раз
+ атаку по твоему юниту отлавливает N+1 раз
я же предлагаю отлавливать лишь 1 раз
т. к. у тебя более 1 пассивки то N>1
следовательно мой вариант выгоднее
ибо он требует в N раз меньше оперативной памяти и процессорного времени
28

» WarCraft 3 / [JASS] Оптимизация

DazzleFirst, другие триггеры на отлов атаки в этот момент существуют?
до этого ты говорил что да
28

» WarCraft 3 / [JASS] Оптимизация

Тем самым повышается производительность.
что за бред
когда твоего юнита атакуют то будет срабатывать 2 триггера и у обоих будут проверятся условия
вместо этого можно просто написать в действии триггера с общим событием атаки
if(GetTriggerUnit()==myunit){
// your code
return;
}
где myunit это юнит которому ты планировал давать событие EVENT_UNIT_ATTACKED
а your code это код который ты собирался выполнять для этого юнита
не кажется что это проще чем создавать триггер ради 1 юнита
28

» WarCraft 3 / [JASS] Оптимизация

DazzleFirst, ну так вместо 3 триггеров можно юзать 1
учитывая вес триггера и то что триггеры это потоки получается неплохая экономия
в функции SkillW_A_Func_Adder переменная левел юзается только 1 раз а значит нафиг не нужна
также не стоит писать в условиях большой код (иногда бывает баг из за которого условие не успевает вернуть результат а действие уже проверяет результат условия)
28

» WarCraft 3 / В чем моя ошибка?

SсRealm, не неси бред
вообще не понимаю как тебя ещё не посадили в психушку за постоянный бред
ssbbssc, в первом триггере не триггерный игрок а владелец триггерного юнита
на будущее добавляй дебаг
замечание от Кет: грубо
28

» WarCraft 3 / [JASS] Оптимизация

DazzleFirst, что за бред ты пишешь
ты же сказал что событие атаки у тебя используется не только в этом триггере и не только во время этой способности
вот я и говорю что вместо нескольких триггеров с 1 событием лучше использовать 1 триггер с этим же событием
включать/выключать триггер это больший бред чем удаление
28

» WarCraft 3 / Проблема с опытом

Принятый ответ
GoJustGo, бд+эдэксп
подробнее в статьях(статья по бд есть) и в комонджи
28

» WarCraft 3 / Замена юнитов в таверне не работает должным образом

Принятый ответ
Sucsonius, через скилы реализовать покупку/продажу юнитов(все действия описывать триггерно, а инфу показывать в мультибоарде)
ещё можно отдать дамми герою приказ на покупку и таким образом уменьшать
можно создать кучу зданий с разным количеством двенадцатого юнита и при необходимости сменить количество удалять здание и создавать новое возвращая выделение и количество юнитов с 1 по 11
можно сделать полноэкранную таверну с помощью дгуи
имхо последнее лучше всего будет
Sucsonius:
который обходит данную проблему
костыли не обходят проблему
они извращают всё таким образом что проблема не заметна на фоне этих костылей
если тебе надо обойти проблему то пиши новый вар3
28

» WarCraft 3 / [JASS] Оптимизация

Верно, многих отлавливаю, но в случае активного режима способности проделывается как раз-таки отлов только одного.
можно создать 1 триггер с событием
TriggerRegisterAnyUnitEventBJ(trg, EVENT_PLAYER_UNIT_ATTACKED)
и обрабатывать в нём всех юнитов которые атакуют
а не плодить кучу триггеров с одинаковым событием
и не смотреть на то как они отбирают друг у друга процессорное время
28

» WarCraft 3 / как прокачать способность

Принятый ответ
Герой - учить навык
если утверждаете что чтото не работает то кидайте пруф (карту с вашей попыткой)
28

» WarCraft 3 / Замена юнитов в таверне не работает должным образом

ибо помнится мне, у select hero была иконка смены выбора героя... может в этом дело?
иконка есть у обоих, просто в настройках абилки её можно отключить
Sucsonius, по твоему вопросу
триггерно можно добавить только 11 юнитов
либо добавляй 12 через ро
либо юзай различные костыли
ну или перепиши вар
либо юзай 2 таверны (в каждой по 6 юнитов)
это кстати можно было узнать погуглив минут 10-15
если вас это не устраивает то пишите близам(это их косяк)
вдруг выпустят новый патч по вашей просьбе
28

» WarCraft 3 / [JASS] Оптимизация

EVENT_UNIT_ATTACKED
мало вероятно что ты отлавливаешь лишь 1 атакующего юнита за всю игру
DazzleFirst:
EVENT_UNIT_DAMAGED
единожды за всю игру или единожды для 1 юнита
28

» WarCraft 3 / [JASS] Оптимизация

что хештаблицы медленней чем массивы
в 1,5 раза
то есть 2 обращения к массиву медленнее чем 1 обращение к хэшу
DazzleFirst:
уничтожение триггера
не оптимально
создавать триггер ради того чтобы его уничтожить
зачем?
28

» WarCraft 3 / [JASS] Оптимизация

Buulichkaa, ну если ктото уже юзает её то надо использовать структуры для того чтобы хранить в ней несколько значений
в общем так можно избежать ненужных конфликтов/костылей
28

» WarCraft 3 / [JASS] Оптимизация

DazzleFirst, вот тебе имба способ
создаёшь массив интежеров в котором хранятся индексы юнитов
обращение к массиву через хэндл
int GetIndex(unit u){
	return indexes[GetHandleId(u)-FIRST_HANDLE_UNIT];
}
где indexes массив индексов а FIRST_HANDLE_UNIT константа равная хэндлу первого юнита в игре
она всегда одинаковая так что просто на тестовой мапе поставь юнита и выведи на экран его хэндл
28

» WarCraft 3 / [JASS] Оптимизация

первое что бросилось в глаза это поиск юнита в массиве
если размер массив <3 то ещё ладно но если 3 и более то выгоднее будет юзать хэш/структуры
28

» WarCraft 3 / Скорость меньше чем 0.01

Принятый ответ
подобные вещи можешь проверить и сам создав тестовую карту
вопрос закрыт ибо ответ есть в статьях