Ребят, я пишу для теста, свой первый 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).
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
11
ScorpioT1000, у меня также многие разделы форума не доступны. Гугл находит ссылку на форум, но пишет что для меня этот раздел не доступен.
38
wetalq, а если разлогиниться или с инкогнито?
11
ScorpioT1000, работает если через инкогнито зайти, спасибо за подсказку
32
ScorpioT1000:
wetalq, а если разлогиниться или с инкогнито?
Что за баг?
11
quq_CCCP, не все разделы старого форума доступны для пользователей которые вошли через свою учетную запись. Я например ищу вопрос в гугле, нахожу ссылку на форум и получаю сообщение что у меня нет прав доступа к этой странице. Копирую ссылку и захожу через режим инкогнито без авторизации на сайте - работает.
22
я в этом аккаунте раньше мог войди в старый форум в раздел где барахолки были рабочим. Но сейчас и ранее они все исзечли. А ведь там были много чего делали =)
38
xgm.guru/p/xgm/qa/no-answer короче если перечислите, что не видно авторизованным, но видно инкогнито - выдам опыта
10
Extremator:
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).
У меня просто, не до конца есть ясное представление как они, именно на Jass выглядят. А на туториалах, просто функции называют, и их значения, а начинать с чего-то надо. А как сделать, что бы не утекали точки, не имею понятия.
Так что там с тем, что первый не атакует?
И спасибо за то что объяснил.
22
бери любого учебника и научи основа из основ
  • Что такое локальная переменная и глобальная переменная
  • Что такое цикл
  • Что такое функция и как работает аргументы
  • Что такое нативные функции (API с blizzard)
  • И так далее подумай головой и снова 1 пунт учи.

Когда вы поняли основ переходим во 2 уровень
  • Что такое триггер
  • Что такое действия триггера
  • Что такое условие триггера
  • Дальше вы уже освоите навыка понимание суть кодирование.

Когда вы освоите достаточно то переходим во 3 уровень
  • Какие ограничение у варкрафта
  • Какием могут быть проблемы с потоком триггера
  • Как оптимизировать утечки (1 пункт 1 уровня)
  • Переписать функции который является утечные у бж функции

продолжение не будет... (Много чего вы хотите)
10
pro100master:
бери любого учебника и научи основа из основ
  • Что такое локальная переменная и глобальная переменная
  • Что такое цикл
  • Что такое функция и как работает аргументы
  • Что такое нативные функции (API с blizzard)
  • И так далее подумай головой и снова 1 пунт учи.

Когда вы поняли основ переходим во 2 уровень
  • Что такое триггер
  • Что такое действия триггера
  • Что такое условие триггера
  • Дальше вы уже освоите навыка понимание суть кодирование.

Когда вы освоите достаточно то переходим во 3 уровень
  • Какие ограничение у варкрафта
  • Какием могут быть проблемы с потоком триггера
  • Как оптимизировать утечки (1 пункт 1 уровня)
  • Переписать функции который является утечные у бж функции

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

Для начала создай дамми юнита и прикажи ему кинуть некоторый спелл. Покажи код тут.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.