XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Pawsanie
Творит печеньки
offline
Опыт: 112
Активность:
Как тригерно заставить юнита кастовать нестандартное заклинание?
Мне нужно сделать заклинание в результате, которого юнит станет невидимым и у него появится иллюзия. За основу я взял стремительность и создал абилку для другого юнита невидимки на основе Предмет: иллюзии. Проблема состоит в том, что невидимка созданный триггером не хочет использовать нестандартную способность. Никак не могу понять, как заставлять юнитов пустышек триггерно что-то на кого-то кастовать. Юзал поиск нашёл только одну тему, но функций указных там, например: (Issue Order Targetiong A Unit) в стандартном едиторе просто не нашёл а WE Unlimited всё время мне выдаёт ошибку: [code]call IssueTargetOrderBJ( udg_Clone_kaster, String2UnitOrder(GetAbilityName('A00F')), udg_Hero_Kurenai )[/code] Вот сам триггер: [cut][code]//***************************************************************************
*
* Global Variables
*
***************************************************************************
globals
User-defined
integer udg_TempInteger = 0
boolean udg_ShortMode_On = false
boolean udg_UltraShortMode_On = false
force udg_Players = null
force udg_PlayersScourgePlaying = null
force udg_PlayersSentinelPlaying = null
force udg_PlayersSentinel = null
force udg_PlayersScourge = null
boolean udg_End_Game_If_All_Gone = false
boolean udg_Mex_Razbros = false
boolean udg_Mex_KillString = false
integer udg_Mex_TimeRess = 0
location udg_Mex_Position_Ress_Team1 = null
location udg_Mex_Position_Ress_Team2 = null
unit array udg_Mex_Hero
unit udg_PlaerHero = null
string array udg_Mex_color
group udg_Mex_Gr_2 = null
group udg_Mex_Gr_1 = null
integer array udg_Mex_RessTime
unit udg_Hero_Kurenai = null
unit udg_Dans_of_feniks_kaster = null
player udg_Plaerkaster = null
unit udg_Dans_of_feniks_cele = null
location udg_Stebele_point = null
unit udg_Clone_kaster = null
Generated
trigger gg_trg_Initialization = null
trigger gg_trg________________________________________________u = null
trigger gg_trg_Heroes = null
trigger gg_trg_Cast_dans_of_feniks_Leval_1 = null
trigger gg_trg_Run = null
trigger gg_trg_Stebele_lvl_1 = null
trigger gg_trg_Stebele_lvl_2 = null
trigger gg_trg_Stebele_lvl_3 = null
trigger gg_trg_Stebele_lvl_4 = null
trigger gg_trg_Peremennie = null
trigger gg_trg_Free_Gold = null
trigger gg_trg_Player_Leaves_Game = null
trigger gg_trg_Var = null
trigger gg_trg_Timer_Ress = null
trigger gg_trg_Die_Hero = null
endglobals
function InitGlobals takes nothing returns nothing
local integer i = 0
set udg_TempInteger = 0
set udg_ShortMode_On = false
set udg_UltraShortMode_On = false
set udg_Players = CreateForce()
set udg_PlayersScourgePlaying = CreateForce()
set udg_PlayersSentinelPlaying = CreateForce()
set udg_PlayersSentinel = CreateForce()
set udg_PlayersScourge = CreateForce()
set udg_End_Game_If_All_Gone = false
set udg_Mex_Razbros = false
set udg_Mex_KillString = false
set udg_Mex_TimeRess = 0
set i = 0
loop
exitwhen (i > 1)
set udg_Mex_color[i] = ""
set i = i + 1
endloop
set udg_Mex_Gr_2 = CreateGroup()
set udg_Mex_Gr_1 = CreateGroup()
set i = 0
loop
exitwhen (i > 1)
set udg_Mex_RessTime[i] = 0
set i = i + 1
endloop
endfunction
function Trig_Run_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'A008' ) ) then
return false
endif
return true
endfunction
function Trig_Run_Actions takes nothing returns nothing
set udg_Hero_Kurenai = GetSpellAbilityUnit()
set udg_Plaerkaster = GetOwningPlayer(udg_Hero_Kurenai)
set udg_Stebele_point = GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(udg_Hero_Kurenai), 1.00, 1.00))
call CreateNUnitsAtLoc( 1, 'e000', udg_Plaerkaster, GetRectCenter(RectFromCenterSizeBJ(udg_Stebele_point, 1.00, 1.00)), bj_UNIT_FACING )
set udg_Clone_kaster = GetLastCreatedUnit()
call IssueTargetOrderBJ( udg_Clone_kaster, String2UnitOrder(GetAbilityName('A00F')), udg_Hero_Kurenai )
endfunction
===========================================================================
function InitTrig_Run takes nothing returns nothing
set gg_trg_Run = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_Run, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( gg_trg_Run, Condition( function Trig_Run_Conditions ) )
call TriggerAddAction( gg_trg_Run, function Trig_Run_Actions )
endfunction[/code][/cut]

