• 🏆 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!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

cheats.j -- patch 1.31.1

JASS:
//===========================================================================
// Cheats.j
//===========================================================================


globals
    // Debug-cheat globals
    constant real     bj_DEBUG_CAMFIELD_SPEED     = 0
    constant string   bj_DEBUG_CHAT_GIMME         = "gimme"
    constant string   bj_DEBUG_CHAT_DEMO          = "demo"
    constant string   bj_DEBUG_CHAT_TELEPORT      = "teleport"
    constant string   bj_DEBUG_CHAT_TELEPORT2     = "ttt"
    constant string   bj_DEBUG_CHAT_UNITINFO      = "unitinfo"
    constant string   bj_DEBUG_CHAT_UNITINFO2     = "ui"
    constant string   bj_DEBUG_CHAT_CAMINFO       = "caminfo"
    constant string   bj_DEBUG_CHAT_CAMINFO2      = "ci"
    constant string   bj_DEBUG_CHAT_CAMDIST       = "camdist"
    constant string   bj_DEBUG_CHAT_CAMFARZ       = "camfarz"
    constant string   bj_DEBUG_CHAT_CAMAOA        = "camaoa"
    constant string   bj_DEBUG_CHAT_CAMFOV        = "camfov"
    constant string   bj_DEBUG_CHAT_CAMROLL       = "camroll"
    constant string   bj_DEBUG_CHAT_CAMROT        = "camrot"
    constant string   bj_DEBUG_CHAT_CAMRESET      = "camreset"
    constant string   bj_DEBUG_CHAT_CLONE         = "clone"
    constant string   bj_DEBUG_CHAT_DISPEL        = "dispel"
    constant string   bj_DEBUG_CHAT_GOTOX         = "gotox"
    constant string   bj_DEBUG_CHAT_GOTOY         = "gotoy"
    constant string   bj_DEBUG_CHAT_GOTOXY        = "gotoxy"
    constant string   bj_DEBUG_CHAT_GOTOUNIT      = "gotounit"
    constant string   bj_DEBUG_CHAT_BLACKMASK     = "blackmask"
    constant string   bj_DEBUG_CHAT_BLACKMASK2    = "bm"
    constant string   bj_DEBUG_CHAT_DIFFICULTY    = "difficulty"
    constant string   bj_DEBUG_CHAT_FINGEROFDEATH = "fingerofdeath"

    trigger           bj_debugGimmeTrig
    trigger           bj_debugDemoTrig
    trigger           bj_debugTeleportTrig
    trigger           bj_debugUnitInfoTrig
    trigger           bj_debugCamInfoTrig
    trigger           bj_debugCamDistTrig
    trigger           bj_debugCamFarzTrig
    trigger           bj_debugCamAoaTrig
    trigger           bj_debugCamFovTrig
    trigger           bj_debugCamRollTrig
    trigger           bj_debugCamRotTrig
    trigger           bj_debugCamResetTrig
    trigger           bj_debugCloneTrig
    trigger           bj_debugDispelTrig
    trigger           bj_debugGotoXTrig
    trigger           bj_debugGotoYTrig
    trigger           bj_debugGotoXYTrig
    trigger           bj_debugGotoUnitTrig
    trigger           bj_debug_BlackMaskTrig
    trigger           bj_debugDifficultyTrig
    trigger  array    bj_debugFingerOfDeathTrig
    trigger  array    bj_debugToolOfDeathTrig
    boolean  array    bj_debugFingerOfDeathEnabled
    real              bj_debugGotoUnitX = 0
    real              bj_debugGotoUnitY = 0
    integer           bj_debugGotoUnits = 0
endglobals



//***************************************************************************
//*
//*  Debug cheats
//*
//***************************************************************************

//===========================================================================
function DebugGimmeEnum takes nothing returns nothing
    local player thePlayer = GetEnumPlayer()
    call DisplayTextToPlayer(thePlayer, 0, 0, "Player "+I2S(GetPlayerId(GetTriggerPlayer())+1)+" cheated: Give 5000 gold and 5000 lumber to all players")
    call SetPlayerState(thePlayer, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState(thePlayer, PLAYER_STATE_RESOURCE_GOLD) + 5000)
    call SetPlayerState(thePlayer, PLAYER_STATE_RESOURCE_LUMBER, GetPlayerState(thePlayer, PLAYER_STATE_RESOURCE_LUMBER) + 5000)
