| 01-20-2006, 03:14 AM | #1 |
This trigger works great if you enter it the way it is meant; however, if a player enters -info alone rather than -info red, then it crashes the game. It was crashing before I added the condition as well. Is there a way to check if the substring is emptly and display my message and not have the game crash? JASS:function Trig_Player_Info_Actions takes nothing returns nothing local player p=GetTriggerPlayer() local integer i=GetPlayerIndexFromColorString(SubStringBJ(GetEventPlayerChatString(), 7, 12)) local integer j=udg_RandomHero[i] local integer k=udg_totalHeros[i] - udg_RandomHero[i] local integer kills=udg_infoHKills[i] local integer deaths=udg_infoDeaths[i] call ClearTextMessagesBJ( GetForceOfPlayer(p) ) if SubStringBJ(GetEventPlayerChatString(), 7, 7) == " " then call DisplayTimedTextToForce( GetForceOfPlayer(p), 10, ( "You did not provide enough information" ) ) call DisplayTimedTextToForce( GetForceOfPlayer(p), 10, ( "Format is" + "|cffffcc00" + "-info playercolor|r" ) ) else call DisplayTimedTextToForce( GetForceOfPlayer(p), 10, ( " " + udg_playerColor[GetConvertedPlayerId(ConvertedPlayer(i))] + GetPlayerName(ConvertedPlayer(i)) + "|r has" ) ) call DisplayTimedTextToForce( GetForceOfPlayer(p), 10, ( ( " |cffffcc00" + I2S(j) ) + "|r random heros" ) ) call DisplayTimedTextToForce( GetForceOfPlayer(p), 10, ( ( " |cffffcc00" + I2S(k) ) + "|r picked heros" ) ) call DisplayTimedTextToForce( GetForceOfPlayer(p), 10, ( ( " |cffffcc00" + I2S(deaths) ) + "|r Deaths and" ) ) call DisplayTimedTextToForce( GetForceOfPlayer(p), 10, ( ( " |cffffcc00" + I2S(kills) ) + "|r Hero Kills" ) ) endif set p=null endfunction //=========================================================================== function InitTrig_Player_Info takes nothing returns nothing set gg_trg_Player_Info = CreateTrigger( ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(0), "-info", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(1), "-info", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(2), "-info", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(3), "-info", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(4), "-info", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(5), "-info", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(6), "-info", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(7), "-info", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Player_Info, Player(8), "-info", false ) call TriggerAddAction( gg_trg_Player_Info, function Trig_Player_Info_Actions ) endfunction |
| 01-20-2006, 03:29 AM | #2 |
Sorry for the post, but I fixed it already. I just added in this condition if ( i == 0 ) then return which is the initial value for "i" in my linked function. |
