Ну на вид не варкравт а вов, или какая то рпг с моделями рефаунда, анриал насколько помню для шутанов, а вар ртс...
Ну и ярко и красочно, прикольно, только ума не приложу как контролить юнитами на карте с такими домами?
На ирине чет народ долго собирается, надо свою карту таки допилить... А так дотка, лтд, uther paty, давно не играл в алкоголизм, петров, замок скиби и бомбардировщики, достаточно увлекательные карты.
Nikolay36, онив Game.dll, и их нет в привычном тебе понимании, они написаны на с++ и далеки от алгоритмов простого jass.
Существует методы - своего рода заготовки всего насвете, даже того что в текущей версии нет, сайленсы, станы, промахи, совершенно все, включая всякие заряды и кулдауны. И струкутра абилки которая набирает из готовых методов сам спелл, в структуре всегда содержится основа, таким образом получается делать безчисленное количество клонов одной способности, к примеру creep thunder bolt (кинуть камень у голема) в движке игры ссылается на молоток бурь горного короля.
Разберем пример, старый старт кулдауна из мемхака:
unction StartAbilityCooldownFx takes unit whichUnit, integer abilityId, real cd returns boolean
local integer pAbility = 0
if GetUnitAbilityLevel( whichUnit, abilityId ) == 0 or cd == 0.00 then
return false
endif
set pAbility = GetUnitAbility(whichUnit, abilityId)
if pAbility < 1 then
return false
else
if RMem(pAbility+0x134)==-1 and RMem(pAbility+0x138)==-1 then
call WMem(pAbility+0x134,0)
call WMem(pAbility+0x138,0)
endif
set Memory[pReserverdIntArg1 / 4] = mR2I(cd)
call CallThisCallWith2Args( pStartAbilityCD, pAbility, pReserverdIntArg1 )
return IsAbilityOnCooldown( pAbility )
endif
return false
endfunction
pStartAbilityCD = GameDLL + 0x62D4C0
Что тут делается, ну мы ищем адресс абилки у юнита, и вызываем этот самый метод - pStartAbilityCD, который как выяснилось насамом деле RestoreManaAoe (спасибо IseFog), котрый и является целиком эффектом абилки 'AImr', предмет-массовое восстановление маны, оно принимает в качестве аргументов структуру абилки и кулдаун, но эта функция фаталила на некоторых абилках, обратите на 2 оффсетаь которые проверяются в функции, там должна лежать структура из которой этот метод прочитает радиус, допустимые цели и остальные нужные параметры, если их нет - игра крашится. А этот метод использовали как запуск абилки в кд, ибо его юзают совсем другие абилки.
Теперь немного понятнее как там все сделано?
Bergi_Bear, ну я тоже много чего проверял с анрайзом, и давно писал - есть в мемхаке примитивный тестер на ресурсоемкость кода, и все можно самому проверить.
JackFastGame, просто создавать и удалять группу никчему, есть глобалки внезапно, вот и не будут утечки плодится, очистка происходит не сразу а спустя некоторое время.
ArhiMEN, а что за код, я чето не понял что это за триггер с переодическим таймером 100 раз в сек, чето делает. Каждый раз создается новая группа, зачем? Обьясни что собрался делать?
goodlyhero, ну ауры фаталят лишь когда им апгрейдят уровень или чето делают с их мертвых владельцев, при смерти юниту выключают ауры, но если он получит ауру или апгрейд уровня, игра схватится за событие - юнит получил источник ауры и вручит ему бафф без проверки, а юнит то мертв - сразу фатал. Второй случай явно не наш, связан с мемхаком.
goodlyhero, менеджер памяти, мне показалось многовато там подгружено, точно ниче такого нету вроде кеев или читов, они нагружают сам вар и еще и порой вызвают фаталы.
Nikolay36, он был "менеджер", его познания были +- на уровне ваших, очень сильно средних, на него трудились кодеры высшего уровня и англоязычное комьюнити (и нетолько), он же вводил идеи и балансил их, посмотрите код доты, как качестванные и продуманные системы, те же кастомные шипы неруба, сделаны в доте кодом 1 в 1 как оригинал, без неуязвимости в полете. Так и гуи с утечками и туповатый индусский код, явно jass начального уровня...
DESo3latorTro0pe, ну статью написать как можно управлять мобами?
У одного триггера может быть множество событий, причем разных, а юнитам можно поставить custom value (в гуях) и таким образом проверять какой чекпоинт он преодалел и в какой отправить его сейчас, ну и брать от областей GetCenterOfPos (или как там в гуях) тоже ненадо, делаем массив куда заносим все эти точки, и о чудо все в одном триггере, обьекты не создаются, и кода маньше в 10 раз.
Стоит только подумать или посмотреть как сделано у других.
DESo3latorTro0pe, ну для начла вот, еще вот
Тут ищем что конкретно интересует, ну есть статья про jass
Ибо полностью на гуи от утечек не избавится, да и будет масса неудобств, все твои пути крипов в 1 триггере можно было сделать. Потом нужно практиковатся, я и предложил для начала карту близардов конфетные войны.
хм, ntdll.dll - случаем никаких читов или прог не было включено?
Есть такая функция IsUnitVisibleToPlayer и аналог для детекции (типа инвизера спалили труесайтом или нет).
Но юнит виден игроку, юнит види юнита, это есть такое событие - юнит обнаружил цель в пределах досигаймости или как то так на гуях...
На мемхаке тоже куча функций, насчет видимости и детекции.
DESo3latorTro0pe, ну потому что я сразу сказал как надо, но намек раз не понятен, надо тыкать носом. Каждый триггер год разбирать будем, статей и примеров как делать надо и как избавится от утечек полно, про то что лучше не удалять юнитов (кроме редких исключений) и не пытатся ничего делать с мертвыми юнитами, никаких вручений абилок, изменений уровня. Вейты зло, после wait функция DyingUniy может вернуть уже и не того юнита который умер, ибо это разрыв потока выполнения, вовсе порой можно обойтись без вейтов, чтобы какой нить юнит умер не сразу а спустя мгновение - ему можно установить время жизни.
Нет нетак, нужна пассивка с кулдаун индикатором, их 2 - перерождение таурена и эксгумация труповозки, на одной можно запустить кд не убивая юнита лишь мемхаком, а вот вторая запускается в кд технической абилкой труповозки (смотри как устроена труповозка), тогда на ней пойдет кд. Ну там правда будет баг, это считается кастом и будет сбивать инвиз с героя если запустить таким образом кулдаун у эксгумации.
DESo3latorTro0pe, юнита лучше скрывать (HideUnit) и убивать. Так же советую не плодить по 10 триггеров на перемещение юнитов, это мало того что глупая и неоправданная реализация, так еще и утечек море. GetPosition все эти функции создают обьект location которые не удаляются, хотябы посмотри конфетные войны близзардов.
Daro, рексар - целиком выложен на хайве, модели апарата и его спеллов, модель энигмы, модель ульта акаши - на хайве 20 лет лежит как.
Вокер старый, новый вроде был просто самопис по оглядке на то что есть в карте, так же в титрах вы найдете векса, и других людей кто делал спеллы или системы. Все не вспомню уже, берешь и гуглишь - и о чудо, оно есть.
Ну вот подобный код может как раз вызывать подобные фаталы, + ну очень хреновый гуи код с тоннами утечек, так что приводим код в порядок, не мешало бы почитать статьи про оптимизацию, исключаем вейты и ремув юнитов. Так же не делаем никаких махинаций с абилками дохлых юнитов.
» WarCraft 3 / интересные карты
Ред. quq_CCCP
» WarCraft 3 / интересные карты
Хз, я и тут выкладывал, да и карта прекрасно гуглится - "Как достать скелета?", начиналось все еще тут
Ред. quq_CCCP
» Мир безумного / Warcraft 3 Reforged на Unreal Engine 5
Ну и ярко и красочно, прикольно, только ума не приложу как контролить юнитами на карте с такими домами?
» WarCraft 3 / интересные карты
То я любитель TAG карт, и решил сделать нестандартный tag, то че одни клоны вампиризма....
» WarCraft 3 / интересные карты
» WarCraft 3 / как двигать несколько дамми юнитов одновременно
Ред. quq_CCCP
» WarCraft 3 / Есть ли модели дота в открытом доступе?
Существует методы - своего рода заготовки всего насвете, даже того что в текущей версии нет, сайленсы, станы, промахи, совершенно все, включая всякие заряды и кулдауны. И струкутра абилки которая набирает из готовых методов сам спелл, в структуре всегда содержится основа, таким образом получается делать безчисленное количество клонов одной способности, к примеру creep thunder bolt (кинуть камень у голема) в движке игры ссылается на молоток бурь горного короля.
Разберем пример, старый старт кулдауна из мемхака:
Что тут делается, ну мы ищем адресс абилки у юнита, и вызываем этот самый метод - pStartAbilityCD, который как выяснилось насамом деле RestoreManaAoe (спасибо IseFog), котрый и является целиком эффектом абилки 'AImr', предмет-массовое восстановление маны, оно принимает в качестве аргументов структуру абилки и кулдаун, но эта функция фаталила на некоторых абилках, обратите на 2 оффсетаь которые проверяются в функции, там должна лежать структура из которой этот метод прочитает радиус, допустимые цели и остальные нужные параметры, если их нет - игра крашится. А этот метод использовали как запуск абилки в кд, ибо его юзают совсем другие абилки.
Теперь немного понятнее как там все сделано?
Ред. quq_CCCP
» WarCraft 3 / Утечки в коде
» WarCraft 3 / Утечки в коде
» WarCraft 3 / Утечки в коде
» WarCraft 3 / Сменить Имя Юниту на МемХаке
» WarCraft 3 / Утечки в коде
» WarCraft 3 / Начала внезапно вылетать карта. (редактор 1.26а)
» WarCraft 3 / Начала внезапно вылетать карта. (редактор 1.26а)
» WarCraft 3 / Есть ли модели дота в открытом доступе?
» WarCraft 3 / Начала внезапно вылетать карта. (редактор 1.26а)
У одного триггера может быть множество событий, причем разных, а юнитам можно поставить custom value (в гуях) и таким образом проверять какой чекпоинт он преодалел и в какой отправить его сейчас, ну и брать от областей GetCenterOfPos (или как там в гуях) тоже ненадо, делаем массив куда заносим все эти точки, и о чудо все в одном триггере, обьекты не создаются, и кода маньше в 10 раз.
Стоит только подумать или посмотреть как сделано у других.
» WarCraft 3 / Начала внезапно вылетать карта. (редактор 1.26а)
Тут ищем что конкретно интересует, ну есть статья про jass
Ибо полностью на гуи от утечек не избавится, да и будет масса неудобств, все твои пути крипов в 1 триггере можно было сделать. Потом нужно практиковатся, я и предложил для начала карту близардов конфетные войны.
» WarCraft 3 / Видимость юнита
Но юнит виден игроку, юнит види юнита, это есть такое событие - юнит обнаружил цель в пределах досигаймости или как то так на гуях...
» WarCraft 3 / Перезарядка пассивного навыка
» WarCraft 3 / Начала внезапно вылетать карта. (редактор 1.26а)
» WarCraft 3 / Перезарядка пассивного навыка
» WarCraft 3 / Начала внезапно вылетать карта. (редактор 1.26а)
» WarCraft 3 / Есть ли модели дота в открытом доступе?
Вокер старый, новый вроде был просто самопис по оглядке на то что есть в карте, так же в титрах вы найдете векса, и других людей кто делал спеллы или системы. Все не вспомню уже, берешь и гуглишь - и о чудо, оно есть.
» WarCraft 3 / Телепортация через диалог
» WarCraft 3 / Начала внезапно вылетать карта. (редактор 1.26а)