function GetLastCreatedEffectBJ takes nothing returns effect
return bj_lastCreatedEffect
endfunction
т.к. ты не присвоил этой переменной никакое значение (свой созданный эффект), то и удалять игре нечего
вот так выглядит гуишная функция создания эффекта
function AddSpecialEffectLocBJ takes location where, string modelName returns effect
set bj_lastCreatedEffect = AddSpecialEffectLoc(modelName, where)
return bj_lastCreatedEffect
endfunction
старайся раскрывать красные (бж) функции доставая нативки (это не всегда необходимо), и улучшай логику своего кода, а-ля
function Trig_Froze_Conditions takes nothing returns boolean
if GetSpellAbilityId() == 'A000' then
return true
endif
return false
endfunction
Super cool, касательно второго вопроса, попробуй заменить абилку пустышку на абилку призыва стража/змея-варда или что-то в этом духе, чтобы нельзя было спавнить в непроходимых местностях, чтобы юнита можно было выбрать, нужно убрать у него москитов
Касательно первого вопроса, тебе нужна массивная переменная типа регион, где в порядке ходьбы юнитов заполнять каждый индекс соответствующим регионом
Джасс для тебя рано, пока ты не знаешь даже основ гуи и если никогда до этого не работал с кодом
Это язык программирования от близзардов для Вара и вроде как старкрафта
Атар, потому что спеллмейкерам код не нужен, только идея в виде кактусика с цветочком. Они пишут всё с нуля под собственные 999 систем в карте, а мне лайков с головой достаточно
Super cool, отдавать заново последний приказ нужно, если он сбивается
для этого нужно сохранять в юнита позицию в которую он топал в последний раз и приказать снова туда топать. Можно регионы занести в массив, где индекс будет соответствовать номеру для отдачи приказа
В общем такие системы проще через джасс делать, потому что там удобно событие можно конструировать и работать с хэштаблицей
так у тебя каждую секунду лагает или пару раз за игровой сеанс? в какой момент действия игры лаг происходит? при старте? при создании героя? при использовании способности или её прокачке?
чтобы исключить проблему утечек достаточно следить за нагрузкой вара через диспетчер задач, можно добавить так же счётчик хэндлов
я структуру практически в любой способности использую как хранилище множества данных, чтобы не выгружать и сохранять постоянно каждый параметр
можно конечно более грамотно переписать с созданием одного таймера и циклом перебирать индекс структуры, всю библиотеку в неё засунуть и оперировать методами, но мне просто лень, да и исходя из разговора с анрайзом так и не понятно что лучше, привязка структуры к локальному таймеру или перебор структур циклом с глобальным таймером, оно какое-то анизотропное (надо будет снова спросить)
При попытке сохранить в редакторе, выскакивает вот такая ошибка.
судя по строке damaged, проблема в триггере DamageEvent, хотя, честно говоря, я не понимаю почему ошибка, возможно пджасс кривой, и стоит заменить на пджасс для мемхака из статьи от берги xgm.guru/p/wc3/easymem
да, там действительно мёртвые даммики в группу брались и в основном фпс падает из-за перебора группы, спасиб Alan_Gu и PROSHELDOTU, вы лучшие рес обновлён
так бы я на ютуб бы залил, но смысла не было этого делать, не моя работа же
я не требую указывать авторство или что-то в этом духе и подобные спеллы мне кажется делали миллион раз уже, поэтому можно смело говорить, что это ты сделал и забирать себе хотя мне стыдно называть этот кал своим
PROSHELDOTU, damn, ну и качество видео, у меня комп взорвался, пришлось с телефона смотреть
с таким количеством эффектов 2+ кастов действительно могут вызвать просадку, хотя у меня есть подозрения что функция GroupEnumUnitsInRange выбирает мёртвых москитов
можно заменю видео в ресурсе на твоё?)
Тормозить игра на секунду может не из-за утечек. От утечек постоянно начинает понижаться фпс приводя к крашу
Банальный пример секундного "тормоза" это отсутствие прелоада. Т.е. когда одновременно спавнится много разных эффектов в первый раз*, когда какой-то нестандартный герой создаётся с нестандартными абилками в первый раз*
Так же лагать может из-за деформации ландшафта на огромной карте, т.е. та же громовая поступь или волна силы
Alan_Gu, у меня компик слабый и поэтому на записи кажется, что что-то где-то лагает, на деле лаг происходит только при первом касте, ибо мне было лень делать прелоад
Впрочем, если есть ошибки в коде то можно тыкнуть меня мордой
PROSHELDOTU, там проблема была с обзором, в личке обсудили уже
юниты, которым отдавался приказ атаковать, не видели цель для атаки, в итоге просто шли на место где эта цель находилась
Action у триггера не может иметь аргументов, джасс хелпер ругается именно на 32 строчку
в твоём случае правильно будет* заносить даммиков в глобальную группу, которую уже перебирать этим таймером и двигать по направлению взгляда
помимо этого можно использовать привязку с локальному таймеру, добавить структуры, использовать вместо группы массивы
если у тебя слишком много юнитов принадлежащих одному игроку которые идут атаковать, то это естественный лимит обработки команд вара
чтобы не было подобных "тупостей" от юнитов, стоит распределять их между разными игроками
у деструктов очень мало взаимодействий, события только на смерть, поэтому надо костылить а-ля спавн нейтрального дамми юнита с 0 размером под камень, и при приказе бить декорацию, перенаправлять приказ на удар по этому юниту
при получении юнитом урона - снижать здоровье декорации
при смерти юнита можно узнать кто его убил, уничтожить декорацию и на этой основе делать уже дальнейшие действия
может и есть какие-то другие способы но пока это первое что приходит на ум
» Администрация XGM / Где лучше просить фидбек?
» WarCraft 3 / Почему способность утекает?
вот так выглядит гуишная функция создания эффекта
» WarCraft 3 / Можно ли передать локалки другим функциям без takes
» WarCraft 3 / Ловушка
Это язык программирования от близзардов для Вара и вроде как старкрафта
» WarCraft 3 / Суккуленция
» WarCraft 3 / Утечка памяти
» WarCraft 3 / Пирокластическое уничтожение
» WarCraft 3 / Пирокластическое уничтожение
» WarCraft 3 / Ловушка
для этого нужно сохранять в юнита позицию в которую он топал в последний раз и приказать снова туда топать. Можно регионы занести в массив, где индекс будет соответствовать номеру для отдачи приказа
В общем такие системы проще через джасс делать, потому что там удобно событие можно конструировать и работать с хэштаблицей
» WarCraft 3 / Утечка памяти
чтобы исключить проблему утечек достаточно следить за нагрузкой вара через диспетчер задач, можно добавить так же счётчик хэндлов
» WarCraft 3 / Пирокластическое уничтожение
можно конечно более грамотно переписать с созданием одного таймера и циклом перебирать индекс структуры, всю библиотеку в неё засунуть и оперировать методами, но мне просто лень, да и исходя из разговора с анрайзом так и не понятно что лучше, привязка структуры к локальному таймеру или перебор структур циклом с глобальным таймером, оно какое-то анизотропное (надо будет снова спросить)
» WarCraft 3 / Пирокластическое уничтожение
» WarCraft 3 / Пирокластическое уничтожение
рес обновлён
» WarCraft 3 / Пирокластическое уничтожение
с таким количеством эффектов 2+ кастов действительно могут вызвать просадку, хотя у меня есть подозрения что функция GroupEnumUnitsInRange выбирает мёртвых москитов
можно заменю видео в ресурсе на твоё?)
Ред. rsfghd
» WarCraft 3 / Утечка памяти
Банальный пример секундного "тормоза" это отсутствие прелоада. Т.е. когда одновременно спавнится много разных эффектов в первый раз*, когда какой-то нестандартный герой создаётся с нестандартными абилками в первый раз*
Так же лагать может из-за деформации ландшафта на огромной карте, т.е. та же громовая поступь или волна силы
» WarCraft 3 / Пирокластическое уничтожение
» WarCraft 3 / Пирокластическое уничтожение
Впрочем, если есть ошибки в коде то можно тыкнуть меня мордой
» WarCraft 3 / Громадный пак архитектуры
War3 Model Editor 1.07
» WarCraft 3 / Громадный пак архитектуры
» WarCraft 3 / Громадный пак архитектуры
» WarCraft 3 / Триггер на волны атак
юниты, которым отдавался приказ атаковать, не видели цель для атаки, в итоге просто шли на место где эта цель находилась
Ред. rsfghd
» WarCraft 3 / Можно ли передать локалки другим функциям без takes
в твоём случае правильно будет* заносить даммиков в глобальную группу, которую уже перебирать этим таймером и двигать по направлению взгляда
помимо этого можно использовать привязку с локальному таймеру, добавить структуры, использовать вместо группы массивы
» WarCraft 3 / Триггер на волны атак
чтобы не было подобных "тупостей" от юнитов, стоит распределять их между разными игроками
» WarCraft 3 / Нужна помощь с триггером
при получении юнитом урона - снижать здоровье декорации
при смерти юнита можно узнать кто его убил, уничтожить декорацию и на этой основе делать уже дальнейшие действия
может и есть какие-то другие способы но пока это первое что приходит на ум