Как я понял при создании триггера
нужен такой код
	set gg_trg_Simple = CreateTrigger(  )
	call TriggerRegisterTimerEventPeriodic( gg_trg_Simple , 0.50 )
	call TriggerAddCondition( gg_trg_Simple , Condition( function Trig_Simple_Conditions ) )
	call TriggerAddAction( gg_trg_Simple , function Trig_Simple_Actions )
но можно и так попроще
   local trigger mjt = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( mjt, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( mjt, Condition( function Trig_Simple_Conditions ) )
    call TriggerAddAction( mjt, function Trig_Simple_Actions )
а можно еще проще изменяя названия функций
   local trigger mjt = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( mjt, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( mjt, Condition( function Simple_Conds) )
    call TriggerAddAction( mjt, function Simle_Acts)
Но почему то когда я меняю названия функций у меня не запускается карта.

Принятый ответ

Farrien, для начала бж красные
Farrien, и почитай статьи
а то твой код ужасен
и не цитируй весь комментарий если отвечаешь лишь на его часть
а то сложно понять на что именно ты отвечаешь
чтобы цитировать часть комментария выдели текст который надо цитировать и нажми кнопку цитировать
0
15
9 лет назад
0
Что пишет при сохранении? Название функции нужно менять везде, где она используется.
0
11
9 лет назад
Отредактирован Кет
0
Tobi123:
Что пишет при сохранении? Название функции нужно менять везде, где она используется.
название я меняю и у функций, естественно. при сохранении ничего не выдает, все прекрасно. А при запуске, то меню.
Вот весь триггер
// 'A04C' = Return Spears

function ReturnSpears_Check takes nothing returns boolean
    if ( GetSpellAbilityId() == 'A04C' ) then
        return true
    endif
    if ( IsUnitGroupEmptyBJ(udg_PickedUnits[9]) == false ) then
        return true
    endif
    return true
endfunction

function ReturnSpearsCast_DAA takes nothing returns nothing
    set udg_Real[0] = ( I2R(LoadIntegerBJ(GetHandleId(GetEnumUnit()), StringHashBJ("SpearCount"), udg_MyHashtable)) * 80.00 )
    set udg_Real[0] = ( udg_Real[0] * I2R(GetUnitAbilityLevelSwapped('A04C', udg_HeroAsso[22])) )
    local real ReturnSpears_Damage = ( I2R(LoadIntegerBJ(GetHandleId(GetEnumUnit()), StringHashBJ("SpearCount"), udg_MyHashtable)) * 80.00 )
    call UnitDamageTargetBJ( udg_HeroAsso[22], GetEnumUnit(), udg_Real[0], ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
    call SetUnitLifeBJ( udg_HeroAsso[22], ( GetUnitStateSwap(UNIT_STATE_LIFE, udg_HeroAsso[22]) + ( udg_Real[0] / 2.00 ) ) )
    set udg_Real[0] = ( udg_Real[0] * I2R(GetUnitAbilityLevelSwapped('A04C', udg_HeroAsso[22])) )
    call SaveIntegerBJ( 0, GetHandleId(GetEnumUnit()), StringHash("SpearTime"), udg_MyHashtable )
    call SaveIntegerBJ( 0, GetHandleId(GetEnumUnit()), StringHash("SpearCount"), udg_MyHashtable )
    set udg_PickedPlayers[0] = CreateForce()
    call ForceAddPlayerSimple( GetOwningPlayer(udg_HeroAsso[22]), udg_PickedPlayers[0] )
    call CreateTextTagUnitBJ( I2S(R2I(udg_Real[0])), GetEnumUnit(), 0, 14.00, 28.00, 96.00, 94.00, 0.00 )
    call SetTextTagLifespanBJ( GetLastCreatedTextTag(), 1.30 )
    call SetTextTagPermanentBJ( GetLastCreatedTextTag(), false )
    call SetTextTagFadepointBJ( GetLastCreatedTextTag(), 0.00 )
    call SetTextTagVelocityBJ( GetLastCreatedTextTag(), 64, 90 )
    call ShowTextTagForceBJ( false, GetLastCreatedTextTag(), udg_AllPlayers )
    call ShowTextTagForceBJ( true, GetLastCreatedTextTag(), udg_PickedPlayers[0] )
    call DestroyForce( udg_PickedPlayers[0] )
    call GroupRemoveUnitSimple( GetEnumUnit(), udg_PickedUnits[9] )
endfunction

function ReturnSpearsCast_Actions takes nothing returns nothing
    set udg_HeroAsso[22] = GetTriggerUnit()
    call ForGroupBJ( udg_PickedUnits[9], function ReturnSpearsCast_DAA )
endfunction

function InitTrig_KushumaR_Cast1 takes nothing returns nothing
    local trigger mlt=CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ( mlt, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( mlt, Condition( function ReturnSpears_Check ) )
    call TriggerAddAction( mlt, function ReturnSpearsCast_Actions )
endfunction
спасибо Кет. А то я не знал как форматирование сделать)
2
28
9 лет назад
Отредактирован nvc123
2
это событие всегда возвращает true
function ReturnSpears_Check takes nothing returns boolean
    if ( GetSpellAbilityId() == 'A04C' ) then
        return true
    endif
    if ( IsUnitGroupEmptyBJ(udg_PickedUnits[9]) == false ) then
        return true
    endif
    return true
endfunction
и событие можно писать вот так
function ReturnSpears_Check takes nothing returns boolean
   return GetSpellAbilityId() == 'A04C' or IsUnitGroupEmptyBJ(udg_PickedUnits[9])==false // событие вернёт true если GetSpellAbilityId() == 'A04C' или(or) IsUnitGroupEmptyBJ(udg_PickedUnits[9])==false
endfunction
я бы помог но в этом коде столько бж что кровь из глаз пошла
0
11
9 лет назад
0
nvc123:
это событие всегда возвращает true
function ReturnSpears_Check takes nothing returns boolean
    if ( GetSpellAbilityId() == 'A04C' ) then
        return true
    endif
    if ( IsUnitGroupEmptyBJ(udg_PickedUnits[9]) == false ) then
        return true
    endif
    return true
endfunction
и событие можно писать вот так
function ReturnSpears_Check takes nothing returns boolean
   return GetSpellAbilityId() == 'A04C' or IsUnitGroupEmptyBJ(udg_PickedUnits[9])==false // событие вернёт true если GetSpellAbilityId() == 'A04C' или(or) IsUnitGroupEmptyBJ(udg_PickedUnits[9])==false
endfunction
я бы помог но в этом коде столько бж что кровь из глаз пошла
а что плохого в BJ?
0
15
9 лет назад
0
Все плохое в бж
0
28
9 лет назад
0
Farrien, для начала бж красные
Farrien, и почитай статьи
а то твой код ужасен
и не цитируй весь комментарий если отвечаешь лишь на его часть
а то сложно понять на что именно ты отвечаешь
чтобы цитировать часть комментария выдели текст который надо цитировать и нажми кнопку цитировать
Принятый ответ
0
21
9 лет назад
Отредактирован Buulichkaa
0
для начала, надо проверять названия функций на совпадение там где вы юзаете ссылку на функцию function <SOMENAME> когда крепите например действия к триггеру, и самом названии используемой функции. Хз в чем ещё может быть ошибка
0
11
9 лет назад
0
Buulichkaa:
для начала, надо проверять названия функций на совпадение там где вы юзаете ссылку на функцию function <SOMENAME> когда крепите например действия к триггеру, и самом названии используемой функции. Хз в чем ещё может быть ошибка
я все правильно писал.
Я все понял. Понял в чем проблема. Оказывается JNGP очень глючный, а точнее vJass или cJass. Я отключил их по настройкам. Теперь карта компилируется нормально и без крашов.
0
21
9 лет назад
0
Farrien, мб там и есть какие-то скрытые баги, но если юзать с умом, то ничего не глючит и все очень удобно и опрятно
0
17
9 лет назад
Отредактирован xpadd91
0
Я отключил их по настройкам
Необязательно!
Попробовать-
просто пишите тег игнор код адик. Игнорировать cjass обработка код.
//! nocjass

...код...

//! endnocjass
например
//! nocjass

library NameTrigger initializer Init 

...код...


endlibrary    

//! endnocjass
если неполучает, nocjass переименовать novjass
Чтобы оставить комментарий, пожалуйста, войдите на сайт.