endfunction

//===========================================================================
function DebugGimme takes nothing returns nothing
    call ForForce(bj_FORCE_ALL_PLAYERS, function DebugGimmeEnum)
endfunction

//===========================================================================
function DebugDemoEnum takes nothing returns nothing
    local player thePlayer = GetEnumPlayer()
    call SetPlayerState(thePlayer, PLAYER_STATE_RESOURCE_GOLD, 0)
    call SetPlayerState(thePlayer, PLAYER_STATE_RESOURCE_LUMBER, 0)
endfunction

//===========================================================================
function DebugDemo takes nothing returns nothing
    local player thePlayer = GetTriggerPlayer()
    local integer gold = GetRandomInt(750, 1500)
    local integer lumber = GetRandomInt(200, 450)

    call ForForce(bj_FORCE_ALL_PLAYERS, function DebugDemoEnum)
    call MultiboardSuppressDisplay(true)
    if (GetLocalPlayer() == GetTriggerPlayer()) then
        call Cheat("warnings")
        call Cheat("fastbuild")
        call Cheat("techtree")
        call Cheat("research")
        call Cheat("food")
        call Cheat("mana")
        call Cheat("dawn")
        call Cheat("gold " + I2S(gold))
        call Cheat("lumber " + I2S(lumber))
    endif
endfunction

//===========================================================================
function DebugTeleportEnum takes nothing returns nothing
    local unit u = GetEnumUnit()
    call SetUnitPosition(u, GetCameraTargetPositionX(), GetCameraTargetPositionY())
endfunction

//===========================================================================
function DebugTeleport takes nothing returns nothing
    local group g = CreateGroup()
    call SyncSelections()
    call GroupEnumUnitsSelected(g, GetTriggerPlayer(), null)
    call ForGroup(g, function DebugTeleportEnum)
endfunction

//===========================================================================
function TertiaryStringOp takes boolean expr, string a, string b returns string
    if (expr) then
        return a
    else
        return b
    endif
endfunction

//===========================================================================
// Convert a integer id value into a 4-letter id code.
//
function DebugIdInteger2IdString takes integer value returns string
    local string charMap = ".................................!.#$%&'()*+,-./0123456789:;<=>.@ABCDEFGHIJKLMNOPQRSTUVWXYZ[.]^_`abcdefghijklmnopqrstuvwxyz{|}~................................................................................................................................."
    local string result = ""
    local integer remainingValue = value
    local integer charValue
    local integer byteno

    set byteno = 0
    loop
        set charValue = ModuloInteger(remainingValue, 256)
        set remainingValue = remainingValue / 256
        set result = SubString(charMap, charValue, charValue + 1) + result

        set byteno = byteno + 1
        exitwhen byteno == 4
    endloop
    return result
endfunction

//===========================================================================
function DebugUnitInfoEnum takes nothing returns nothing
    local player thePlayer = GetTriggerPlayer()
    local unit   theUnit   = GetEnumUnit()
    local string message

    set message = "Player " + I2S(GetPlayerId(GetOwningPlayer(theUnit))+1)
    set message = message + " '" + DebugIdInteger2IdString(GetUnitTypeId(theUnit)) + "'"
    set message = message + " " + GetUnitName(theUnit)
    set message = message + " (" + R2SW(GetUnitX(theUnit), 0, 0) + ", " + R2SW(GetUnitY(theUnit), 0, 0)
    set message = message + ": " + R2SW(GetUnitFacing(theUnit), 0, 0) + ") "
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_HERO),            " Hero",      "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_DEAD),            " Dead",      "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_STRUCTURE),       " Structure", "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_GROUND),          " Grnd",      "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_FLYING),          " Air",       "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_ATTACKS_GROUND),  " VsGrnd",    "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_ATTACKS_FLYING),  " VsAir",     "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_MELEE_ATTACKER),  " Melee",     "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_RANGED_ATTACKER), " Ranged",    "")
    set message = message + TertiaryStringOp(IsUnitType(theUnit, UNIT_TYPE_SUMMONED),        " Summoned",  "")

    call DisplayTextToPlayer(thePlayer, 0, 0, message)
