HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Need help with hero trigger

01-07-2005, 06:04 PM#1
The_AwaKening
I'm trying to make a chat message trigger ( -up or -down x) to move hero position on the function keys for a multiple hero map. The existing trigger is in jass, which I have a hard time with, and is somehow bugged and not working anymore. Any ideas on how to make a new gui trigger for that? Here is the jass trigger that is not working anymore (was in last patch 1.16).

function Trig_Order_Up_Actions takes nothing returns nothing
local integer i = 1
local player heroOwner = GetTriggerPlayer()
local integer playerIndex = GetConvertedPlayerId(heroOwner)
local integer heroIndex = 0
local integer heroIndexIndex = 0
local integer tempIndex = 0
local integer k = 1
if ( SubStringBJ(GetEventPlayerChatString(), 1, 4) == "-up " ) then
loop
exitwhen i > udg_heroTotalHeros
if( GetOwningPlayer(udg_heroList[udg_heroOrder[i]]) == heroOwner ) then
if ( k == S2I(SubStringBJ(GetEventPlayerChatString(), 5, 6)) ) then
set heroIndexIndex = i
set i = udg_heroTotalHeros + 1
else
set k = k + 1
endif
endif
set i = i + 1
endloop
if ( heroIndexIndex == 0 ) then
return
endif
set i = heroIndexIndex - 1
loop
exitwhen i < 1
if ( heroOwner == GetOwningPlayer(udg_heroList[udg_heroOrder[i]]) )then
set tempIndex = i
set i = 0
else
set i = i - 1
endif
endloop
if( tempIndex == 0 ) then
return
endif
set heroIndex = udg_heroOrder[tempIndex]
set udg_heroOrder[tempIndex] = udg_heroOrder[heroIndexIndex]
set udg_heroOrder[heroIndexIndex] = heroIndex
set i = 1
loop
exitwhen i > udg_heroTotalHeros
if ( heroOwner == GetOwningPlayer(udg_heroList[udg_heroOrder[i]]) ) then
call SetUnitOwner( udg_heroList[udg_heroOrder[i]], Player(PLAYER_NEUTRAL_PASSIVE), false )
call SetUnitOwner( udg_heroList[udg_heroOrder[i]], heroOwner, false )
endif
set i = i + 1
endloop
elseif ( SubStringBJ(GetEventPlayerChatString(), 1, 6) == "-down " ) then
loop
exitwhen i > udg_heroTotalHeros
if( GetOwningPlayer(udg_heroList[udg_heroOrder[i]]) == heroOwner ) then
if ( k == S2I(SubStringBJ(GetEventPlayerChatString(), 7, 8)) ) then
set heroIndexIndex = i
set i = udg_heroTotalHeros + 1
else
set k = k + 1
endif
endif
set i = i + 1
endloop
if ( heroIndexIndex == 0 ) then
return
endif
set i = heroIndexIndex + 1
loop
exitwhen i > udg_heroTotalHeros
if ( heroOwner == GetOwningPlayer(udg_heroList[udg_heroOrder[i]]) )then
set tempIndex = i
set i = udg_heroTotalHeros + 1
else
set i = i + 1
endif
endloop
if( tempIndex == 0 ) then
return
endif
set heroIndex = udg_heroOrder[tempIndex]
set udg_heroOrder[tempIndex] = udg_heroOrder[heroIndexIndex]
set udg_heroOrder[heroIndexIndex] = heroIndex
set i = 1
loop
exitwhen i > udg_heroTotalHeros
if ( heroOwner == GetOwningPlayer(udg_heroList[udg_heroOrder[i]]) ) then
call SetUnitOwner( udg_heroList[udg_heroOrder[i]], Player(PLAYER_NEUTRAL_PASSIVE), false )
call SetUnitOwner( udg_heroList[udg_heroOrder[i]], heroOwner, false )
endif
set i = i + 1
endloop
endif
endfunction
function InitTrig_Order_Up_or_Down takes nothing returns nothing
set gg_trg_Order_Up_or_Down = CreateTrigger( )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(0), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(1), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(2), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(3), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(4), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(5), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(6), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(7), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(8), "-up", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(0), "-down", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(1), "-down", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(2), "-down", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(3), "-down", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(4), "-down", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(5), "-down", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(6), "-down", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(7), "-down", false )
call TriggerRegisterPlayerChatEvent( gg_trg_Order_Up_or_Down, Player(8), "-down", false )
call TriggerAddAction( gg_trg_Order_Up_or_Down, function Trig_Order_Up_Actions )
endfunction