#include #include #pragma semicolon 1 public Plugin myinfo = { name = "Mare Usernames", author = "Washing Machine, Knucklehead McSpazatron, Gonderlane", description = "Gives you a My Little Pony: Friendship is Magic based username", version = "1.69", url = "https://boards.4channel.org/mlp/tf2" }; char FirstNames[][] = { "Amber","Amethyst","Astral","Aqua","Azure","Autumn","Adorable", "Bronze","Blurry","Blueberry","Berry","Banana", "Carrot","Candy","Celestial","Cheese","Cherry","Cinnamon","Cookie","Crystal","Curvy","Chocolate","Caramel","Cutesy","Clever", "Daffy","Dew","Dizzy","Dotty","Dozy","Dancing","Delicious","Deep", "Ebony","Electric","Emerald", "Fancy","Flawless","Fluffy", "Giddy","Ginger","Golden","Goofy", "Hazel","Honey","Happy", "Ice","Indigo","Inky","Ivory","Ivy", "Jolly","Juicy","Jade", "Kindle","Kind","Keen", "Lapis","Lila","Lilly","Little","Lucky","Lunar","Lemon","Lovely", "Merry","Messy","Misty","Midnight","Mythic","Morning", "Nettle","Nimble","Nifty", "Orange","Orchid","Ocean", "Pearl","Pastel","Perfect","Pecan","Pumpkin","Pretty","Pleasant","Pure","Plump", "Rainbow","River","Rose","Ruby","Raspberry","Radiant", "Sapphire","Scarlet","Shadow","Silly","Sleepy","Snazzy","Snowy","Soft","Spooky","Squeaky","Strawberry","Sweet","Sugar","Sunny","Stunning","Sunrise","Simple", "Twilight","Twinkle","Tricky","Tasty","Tiny", "Velvet","Violet","Vanilla", "Wacky","Water","Winter","Wild", "Yummy","Yellow", }; char LastNames[][] = { "Aura","Aurora","Anemone", "Bee","Blossom","Blush","Breeze","Bubbles","Bell","Blaze", "Cake","Cream","Candy","Cupcake","Camellia", "Daisy","Dawn","Dazzle","Diamond","Drop","Dusk","Daffodil","Dahlia", "Eyes", "Fashion","Frost","Flanks", "Gem","Glow","Grace","Giggle","Grape", "Harmony","Hooves","Heart", "Jam","Jewel","Joy","Jasmine", "Kisses","Kiss", "Light","Love","Lilac", "Mint","Moon","Moonlight", "Night","Nourish", "Petal","Pie","Plum","Pudding","Passion","Peach", "Rain","Rose", "Shadow","Snowflake","Song","Sorbet","Sparkle","Spice","Star","Sunlight","Swirl","Sea","Smiles","Sky","Shimmer", "Twirl","Tulip", "Whistles","Wings","Wish", }; char SimpleNames[][] = { "Blossomforth", "Charm","Cornflower","Creamcup", "Dosie", "Gigglecake", "Hazelblossom", "Jetstream","Junebug", "Linky", "Flitter", "Minuette", "Sassaflash","Shoeshine","Slipstream","Sunshower", "Twinkleshine", }; char RareFirstNames[][] = { "Ditzy", //"Horny", "Purple", "Smutty", "Yoinky", "Ponka", }; char RareLastNames[][] = { "Mare", "Pony", "Poni", //"Sneed", "Snowpity","Sploinky" }; char RareSimpleNames[][] = { "Anonymous","Applejack", "Cheese Sandwich","Chucklenuts","Cloud Treasure", "Derpy Hooves", "Fluttershy", "Lyra Heartstrings", "Nurse Redheart", "Purple Smart", "Rainbowshine","Rarity", "Sniper" }; char NamePrefixes[][] = { "Doctor", "Princess", "Sgt.", "The Real", "Nurse", }; bool EnableMareNames = true; public void OnPluginStart() { RegAdminCmd("mare_enable", Mare_Status, ADMFLAG_GENERIC, "Changes status of the mare names plugin"); RegAdminCmd("mare_givenew", Change_Name, ADMFLAG_GENERIC, "Gives a chosen player (or all) a new mare name"); } public Action Mare_Status(int client, int args) { if (args != 1) { ReplyToCommand(client, "[mare] Useage: mare_enable <0|1>"); return Plugin_Handled; } char arg1[2]; GetCmdArg(1, arg1, sizeof(arg1)); int num = StringToInt(arg1); if (num == 0) { // wait until new map for username revert EnableMareNames = false; } else if (num == 1) { // give everyone mare names now EnableMareNames = true; for (new i = 1; i <= MaxClients; i++) { NameChange(i); } } else { ReplyToCommand(client, "[mare] Useage: mare_enable <0|1>"); } return Plugin_Handled; } public Action Change_Name(int client, int args) { if (args != 1) { ReplyToCommand(client, "[mare] Useage: mare_givenew "); return Plugin_Handled; } char arg1[MAX_NAME_LENGTH]; GetCmdArg(1, arg1, MAX_NAME_LENGTH); for (new i = 1; i <= MaxClients; i++) { if (StrEqual(arg1, "all")) { NameChange(i); } else { char CurrentName[MAX_NAME_LENGTH]; GetClientName(i, CurrentName, MAX_NAME_LENGTH); if (StrEqual(arg1, CurrentName)) { NameChange(i); break; } } } return Plugin_Handled; } public void OnClientConnected(int client) { if (EnableMareNames == true) { NameChange(client); } } public void GiveMareName(int client) { char Username[MAX_NAME_LENGTH]; char OriginalUsername[MAX_NAME_LENGTH]; GetClientName(client, OriginalUsername, sizeof(OriginalUsername)); if (StrEqual(OriginalUsername, "HorseTV") != true) { for (int tries = 1; tries <= 50; tries++) { switch(GetRandomInt(1,10)){ // 1:x chance to get simple vs compound name case 1: { // simple switch(GetRandomInt(1,10)){ case 1: { // rare name Format(Username, MAX_NAME_LENGTH, "%s", RareSimpleNames[GetRandomInt(0, sizeof(RareSimpleNames) - 1)]); } default: { // normal name Format(Username, MAX_NAME_LENGTH, "%s", SimpleNames[GetRandomInt(0, sizeof(SimpleNames) - 1)]); } } } default: { // compound char FirstName[MAX_NAME_LENGTH]; switch(GetRandomInt(1,20)){ // first name case 1: { // first rare Format(FirstName, MAX_NAME_LENGTH, "%s", RareFirstNames[GetRandomInt(0, sizeof(RareFirstNames) - 1)]); } default: { // first normal Format(FirstName, MAX_NAME_LENGTH, "%s", FirstNames[GetRandomInt(0, sizeof(FirstNames) - 1)]); } } char LastName[MAX_NAME_LENGTH]; switch(GetRandomInt(1,20)){ // last name case 1: { // second rare Format(LastName, MAX_NAME_LENGTH, "%s", RareLastNames[GetRandomInt(0, sizeof(RareLastNames) - 1)]); } default: { // second normal Format(LastName, MAX_NAME_LENGTH, "%s", LastNames[GetRandomInt(0, sizeof(LastNames) - 1)]); } } Format(Username, MAX_NAME_LENGTH, "%s %s", FirstName, LastName); // combine switch(GetRandomInt(1,100)){ // potential prefix case 1:{ Format(Username, MAX_NAME_LENGTH, "%s %s", NamePrefixes[GetRandomInt(0, sizeof(NamePrefixes) - 1)], Username); } } } } bool legality = CheckNameLegal(client, Username); if (legality == true) { break; } } SetClientName(client, Username); } } public void NameChange(int client) { // attempt to circumvent setclientname bug static ConVar sv_namechange_cooldown_seconds; if (!sv_namechange_cooldown_seconds) { sv_namechange_cooldown_seconds = FindConVar("sv_namechange_cooldown_seconds"); } float OriginalValue = sv_namechange_cooldown_seconds.FloatValue; sv_namechange_cooldown_seconds.FloatValue = 0.0; // this assumably helps prevent server from preventing name change SetClientName(client, "NAME PLACEHOLDER"); RequestFrame(GiveMareName, client); // executes function on next frame sv_namechange_cooldown_seconds.FloatValue = OriginalValue; } public bool CheckNameLegal(int client, char[] Username) { for (new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i) && client != i) { char PlayerUsername[MAX_NAME_LENGTH]; GetClientName(i, PlayerUsername, sizeof(PlayerUsername)); if (StrEqual(PlayerUsername, Username)) { return false; } } } return true; } // A MARE OF JOY /* .:rLfth1FUtYJ7ri:. ::iiri77jthXbbDbZDRDR9Fci .:L1f1fhFXPEbDPj: .:LjhhpXXf1ffUfUff1fh1P9Z0t, .71MMRDD99XphXhh2F21f1f1f1212SpZSr rPDpXttJjYJYjYjJjjtUft2fF2Ffh2F1hh9E9i iEDPfhtJcJJYLY7L777L777L7L7cLJJUJ1fF1P9RP: .PQR0FY:.JPUJLLLc7c7c7L7c7L7L7L777L7LLYcU20M2 YQM7: 71cL7L7c7L7cLcLcLYLcLcLcLcLcLL7L7ccjXM: :L. U017L7cLcLcLYLYLc7YLcLYLcLYcjj2th1F2FfFPQF iMXJLLLcLcLc7cLcLcLYLcLYcJjh1hjYri::,:,::irbQ. 1RUcLc7cLc7cLc7cLcLcLJYt2StYi: JQi iD9cLLcLYLYLcLcLcLcLYct11Jr. . . rQ7 .:i. .SZ2Lc7cLcLcLcLcLcLccjf1c: . . . . :Qj :LfjYc9: ,fMhJ7LLc7cLcLc7cLL7cJtL: . . ZUrFJr,,..7h ..::rJ0DXYYLL7cLc7L777L7LLJY7, .:7Uj: cj7:..:,:.:2: .:LXZRME00ppXPhhfJ777JYJ2XhSYJJc7bEi .,i7YJ2t1ffJJ7r:. rUi..,,:,:,,.Yr ,.:rricr77hpQpQQ.,:,,. .U: .icJUYc7r:i:iirir7YjFhXL7,,,:,:,:,:,.rL .fQQQ :Q ..,. :Er:Jhcr::rcYYtSJr ... :r:.:,:,:,:,:,:.77 .hQQQ, 7Q .:,.rQ9t7. :FQQQQQE:.YEQQ7 iEr.,,:,:,:,:.i::,.77 FQQQQ QX ,,.rpr. 7QQQQQQQQQQ, 7QQUQQp.,,:,:,:,:,:r,,:.Ui cRQQQQQjQ .,:,i. .QQQQQQQQXQQQQ7 LQh ....:,:,:,,7:,:.:1. .hRQQ0PQQ: ,:,:.. iQQQQQQQf .QQQ :Q .:rrr,:,:,,rr.:..LU r::QQfhQr .:,:,, :QQQQQQQQ rQQ, QQQQQMJ,,:.,77.:,.:F, .: rQQQQi .:,:,:. QQQQQQQQ, :QQ: Pp ..,,:7r.,,.,Yt: .j2Yf:iQQQQ, .,,:,:, :QQQQQQQQL XQQ MQLcr:.,,:7i.,,,.cLF: LF:::ii:. .,:,:,:,: fQQQQQ QQ. cQQL rbQQQ2,,:i:.:,,,c7L2 cc..,,,...,.:,:,:,:, 2QQQQQ.,QQQ0SQQQZ . .,:,,,:,.,Y77F. r1.,,:ri,,.:,:,:,:,, :QQQQQQQ0.JEQRQZ .:,,,,,:,:,:..:cr71: fJ...,.,.:r,,:,:,:,, tQQQQRMt rFPi .i::,:,:,:,,.,i17L2. .t Y2r:,. ,jt.,,:,:,:,..RQRRQQQM. . ,i::,:,:,:...i7F9fJ :PL ,77LYjpQj,.:,:,:,:...iL1X9Fj .:i::,:,:,,.:7UccXEr 7S:. QQQQJ,,,:,:,:,:,. .:::::,:,:,:..FDY7JMi 7h:., LQZQ7,.:,:,:,:,:,:::.. ..,::i::::,:,:,:, 7ZJ7rhF iS:... :QQXr.,,:,:,:,:,:,:,::i:i:i::::,:,:,:,:,:,..pt7r7Pc .S:.:rr ,Qtri.,:,:,:,:,:,:,:::,:,:,:::,:,:,:,:,,. :p27rrcDi friL7ir iQ7L:.:,:,:,:,:,:,:,:,:,:,:,:,:,:,:,,...,Y0j777LhXc:LJcr:... tRr:.,,:,:,:,:,:,:,:,:,:,:,:,,,,.....,:UXFL77771fSr7cc:..:,: .LXc:...,,:,:,:,:,:,:,:,:,:,:,:,..,,i7t1XtL777772f22irc,.,:,.r ,:7JUL7ii::,,.,.,.,.,,:,:,:,:r1pDbbS1YLr77L77LFtfftiY:.,:,.:U .:i7LJYJcc7Lrri:::::,:,:,,.:rJt2JUjULL77Y1UfUFJ7r.,:,,,Jr ...,.rti::,:,:,:,,.. rh1c7rLUhUtjf2Jr,.:,:,c7. */