Объясните, пожалуйста, желательно с картой примером, как заставить юнита триггерно, что-то на кого-то кастовать.

Отредактировано Pawsanie, 31.08.2009 в 12:17.
Старый 31.08.2009, 12:08
adic3x

offline
Опыт: 108,439
Активность:
нестандартных способностей небывает имхо)
отдать приказ юниту, соответствующий приказу способности
Старый 31.08.2009, 12:16
Pawsanie
Творит печеньки
offline
Опыт: 112
Активность:
Я просто никак не могу заставить юнита использовать способность созданную мной на ком-то. В стандартном едиторе есть триггер отдающий приказ юниту что-то сделать с другим, но в перечне только стандартные способности юнитов. + команды типа атаковать и ждать. А в WEU ошибка выскакивает.
Старый 31.08.2009, 12:25
ScorpioT1000
Работаем
offline
Опыт: отключен
у тебя способность на основе стандартной создана
а вобще за эти темы тоже буду давать варны скоро - их также over9000
Старый 31.08.2009, 12:35
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Pawsanie, ну так ты приказывай использовать то, на основе чего сделан твой спелл.
Старый 31.08.2009, 12:36
Pawsanie
Творит печеньки
offline
Опыт: 112
Активность:
А есле способность на основе предмета?, там таких нет. А вообше спс.
Старый 31.08.2009, 12:38
Stefler
MCA
offline
Опыт: 10,457
Активность:
Нельзя заставить юнита каставать способность Предмет: Иллюзия.
Но выход есть, сделай Это способность как предмет и давай ее Дами, после чего заставляй Дами использовать предмет в 1 слоте (предположим) на твоего Кастера!!!
х) у мя все работает сколько раз делал...
Старый 31.08.2009, 12:39
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Pawsanie, если способность на основе предмета, то найди аналогичную не на основе предмета, если и это невозможно, то тогда конвертируй в текст, ищи свое действие (обычно что-то вроде call IssueOrder...), и там заменяй то, что в кавычках, на то, что написано в твоей способносте в строке Характеристики - Порядок строк.
Примечание: то, что написано в этой строке менять можно тольк у у способностей Канал и Книга заклинаний Ну менять-то можно, только это ничего не даст =)
Hellfim добавил:
Если не желаешь видеть код, то просто копируй эту строчку в действие Custom Code: <строчка>
Hellfim добавил:
А старую гуи-строчку удаляй.
Старый 31.08.2009, 12:43
adic3x

offline
Опыт: 108,439
Активность:
Примечание: то, что написано в этой строке менять можно тольк у у способностей Канал и Книга заклинаний Ну менять-то можно, только это ничего не даст =)
у канал это отдельной характеристикой идет
Старый 31.08.2009, 13:09
ScorpioT1000
Работаем
offline
Опыт: отключен
каналу можно даль id от стандартной и пускать как стандартную
Старый 31.08.2009, 13:27
DKbru

offline
Опыт: 1,407
Активность:
Hellfim, к сожалению не у всех способностей есть в порядке строк id приказа. Пример: Руна Защиты (ANse) имеет строку приказа "spellshieldaoe" и нашёл я это заветное слово, применяя руну-способность и выводя на экран GetUnitCurrentOrder()
Старый 31.08.2009, 20:56
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 03:08.