Ребят, я пишу для теста, свой первый Jass скилл, пока не совсем сам, потому что не знаю еще, как выглядит код, не базового (сконвертированного) триггера. Пишу что помню, добавляю локальные переменные, и уже 2жды сталкивался с проблемой, и сейчас не имею понятия, как решить. У меня, проверка Jass ошибок, говорит, что я не заявлял никаких переменных.
call IssueTargetOrderBJ(orud1(), "attack", Usp())
call KillUnit(orud1())
call KillUnit(orud2())
Сразу предупрежу, что я просто решил начать писать Jass триггеры. А также, что мне известно, что там после этих строк, белиберда, так как я сначала писал в GUI, потом переписывал в Jass, и дорабатывал, так что логические ошибки, это то, что я еще не дописал.
Вот код.
Заранее спасибо.
function Trig_treeegs_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A000'
endfunction

function Trig_treeegs_Actions takes nothing returns nothing
  set udg_Unitper = GetSpellAbilityUnit()
    local unit Usp = udg_Unitper
    local unit orud1
    local unit orud2
    local unit orud3
    call CreateNUnitsAtLoc( 1, 'hmtm', GetOwningPlayer(Usp), PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(Usp), 200.00, 300.00)), 256, 100.00), bj_UNIT_FACING )
    set udg_Unitper = GetLastCreatedUnit()
    set orud1 = udg_Unitper
    call SetUnitColor( orud1, GetPlayerColor(Player(6)) )
    call IssueTargetOrderBJ( orud1(), "attack", Usp() )
    call TriggerSleepAction( 0.90 )
    call KillUnit( orud1() )
    call CreateNUnitsAtLoc( 1, 'hmtm', GetOwningPlayer(Usp), PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(Usp), 300.00, 200.00)), 128.00, 50.00), bj_UNIT_FACING )
    set udg_Unitper = GetLastCreatedUnit()
    set orud2 = udg_Unitper
    set udg_Unitper = null
    call SetUnitColor( orud2, GetPlayerColor(Player(6)) )
    call IssueTargetOrderBJ( GetLastCreatedUnit(), "attack", GetSpellAbilityUnit() )
    call TriggerSleepAction( 0.90 )
    call KillUnit( orud2() )
    call CreateNUnitsAtLoc( 1, 'hmtm', GetOwningPlayer(udg_Unitper), PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(udg_Unitper), -150.00, -200.00)), 200.00, 75.00), bj_UNIT_FACING )
    set udg_Unitper = GetLastCreatedUnit()
    set orud3 = udg_Unitper
    set udg_Unitper = null
    call SetUnitColor( udg_Unitper, GetPlayerColor(Player(6)) )
    call IssueTargetOrderBJ( GetLastCreatedUnit(), "attack", GetSpellAbilityUnit() )
    call TriggerSleepAction( 0.90 )
    call KillUnit( GetLastCreatedUnit() )
    call AddSpecialEffectLocBJ( GetUnitLoc(GetLastCreatedUnit()), "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
    call TriggerSleepAction( 0.01 )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( GetUnitLoc(GetLastCreatedUnit()), "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
    call TriggerSleepAction( 0.01 )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( GetUnitLoc(GetLastCreatedUnit()), "Abilities\\Spells\\Human\\ThunderClap\\ThunderClapCaster.mdl" )
    call TriggerSleepAction( 0.01 )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
    call AddSpecialEffectLocBJ( GetUnitLoc(GetSpellAbilityUnit()), "Abilities\\Spells\\Human\\MarkOfChaos\\MarkOfChaosTarget.mdl" )
    call TriggerSleepAction( 0.01 )
    call DestroyEffectBJ( GetLastCreatedEffectBJ() )
    call RemoveUnit( GetLastCreatedUnit() )
    call RemoveUnit( GetLastCreatedUnit() )
    call RemoveUnit( GetLastCreatedUnit() )
endfunction

//===========================================================================
function InitTrig_treeegs takes nothing returns nothing
    local trigger t = CreateTrigger ()
    call TriggerRegisterAnyUnitEventBJ(t, EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(t, Condition( function Trig_treeegs_Conditions ) )
    call TriggerAddAction(t, function Trig_treeegs_Actions )
    set t = null
endfunction

1
А это никого не смущает? то что локалки поставлены не первыми
function Trig_treeegs_Actions takes nothing returns nothing
	set udg_Unitper = GetSpellAbilityUnit()
	local unit Usp = udg_Unitper
	local unit orud1
	local unit orud2
	local unit orud3
	. . .
2
Утекают точки...
PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(Usp), 200., 300.)), 256, 100.)
// GetUnitLoc(Usp)
3
Обращения как в функциям
orud1()
Usp()
В общем - рано тебе ещё прям так полностью переходить на Jass.
Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
10
Steal nerves:
ты переменным пишешь зачем скобки?
call KillUnit(orud1())
а надо call KillUnit(orud1)
скобки пишут только для функции и константных функции вроде GetTriggerUnit()

вы очень много делаете лишних телодвижении с переменными, больно смотреть на код
Изините, тут пунктик один вышел.
У меня первый орудийный расчет, не атакует кастера. Остальные все нормально делают.
26
1
А это никого не смущает? то что локалки поставлены не первыми
function Trig_treeegs_Actions takes nothing returns nothing
	set udg_Unitper = GetSpellAbilityUnit()
	local unit Usp = udg_Unitper
	local unit orud1
	local unit orud2
	local unit orud3
	. . .
2
Утекают точки...
PolarProjectionBJ(GetRectCenter(RectFromCenterSizeBJ(GetUnitLoc(Usp), 200., 300.)), 256, 100.)
// GetUnitLoc(Usp)
3
Обращения как в функциям
orud1()
Usp()
В общем - рано тебе ещё прям так полностью переходить на Jass.
Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
Принятый ответ
32
Народ, а у нас статьи с примерами простых жасс спелов кончились на сайте? На форум чето ссылки не активны, думал мб сударю кинуть.
11
Extremator, можно локалки объявить где угодно, после компиляции они будут объявлены в начале функции. Не помню точно, это cJass или vJass позволяет такое делать.
32
Да и вовсе совсем не могу понять, че спелл то делать должен?
26
wetalq:
можно локалки объявить где угодно
Это только если компилятор будет перераспределять расположения строк с объявлением локалок.
38
quq_CCCP, что у тебя не так с форумом? Что значит не активны?
11
ScorpioT1000, у меня также многие разделы форума не доступны. Гугл находит ссылку на форум, но пишет что для меня этот раздел не доступен.
38
wetalq, а если разлогиниться или с инкогнито?
11
ScorpioT1000, работает если через инкогнито зайти, спасибо за подсказку
32
ScorpioT1000:
wetalq, а если разлогиниться или с инкогнито?
Что за баг?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.