Komaqtion
You can change this now in User CP.
- Reaction score
- 469
Hi!
I though I'd submit this snippet/system (It's gotten quite big now ! ), solves all of you player-color problems !
I know there are a lot of "String-Manipulating-Systems" out there, which are a lot more complicated and have more features than this one, but I'm not sure if they use this way of handling stuff...
That's why I've created this (Though I don't know if there are many of this kind of systems out there, but still...)
Requires: vJASS compiler, which supports "hook" (Latest version of JassHelper)
Da Code! :
And here are two small examples of use
Please, come with ideas of more features for this, and I'll consider adding them
(If they're worth it, that is )
I though I'd submit this snippet/system (It's gotten quite big now ! ), solves all of you player-color problems !
I know there are a lot of "String-Manipulating-Systems" out there, which are a lot more complicated and have more features than this one, but I'm not sure if they use this way of handling stuff...
That's why I've created this (Though I don't know if there are many of this kind of systems out there, but still...)
Requires: vJASS compiler, which supports "hook" (Latest version of JassHelper)
Da Code! :
JASS:
library PlayerColors initializer Init
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//*********************************************************************************************************//
//@@/////////////////////////////////// *//PlayerColorUtils\\* //////////////////////////////////////////@@//
//@@ @@//
//@@ @@//
//@@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@//
//@@ %% %% @@//
//@@ %% //\\\\\ ///////// /// \\\ %% @@//
//@@ %% //\\ \\\ ////// /// \\\ %% @@//
//@@ %% //\\ \\\ ///// /// \\\ %% @@//
//@@ %% //\\ /// //// /// \\\ %% @@//
//@@ %% //\\ /// //// /// \\\ %% @@//
//@@ %% //\\/// //// /// \\\ %% @@//
//@@ %% //\\ \\\\ //// \\\\ %% @@//
//@@ %% //\\ \\\\ //// \\\\ %% @@//
//@@ %% //\\ \\\\ //// \\\\ %% @@//
//@@ %% //\\ \\\\\ //// \\\\ %% @@//
//@@ %% //\\ \\\\\\ //// \\\\ %% @@//
//@@ %% //\\ \\\\\\\\\ ///\\\ %% @@//
//@@ %% %% @@//
//@@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@//
//@@ @@//
//@@ @@//
//@@ @@//
//@@ @@//
//@@ Made by , Komaqtion @@//
//@@ @@//
//@@ @@//
//@@ Purpose: @@//
//@@ @@//
//@@ # This snippet is supposed to help people to, with ease, to use the actual ARGB @@//
//@@ colors of players in all aspects they'd possibly want. @@//
//@@ @@//
//@@ Usage: @@//
//@@ @@//
//@@ # The function provided by this small system is: @@//
//@@ *NOTE* If you input an invalid player in any of the functions, it'll @@//
//@@ automatically work as if you inputted Player( 0 ), or Player (Red)... @@//
//@@ @@//
//@@ function PlayerColoredString takes player p, string coloredString returns string @@//
//@@ @@//
//@@ - "player p" -> The player of which you want to use the color for the @@//
//@@ inputted string. @@//
//@@ - "string coloredString" -> The string which is to be returned @@//
//@@ in the wanted playercolor. @@//
//@@ - "returns string" -> This function will return the inputted string, @@//
//@@ but in the playercolor of the player with the inputted playerid. @@//
//@@ @@//
//@@ function PlayerColoredStringById takes integer playerId, string coloredString returns string @@//
//@@ @@//
//@@ - "integer playerId" -> The player-number of the player's color @@//
//@@ you wish to use. @@//
//@@ - "string coloredString" -> The string which is to be returned @@//
//@@ in the wanted playercolor. @@//
//@@ - "returns string" -> This function will return the inputted string, @@//
//@@ but in the playercolor of the player with the inputted playerid. @@//
//@@ @@//
//@@ function GetPlayerNameColored takes player p returns string @@//
//@@ @@//
//@@ - "player p" -> The player of which you want to use the color for the @@//
//@@ inputted string. (And also the name <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />) @@//
//@@ - "returns string" -> This function will return the player's name you @@//
//@@ inputted, but in the playercolor of that player. @@//
//@@ @@//
//@@ function PlayerColoredTextTag takes texttag coloredTag, @@//
//@@ player p, integer alpha returns nothing @@//
//@@ @@//
//@@ - "texttag coloredTag" -> The texttag of which the color is to be changed. @@//
//@@ - "player p" -> The player of which color the texttag is to be changed to. @@//
//@@ - "integer alpha" -> The amount of transparency the text (texttag) should have. @@//
//@@ /\ THIS RANGES FROM 0 TO 255, WITH 255 BEING 100% SEETHROUGH ! /\ @@//
//@@ - "returns nothing" -> This function will not return anything, as it just @@//
//@@ modifies the existing texttag, and can't be used in any variable or so. @@//
//@@ @@//
//@@ function PlayerColoredTextTagById takes texttag coloredTag, @@//
//@@ integer playerId, integer alpha returns nothing @@//
//@@ @@//
//@@ - "texttag coloredTag" -> The texttag of which the color is to be changed. @@//
//@@ - "integer playerId" -> The playerid of the player of which color the texttag @@//
//@@ is to be changed to. @@//
//@@ - "integer alpha" -> The amount of transparency the text (texttag) should have. @@//
//@@ /\ THIS RANGES FROM 0 TO 255, WITH 255 BEING 100% SEETHROUGH ! /\ @@//
//@@ - "returns nothing" -> This function will not return anything, as it just @@//
//@@ modifies the existing texttag, and can't be used in any variable or so. @@//
//@@ @@//
//@@ function GetPlayerColorString takes player p returns string @@//
//@@ @@//
//@@ - "player p" -> The player we will be getting the "color-code" of. @@//
//@@ - "returns string" -> This function will return the actual ARGB code @@//
//@@ (Not the system, but the hex-code). @@//
//@@ @@//
//@@ function GetPlayerColorStringById takes integer playerId returns string @@//
//@@ @@//
//@@ - "integer playerId" -> The id of the player we will be getting @@//
//@@ the "color-code" of. @@//
//@@ - "returns string" -> This function will return the actual ARGB code @@//
//@@ (Not the system, but the hex-code). @@//
//@@ @@//
//@@ function GetPlayerByColor takes string color returns player @@//
//@@ @@//
//@@ - "string color" -> This is where you put the color of the player @@//
//@@ you want to get (E.g "blue") @@//
//@@ - "returns player" -> As said, this is the player who has @@//
//@@ the color you inputted. @@//
//@@ @@//
//@@ function GetPlayerColorStringByColor takes string color returns string @@//
//@@ @@//
//@@ - "string color" -> This is the player's color of which you @@//
//@@ want to get it's "color-code" (Or hex-code) @@//
//@@ - "returns string" -> This is the hex-code of the color the @@//
//@@ player uses (E.g "|c00ff0202") @@//
//@@ @@//
//@@ - That is it ! <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" /> Hope you've understood all the functions clearly now ! @@//
//@@ If not, then just post in the thread and I'll update this documentation <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" /> @@//
//@@ @@//
//@@ @@//
//@@ Requirements: @@//
//@@ @@//
//@@ # This snippet's only requirement is vJASS compilement, which is @@//
//@@ easiest achieved by downloading JASS Newgen Pack, at @@//
//@@ <a href="http://www.thehelper.net/forums/showthread.php?t=73936" class="link link--internal">http://www.thehelper.net/forums/showthread.php?t=73936</a> @@//
//@@ You'll also have to update JASS Helper to the latest version... @@//
//@@ @@//
//@@ @@//
//@@ Credits: @@//
//@@ @@//
//@@ # - Azlier, for helping me out alot with several bugfixes and tweaking ! @@//
//@@ - Jesus4Lyf, for also helping me out alot ! <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" /> @@//
//@@ - Quraji, for helping me add the "GetPlayerByColor" function ! <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" /> @@//
//@@ - Darthfett, for giving me some pointers on this documentation <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" /> @@//
//@@ @@//
//@@ # And credits, if you use this that is, is not needed to give me @@//
//@@ though it's always welcome <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" /> @@//
//@@ @@//
//@@/////////////////////////////////////////////////////////////////////////////////////////////////////@@//
//*********************************************************************************************************//
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Configuration, though it isn't much <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick Out Tongue :p" loading="lazy" data-shortname=":p" />
globals
private constant string EndString = "|r" // This actually shouldn't be changeable XD
// But I made it so anyways <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick Out Tongue :p" loading="lazy" data-shortname=":p" />
endglobals
// End of Configuration !!!! DON'T TOUCH BELOW THIS !!!!!
// End of Configuration !!!! DON'T TOUCH BELOW THIS !!!!!
// End of Configuration !!!! DON'T TOUCH BELOW THIS !!!!!
// End of Configuration !!!! DON'T TOUCH BELOW THIS !!!!!
globals
private integer array Red // This is used to keep track of the "redness" in each player's the hex-codes
private integer array Green // This is used to keep track of the "greenness" in each player's the hex-codes
private integer array Blue // This is used to keep track of the "blueness" in each player's the hex-codes
private integer array RedString // And this is the the "redness" in all hex-codes <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
private integer array GreenString // And this is the the "greenness" in all hex-codes <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
private integer array BlueString // And this is the the "blueness" in all hex-codes <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
private string array PlayerColor // This is used to keep track of which player-color is used by which player <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
private string array PlayerColorString // And this is the same thing, but not bound to a player <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
private string array PlayerColorWord // This is used to keep track of which player-color-string (Like "red", or "teal") is used by which player <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
private string array PlayerColorWordString // And, yet again, this is the same thing, but not bound to a player <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
private player array StoredPlayers
endglobals
function PlayerColoredStringById takes integer playerId, string coloredString returns string
return PlayerColor[playerId] + coloredString + EndString
endfunction
function PlayerColoredString takes player p, string coloredString returns string
return PlayerColor[GetPlayerId( p )] + coloredString + EndString
endfunction
function GetPlayerNameColored takes player p returns string
return PlayerColor[GetPlayerId( p )] + GetPlayerName( p ) + EndString
endfunction
function PlayerColoredTextTag takes texttag coloredTag, player p, integer alpha returns nothing
local integer id
if p != null then // We don't want to use a 'null' player, do we ? <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite9" alt=":eek:" title="Eek! :eek:" loading="lazy" data-shortname=":eek:" />
set id = GetPlayerId( p ) // Gets the id of the inputted player
call SetTextTagColor( coloredTag, Red[id], Green[id], Blue[id], alpha ) // Setting the color of the used texttag to the specified player's color
endif
endfunction
function PlayerColoredTextTagById takes texttag coloredTag, integer playerId, integer alpha returns nothing
call SetTextTagColor( coloredTag, Red[playerId], Green[playerId], Blue[playerId], alpha ) // Simply sets the color of the texttag to the wanted player's one <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
endfunction
function GetPlayerColorString takes player p returns string
return PlayerColor[GetPlayerId( p )]
endfunction
function GetPlayerColorStringById takes integer playerId returns string
return PlayerColor[playerId]
endfunction
function GetPlayerByColor takes string color returns player
return StoredPlayers[ StringHash( color ) / 20000000 + 96 ]
endfunction
function GetPlayerColorStringByColor takes string color returns string
return PlayerColor[ GetPlayerId( StoredPlayers[ StringHash( color ) / 20000000 + 96 ] ) ]
endfunction
private function OnColorChange takes player whichPlayer, playercolor color returns nothing
local integer id = GetPlayerId( whichPlayer )
local integer pc = GetHandleId( color )
set PlayerColor[id] = PlayerColorString[pc]
set Red[id] = RedString[pc]
set Green[id] = GreenString[pc]
set Blue[id] = BlueString[pc]
set PlayerColorWord[id] = PlayerColorWordString[pc]
set StoredPlayers[ StringHash( PlayerColorWordString[ pc ] ) / 20000000 + 96 ] = whichPlayer
endfunction
hook SetPlayerColor OnColorChange
private function Init takes nothing returns nothing
local integer i = 12
local integer i2
set PlayerColorString[0] = "|c00ff0202"
set RedString[0] = 0xff
set GreenString[0] = 0x02
set BlueString[0] = 0x02
set PlayerColorWordString[0] = "red"
set PlayerColorString[1] = "|c000041ff"
set RedString[1] = 0x00
set GreenString[1] = 0x41
set BlueString[1] = 0xff
set PlayerColorWordString[1] = "blue"
set PlayerColorString[2] = "|c001be5b8"
set RedString[2] = 0x1b
set GreenString[2] = 0xe5
set BlueString[2] = 0xb8
set PlayerColorWordString[2] = "teal"
set PlayerColorString[3] = "|c00530080"
set RedString[3] = 0x53
set GreenString[3] = 0x00
set BlueString[3] = 0x80
set PlayerColorWordString[3] = "purple"
set PlayerColorString[4] = "|c00fffc00"
set RedString[4] = 0xff
set GreenString[4] = 0xfc
set BlueString[4] = 0x00
set PlayerColorWordString[4] = "yellow"
set PlayerColorString[5] = "|c00fe890d"
set RedString[5] = 0xfe
set GreenString[5] = 0x89
set BlueString[5] = 0x0d
set PlayerColorWordString[5] = "orange"
set PlayerColorString[6] = "|c001fbf00"
set RedString[6] = 0x1f
set GreenString[6] = 0xbf
set BlueString[6] = 0x00
set PlayerColorWordString[6] = "green"
set PlayerColorString[7] = "|c00e45aaf"
set RedString[7] = 0xe4
set GreenString[7] = 0x5a
set BlueString[7] = 0xaf
set PlayerColorWordString[7] = "pink"
set PlayerColorString[8] = "|c00949596"
set RedString[8] = 0x94
set GreenString[8] = 0x95
set BlueString[8] = 0x96
set PlayerColorWordString[8] = "grey"
set PlayerColorString[9] = "|c007dbef1"
set RedString[9] = 0x7d
set GreenString[9] = 0xbe
set BlueString[9] = 0xf1
set PlayerColorWordString[9] = "lightblue"
set PlayerColorString[10] = "|c000f6145"
set RedString[10] = 0x0f
set GreenString[10] = 0x61
set BlueString[10] = 0x45
set PlayerColorWordString[10] = "darkgreen"
set PlayerColorString[11] = "|c004d2903"
set RedString[11] = 0x4d
set GreenString[11] = 0x29
set BlueString[11] = 0x03
set PlayerColorWordString[11] = "brown"
set PlayerColorString[12] = "|c00272727"
set RedString[12] = 0x27
set GreenString[12] = 0x27
set BlueString[12] = 0x27
set PlayerColorWordString[12] = "darkgrey"
set PlayerColorWordString[13] = "gray"
set PlayerColorWordString[14] = "aqua"
set PlayerColorWordString[15] = "cyan"
set PlayerColorWordString[16] = "darkgray"
set PlayerColorWordString[17] = "neutral"
loop
exitwhen i < 0
set StoredPlayers[ StringHash( PlayerColorWordString[ i ] ) / 20000000 + 96 ] = Player( i )
set i2 = GetHandleId( GetPlayerColor( Player( i ) ) )
set PlayerColor<i> = PlayerColorString[ i2 ]
set Red[ i ] = RedString[ i2 ]
set Green[ i ] = GreenString[ i2 ]
set Blue[ i ] = BlueString[ i2 ]
set PlayerColorWord[ i ] = PlayerColorWordString[ i ]
set i = i - 1
endloop
set StoredPlayers[ StringHash( PlayerColorWordString[ 13 ] ) / 20000000 + 96 ] = Player( 8 )
set StoredPlayers[ StringHash( PlayerColorWordString[ 14 ] ) / 20000000 + 96 ] = Player( 2 )
set StoredPlayers[ StringHash( PlayerColorWordString[ 15 ] ) / 20000000 + 96 ] = Player( 2 )
set StoredPlayers[ StringHash( PlayerColorWordString[ 16 ] ) / 20000000 + 96 ] = Player( 12 )
set StoredPlayers[ StringHash( PlayerColorWordString[ 17 ] ) / 20000000 + 96 ] = Player( 12 )
endfunction
endlibrary</i>
And here are two small examples of use
JASS:
scope PlayerColorExamples initializer Init
private function TimerActions takes nothing returns nothing
local player p = Player( 0 )
// The player we'll be using to show the message for/getting the color of <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
call DisplayTextToPlayer( p, 0.0, 0.0, PlayerColoredString( p, "This is how your color looks <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick Out Tongue :p" loading="lazy" data-shortname=":p" />" ) )
// This is how it would look using the "PlayerColoredStringById" function:
call DisplayTextToPlayer( p, 0.0, 0.0, PlayerColoredStringById( GetPlayerId( p ), "This is how your color looks <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick Out Tongue :p" loading="lazy" data-shortname=":p" />" ) )
// Remember ! You have to use "JASS" player-ids, ranging from 0 to 11 (Not including Neutrals), not GUI numbers (1 - 12) <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
// These two functions will display that text in the color of Player( 0 )... RED ! <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
set p = null
// Just some leak-cleaning <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
endfunction
private function DeathActions takes nothing returns nothing
local unit u = GetTriggerUnit()
// Just getting the dying unit here <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
local player p = GetOwningPlayer( u )
// And the owner of it <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
local texttag tt = CreateTextTag()
// And a texttag for some texting <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
local real x = GetUnitX( u )
local real y = GetUnitY( u )
// Just so we know ehere he is <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
call SetTextTagPos( tt, x, y, 20. ) // Putting the texttag on the unit
call SetTextTagPermanent( tt, true )
call SetTextTagText( tt, "This is where your unit died !", 0.023 ) // Setting the text of it, and size (That number is the standard "10" in GUI ;D)
call PlayerColoredTextTag( tt, p, 200 )
// You can use "ById" here too... <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
// Ok, so this whole thing will create a texttag (Floating Text in GUI) and set it's position on the dying unit (With a height of 20.).
// It will be permanent, and will read "This is where your unit dies !" with the standard GUI size of 10 <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
// And it will also be colored in the owner of the unit's color <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
set u = null
set p = null
set tt = null
// Leak-cleaning ftw ! <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
endfunction
private function Init takes nothing returns nothing
local trigger t = CreateTrigger()
// Just creating the trigger to register the event for <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
call TriggerRegisterTimerEvent( t, 1.0, false )
// Registering a "meaningless" event (By meaningless, I mean it's just a stupid example this one XD)
call TriggerAddAction( t, function TimerActions )
// And now we're adding the function which is to be run when the event occurs <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite8" alt=":D" title="Big Grin :D" loading="lazy" data-shortname=":D" />
set t = CreateTrigger()
// Yet another trigger <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite7" alt=":p" title="Stick Out Tongue :p" loading="lazy" data-shortname=":p" />
call TriggerRegisterAnyUnitEventBJ( t, EVENT_PLAYER_UNIT_DEATH )
// Registering when a unit dies !
call TriggerAddAction( t, function DeathActions )
// And adding another action <img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" class="smilie smilie--sprite smilie--sprite2" alt=";)" title="Wink ;)" loading="lazy" data-shortname=";)" />
endfunction
endscope
Please, come with ideas of more features for this, and I'll consider adding them
(If they're worth it, that is )