| Blockland Forums > Modification Help |
| Client-Side Message Modifier? |
| (1/5) > >> |
| Lil Robot:
Irk89 helped me make a script, in which he did most of the work because I suck at coding. --- Code: ---// Author: Irk89 // Desc: replace a with 4, and s with 5 // a % at the beginning of whenever i chat // since we are overriding a function (inserting what we want into it) // we have to set up a package. package MessageOverrider { //the function we are going to override function serverCmdMessageSent(%client, %message) { // this is called right before the script sends the message to the server. // now we can do anything we want with %message if(%client.bl_id == 1279) { %message = strreplace(%message, "a", "4"); %message = strreplace(%message, "s", "5"); %message = strreplace(%message, "A", "4"); %message = strreplace(%message, "S", "5"); %message = "%"@%message; } // end changing message, send it to the server Parent::serverCmdMessageSent(%client, %message); return; } }; activatePackage(MessageOverrider); // end of file --- End code --- I want to make this client-sided, so that everyone sees it, but the server doesn't have to have the script running, just me. Is this possible? For example: LilRobot: %h4s 4nyone 5een my gl455e5? -except the server doesn't need the script running, only I do and it converts it to something like that example there. I want it just so I can use my trollhandle in BL, just for fun. |
| MegaScientifical:
--- Code: ---package MessageOverrider { function serverCmdMessageSent(%cl, %msg) { if(%cl.bl_id == 1279) %msg = LilRobotTextConvert(%msg); Parent::serverCmdMessageSent(%cl, %msg); } }; activatePackage(MessageOverrider); function LilRobotTextConvert(%m) { return "%" @ strReplace(strReplace(strReplace(strReplace(%m, "a", "4"), "s", "5"), "A", "4"), "S", "5"); } function NMH_Type::send(%this) { %text = stripTrailingSpaces(%this.getValue()); if(strStr(%text, "/") == 0) { %command = getSubStr(firstWord(%text), 1, strLen(firstWord(%text))-1); %vars = restWords(%text); if(strLen(%vars)) { %varlist = "\"" @ getWord(%vars, 0) @ "\""; for(%i = 1; %i < getWordCount(%vars); %i++) %varlist = %varlist @ ", \"" @ getWord(%vars, %i) @ "\""; eval("commandToServer(\'" @ %command @ "\'," @ %varlist @ ");"); } else eval("commandToServer(\'" @ %command @ "\');"); canvas.popdialog(NewMessageHud); return; } else if(strLen(%text)) { %text = LilRobotTextConvert(%msg); if(NewMessageHud.channel $= "TEAM") commandToServer('teamMessageSent', %text); else commandToServer('messageSent', %text); } canvas.popdialog(NewMessageHud); } --- End code --- Someone correct me. |
| Destiny/Zack0Wack0:
--- Quote from: MegaScientifical on April 08, 2011, 02:07:25 AM ---Someone correct me. --- End quote --- Sure. 1) You don't need to compress the code. He is trying to understand how to script. 2) Simpler version: --- Code: ---package Client_LilRobotChat { function NMH_Type::send(%this) { if(getSubStr(%msg,0,1) !$= "/") { %text = trim(%this.getValue()); %text = strReplace(%text,"a","4"); %text = strReplace(%text,"s","5"); %text = strReplace(%text,"A","4"); %text = strReplace(%text,"S","5"); %text = "%" @ %text; %this.setValue(%text); } return Parent::send(%this); } }; activatePackage(Client_LilRobotChat); --- End code --- EDIT: Not sure if it'll work, but if it doesn't I have another just as simple way of doing it. |
| MegaScientifical:
Oh, you edited it while I was quoting. o.o Well, it should work. I think send takes that text. But that method does seem iffy in a way. Edit: Capitalized the B in But. :cookieMonster: |
| Destiny/Zack0Wack0:
It works. |
| Navigation |
| Message Index |
| Next page |