I can work around it in a rather ugly way by using a second variable, and setting it when that radio is selected, but it also means having to keep extra aliases in ecdata in order for the settings to be remembered.
- {l Code}: {l Select All Code}
guiradio "ssfsi"
Ex: guiradio "" foo 1 [alias bar 1]
guiradio "" foo 2 [alias bar 2]
guiradio "" foo 3 [alias foobar 100]
It uses the third param as a sort of index, to associate the radio selection with whatever it initializes or does. Now take my code for example (excuse the lengthy-ness, I've yet to trim it to use a function)
- {l Code}: {l Select All Code}
//////////////////////////////////////////////////////////////////////////////
/// Color Chat Script
///
/// Author: HTN-Kitsune
/// Minor edits for Extended Compass by ZeroKnight
///
//////////////////////////////////////////////////////////////////////////////
newgui Chat_Colors [
guiheader "Chat Color"
guilist [
guilist [
guiradio "^fgGreen (default)" chatcolorindex 0 [alias chatcolor "g"; alias chatcolorindex 0]
guiradio "^fGDark Green" chatcolorindex 1 [alias chatcolor "G"; alias chatcolorindex 1]
guiradio "^fbBlue" chatcolorindex 2 [alias chatcolor "b"; alias chatcolorindex 2]
guiradio "^fBDark Blue" chatcolorindex 3 [alias chatcolor "B"; alias chatcolorindex 3]
guiradio "^fyYellow" chatcolorindex 4 [alias chatcolor "y"; alias chatcolorindex 4]
guiradio "^fYDark Yellow" chatcolorindex 5 [alias chatcolor "Y"; alias chatcolorindex 5]
guiradio "^frRed" chatcolorindex 6 [alias chatcolor "r"; alias chatcolorindex 6]
guiradio "^fRDark Red" chatcolorindex 7 [alias chatcolor "R"; alias chatcolorindex 7]
guiradio "^fePale Red" chatcolorindex 8 [alias chatcolor "e"; alias chatcolorindex 8]
guiradio "^faGrey" chatcolorindex 9 [alias chatcolor "a"; alias chatcolorindex 9]
guiradio "^fADark Grey" chatcolorindex 10 [alias chatcolor "A"; alias chatcolorindex 10]
]
guistrut 2
guilist [
guiradio "^fmPink" chatcolorindex 11 [alias chatcolor "m"; alias chatcolorindex 11]
guiradio "^fvPurple" chatcolorindex 12 [alias chatcolor "v"; alias chatcolorindex 12]
guiradio "^foOrage" chatcolorindex 13 [alias chatcolor "o"; alias chatcolorindex 13]
guiradio "^fODark Orage" chatcolorindex 14 [alias chatcolor "O"; alias chatcolorindex 14]
guiradio "^fwWhite" chatcolorindex 15 [alias chatcolor "w"; alias chatcolorindex 15]
guiradio "^fkBlack" chatcolorindex 16 [alias chatcolor "k"; alias chatcolorindex 16]
guiradio "^fcCyan" chatcolorindex 17 [alias chatcolor "c"; alias chatcolorindex 17]
guiradio "^fCTeal" chatcolorindex 18 [alias chatcolor "C"; alias chatcolorindex 18]
guiradio "^fnBrown" chatcolorindex 19 [alias chatcolor "n"; alias chatcolorindex 19]
]
]
guistrut 2
guifont radar [ guitext "Custom Color (Hexadecimal)"]
guilist [
guiradio "" chatcolorindex 20 [alias chatcolorindex 20]
guifield customChatColor 6 [alias chatcolor $customChatColor]
]
guistrut 2
guifont radar [ guitext "Keys: T - Chat, Y - Team, U - /me, I - Team /me" ]
guitab "Team Chat Color"
guilist [
guilist [
guiradio "^fgGreen (default)" tchatcolorindex 0 [alias tchatcolor "g"; alias tchatcolorindex 0]
guiradio "^fGDark Green" tchatcolorindex 1 [alias tchatcolor "G"; alias tchatcolorindex 1]
guiradio "^fbBlue" tchatcolorindex 2 [alias tchatcolor "b"; alias tchatcolorindex 2]
guiradio "^fBDark Blue" tchatcolorindex 3 [alias tchatcolor "B"; alias tchatcolorindex 3]
guiradio "^fyYellow" tchatcolorindex 4 [alias tchatcolor "y"; alias tchatcolorindex 4]
guiradio "^fYDark Yellow" ttchatcolorindex 5 [alias tchatcolor "Y"; alias tchatcolorindex 5]
guiradio "^frRed" tchatcolorindex 6 [alias tchatcolor "r"; alias tchatcolorindex 6]
guiradio "^fRDark Red" tchatcolorindex 7 [alias tchatcolor "R"; alias tchatcolorindex 7]
guiradio "^fePale Red" tchatcolorindex 8 [alias tchatcolor "e"; alias tchatcolorindex 8]
guiradio "^faGrey" tchatcolorindex 9 [alias tchatcolor "a"; alias tchatcolorindex 9]
guiradio "^fADark Grey" tchatcolorindex 10 [alias tchatcolor "A"; alias tchatcolorindex 10]
]
guistrut 2
guilist [
guiradio "^fmPink" tchatcolorindex 11 [alias tchatcolor "m"; alias tchatcolorindex 11]
guiradio "^fvPurple" tchatcolorindex 12 [alias tchatcolor "v"; alias tchatcolorindex 12]
guiradio "^foOrage" tchatcolorindex 13 [alias tchatcolor "o"; alias tchatcolorindex 13]
guiradio "^fODark Orage" tchatcolorindex 14 [alias tchatcolor "O"; alias tchatcolorindex 14]
guiradio "^fwWhite" tchatcolorindex 15 [alias tchatcolor "w"; alias tchatcolorindex 15]
guiradio "^fkBlack" tchatcolorindex 16 [alias tchatcolor "k"; alias tchatcolorindex 16]
guiradio "^fcCyan" tchatcolorindex 17 [alias tchatcolor "c"; alias tchatcolorindex 17]
guiradio "^fCTeal" tchatcolorindex 18 [alias tchatcolor "C"; alias tchatcolorindex 18]
guiradio "^fnBrown" tchatcolorindex 19 [alias tchatcolor "n"; alias tchatcolorindex 19]
]
]
guistrut 2
guifont radar [ guitext "Custom Color (Hexadecimal)"]
guilist [
guiradio "" tchatcolorindex 20 [alias tchatcolorindex 20]
guifield customTChatColor 6 [alias tchatcolor $customTChatColor]
]
guistrut 2
guifont radar [ guitext "Keys: T - Chat, Y - Team, U - /me, I - Team /me" ]
guitab "/me Color"
guilist [
guilist [
guiradio "^fgGreen (default)" mchatcolorindex 0 [alias mchatcolor "g"; alias mchatcolorindex 0]
guiradio "^fGDark Green" mchatcolorindex 1 [alias mchatcolor "G"; alias mchatcolorindex 1]
guiradio "^fbBlue" mchatcolorindex 2 [alias mchatcolor "b"; alias mchatcolorindex 2]
guiradio "^fBDark Blue" mchatcolorindex 3 [alias mchatcolor "B"; alias mchatcolorindex 3]
guiradio "^fyYellow" mchatcolorindex 4 [alias mchatcolor "y"; alias mchatcolorindex 4]
guiradio "^fYDark Yellow" mchatcolorindex 5 [alias mchatcolor "Y"; alias mchatcolorindex 5]
guiradio "^frRed" mchatcolorindex 6 [alias mchatcolor "r"; alias mchatcolorindex 6]
guiradio "^fRDark Red" mchatcolorindex 7 [alias mchatcolor "R"; alias mchatcolorindex 7]
guiradio "^fePale Red" mchatcolorindex 8 [alias mchatcolor "e"; alias mchatcolorindex 8]
guiradio "^faGrey" mchatcolorindex 9 [alias mchatcolor "a"; alias mchatcolorindex 9]
guiradio "^fADark Grey" mchatcolorindex 10 [alias mchatcolor "A"; alias mchatcolorindex 10]
]
guistrut 2
guilist [
guiradio "^fmPink" mchatcolorindex 11 [alias mchatcolor "m"; alias mchatcolorindex 11]
guiradio "^fvPurple" mchatcolorindex 12 [alias mchatcolor "v"; alias mchatcolorindex 12]
guiradio "^foOrage" mchatcolorindex 13 [alias mchatcolor "o"; alias mchatcolorindex 13]
guiradio "^fODark Orage" mchatcolorindex 14 [alias mchatcolor "O"; alias mchatcolorindex 14]
guiradio "^fwWhite" mchatcolorindex 15 [alias mchatcolor "w"; alias mchatcolorindex 15]
guiradio "^fkBlack" mchatcolorindex 16 [alias mchatcolor "k"; alias mchatcolorindex 16]
guiradio "^fcCyan" mchatcolorindex 17 [alias mchatcolor "c"; alias mchatcolorindex 17]
guiradio "^fCTeal" mchatcolorindex 18 [alias mchatcolor "C"; alias mchatcolorindex 18]
guiradio "^fnBrown" mchatcolorindex 19 [alias mchatcolor "n"; alias mchatcolorindex 19]
]
]
guistrut 2
guifont radar [ guitext "Custom Color (Hexadecimal)"]
guilist [
guiradio "" mchatcolorindex 20 [alias mchatcolorindex 20]
guifield customMChatColor 6 [alias mchatcolor $customMChatColor]
]
guistrut 2
guifont radar [ guitext "Keys: T - Chat, Y - Team, U - /me, I - Team /me" ]
guitab "Team /me Color"
guilist [
guilist [
guiradio "^fgGreen (default)" tmchatcolorindex 0 [alias tmchatcolor "g"; alias tmchatcolorindex 0]
guiradio "^fGDark Green" tmchatcolorindex 1 [alias tmchatcolor "G"; alias tmchatcolorindex 1]
guiradio "^fbBlue" tmchatcolorindex 2 [alias tmchatcolor "b"; alias tmchatcolorindex 2]
guiradio "^fBDark Blue" tmchatcolorindex 3 [alias tmchatcolor "B"; alias tmchatcolorindex 3]
guiradio "^fyYellow" tmchatcolorindex 4 [alias tmchatcolor "y"; alias tmchatcolorindex 4]
guiradio "^fYDark Yellow" tmchatcolorindex 5 [alias tmchatcolor "Y"; alias tmchatcolorindex 5]
guiradio "^frRed" tmchatcolorindex 6 [alias tmchatcolor "r"; alias tmchatcolorindex 6]
guiradio "^fRDark Red" tmchatcolorindex 7 [alias tmchatcolor "R"; alias tmchatcolorindex 7]
guiradio "^fePale Red" tmchatcolorindex 8 [alias tmchatcolor "e"; alias tmchatcolorindex 8]
guiradio "^faGrey" tmchatcolorindex 9 [alias tmchatcolor "a"; alias tmchatcolorindex 9]
guiradio "^fADark Grey" tmchatcolorindex 10 [alias tmchatcolor "A"; alias tmchatcolorindex 10]
]
guistrut 2
guilist [
guiradio "^fmPink" tmchatcolorindex 11 [alias tmchatcolor "m"; alias tmchatcolorindex 11]
guiradio "^fvPurple" tmchatcolorindex 12 [alias tmchatcolor "v"; alias tmchatcolorindex 12]
guiradio "^foOrage" tmchatcolorindex 13 [alias tmchatcolor "o"; alias tmchatcolorindex 13]
guiradio "^fODark Orage" tmchatcolorindex 14 [alias tmchatcolor "O"; alias tmchatcolorindex 14]
guiradio "^fwWhite" tmchatcolorindex 15 [alias tmchatcolor "w"; alias tmchatcolorindex 15]
guiradio "^fkBlack" tmchatcolorindex 16 [alias tmchatcolor "k"; alias tmchatcolorindex 16]
guiradio "^fcCyan" tmchatcolorindex 17 [alias tmchatcolor "c"; alias tmchatcolorindex 17]
guiradio "^fCTeal" tmchatcolorindex 18 [alias tmchatcolor "C"; alias tmchatcolorindex 18]
guiradio "^fnBrown" tmchatcolorindex 19 [alias tmchatcolor "n"; alias tmchatcolorindex 19]
]
]
guistrut 2
guifont radar [ guitext "Custom Color (Hexadecimal)"]
guilist [
guiradio "" tmchatcolorindex 20 [alias tmchatcolorindex 20]
guifield customTMChatColor 6 [alias tmchatcolor $customTMChatColor]
]
guistrut 2
guifont radar [ guitext "Keys: T - Chat, Y - Team, U - /me, I - Team /me" ]
]
//the bindings, these have both a + and a -
//they disable the ability to add a / to do commands
//so unlike Q3A and such those must be down old school.
chatcolorcheck = [ if (> (strlen $chatcolor) 1) [inputcommand (concatword "^f[0x" $chatcolor "]") [say $commandbuffer]] [inputcommand (concatword "^f" $chatcolor) [say $commandbuffer]] ]
bind T chatcolorcheck
tchatcolorcheck = [ if (> (strlen $tchatcolor) 1) [inputcommand (concatword "^f[0x" $tchatcolor "]") [say $commandbuffer]] [inputcommand (concatword "^f" $tchatcolor) [say $commandbuffer]] ]
bind Y tchatcolorcheck
mchatcolorcheck = [ if (> (strlen $mchatcolor) 1) [inputcommand (concatword "^f[0x" $mchatcolor "]") [say $commandbuffer]] [inputcommand (concatword "^f" $mchatcolor) [say $commandbuffer]] ]
bind U mchatcolorcheck
tmchatcolorcheck = [ if (> (strlen $tmchatcolor) 1) [inputcommand (concatword "^f[0x" $tmchatcolor "]") [say $commandbuffer]] [inputcommand (concatword "^f" $tmchatcolor) [say $commandbuffer]] ]
bind I tmchatcolorcheck
Notice how I'm relying on: "*index # [...] alias *index #" to make up for the fact that the color codes are letters. I'd like to keep the 20 "letter color" presets, as it will provide users a way to use "RE's colors", and not have to go and get a HEX code. Quick and easy. As far as how I'm doing it, I can think of a few ways to go about this. I'd like some input or better ideas and suggestions. I want to make Extended Compass as best as it can possibly be, so please. Offer your wisdom ^^
- I could either just go with having to include these index vars in ecdata, as it's just a data file and wont really matter. However, is there a way I could "trick" it into accepting the letter values somehow? Or is there some other way it could be done?
- If those letter codes have an actual HEX value associated with them, is there a way to get them? I could just replace the letters in the script with their associated HEX value. It would work with GUIRADIO's params, it would eliminate the need to check if it's using a letter or custom color in order to properly set up the console for the chat, and I'd still have the 20 presets. It would be streamlined.
- Any other kind of idea, trick, hack, workaround?
I'm bad at explaining what I'm trying to get at, so if I wasn't clear, please feel free to request clarification.