• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

Globals broke my triggers

Status
Not open for further replies.
Level 8
Joined
Nov 9, 2008
Messages
502
Hi Hive.

I've been using the GUI to edit my global variables until recently when I began using globals/endglobals blocks.

I concatenated my globals into one init trigger which is run by another trigger at map start to ensure proper order of execution.

The problem is that since I've concatenated these globals into the one block, some of my triggers have become broken and do not run.

JASS:
function Trig_initTriggers_Actions takes nothing returns nothing
    local integer i
    set i = 0
    loop
        exitwhen i == 10
        call DisplayTextToPlayer(Player(i), 0, 0,"Setting variables...")
        set i = i+1
    endloop
    call TriggerExecute(gg_trg_initVars)
    call TriggerSleepAction(1)
    set i = 0
    loop
        exitwhen i == 10
        call DisplayTextToPlayer(Player(i), 0, 0,"Applying camera settings...")
        set i = i+1
    endloop
    call TriggerExecute(gg_trg_initCam)
    call TriggerSleepAction(1)
    set i = 0
    loop
        exitwhen i == 10
        call DisplayTextToPlayer(Player(i), 0, 0,"Creating quests...")
        set i = i+1
    endloop
    call TriggerExecute(gg_trg_createQuests)
    call TriggerSleepAction(1)
    set i = 0
    loop
        exitwhen i == 10
        call DisplayTextToPlayer(Player(i), 0, 0,"Checking team states...")
        set i = i+1
    endloop
    call TriggerExecute(gg_trg_vsCPUCheck)
    call TriggerSleepAction(1)
    set i = 0
    loop
        exitwhen i == 10
        call DisplayTextToPlayer(Player(i), 0, 0,"Creating dialog...")
        set i = i+1
    endloop
    call TriggerExecute(gg_trg_createDialog)
    call TriggerSleepAction(1)
    set i = 0
    loop
        exitwhen i == 10
        call DisplayTextToPlayer(Player(i), 0, 0,"Opening dialog...")
        set i = i+1
    endloop
    call TriggerExecute(gg_trg_diagShow)
endfunction

//===========================================================================
function InitTrig_initTriggers takes nothing returns nothing
    set gg_trg_initTriggers = CreateTrigger(  )
    call TriggerRegisterTimerEvent( gg_trg_initTriggers, 0.5, false)
    call TriggerAddAction( gg_trg_initTriggers, function Trig_initTriggers_Actions )
endfunction

JASS:
globals
    integer array playerKills
    unit array catasAll
    boolean array cataCam
    boolean array IsCannonFiring
    boolean array shotCallback
    integer array playerRow
    string array playerColours
    integer array playerAimAccuracy
    integer array playerAimSpeed
    button buttonAss
    button buttonCTF
    button buttonDom
    dialog dialogMode
    quest questMode
    multiboard mboard
endglobals

function Trig_initVars_Actions takes nothing returns nothing
    local integer i
    set i = 0
    loop
        exitwhen i == 10
        set cataCam[i] = false
        set playerKills[i] = 0
        set playerRow[i] = 0
        set playerAimAccuracy[i] = 1
        set playerAimSpeed[i] = 1
        set shotCallback[i] = false
        set IsCannonFiring[i] = false
        set i = i+1
    endloop
    set playerKills[10] = 0
    set playerKills[11] = 0
    set playerRow[10] = 0
    set playerRow[11] = 0
    set playerColours[0] = "|CFFFF0303"
    set playerColours[1] = "|CFF0042FF"
    set playerColours[2] = "|CFF1BE6D8"
    set playerColours[3] = "|CFF540081"
    set playerColours[4] = "|CFFFFFF01"
    set playerColours[5] = "|CFFFE8A0E"
    set playerColours[6] = "|CFF20C000"
    set playerColours[7] = "|CFFE55BB0"
    set playerColours[8] = "|CFF959697"
    set playerColours[9] = "|CFF7EBFF1"
    set playerColours[10] = "|CFF106246"
    set playerColours[11] = "|CFF4E2A04"
    set catasAll[0] = gg_unit_n002_0036
    set catasAll[1] = gg_unit_n002_0037
    set catasAll[2] = gg_unit_n002_0039
    set catasAll[3] = gg_unit_n002_0038
    set catasAll[4] = gg_unit_n002_0040
    set catasAll[5] = gg_unit_n002_0043
    set catasAll[6] = gg_unit_n002_0044
    set catasAll[7] = gg_unit_n002_0042
    set catasAll[8] = gg_unit_n002_0045
    set catasAll[9] = gg_unit_n002_0041
