Мда, способность на основе ауры торнадо или пламя феникса, мобы будут аргится на того кто им первым нанес урон, а 'Aasl' (аура замедления, торнадо) - наносит 0.00 ед. урона когда на противнике появляется её бафф.
Так же можно использовать и другие пассивные способности наносящие урон юнитам в области.
Ну я не люблю дамми снаряды для направленных способностей, с ними много проблем... в общем юзаю кислотную бомбу и молот бурь, отлавливают попадание по урону в 0 ед. баффу.
Громовая поступь говённая способность для дамми скиллов, деформирует рельеф (это никак не убрать) лучше использовать молот бурь на каждого или ракетный удар, эти способности более гибкие в настройке и не дают не удаляемых эффектов.
Урон лучше всего наносить триггерно от имени кастера независимо что это может сделать и даммик, так сразу мы решим несколько багов - нейтралы будут разбегаться а не агрится на кастера (даммик то неуязвим), способности вроде Blade mail из доты (возвращает урон обратно) не будут работать корректно, а так же многое другое что проверяет убийцу и нанесшего урон.
Значит что нам нужно, летающий дамми юнит (делаем его из светлячка ночных эльфов) - модель Dummy.mdx (требуется скачать и импортировать в карту), обзор в 0, еду, стоимость в 0, хп\мп 1005000 (неважно), способности (москиты и усе, ну можно Неуязвимый нейтральный или как фрог маркер, чисто чтобы потом отьсеивать даммиков, магазины, и тому подобное проверяя на наличие этой способности)
Высота полета 0, тип летающий, угол крена в 0 град. убираем все спецэффекты при смерти и усе.
Триггерно двигай даммика прикрепив к нему спецэффект снаряда, когда до цели не останется расстояния убивай дамми и удаляй спецэффект, выбирай юнитов в области вокруг цели, потом исключи цель из группы и нанеси ей урон, после половинный (или какой там у тебя) урон всем остальным, потом создай даммика, вручи ему ракетный удар и прикажи выстрелить им по области под целью, все очень просто!
ну как как, запуском pld скрипта, через Preloader( путь к pld файлу )
Смотри устройство pld файла, там собственно через GetPlayerName - эксплуатирует возможность смены имени нейтральных игроков и вызова функции ExecinteFunc в коде карты из pld скрипта, испьзуется в DataManager
GameChache - эксплуатирует свойство кеша, кеш один на все потоки в игре, т.е для pld скрипта, аи скрипта или кода карты всегда один GameChache с одним и тем же именем, там все просто записываем данные в кеш прямо в плд скрипте, а потом выгружаем их в потоке карты (предварительно синхронизируя если это потребуется) Для использование кеша нужно чтобы в pld скрипте отсутствовал PreloadEnd, иначе ничего не получится...
quq_CCCP, ExecuteFunc стартует функцию которая ничего не берёт и ничего не возвращает
вейт берёт число
поток созданный через ExecuteFunc никак не связан с родительским потоком
ExecuteTrigger это совсем другое дело
Но вот TriggerSleepAction там работает исправно, вот ссылочка раздел 3, пункт 4 как бы намекает.
Запустишь.
Экзекуты даже наследуют свойства потока из которого запущены, ExecuteTrigger запущенный из потока триггера наследует его ивент, а так же знание связанным с ним функций, с таймерами и ExecuteFunc я не проверял...
Что качается вейтов в циклах, это убого из за неточности вейта + невозможности установки малого периода, о триггерном движении можно забыть.
Событие Pegedic Event - 30 сек.
Условия -
Дествия GroupPickUnitsOfPlayersMatched (или как то так, я гуи не помню)
-Условия ( уровень способности юнита выше 0, а так же юнит жив)
тогда
SetProperty золото. тек. Игрок какой вы изволите 10 * Уровень способности Mathing Unit
иначе
DoNothing() Ты серьезно ни гугу?
Блин, я не знаю у вас что фантазии нету?
Сделай абилку на основе Змеиная ловкость (или чего то другого, что ничего ни делает) сделай у этой способности несколько уровней (допустим 5)
У апгрейдов есть свойство повышать уровень способности у всех юнитов игрока, используй это.
Периодически выбирай в группу всех юнитов игрока с такой то способностью, потом добавляй игроку скока там золота X уровень способности за каждую ферму.
Рикошет это тип атаки(тип оружия - edited), такой, у охотниц Лунный чакрум нифига не дает, просто иконка, сам эффект вызван переключением атаки.
Это делает либо апгрейдом либо морфом юнита, так же подсовыванием (убиранием абилки с орб эффектом) ВНИМАНИЕ - тип атаки снаряд рикошет не сочетается с большинством орб эффектов.
Как, интересно, камера может вызвать десинхронизацию?
Ну если в перемещение камеры запихать создание локейшена ( у гуишников вроде такое было, берет локейшен от локальной камеры), сама по себе камера безопасна в этом плане.
о боже, руна виндвалка и триггер с ивентами юнит отдал приказ, юнит сдох, юнит. Условие что приказ не равен Attack Once (этот приказ нельзя отдать в ручную, тока триггерно) собственно проверяем отдавая приказ, не отменил ли его юнит, если отменил удаляем бафф виндвалка и даем его снова только когда юнит решит атаковтаь, после отдаем приказ Attack once.
Метот с руной защитит от промахов но на этот удар не сработают орбы. Недавно делал блинкстрайк с фикс.дмг, могу кинуть код если интересно, метод исполнения VJASS\\
quq_CCCP, да взломали, потому что плохая там система была.
Я же предлагаю сделать проверку
if StringHash(GetPlayerName(p)) == 123456 and StringHash(GetEventPlayerChatString()) == 23456 then
call activate_VIP(p)
endif
Очевидный плюс - из кода карты невозможно будет определить ник и пароль.
Хеш от строки вроде не зависит от содержания строки, аналог функции на RB S2Ix которая возвращает номер строки в таблице строк, но вот нет гарантий что по этому адресу всегда будет ник игрока.
Вот обновленная версия на структурах, я её вроде выкладывал...
либо используйте CreateCreepOfType для создания крипов, так будет респаунить тока тех крипов которых вы создали этой функцией...
private function IsCreepSaved takes nothing returns boolean
set bj_Neutral_Creep = GetFilterUnit( )
return LoadReal( bj_lastCreatedHashtable, bj_HandleInteger, 0 ) != 0.00
endfunction
private function SaveCreepRespPos takes nothing returns nothing
local group grp = CreateGroup( )
local boolexpr NeutralFilter = Condition( function Bolexp_UnitFiler_Conditions )
local trigger trg = CreateTrigger( )
call TriggerRegisterPlayerUnitEvent( trg, bj_PLAYER_NEUTRAL_AGGRESSIVE, EVENT_PLAYER_UNIT_DEATH, Condition( function IsCreepSaved ) )
call TriggerAddAction( trg, function Trig_Creep_Resp_Actions )
call DestroyTimer( GetExpiredTimer( ) )
call GroupEnumUnitsInRect( grp, bj_mapInitialPlayableArea, NeutralFilter )
call ForGroup( grp, function Group_SaveCrepsPos_Actions )
call DestroyGroup( grp )
call DestroyBoolExpr( NeutralFilter )
set NeutralFilter = null
set trg = null
set grp = null
endfunction
Надо добавить фильтр проверки сохраненных, это старая версия, тут я фильтр не делал...
У тебя триггер срабатывает на юнитов которые небыли сохранены...
//...
GroupEnumUnitsInRect( grp, bj_mapInitialPlayableArea, Only_Alive )
if CountUnitsInGroup( grp ) > какое то число then
// ваши действия
endif
call GroupClear( grp )
//...
Ну Only_Alive - bolexpr, как сделать фильтр на живых думаю вам известно... Вот мне очень неинтересно почему это юниты покидают некий рект или игровой рект при смерти? Уже сотый раз вижу про это комнтарии... Нет ни покидает, пока разлагается координаты у него никуда не денутся, если разложился, удален, хендл равен мусору - координаты будут 0.00, 0.00
quq_CCCP, а можно поинтересоваться, что будет делать твоя стенка? Только иллюзии?
Небудет иллюзий, вообще небудет, совсем небудет!!!!
Так если для справки Юнита бьет молния из стены и замедляет нанося единожды урон и сжигая ману, чем Юнит дальше отошел от стены тем слабее замедление...
Короче у меня тут ступор - а как же все это реализовать, каким путем пойти? nvc123:
quq_CCCP, я могу предложить способ с использованием даммиков. Каждому даммику даешь ауру с радиусом действия 100-150 ( ну в зависимости от размера стены). При прохождении через стенку будет вешаться эффект ауры. Поиск нужных тебе юнитов по наложенному эффекту от ауры.
Все бы хорошо, но обновление баффа не отследить, длительность баффа ауры тоже, там рандом по времени действия...
Еще боюсь если кто то быстро пролетит через стену не получит бафф ауры...
» WarCraft 3 / Приоритетность целей
Так же можно использовать и другие пассивные способности наносящие урон юнитам в области.
» WarCraft 3 / Как увеличить список построек у работника?
» WarCraft 3 / Тригерная способность
Высота полета 0, тип летающий, угол крена в 0 град. убираем все спецэффекты при смерти и усе.
Триггерно двигай даммика прикрепив к нему спецэффект снаряда, когда до цели не останется расстояния убивай дамми и удаляй спецэффект, выбирай юнитов в области вокруг цели, потом исключи цель из группы и нанеси ей урон, после половинный (или какой там у тебя) урон всем остальным, потом создай даммика, вручи ему ракетный удар и прикажи выстрелить им по области под целью, все очень просто!
Ред. quq_CCCP
» WarCraft 3 / Как считывать данные с preload.txt
Смотри устройство pld файла, там собственно через GetPlayerName - эксплуатирует возможность смены имени нейтральных игроков и вызова функции ExecinteFunc в коде карты из pld скрипта, испьзуется в DataManager
GameChache - эксплуатирует свойство кеша, кеш один на все потоки в игре, т.е для pld скрипта, аи скрипта или кода карты всегда один GameChache с одним и тем же именем, там все просто записываем данные в кеш прямо в плд скрипте, а потом выгружаем их в потоке карты (предварительно синхронизируя если это потребуется)
Для использование кеша нужно чтобы в pld скрипте отсутствовал PreloadEnd, иначе ничего не получится...
» WarCraft 3 / Разгадка злобного wait
» WarCraft 3 / Разгадка злобного wait
Экзекуты даже наследуют свойства потока из которого запущены, ExecuteTrigger запущенный из потока триггера наследует его ивент, а так же знание связанным с ним функций, с таймерами и ExecuteFunc я не проверял...
Что качается вейтов в циклах, это убого из за неточности вейта + невозможности установки малого периода, о триггерном движении можно забыть.
» WarCraft 3 / Какие нужны триггеры(примерные) для моего нестандарт. инкома?
Условия -
Дествия GroupPickUnitsOfPlayersMatched (или как то так, я гуи не помню)
-Условия ( уровень способности юнита выше 0, а так же юнит жив)
тогда
SetProperty золото. тек. Игрок какой вы изволите 10 * Уровень способности Mathing Unit
иначе
DoNothing()
Ты серьезно ни гугу?
» WarCraft 3 / Какие нужны триггеры(примерные) для моего нестандарт. инкома?
Сделай абилку на основе Змеиная ловкость (или чего то другого, что ничего ни делает) сделай у этой способности несколько уровней (допустим 5)
У апгрейдов есть свойство повышать уровень способности у всех юнитов игрока, используй это.
Периодически выбирай в группу всех юнитов игрока с такой то способностью, потом добавляй игроку скока там золота X уровень способности за каждую ферму.
Ред. Melissa
» WarCraft 3 / Рикошет
Это делает либо апгрейдом либо морфом юнита, так же подсовыванием (убиранием абилки с орб эффектом)
ВНИМАНИЕ - тип атаки снаряд рикошет не сочетается с большинством орб эффектов.
» WarCraft 3 / Десинк
» WarCraft 3 / Как создать способность,усиливающую (1!) следующую атаку.
Метот с руной защитит от промахов но на этот удар не сработают орбы.
Недавно делал блинкстрайк с фикс.дмг, могу кинуть код если интересно, метод исполнения VJASS\\
» WarCraft 3 / Десинк
В доте или моей карте это работает без дисинхов.
Ред. quq_CCCP
» WarCraft 3 / Система VIP
Второе не проверял, поэтому хз.
» WarCraft 3 / Система VIP
» WarCraft 3 / Система VIP
» WarCraft 3 / Варик путает абилки
» WarCraft 3 / Система VIP
Нейм спуферы давным давно доступны.
» WarCraft 3 / Изменить немного систему респавна крипов
» WarCraft 3 / Изменить немного систему респавна крипов
либо используйте CreateCreepOfType для создания крипов, так будет респаунить тока тех крипов которых вы создали этой функцией...
Ред. quq_CCCP
» WarCraft 3 / Изменить немного систему респавна крипов
У тебя триггер срабатывает на юнитов которые небыли сохранены...
» WarCraft 3 / как при использовании способности предмета на саму предмет?
» WarCraft 3 / Триггеная способность типа "Стена"
всем спасибо, особенно 16GB, за пример.
» WarCraft 3 / как подсчитать количество живых юнитов на jass?
Вот мне очень неинтересно почему это юниты покидают некий рект или игровой рект при смерти? Уже сотый раз вижу про это комнтарии...
Нет ни покидает, пока разлагается координаты у него никуда не денутся, если разложился, удален, хендл равен мусору - координаты будут 0.00, 0.00
» WarCraft 3 / Триггеная способность типа "Стена"
Так если для справки Юнита бьет молния из стены и замедляет нанося единожды урон и сжигая ману, чем Юнит дальше отошел от стены тем слабее замедление...
Короче у меня тут ступор - а как же все это реализовать, каким путем пойти?
nvc123: Про это прошу поподробнее, стена может быть под любым углом, от 0 до 360 и как мне регион 1 под углом запилить?
» WarCraft 3 / Триггеная способность типа "Стена"
Еще боюсь если кто то быстро пролетит через стену не получит бафф ауры...