Делать все способности триггерными на основе канала. Редактировать поля канала (иконку, описание, дальность каста, манкост и т.д.) в процессе игры (Действие -> Ability -> Set Real/Integer Field). Тогда в карте будет только 7 абилок на всех героев.
Это отлично подходит, но оказалось близы не довезли возможность менять такие поля как Анимация ('aani'), допустимые цели('atar'). Возможно потому, что они являются массивными значениями, которые должны меняться через BlzSetAbilityStringLevelArrayField , но ни одного константного abilitystringlevelarrayfield в common.j нет в наличии.
Придется анимки триггером проигрывать, а абилки с целями продублировать.
Все обновляется и удаляется как надо. Я не писал весь код, что бы не замыливать глаза, так как в нем используется еще куча всего что может утекать, но не утекает. DracoL1ch:
что такое параллельный вызов и как связан мемхак с хендлом? оО
Параллельно, я имел ввиду МУИ использование. То есть если я использую способность Варик создаст юнита в памяти (ConvertHandle вернет адрес этого юнита в памяти) после выполнения удалив юнита, память освободится. При новом вызове варик создаст нового юнита и опять выделит под него память, а ConverHandle будет тот же самый, значит прошлый юнит удалился и освободил место для нового. Если вызвать способность дважды, создастся два юнита и получат разные места в памяти, и ConvertHandle будет различаться, что и происходит. Поправьте меня если я не прав. quq_CCCP:
Zeix, И где тут мемхак? Не вижу что то применение мемхака в данном коде, вот к примеру тут используется мемхак, а у вас нет.
Мемхак не используется в способности, чего я и не утверждал, Я использовал только ее функцию, что бы понять что происходит.
Если юнита всего два и абилка тригерная - сделать 2 разные абилки, по 1 для каждого юнита, и при использовании ее у одного вызывать холостой запуск у второго. Передавать путем запрета/разрешения. Вроде должно работать.
Зависит от СОБЫТИЯ, если это каст способности или отдача приказа при помощи мышки, то можно отловить координаты через GetSpellTargetX/Y или GetOrderPointX/Y. Если событие не связано с мышкой, то варовскими методами никак.(слишком сложно и не практично)
Выключай даммику пасинг и переноси в нужную точку.
local unit d
local real x=GetUnitX(u)
local real y=GetUnitY(u)
......
set d=CreateUnit(p,dummy,0,0,0)
call SetUnitPathing(d,false)
call SetUnitX(d,x)
call SetUnitY(d,y)
Функция AddSpecialEffectTarget нативная и только создает эффект никуда его не сохраняя. В первом случае ты создавал спец эффект но не записывал его никуда. Во втором ты создавал 2 эффекта, один из которых удалял.
AddSpecialEffectTargetUnitBJ близардовская и она записывает созданный эффект в *bj_lastCreatedEffect* который ты удалял. Делай как в во втором варианте только без первого вызова:
set se1 = AddSpecialEffectTarget( "Abilities\\Spells\\Human\\DivineShield\\DivineShieldTarget.mdl",su, "origin" )
call TriggerSleepAction(0.5)
call DestroyEffect(se1)
урон неочень, танки в аренах не нужны, т.к. у людей мозг есть, ывбирают кого бить, хил тоже недохил, а абилка типа разбег вообще какая-то..ээ...и по механике и по действенности неочень) ну и не вписывается в тематику баблодина.
Имхо, Храмовник - один из самых ярких персонажей, возможно даже слишком мощный. При игре 2 на 2 его хилки вполне хватает, хелит достаточно и мгновенно. На счет низкого урона: высокий урон только у магов, у храмовника достаточный урон, учитывая, что он не ДД клас (как писал Qd есть связка F+E+W+Q наносит солидный урон). Не веришь - приглашаю на Гарену :). Называть храмовника танком - неуместно, тк он не консервная банка, а многофункциональный класс.
Ну а вот анимация у раша и вправду не очень...
карта просто отличная, одна из лучших пвп арен. 10/10.
по поводу пироманта плюсую, сейчас самый мощный дд с 2 стунами и откидывалкой творит чудеса.
в режиме 2 на 2 играл хант+прист вс берс+друид каждый раунд махача был по 5 минут...
еще предложение, может при выходе игрока заменять его на бота, ато каждая вторая игра заканчивается раньше времени.
» WarCraft 3 / Универсальные хоткеи для абилок.
» WarCraft 3 / Искусственный интеллект крипов
» WarCraft 3 / Искусственный интеллект крипов
» WarCraft 3 / Утечка или не утечка.
» WarCraft 3 / Утечка или не утечка.
DracoL1ch: Параллельно, я имел ввиду МУИ использование. То есть если я использую способность Варик создаст юнита в памяти (ConvertHandle вернет адрес этого юнита в памяти) после выполнения удалив юнита, память освободится. При новом вызове варик создаст нового юнита и опять выделит под него память, а ConverHandle будет тот же самый, значит прошлый юнит удалился и освободил место для нового. Если вызвать способность дважды, создастся два юнита и получат разные места в памяти, и ConvertHandle будет различаться, что и происходит. Поправьте меня если я не прав.
quq_CCCP: Мемхак не используется в способности, чего я и не утверждал, Я использовал только ее функцию, что бы понять что происходит.
» WarCraft 3 / Характеристики - Требуется древесины
Отредактирован Zeix
» WarCraft 3 / Утечка или не утечка.
» WarCraft 3 / Отлов урона
» WarCraft 3 / Передать перезарядку способности
» WarCraft 3 / Нужна модель? - Вам сюда!
» WarCraft 3 / как создать юнита у курсора мыши
Отредактирован Zeix
» WarCraft 3 / дамик
Отредактирован Zeix
» WarCraft 3 / Просто не могу удалить эффект с юнита(героя)
AddSpecialEffectTargetUnitBJ близардовская и она записывает созданный эффект в *bj_lastCreatedEffect* который ты удалял. Делай как в во втором варианте только без первого вызова:
set se1 = AddSpecialEffectTarget( "Abilities\\Spells\\Human\\DivineShield\\DivineShieldTarget.mdl",su, "origin" )
call TriggerSleepAction(0.5)
call DestroyEffect(se1)
» Ретро-игры / Dune II
» WarCraft 3 / JTournament 1.5e
» WarCraft 3 / JTournament 1.5e
Ну а вот анимация у раша и вправду не очень...
» WarCraft 3 / JTournament 1.5e
по поводу пироманта плюсую, сейчас самый мощный дд с 2 стунами и откидывалкой творит чудеса.
в режиме 2 на 2 играл хант+прист вс берс+друид каждый раунд махача был по 5 минут...
еще предложение, может при выходе игрока заменять его на бота, ато каждая вторая игра заканчивается раньше времени.