Okay, so I looked at your script in pastebin. The fact that this is a very very small script has already been noted many times so I won't emphasise it more. If it does its job though, it's not a bad script. Here are some things I liked / didn't like:
+ The use of embedded colors makes it easy for players to know the exact color they're choosing
+ The script works & does it's job
+ You didn't write the black color in black, making it easier to see
- Advertising your own name in the help, OnPlayerConnect and the dialog is unnecessary
- The chat displays a minimum of 10 messages at a time. Your script sends 4 messages, leaving the server with only 6 messages to send before the chat overflows. 4 rows for a single /colors is not necessary in my opinion.
- The use of "1" as the dialogid instead of a #define or something more unique than just 1 - this is almost guaranteed to cause conflicts
- The GameText & chat message on color change are not necessary. Yes, one of them is fine, but having a message in chat that tells you you have succesfully changed your color is enough: no need to put a big red text in the player's face to confirm that.
- The help message is stupid. Upon connect, the server tells the player to use "colorshelp", which in turn tells the player to use "colors". Using a dialog is simple enough - You don't need a help message to tell people what to type & click.
- Line 24: ";return 1;". Yes, this works, but putting the previous line's semicolon onto the next line is generally bad practise. Just put it after the previous function.
- The amount of available colors. Yes, I know more will be added but you should've already added the colors before releasing. It takes barely any effort.
- The amount of grammatical mistakes is quite high, but I'll let you pass because I understand English is not your first language and we all make mistakes.
All in all, yes, it's a working script, but it has several things in it that would've been better to just keep out of it. Spamming your name everywhere is not appealing to server owners, and that "DO NOT REMOVE CREDITS!" at the bottom of your post is just ridicolous.
Let's say a player joins my server. Upon joining, your name pops up. They spawn and use the /colorshelp command you suggested. This pops up a message with your name in it again, telling the player to type in another command. This help message serves no other purpose but to have another place where you can credit yourself. When typing in the second command, your name is in the dialog title again. Is this script really so advanced it is nevessary to tell the author to the player 3 times, 2 out of 3 it being quite obtrusive? I don't think so.
Basically the script has nothing of your own. Believe me, I don't mean this in a bad way. I don't mean you've copied it from someone else. I'm just saying that all you did was arrange some functions and callbacks. ShowPlayerDialog & SetPlayerColor. That's not much, yet you are still crediting yourself in 3 different spots for this script. More time has been spent on implementing the credits than the actual functions, I'd guess.
TL
R: It works as intended but spams the player with GameTexts and server messages that are unnecessary. And it needs more colors.