| 01-07-2005, 06:04 PM | #1 |
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 |