endfunction

//===========================================================================
function InitTrig_initVars takes nothing returns nothing
    set gg_trg_initVars = CreateTrigger(  )
    call TriggerAddAction( gg_trg_initVars, function Trig_initVars_Actions )
endfunction

For example, this trigger is supposed to run but doesn't...

JASS:
function Trig_IsVsCPU_Actions takes nothing returns nothing
    local boolean hasPlayer = false
    local integer i = 5
    loop
        if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
            set hasPlayer = true
        endif
    set i = i+1
    exitwhen i == 10
    endloop
    set i = 0
    if hasPlayer == false then
        loop
            exitwhen i == 10
            call DisplayTextToPlayer(Player(i), 0, 0, "No players have been detected on team 2.")
            call DisplayTextToPlayer(Player(i), 0, 0, "Initiating Player Vs CPU game.")
        set i = i+1
        endloop
    else
        loop
            exitwhen i == 10
            call DisplayTextToPlayer(Player(i), 0, 0, "Initiating Player Vs Player game.")
        set i = i+1
        endloop
    endif
endfunction

//===========================================================================
function InitTrig_vsCPUCheck takes nothing returns nothing
    set gg_trg_vsCPUCheck = CreateTrigger(  )
    call TriggerAddAction( gg_trg_vsCPUCheck, function Trig_IsVsCPU_Actions )
endfunction

Also the links to the preplaced unit globals (gg_unit_n002_0036 e.t.c.) are no longer working therefore the initCam trigger doesn't function properly.

JASS:
function Trig_initCam_Actions takes nothing returns nothing
    call SetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK, 300, 1)
    call SetCameraField(CAMERA_FIELD_TARGET_DISTANCE, 3000, 1)
    call SetCameraPosition(GetUnitX(catasAll[GetPlayerId(GetLocalPlayer())]), GetUnitY(catasAll[GetPlayerId(GetLocalPlayer())]))
endfunction

//===========================================================================
function InitTrig_initCam takes nothing returns nothing
    set gg_trg_initCam = CreateTrigger(  )
    call TriggerAddAction( gg_trg_initCam, function Trig_initCam_Actions )
endfunction

...which is strange because the playerColours string array has initiated fine and works perfectly.

Please note: all the triggers have been tested previously and work in and of themselves. It's just when I concatenated the globals that I had some problems occuring.

Is there some rule for global declarations that I don't know of?
 
Level 8
Joined
Nov 9, 2008
Messages
502
This is a strange one...

Even though this trigger is completely independant, it is still broken like the others.

JASS:
function Trig_fieldcam_Actions takes nothing returns nothing
    if GetLocalPlayer() == GetTriggerPlayer() then
        call SetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK, 300, 1)
        call SetCameraField(CAMERA_FIELD_TARGET_DISTANCE, 3000, 1)
    endif
endfunction

//===========================================================================
function InitTrig_fieldcam takes nothing returns nothing
    local integer i = 0
    set gg_trg_fieldcam = CreateTrigger(  )
    loop
        exitwhen i == 10
        call TriggerRegisterPlayerChatEvent(gg_trg_fieldcam, Player(i), "-fieldcam", true)
        set i = i+1
    endloop
    call TriggerAddAction( gg_trg_fieldcam, function Trig_fieldcam_Actions )
endfunction

How is that I've done so much damage by just moving globals around and how is it possible to break an independant trigger like this from doing so?
 
Status
Not open for further replies.
Top