Ребят, я пишу для теста, свой первый 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
pro100master:
бери любого учебника и научи основа из основ
  • Что такое локальная переменная и глобальная переменная
  • Что такое цикл
  • Что такое функция и как работает аргументы
  • Что такое нативные функции (API с blizzard)
  • И так далее подумай головой и снова 1 пунт учи.

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

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

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

Для начала создай дамми юнита и прикажи ему кинуть некоторый спелл. Покажи код тут.
10
Вот та самая карта, которую я упоминал, возможно, кто-то ее еще помнит на этом форуме. Вот так, я писал раньше, там 2-3 триггеры, были сделаны "с помощью" 1 под копирку, вы его узнайте, вот так я работал с GUI. 3-4 года назад.
Загруженные файлы
6
Taurenus,
Потому что да, ты отстаешь в развитии. Ибо в первом же примере, разъясняющем что такое вообще джасс, объясняется как использовать те же локалки. Все практически уже системы освещены в статьях с кодом и, иногда, даже приложенными картами с примером.
Но таким как ты лень вообще открывать какие-либо статьи, чего-то скачивать, смотреть, лучше же кинуть вопрос на форум, а потом еще десяток таких же примитивных, а потом удивляться, почему вместо ответа кидают ссылку на сборник статей. Ибо нет, ты не то что "не тратил много часов", ты вообще не тратил более пяти минут.
По этому коду вообще можно в Бинго играть. Вейты, удаление левых спецэффектов вместо нужных в дополнение к уже вышеперечисленному.
29
Тут порог вхождения и так высокий. И так на каждом углу говорят, что дело в том, что я пишу на GUI, пытаюсь выучить Jass мне говорят, что я плохо знаю GUI. Мне говорят что я должен читать учебники, а не задавать вопросы, а в этих учебниках пишут, главное задавать вопросы.
Статьи были написаны почти десять лет назад, когда еще многие под столом ползали толком никто не знал триггеры и уж тем более жасс. На текущий момент есть уже тысячи наработок, сотни статей, но все равно задают вопросы те же, поэтому местные знатоки и возмущаются
11
Народ кто знает как решить данную проблему? Захожу в редактор Анимаций и выдает это
Загруженные файлы
замечание от ScorpioT1000: 10.1 (нескольких вопросов в одном ресурсе) задаём вопрос отдельно
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.