endfunction

//===========================================================================
function DebugUnitInfo takes nothing returns nothing
    local group g = CreateGroup()
    call SyncSelections()
    call GroupEnumUnitsSelected(g, GetTriggerPlayer(), null)
    call ForGroup(g, function DebugUnitInfoEnum)
endfunction

//===========================================================================
function DebugCamInfo takes nothing returns nothing
    local player thePlayer = GetTriggerPlayer()
    local string message

    set message = "Targ(" + R2SW(GetCameraTargetPositionX(), 0, 0)
    set message = message + "," + R2SW(GetCameraTargetPositionY(), 0, 0)
    set message = message + "," + R2SW(GetCameraTargetPositionZ(), 0, 0)
    set message = message + ")"
    set message = message + ", Dist=" + R2SW(GetCameraField(CAMERA_FIELD_TARGET_DISTANCE), 0, 0)
    set message = message + ", FarZ=" + R2SW(GetCameraField(CAMERA_FIELD_FARZ), 0, 0)
    set message = message + ", AoA=" + R2SW(GetCameraField(CAMERA_FIELD_ANGLE_OF_ATTACK) * bj_RADTODEG, 0, 2)
    set message = message + ", FoV=" + R2SW(GetCameraField(CAMERA_FIELD_FIELD_OF_VIEW) * bj_RADTODEG, 0, 2)
    set message = message + ", Roll=" + R2SW(GetCameraField(CAMERA_FIELD_ROLL) * bj_RADTODEG, 0, 2)
    set message = message + ", Rot=" + R2SW(GetCameraField(CAMERA_FIELD_ROTATION) * bj_RADTODEG, 0, 2)
    set message = message + ", LocalPitch=" + R2SW(GetCameraField(CAMERA_FIELD_LOCAL_PITCH) * bj_RADTODEG, 0, 2)
    set message = message + ", LocalYaw=" + R2SW(GetCameraField(CAMERA_FIELD_LOCAL_YAW) * bj_RADTODEG, 0, 2)
    set message = message + ", LocalRoll=" + R2SW(GetCameraField(CAMERA_FIELD_LOCAL_ROLL) * bj_RADTODEG, 0, 2)

    call DisplayTextToPlayer(thePlayer, 0, 0, message)
endfunction

//===========================================================================
function DebugCamField takes camerafield whichField, integer cheatLength, real defaultValue returns nothing
    local string param        = SubString(GetEventPlayerChatString(), cheatLength, 50)
    local real   value        = S2R(param)

    // Remove any excess preceding whitespace
    loop
        exitwhen not (SubString(param, 0, 1) == " ")
        set param = SubString(param, 1, 50)
    endloop

    if param == "" then
        set value = defaultValue
    endif
    if (whichField == CAMERA_FIELD_FARZ) and (value <= bj_CAMERA_MIN_FARZ) then
        return
    endif
    call SetCameraFieldForPlayer(GetTriggerPlayer(), whichField, value, bj_DEBUG_CAMFIELD_SPEED)
endfunction

//===========================================================================
function DebugCamDist takes nothing returns nothing
    call DebugCamField(CAMERA_FIELD_TARGET_DISTANCE, 7, 1600)
endfunction

//===========================================================================
function DebugCamFarZ takes nothing returns nothing
    call DebugCamField(CAMERA_FIELD_FARZ, 7, 4000)
endfunction

//===========================================================================
function DebugCamFOV takes nothing returns nothing
    call DebugCamField(CAMERA_FIELD_FIELD_OF_VIEW, 6, 65)
endfunction

//===========================================================================
function DebugCamAOA takes nothing returns nothing
    call DebugCamField(CAMERA_FIELD_ANGLE_OF_ATTACK, 6, 310)
endfunction

//===========================================================================
function DebugCamRoll takes nothing returns nothing
    call DebugCamField(CAMERA_FIELD_ROLL, 7, 0)
endfunction

//===========================================================================
function DebugCamRot takes nothing returns nothing
    call DebugCamField(CAMERA_FIELD_ROTATION, 6, 90)
endfunction

