HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Hero portrait help?

04-17-2005, 04:49 AM#1
The_AwaKening
I used to have a jass trigger to change hero's portrait order so that you could select them with the f-keys. Since 1.17 it doesn't work anymore and I can't find the bug. Rather than messing with it anymore, maybe someone already knows how to do something like this with a gui trigger.
If you would like to see how my jass trigger went, I could post it.

Thanks in advance for any suggestions.
04-17-2005, 08:23 AM#2
The_AwaKening
Here is what my jass trigger looks like that used to work.

Code:
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