[vJass] Trigger can't be initialized?

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
JASS:
scope HeroSpecAbil

globals
//====================================
    public integer array ABILITY
//====================================
    private integer GoldenKnight = 'H002'
endglobals

struct HSA
    public static method Init takes nothing returns nothing
    
        set ABILITY[GoldenKnight] = 'A000'
    
    endmethod
endstruct

private function Trig_HeroSpecAbil_Actions takes nothing returns nothing
    call IncUnitAbilityLevel(GetTriggerUnit(),ABILITY[GetUnitTypeId(GetTriggerUnit())])
endfunction

//===========================================================================
function InitTrig_HeroSpecAbil takes nothing returns nothing
    set gg_trg_HeroSpecAbil = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ(gg_trg_HeroSpecAbil,EVENT_PLAYER_HERO_LEVEL)
    call TriggerAddAction( gg_trg_HeroSpecAbil, function Trig_HeroSpecAbil_Actions )
    call HSA.Init()
    call BJDebugMsg("Test1") //Not shown
endfunction

endscope

Why?
 

Artificial

Without Intelligence
Reaction score
326
I tested it and the Test1 was shown. Are you sure your trigger is named 'HeroSpecAbil'? :p
 

Waaaaagh

I lost all my rep and my title being a jerk
Reaction score
70
JASS:
scope HeroSpecAbil initializer InitTrig

globals
//====================================
    public integer array ABILITY
//====================================
    private integer GoldenKnight = 'H002'
endglobals

struct HSA
    public static method Init takes nothing returns nothing
    
        set ABILITY[GoldenKnight] = 'A000'
    
    endmethod
endstruct

private function Trig_HeroSpecAbil_Actions takes nothing returns nothing
    call IncUnitAbilityLevel(GetTriggerUnit(),ABILITY[GetUnitTypeId(GetTriggerUnit())])
endfunction

//===========================================================================
private function InitTrig takes nothing returns nothing
    set gg_trg_HeroSpecAbil = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ(gg_trg_HeroSpecAbil,EVENT_PLAYER_HERO_LEVEL)
    call TriggerAddAction( gg_trg_HeroSpecAbil, function Trig_HeroSpecAbil_Actions )
    call HSA.Init()
    call BJDebugMsg("Test1") //Not shown
endfunction

endscope


It's so very much more portable than InitTrig_X...
 

Tukki

is Skeleton Pirate.
Reaction score
29
Do as Waaaaagh posted or add a 'public' prefix befor the function InitTrig . .
and remove _<yourtrigger>.
 

Gwypaas

hook DoNothing MakeGUIUsersCrash
Reaction score
50
Tukki
Doing your way would still require the trigger to be named right.
 

~GaLs~

† Ғσſ ŧħə ѕαĸε Φƒ ~Ğ䣚~ †
Reaction score
180
>>I tested it and the Test1 was shown. Are you sure your trigger is named 'HeroSpecAbil'?
Well, yea.
OmG... What's wrong with my editor...
Nothing is working in this trigger even the Test1 is not shown...

>>It's so very much more portable than InitTrig_X...
Tried, fail to get it work.

>>Do as Waaaaagh posted or add a 'public' prefix befor the function InitTrig . .
and remove _<yourtrigger>.

Fail.

>>Doing your way would still require the trigger to be named right.
No replying to the topic, but it is true. So I would just prefer using the original function name rather than using initializer.


*I even tried using the public static method onInit takes nothing returns nothing
Not working also, it is not running on the starting of the map.

Edit - Sorry :p
It was my fault to use GetUnitTypeId in a variable array.
TypeId is a 6 (or 8?) digit number and array only holds 8191. :p
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      • Ghan
        Administrator - Servers are fun

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top