//===========================================================================
function DebugCamReset takes nothing returns nothing
    call ResetToGameCamera(0)
    call EnableUserControl(true)
endfunction

//===========================================================================
function DebugCloneUnitEnum takes nothing returns nothing
    local unit u = GetEnumUnit()
    call CreateUnit(GetOwningPlayer(u), GetUnitTypeId(u), GetUnitX(u), GetUnitY(u), GetUnitFacing(u))
endfunction

//===========================================================================
function DebugCloneUnit takes nothing returns nothing
    local group g = CreateGroup()
    call SyncSelections()
    call GroupEnumUnitsSelected(g, GetTriggerPlayer(), null)
    call ForGroup(g, function DebugCloneUnitEnum)
endfunction

//===========================================================================
function DebugDispelUnitEnum takes nothing returns nothing
    call UnitRemoveBuffs(GetEnumUnit(), true, true)
endfunction

//===========================================================================
function DebugDispelUnit takes nothing returns nothing
    local group g = CreateGroup()
    call SyncSelections()
    call GroupEnumUnitsSelected(g, GetTriggerPlayer(), null)
    call ForGroup(g, function DebugDispelUnitEnum)
endfunction

//===========================================================================
function DebugGotoX takes nothing returns nothing
    local string chatString = GetEventPlayerChatString()

    if (bj_DEBUG_CHAT_GOTOX + " " == SubString(chatString, 0, 6)) then
        call SetCameraPositionForPlayer(GetTriggerPlayer(), S2R(SubString(chatString, 6, 50)), GetCameraTargetPositionY())
    endif
endfunction

//===========================================================================
function DebugGotoY takes nothing returns nothing
    local string chatString = GetEventPlayerChatString()

    if (bj_DEBUG_CHAT_GOTOY + " " == SubString(chatString, 0, 6)) then
        call SetCameraPositionForPlayer(GetTriggerPlayer(), GetCameraTargetPositionX(), S2R(SubString(chatString, 6, 50)))
    endif
endfunction

//===========================================================================
function DebugGotoXY takes nothing returns nothing
    local string chatString = GetEventPlayerChatString()
    local integer index
    local boolean inParam1

    if (bj_DEBUG_CHAT_GOTOXY + " " == SubString(chatString, 0, 7)) then
        set inParam1 = false
        set index = 7
        loop
            if (SubString(chatString, index, index + 1) != " ") then
                set inParam1 = true
            endif

            exitwhen (inParam1 and SubString(chatString, index, index + 1) == " ")
            exitwhen index > 50
            set index = index + 1
        endloop

        if (index > 50) then
            call DisplayTextToPlayer(GetTriggerPlayer(), 0, 0, "Usage:  GotoXY x y")
        else
            if (GetLocalPlayer() == GetTriggerPlayer()) then
                call SetCameraPositionForPlayer(GetTriggerPlayer(), S2R(SubString(chatString, 7, index)), S2R(SubString(chatString, index, 50)))
            endif
        endif
    endif
endfunction

//===========================================================================
function DebugGotoUnitEnum takes nothing returns nothing
    local unit u = GetEnumUnit()

    set bj_debugGotoUnitX = bj_debugGotoUnitX + GetUnitX(u)
    set bj_debugGotoUnitY = bj_debugGotoUnitY + GetUnitY(u)
    set bj_debugGotoUnits = bj_debugGotoUnits + 1
endfunction

//===========================================================================
function DebugGotoUnit takes nothing returns nothing
    local group g = CreateGroup()

    set bj_debugGotoUnitX = 0
    set bj_debugGotoUnitY = 0
    set bj_debugGotoUnits = 0

    call SyncSelections()
    call GroupEnumUnitsSelected(g, GetTriggerPlayer(), null)
    call ForGroup(g, function DebugGotoUnitEnum)

    if (bj_debugGotoUnits != 0) then
        set bj_debugGotoUnitX = bj_debugGotoUnitX / bj_debugGotoUnits
        set bj_debugGotoUnitY = bj_debugGotoUnitY / bj_debugGotoUnits
        call SetCameraPositionForPlayer(GetTriggerPlayer(), bj_debugGotoUnitX, bj_debugGotoUnitY)
    endif
