Отслеживать смерть техиники, и наносить урон. Вроде кстати у дирежаблей гоблинов была способность - парашутист, типа после крушения все получают головокружение и медленее двигаются некоторое время.
Как где, не видно? TriggerCondition, тут все в условиях написано.
Код Jass, собвственно все что надо таймер, дамми юнит с модлью кольца и группа, по малому периоду двигаем даммика за юнитом кастером и выбираем всех врагов вокруг, с каждым тиком таймера увеличиваем радиус поиска группы, тех кто уже попался отсеиваем, а тех кто попался впервые дамажим, замедление делается дамми юнитом кидающим ледяную звезду в себя, урон по площяди убран, только замедление.
Традиционные были без звука, это после добавили звук с цветом и прочее.
Пажитов насколько помню писал тетрис на компе где ни графики ни звука, разве что принтером шуршать можно. Так что музяку можно любую использовать, то что у нас в 90х китайцы продавали не есть каноничный вариант игры.
NTI - тупо CreateGroup, ну NSI - DestroyGroup
Если в карте нету GroupUtils (прекрасно гуглится на хайве).
Триггер меняем на таймер, но я скинул не для копипаста а для изучения, сложного в коде ничего нету.
function J9O takes nothing returns nothing
local unit P8I=GetEnumUnit()
local group JAO=ND0
local unit P7I=NE0
if IsUnitInGroup(P8I,JAO)==false then
call GroupAddUnit(JAO,P8I)
call IssueTargetOrder(NF0,"slow",P8I)
set JJI=true
call DamageTarget(P7I,P8I,1,200)
set JJI=false
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl",P8I,"origin"))
endif
set P8I=null
set JAO=null
set P7I=null
endfunction
function JBO takes nothing returns boolean
local trigger t=GetTriggeringTrigger()
local integer S5I=GetHandleId(t)
local unit P7I=(LoadUnitHandle(HashData,(S5I),(2)))
local unit I01=(LoadUnitHandle(HashData,(S5I),(19)))
local group JAO=(LoadGroupHandle(HashData,(S5I),(133)))
local real d
local real x
local real x0=GetUnitX(P7I)
local real y
local real y0=GetUnitY(P7I)
local group g=NTI()
local integer NPI=GetTriggerEvalCount(t)
local integer i
call SetUnitX(I01,GetUnitX(P7I))
call SetUnitY(I01,GetUnitY(P7I))
set ND0=JAO
set NE0=P7I
set NF0=(LoadUnitHandle(HashData,(S5I),(132)))
if GetTriggerEvalCount(t)>37 then
call KillUnit(I01)
call NSI(JAO)
call FlushChildHashtable(HashData,(S5I))
call S0I(t)
else
set d=NPI*21
set i=0
loop
exitwhen i>36
set x=x0+d*Cos(360*i/36*bj_DEGTORAD)
set y=y0+d*Sin(360*i/36*bj_DEGTORAD)
set GK=P7I
call GroupEnumUnitsInRange(g,x,y,150,Condition(function C81))
call ForGroup(g,function J9O)
set i=i+1
endloop
endif
call NSI(g)
set t=null
set I01=null
set JAO=null
set P7I=null
set g=null
return false
endfunction
function JCO takes nothing returns nothing
local unit SFI=GetTriggerUnit()
local real x=GetUnitX(SFI)
local real y=GetUnitY(SFI)
local group JAO=NTI()
local trigger t=CreateTrigger()
local integer S5I=GetHandleId(t)
local unit I01=CreateUnit(GetOwningPlayer(SFI),'h091',x,y,0)
local unit JDO=CreateUnit(GetOwningPlayer(SFI),'e00E',GetUnitX(SFI),GetUnitY(SFI),0)
call UnitAddAbility(JDO,'A0T0')
call SaveGroupHandle(HashData,(S5I),(133),(JAO))
call SaveUnitHandle(HashData,(S5I),(19),(I01))
call SaveUnitHandle(HashData,(S5I),(132),(JDO))
call SaveUnitHandle(HashData,(S5I),(2),(SFI))
call TriggerRegisterTimerEvent(t,0.06,true)
call TriggerAddCondition(t,Condition(function JBO))
set t=null
set JAO=null
set I01=null
set JDO=null
set SFI=null
endfunction
function JEO takes nothing returns nothing
if GetSpellAbilityId()=='A0T9' then
call JCO()
endif
endfunction
Мне вот интересно, а зачем?
Проблемы были лишь в Гуи говнокартах и дотах, где оптимизатор сливает все в одну функцию и начинаются обрывы, которые лечатся сверхпросто.
Но проще думать головой и не плодить сущности, инит нет надобности делать в мейне и разом, необходимые триггеры вовсе можно создавать во время игры, к примеру когда игрок выберет героя к котором эти триггеры относятся.
Ну я бы сделал по нормальному, через детект урона. Собственно все просто, задаем абилке труповозки эксгумация кд, там достаточно просто все в статьях есть, когда кд прошло, включаем триггер на атаку, при замахе на врага создаем еще 1 триггер, в котором ждем удара от врага, при удара неносим урон. Все просто.
Ну для начала не мешало бы избавится от гуи, и использовать как можно меньше разрушаймых декораций и блокираторов пути.
На больших картах из за них лагает, стоит удар грома юзнуть и 5 фпс на секунды 3 обеспечено.
Ну пасскоды как во всяких гоблинах, это самое простое.
Более сложное, это preload или мемхак, создавать на машине юзера файл с данными.
Ну и у лтд или доты, тупо отправка хостботу, который все сам делает, получает инфу хостбот анализируя пакеты синха геймкеша.
Для этого даже наработка есть, wc3mdd
SAND, Ну есть функция настройки цвета юнита и его прозначности, прозрачность в 0, и юнит полностью прозрачный, прозрачность как и цвет можно локально настроить для игрока, SetUnitVertexColor называется.
С иконкой там немного посложнее, в разделе нейтральное здание, сначала настраиваем альтернативную иконку для миникарты - call SetAltMinimapIcon( "UI\\Minimap\\Minimap-Tower" ), ну а потом для конкретного юнита прменяем функцией - call UnitSetUsesAltIcon(whichUnit, flag), ну так вот, иконки тоже можно локально настраивать, таким образом сделав незаметным на миникарте героя.
mifexiy, зачем? Есть триггер с событием, юнит отдал приказ - цель точка, приказ является move, юнитам отдавшим приказ - является крип ( в доте тупо проверка на абилку которая есть только у крипов идущих по линиям), то отдаем приказ атаковать в нужную точку, точку вычисляем исходя из области в которой сейчас юнит сидит. Все просто.
Постоянно отдавать приказ идти, в доте к примеру там проверка на приказ move, если крип отдал такой приказ, проверяется в какой области он находится, и отдается приказ идти в следующую область.
Да как и в доте 1, ептить. Просто инвиз, иконку на миникарте делаем прозрачной, как и саму модель юнита для врагов, поэтому даже на вардах юнитов то не видно.
Да, и судя по некоторым тредам, есть еще и в рефе. Хз конечно как и что, о дырах в виртуальной машинезнал один местный юзер, который молчал, но на хайве один человек взял и рассказал Драколичу об одном, найденым им простым вариантом - результат все мы знаем...
Но сколько людей, не пошло постить на форумы свои находки, авторы читов и программ типа кеев, маперов, улучшайзеров фпс. К слову они ни чуть не менее опасны чем мемхак, они написаны человеком который сидит за ником, за которым ничего нет, ты даже не знаешь в какой стране на самом деле живет этот человек и что он там написал, опенсурсы вам никто не дает.
Ну и как я уже писал, айкаплаунчер и прочие лаунчеры - написаны ни понять кем, у айкапа разработчиков выгнаных со скаднадалами уже десятки, так что вирусов боятся - сидеть оффлайн.
Кто хочет юзать мемхак для своей карты юзайте, вам ничего не угрожает, для тех кто видит на ирне что карта с мемхаком, гуглите инфу - если карта норм и автор её развивает, вирусы там не появятся, стрелять себе в ногу автор карты не будет.
Кстати забыл сказать, есть способы скрытия мемхака от тупых проверок, мемхак это всего лишь сломанный массив - а как и где его сломать не принципиально важно, все остальное мешура которая лишь дает API для работы, чеканье переменных как сделал айкап лечится сверх просто. Мемхак может быть в любом скрипте, а не только в J, т.е AI, PLD, начхать.Передать адрес массива можно геймкешем.
Ептить, ну при касте молотка создаешь на цель каста триггер с событием - юнит получает урон, урон ровно 0, и есть бафф стана, сразу бафф удаляешгь и все. Следом триггер, а так же добавляешь событие - время вышло, на примерное время за которое молоток долетит до юнита.
Разумеется все это на JASS делается, а не на гуях.
nazarpunk, лич как то собирал инфу о пк игроков его дотки, 90% картофелены из средины нулевых и еле живой инет, окей ботнет...
Проверка j файла карты не поможет от инжекта дллки, это мы честные картоделы размещаем мемхак на самом видном месте, и проверить на него карту не сложно, но мемхак можно запустить и из AI и PLD файла, и подгрузить длл, вовсе мемхак мини который в глаза не бросается а только запускат ддл был уже давно, та самая карта демка китайцев. Ну и труды Айсфога напомню, было бы желание.
Те кто хочет сделать свою карту лучше с помощью мемхака ни от кого не прячатся и ничего из вышеописанного делать не будут, зачем?
QQQQWWWW, в теории, которую никто так и не поддвердил, в карте может быть вирус, который с помощью мемхака поселится у тебя на пк, но это нахер никому не интересно.
То что пишет вася выше, абсолютная ерунда, толку от его мелких пакостей кроме как все перестанут играть в его карту нету, чтобы написать вирус который что то может в современных систамах - нужно постаратся, а зачем стараться если это не приносит никакого профита?
Невозможность получения профита с атаки машин потенциальных жертв, тебе как автору карты то от вирусов на машинах игроков какой профит? Что ты там можешь украсть, пароли от порно сайта? Ну ок, аккаунт от дотки айсикапа, ой ты ептить кража века...
Любой вред игрокам для автора карты вреден, его задача сделать так чтобы как можно больше игроков играло в его карту, а не вредить им и делать так чтобы никто не играл, создание играбельной карты это труд, огромный труд.
И еще параноики, бойтесь - я могу кинуть карту, с мемхаком, которая работет везде, даже на ракапе и не палитсо... Если кто захочет вам навредить, он навредит.
» WarCraft 3 / Транспорт наземный и урон
» WarCraft 3 / Как делать заклинание Arctic Blast из доты
Код Jass, собвственно все что надо таймер, дамми юнит с модлью кольца и группа, по малому периоду двигаем даммика за юнитом кастером и выбираем всех врагов вокруг, с каждым тиком таймера увеличиваем радиус поиска группы, тех кто уже попался отсеиваем, а тех кто попался впервые дамажим, замедление делается дамми юнитом кидающим ледяную звезду в себя, урон по площяди убран, только замедление.
» WarCraft 3 / FRAMETRIS (тетрис на фреймах)
Пажитов насколько помню писал тетрис на компе где ни графики ни звука, разве что принтером шуршать можно. Так что музяку можно любую использовать, то что у нас в 90х китайцы продавали не есть каноничный вариант игры.
» WarCraft 3 / Как делать заклинание Arctic Blast из доты
Если в карте нету GroupUtils (прекрасно гуглится на хайве).
Триггер меняем на таймер, но я скинул не для копипаста а для изучения, сложного в коде ничего нету.
» WarCraft 3 / Как делать заклинание Arctic Blast из доты
» WarCraft 3 / Как делать заклинание Arctic Blast из доты
Могу скинуть код, он там примитивный.
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
Ред. quq_CCCP
» WarCraft 3 / Отследить количество играющих игроков
» WarCraft 3 / Циклы и их лимиты (+ способы обхода лимитов)
Проблемы были лишь в Гуи говнокартах и дотах, где оптимизатор сливает все в одну функцию и начинаются обрывы, которые лечатся сверхпросто.
Но проще думать головой и не плодить сущности, инит нет надобности делать в мейне и разом, необходимые триггеры вовсе можно создавать во время игры, к примеру когда игрок выберет героя к котором эти триггеры относятся.
» WarCraft 3 / Золотая башня
» WarCraft 3 / Devistating Blow ( Фатальный удар )
» WarCraft 3 / Оптимизация карты
На больших картах из за них лагает, стоит удар грома юзнуть и 5 фпс на секунды 3 обеспечено.
» WarCraft 3 / Как сделать систему рейтинга? (BD sql)
» WarCraft 3 / Как сделать систему рейтинга? (BD sql)
Более сложное, это preload или мемхак, создавать на машине юзера файл с данными.
Ну и у лтд или доты, тупо отправка хостботу, который все сам делает, получает инфу хостбот анализируя пакеты синха геймкеша.
Для этого даже наработка есть, wc3mdd
» WarCraft 3 / Аналог Smoke of deceit из dota2
С иконкой там немного посложнее, в разделе нейтральное здание, сначала настраиваем альтернативную иконку для миникарты - call SetAltMinimapIcon( "UI\\Minimap\\Minimap-Tower" ), ну а потом для конкретного юнита прменяем функцией - call UnitSetUsesAltIcon(whichUnit, flag), ну так вот, иконки тоже можно локально настраивать, таким образом сделав незаметным на миникарте героя.
» WarCraft 3 / Юнит отходит при атаке
» WarCraft 3 / Аналог Smoke of deceit из dota2
» WarCraft 3 / Юнит отходит при атаке
» WarCraft 3 / Аналог Smoke of deceit из dota2
» WarCraft 3 / Опасен ли мемхак?
Но сколько людей, не пошло постить на форумы свои находки, авторы читов и программ типа кеев, маперов, улучшайзеров фпс. К слову они ни чуть не менее опасны чем мемхак, они написаны человеком который сидит за ником, за которым ничего нет, ты даже не знаешь в какой стране на самом деле живет этот человек и что он там написал, опенсурсы вам никто не дает.
Ну и как я уже писал, айкаплаунчер и прочие лаунчеры - написаны ни понять кем, у айкапа разработчиков выгнаных со скаднадалами уже десятки, так что вирусов боятся - сидеть оффлайн.
Кто хочет юзать мемхак для своей карты юзайте, вам ничего не угрожает, для тех кто видит на ирне что карта с мемхаком, гуглите инфу - если карта норм и автор её развивает, вирусы там не появятся, стрелять себе в ногу автор карты не будет.
» WarCraft 3 / Как отловить стан?
Разумеется все это на JASS делается, а не на гуях.
» WarCraft 3 / Как отловить стан?
» WarCraft 3 / Опасен ли мемхак?
Те кто хочет сделать свою карту лучше с помощью мемхака ни от кого не прячатся и ничего из вышеописанного делать не будут, зачем?
» WarCraft 3 / Опасен ли мемхак?
- То что пишет вася выше, абсолютная ерунда, толку от его мелких пакостей кроме как все перестанут играть в его карту нету, чтобы написать вирус который что то может в современных систамах - нужно постаратся, а зачем стараться если это не приносит никакого профита?
- Невозможность получения профита с атаки машин потенциальных жертв, тебе как автору карты то от вирусов на машинах игроков какой профит? Что ты там можешь украсть, пароли от порно сайта? Ну ок, аккаунт от дотки айсикапа, ой ты ептить кража века...
- Любой вред игрокам для автора карты вреден, его задача сделать так чтобы как можно больше игроков играло в его карту, а не вредить им и делать так чтобы никто не играл, создание играбельной карты это труд, огромный труд.
И еще параноики, бойтесь - я могу кинуть карту, с мемхаком, которая работет везде, даже на ракапе и не палитсо... Если кто захочет вам навредить, он навредит.