Doomhammer
Bob Kotick - Gamers' corporate spoilsport No. 1
- Reaction score
- 67
With string messages, it can be useful to have the color of a player as the appropriate string color code. That's what the following code does:
example (taken from a multiboard) :
This will write the Player's name in his color in the specified cell of a multiboard
Let's go one step further: Natives like SetTextTagColor and SetUnitVertexColor require the color codes as seperate integers. The following snippet makes use of the fact that the basic player colors consist of merely 5 different values.
example (tainting a text tag):
JASS:
function GetPlayerColorString takes player p returns string
local playercolor col=GetPlayerColor(p)
if col == PLAYER_COLOR_RED then
return("ffff0000")
elseif col == PLAYER_COLOR_BLUE then
return("ff0000ff")
elseif col == PLAYER_COLOR_CYAN then
return("ff00ffc0")
elseif col == PLAYER_COLOR_PURPLE then
return("ff800080")
elseif col == PLAYER_COLOR_YELLOW then
return("ffffff00")
elseif col == PLAYER_COLOR_ORANGE then
return("ffff8000")
elseif col == PLAYER_COLOR_GREEN then
return("ff00ff00")
elseif col == PLAYER_COLOR_PINK then
return("ffff00ff")
elseif col == PLAYER_COLOR_LIGHT_GRAY then
return("ffc0c0c0")
elseif col == PLAYER_COLOR_LIGHT_BLUE then
return("ff80c0ff")
elseif col == PLAYER_COLOR_AQUA then
return("ff004040")
elseif col == PLAYER_COLOR_BROWN then
return("ff404000")
endif
return("00000000")
endfunction
example (taken from a multiboard) :
JASS:
call MultiboardSetItemValueBJ(mboard , 1 , i, "|c" + GetPlayerColorString(p) + GetPlayerName(p) + "|r")
This will write the Player's name in his color in the specified cell of a multiboard
Let's go one step further: Natives like SetTextTagColor and SetUnitVertexColor require the color codes as seperate integers. The following snippet makes use of the fact that the basic player colors consist of merely 5 different values.
JASS:
example (tainting a text tag):
JASS:
set s = GetPlayerColorString(p)
call SetTextTagColor(t, HexS2Dec(SubString(s,2,4)), HexS2Dec(SubString(s,4,6)), HexS2Dec(SubString(s,6,8)), 255)