endfunction

//===========================================================================
function DebugBlackMask takes nothing returns nothing
    call SetFogStateRect(GetTriggerPlayer(), FOG_OF_WAR_MASKED, GetWorldBounds(), true)
endfunction

//===========================================================================
function DebugDifficulty takes nothing returns nothing
    local player         thePlayer = GetTriggerPlayer()
    local gamedifficulty theDiff   = GetGameDifficulty()

    if (theDiff == MAP_DIFFICULTY_EASY) then
        call DisplayTextToPlayer(thePlayer, 0, 0, "Easy Difficulty")
    elseif (theDiff == MAP_DIFFICULTY_NORMAL) then
        call DisplayTextToPlayer(thePlayer, 0, 0, "Normal Difficulty")
    elseif (theDiff == MAP_DIFFICULTY_HARD) then
        call DisplayTextToPlayer(thePlayer, 0, 0, "Hard Difficulty")
    else
        call DisplayTextToPlayer(thePlayer, 0, 0, "ERROR!  Unrecognized Difficulty")
    endif
endfunction

//===========================================================================
function DebugToolOfDeath takes nothing returns nothing
    call KillUnit(GetTriggerUnit())
endfunction

//===========================================================================
function DebugToggleFingerOfDeath takes nothing returns nothing
    local integer index = GetPlayerId(GetTriggerPlayer())
    if (bj_debugFingerOfDeathEnabled[index]) then
        call DisplayTextToPlayer(Player(index), 0, 0, "Finger Of Death Disabled")
        call DisableTrigger(bj_debugToolOfDeathTrig[index])
    else
        call DisplayTextToPlayer(Player(index), 0, 0, "Finger Of Death Enabled")
        call EnableTrigger(bj_debugToolOfDeathTrig[index])
    endif
    set bj_debugFingerOfDeathEnabled[index] = not bj_debugFingerOfDeathEnabled[index]
endfunction

