Добавлен Taurenus
Ребят, я пишу для теста, свой первый 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).
Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. MpW
скобки пишут только для функции и константных функции вроде GetTriggerUnit()
Я хотел потом, до отточить баланс, и добавить туда, 1 героя, с крутыми скиллами. После чего, карта переставала запускать триггеры, она была переполнена утечками. И все насмарку. Я решил поучиться коду, и пресекать максимум утечек, что бы был, максимально чистый код.
У меня первый орудийный расчет, не атакует кастера. Остальные все нормально делают.
Ред. Extremator
Тут надо переделывать всё, начиная с момента удаления создаваемого эффекта, и вплоть до момента созданиея юнита по XY. А так же момент с полярными смещениями (ты там вообще лишнюю область создаёшь, а значит не знаешь как надо правильно полярки использовать на GUI).
Так что там с тем, что первый не атакует?
И спасибо за то что объяснил.
"Если вам чего-то непонятно, то вот у нас есть форум, там задавайте вопросы. Вам там помогут, мы даем инструмент, спрашивайте, экспериментируйте, и у вас все получится!"
Я: *Захожу на форум*
:Иди читай учебник.
У нас так система образования и работает, кстати.
У меня возникло 2 вопроса, мне много чего объяснили, за то спасибо. Но это даже не звучало как помощь. А как будто я отстаю в развитии, и просто бесполезно что-то мне объяснять. Я хотел узнать про:
1.Почему триггер не работает. Что там с этой переменной.
2.Почему 1вое действие призывного юнита не работает.
3.Как пресечь утечку точек позиции.
А что тогда мало? 1 мало, 2 много?
Я пытался найти инфу, я соглашусь с тем, что не тратил на это кучу часов. Решил что мне тут могли бы помочь. Если бы кто-то сказал: "Давай я помогу тебе советом, а ты поможешь мне поделать триггеры"
Я бы только спасибо сказал этому человеку,
Тут порог вхождения и так высокий. И так на каждом углу говорят, что дело в том, что я пишу на GUI, пытаюсь выучить Jass мне говорят, что я плохо знаю GUI. Мне говорят что я должен читать учебники, а не задавать вопросы, а в этих учебниках пишут, главное задавать вопросы.
Делать за тебя - толку, чемту ты научишся? Это не мы плохие и жадные, просто вас уже очень много, нубья (уж простите меня), которые карты делают тям\ляп а потом лагает, багает, вылетает... Ты не захочешь - никто не захочет, базовая инфа есть, начинай по немногу, я вот изумляюсь вашему упорству сделать супер-пупер спел, зачем?
Делайте все по минимуму и самые простые вещи, разбирайтесь, переходите к более сложным.
Потому что да, ты отстаешь в развитии. Ибо в первом же примере, разъясняющем что такое вообще джасс, объясняется как использовать те же локалки. Все практически уже системы освещены в статьях с кодом и, иногда, даже приложенными картами с примером.
Но таким как ты лень вообще открывать какие-либо статьи, чего-то скачивать, смотреть, лучше же кинуть вопрос на форум, а потом еще десяток таких же примитивных, а потом удивляться, почему вместо ответа кидают ссылку на сборник статей. Ибо нет, ты не то что "не тратил много часов", ты вообще не тратил более пяти минут.
По этому коду вообще можно в Бинго играть. Вейты, удаление левых спецэффектов вместо нужных в дополнение к уже вышеперечисленному.