Это первый урок. Советую вам прочитай 0 урок перед прочтение данной статьи.
В первом уроке я покажу построение функции в jass'е и объясню что такое переменные и с чем их едят)
чтобы увидеть строение функции в jass' достаточно перевести пустой тригерр в текст. Для этого я открыл JGNP и создал пустой тригерр newtg и перевел его в текст получилось вот так.
Код
function Trig_newtg_Actions takes nothing returns nothing
endfunction
//===========================================================================
function InitTrig_newtg takes nothing returns nothing
set gg_trg_newtg = CreateTrigger( )
call TriggerAddAction( gg_trg_newtg, function Trig_newtg_Actions )
endfunction
С начало у нас идут условия. В нашем тригерре не имеется условий, поэтому они отсутствуют.
Далее идут действия, которые будет выполнять функция.
Ну а в конце идут события.
1. Начнем все по порядку создадим условие.
Код
function Trig_newtg_Conditions takes nothing returns boolean
if ( not ( GetSpellAbilityId() == 'код способности которую используют' ) ) then
return false
endif
return true
endfunction
разберем этот код. Начнем с того что это Условие и если его перевести то будет понятно, что это обозначает : если боевая единица применяет способность то выполняем действие и указан путь к нему.
2.
Код
function Trig_newtg_Actions takes nothing returns nothing
local unit u
local effect e
local (Type) (имя переменной)
endfunction
Это код действия. С помощью этого кода мы создаем две локальные переменные u и e.
Локальная переменная отличается от глобальной тем что :
Во-первых она действует всего лишь в одной функции а глобальная во всех.
Во вторых тем что глобальная объявляется в самом начале и имеет префикс udg_(имя переменной)
Вот так выглядит объявление глобальной переменной: Код
Globals
integer e=0
(тип переменной) (название) = (чему равно)
endGlobals
Надеюсь вы разобрались в что такое переменные. поэтому идем дальше.
Код
//===========================================================================
это комментарий к функции или в данном случае он отделяет действия от условий. можно написать так
Код
//Здесь ваш текст, который можно написать всего лишь на одной строке. Этот текст чаще всего называют комментариями
3. Вот мы и пришли к событиям
Код
function InitTrig_newtg takes nothing returns nothing
set gg_trg_newtg = CreateTrigger( )
call TriggerAddAction( gg_trg_newtg, function Trig_newtg_Actions )
endfunction
наше событие пустое но если наполнить его то получится примерно так
Код
function InitTrig_newtg takes nothing returns nothing
set gg_trg_newtg = CreateTrigger( )
call TriggerRegisterUnitEvent( gg_trg_newtg, gg_unit_nchw_0001, EVENT_UNIT_HERO_SKILL )
call TriggerAddAction( gg_trg_newtg, function Trig_newtg_Actions )
endfunction
у нас добавилась 1 новая строчка это
Код
call TriggerRegisterUnitEvent( gg_trg_newtg, gg_unit_(ид юнита), EVENT_UNIT_HERO_SKILL )
Это событие обозначает то что юнит применяет способность.
Если есть ошибки или недочеты пишите подправлю.