//===========================================================================
function InitDebugTriggers takes nothing returns boolean
    local player  indexPlayer
    local integer index

    set index = 0
    loop
        set indexPlayer = Player(index)
        if (GetPlayerSlotState(indexPlayer) == PLAYER_SLOT_STATE_PLAYING) then
            set bj_debugGimmeTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugGimmeTrig, indexPlayer, bj_DEBUG_CHAT_GIMME, true)
            call TriggerAddAction(bj_debugGimmeTrig, function DebugGimme)

            set bj_debugDemoTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugDemoTrig, indexPlayer, bj_DEBUG_CHAT_DEMO, true)
            call TriggerAddAction(bj_debugDemoTrig, function DebugDemo)

            set bj_debugTeleportTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugTeleportTrig, indexPlayer, bj_DEBUG_CHAT_TELEPORT, true)
            call TriggerRegisterPlayerChatEvent(bj_debugTeleportTrig, indexPlayer, bj_DEBUG_CHAT_TELEPORT2, true)
            call TriggerAddAction(bj_debugTeleportTrig, function DebugTeleport)

            set bj_debugUnitInfoTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugUnitInfoTrig, indexPlayer, bj_DEBUG_CHAT_UNITINFO, true)
            call TriggerRegisterPlayerChatEvent(bj_debugUnitInfoTrig, indexPlayer, bj_DEBUG_CHAT_UNITINFO2, true)
            call TriggerAddAction(bj_debugUnitInfoTrig, function DebugUnitInfo)

            set bj_debugCamInfoTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCamInfoTrig, indexPlayer, bj_DEBUG_CHAT_CAMINFO, true)
            call TriggerRegisterPlayerChatEvent(bj_debugCamInfoTrig, indexPlayer, bj_DEBUG_CHAT_CAMINFO2, true)
            call TriggerAddAction(bj_debugCamInfoTrig, function DebugCamInfo)

            set bj_debugCamDistTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCamDistTrig, indexPlayer, bj_DEBUG_CHAT_CAMDIST, false)
            call TriggerAddAction(bj_debugCamDistTrig, function DebugCamDist)

            set bj_debugCamFarzTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCamFarzTrig, indexPlayer, bj_DEBUG_CHAT_CAMFARZ, false)
            call TriggerAddAction(bj_debugCamFarzTrig, function DebugCamFarZ)

            set bj_debugCamFovTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCamFovTrig, indexPlayer, bj_DEBUG_CHAT_CAMFOV, false)
            call TriggerAddAction(bj_debugCamFovTrig, function DebugCamFOV)

            set bj_debugCamAoaTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCamAoaTrig, indexPlayer, bj_DEBUG_CHAT_CAMAOA, false)
            call TriggerAddAction(bj_debugCamAoaTrig, function DebugCamAOA)

            set bj_debugCamRollTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCamRollTrig, indexPlayer, bj_DEBUG_CHAT_CAMROLL, false)
            call TriggerAddAction(bj_debugCamRollTrig, function DebugCamRoll)

            set bj_debugCamRotTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCamRotTrig, indexPlayer, bj_DEBUG_CHAT_CAMROT, false)
            call TriggerAddAction(bj_debugCamRotTrig, function DebugCamRot)

            set bj_debugCamResetTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCamResetTrig, indexPlayer, bj_DEBUG_CHAT_CAMRESET, true)
            call TriggerAddAction(bj_debugCamResetTrig, function DebugCamReset)

            set bj_debugCloneTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugCloneTrig, indexPlayer, bj_DEBUG_CHAT_CLONE, true)
            call TriggerAddAction(bj_debugCloneTrig, function DebugCloneUnit)

            set bj_debugDispelTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugDispelTrig, indexPlayer, bj_DEBUG_CHAT_DISPEL, true)
            call TriggerAddAction(bj_debugDispelTrig, function DebugDispelUnit)

            set bj_debugGotoXTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugGotoXTrig, indexPlayer, bj_DEBUG_CHAT_GOTOX, false)
            call TriggerAddAction(bj_debugGotoXTrig, function DebugGotoX)

            set bj_debugGotoYTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugGotoYTrig, indexPlayer, bj_DEBUG_CHAT_GOTOY, false)
            call TriggerAddAction(bj_debugGotoYTrig, function DebugGotoY)

            set bj_debugGotoXYTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugGotoXYTrig, indexPlayer, bj_DEBUG_CHAT_GOTOXY, false)
            call TriggerAddAction(bj_debugGotoXYTrig, function DebugGotoXY)

            set bj_debugGotoUnitTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugGotoUnitTrig, indexPlayer, bj_DEBUG_CHAT_GOTOUNIT, true)
            call TriggerAddAction(bj_debugGotoUnitTrig, function DebugGotoUnit)

            set bj_debug_BlackMaskTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debug_BlackMaskTrig, indexPlayer, bj_DEBUG_CHAT_BLACKMASK, true)
            call TriggerRegisterPlayerChatEvent(bj_debug_BlackMaskTrig, indexPlayer, bj_DEBUG_CHAT_BLACKMASK2, true)
            call TriggerAddAction(bj_debug_BlackMaskTrig, function DebugBlackMask)

            set bj_debugDifficultyTrig = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugDifficultyTrig, indexPlayer, bj_DEBUG_CHAT_DIFFICULTY, true)
            call TriggerAddAction(bj_debugDifficultyTrig, function DebugDifficulty)

            set bj_debugFingerOfDeathEnabled[index] = false

            set bj_debugToolOfDeathTrig[index] = CreateTrigger()
            call TriggerRegisterPlayerUnitEvent(bj_debugToolOfDeathTrig[index], indexPlayer, EVENT_PLAYER_UNIT_SELECTED, null)
            call TriggerAddAction(bj_debugToolOfDeathTrig[index], function DebugToolOfDeath)
            call DisableTrigger(bj_debugToolOfDeathTrig[index])

            set bj_debugFingerOfDeathTrig[index] = CreateTrigger()
            call TriggerRegisterPlayerChatEvent(bj_debugFingerOfDeathTrig[index], indexPlayer, bj_DEBUG_CHAT_FINGEROFDEATH, true)
            call TriggerAddAction(bj_debugFingerOfDeathTrig[index], function DebugToggleFingerOfDeath)
        endif

        set index = index + 1
        exitwhen index == bj_MAX_PLAYERS
    endloop

    return true
endfunction
Last edited:
Top