#1
|
|||
|
|||
MUSHclient
I was wondering if anyone else besides me used MUSHclient. Right now I'm developing a Bot Engine using LUA script to load custom scripts, and run them. I've also added some status boxes and whatnot to help me keep track of important stats. In the process of writing a spell tracker, to display what spells I have active, and the time active. It will tick down, and show me dynamically how long I have left on spells without having to check "affects". Everything is in its Alpha stages thus far, but was wondering if anyone else has had any success using MUSHclient as well.
|
#2
|
|||
|
|||
I do
I, for one, use MUSHclient and have since I first discovered it. I think it's
tops as far as clients go, but I haven't used it since starting at Nodeka because of nembot. However, I think that you making a script loader for it is absolutely fantastic and would be crazily appreciated by many if you were to share it. Keep up the good work! Khelben, the Last Frost Giant |
#3
|
|||
|
|||
Right now it's still in Pre-Alpha stages. I use it, along with a huge assortment of triggers, and it works quite well. The way it works is I have a Folder with .area files in it. To start one you type: script set (filename). This will set the script. To begin running the script (incase you need to do any last minute spellups) just type: script start. Script files are made manually, for now. I've the routine setup to save them, but I just write them manually. I use an Alias on my keypad to record movement to MUSH's notepad, then just copy the movements to my scipt file. An example, here's part of my Bayeshi file.
Code:
Name: Bayeshi Kill: A large grey wolf seems to be hunting. KillWord: wolf KillType: rage Kill: Something rustles in the branches above you. KillWord: cat KillType: rage Kill: Looking deadly by sheer physique, [ number ] cats seem abnormally large. KillWord: cat KillType: rage Kill: A pack of [ number ] wolves look upon you with hungry eyes. KillWord: wolf KillType: rage Kill: A Bayeshi man rushes by. KillWord: man KillType: rage Kill: A Bayeshi woman is here doing chores. KillWord: woman KillType: rage Kill: Small in physical stature, a company of women, [ number ] in size, work together. KillWord: woman KillType: rage Kill: Rushing to their next job these [ number ] men brush past you. KillWord: man KillType: rage Move: West Move: North Move: West Move: South Move: West Move: West Move: West Move: West Move: North Move: East Move: East Move: East Move: East Move: East Move: North Move: West Move: West Move: West Move: West Move: West Move: North Move: East Move: East Move: East Move: East Move: East Move: North Move: West Move: West Move: West Move: West Move: West Move: North |
#4
|
|||
|
|||
I wrote an auto-rescue for MUSHclient incase anyone was looking for one, or whatever. Also posting it just to show off the capibilities of MUSH. There's a trigger, an alias, and a script file. The script is in LUA. To use you'll need 2 functions that I wrote to split strings apart. If you're intersted in using, just reply here or whatnot and I'll post those functions too.
Code:
<aliases> <alias match="autorescue *" enabled="y" send_to="12" sequence="100" > <send>aRescue_Command("%1")</send> </alias> </aliases> Code:
<triggers> <trigger enabled="y" match="*attacks on *:*" send_to="12" sequence="300" > <send>Do_Rescue("%2");</send> </trigger> </triggers> Code:
function aRescue_Command(command) local cTable = {"List", "Add", "Commands", "Remove", "Report"}; local cBuf, cExe = ""; cBuf = strip_first(command); cExe = pull_first(command); if( cExe == "" or nil) then cExe = command; end if( cBuf == cExe ) then cBuf = nil; end if( cExe == "commands" ) then Note("Current Commands:"); Note("-----------------"); for i = 1, table.getn(cTable), 1 do Note(cTable[i]); end Note("-----------------"); return; end if( cExe == "add") then if(cBuf == "" or cBuf == nil) then ColourNote("red", "", "Add who to Auto-Rescue?"); return; end local cRes = GetVariable("AutoRescue"); if(cRes == nil) then SetVariable("AutoRescue", ""); cRes = GetVariable("AutoRescue"); SetVariable("AutoRescue", cRes .. "" .. cBuf); Note("Added " .. cBuf .. " to Auto-Rescue"); return; end if( string.find(cRes, cBuf) ) then ColourNote("red", "", cBuf .. " is already being rescued!"); return; end SetVariable("AutoRescue", cRes .. " " .. cBuf); Note("Added " .. cBuf .. " to Auto-Rescue"); end if( cExe == "remove") then if(cBuf == "" or cBuf == nil) then ColourNote("red", "", "Remove who from Auto-Rescue?"); return; end local cRes = GetVariable("AutoRescue"); if( cRes == nil) then ColourNote("red", "", "You aren't rescuing anyone!"); return; end if( string.find(cRes, cBuf)) then cRes = string.gsub(cRes, cBuf, ""); SetVariable("AutoRescue", cRes); Note(cBuf .. " removed from Auto-Rescue."); return; else Note(cBuf .. " is not on Auto-Rescue."); return; end end if( cExe == "list") then local cRes = GetVariable("AutoRescue"); if( cRes == nil) then ColourNote("red", "", "You aren't rescuing anyone!"); return; end Note("Currently Rescuing: " .. cRes); return; end if( cExe == "report") then local cRes = GetVariable("AutoRescue"); if( cRes == nil) then ColourNote("red", "", "You aren't rescuing anyone!"); return; end Send("gt Currently Rescuing: " .. cRes); return; else Note("No such arugment supported. To see a list of supported arguments, use the \"commands\" argument."); end end function Do_Rescue(player) local cRes = GetVariable("AutoRescue"); if( cRes == nil) then return; end if(string.find(cRes, player)) then Send ("rescue " .. player); return; end end Last edited by Sivamet; 06-20-2008 at 01:36 PM. |
#5
|
||||
|
||||
Quote:
Code:
var kos_list = new Array(); var kos_att = "kill"; function kos_input( event ) { switch( event ) { default: split = event.split( " " ); switch (split[ 0 ]) { case "/kosadd": kos_list.push( split[ 1 ] ); jmc.output( split[ 1 ] + " has been added to your KOS list." ); return 1; break; case "/kosrem": var found = false; for (var x = 0; x < kos_list.length;x++ ) { if (kos_list[ x ] == split[ 1 ]) { kos_list[ x ] = null; found = true; } } if (found) { jmc.output( split[ 1 ] + " has been removed from your KOS list." ); kos_optimize(); } else { jmc.output( split[ 1 ] + " was not found on your KOS list." ); } return 1; break; case "/kosatt": kos_att = ''; for (var x = 1;x < split.length; x++) { kos_att = kos_att + split[ x ] + " "; } jmc.output("Your attack has been set to " + kos_att); return 1; break; case "/kosres": kos_list = new Array(); jmc.output( "You KOS list has been reset." ); return 1; break; case "/kos": var msg = "[KOS List: (Action: " + kos_att + ")(Members: "; var comma = 0; for (var x = 0; x < kos_list.length;x++ ) { if (kos_list[ x ] != null) { if (comma) { msg = msg + ", " + kos_list[ x ]; } else { msg = msg + kos_list[ x ]; comma = 1; } } } msg = msg + ")]"; jmc.parse( split[ 1 ] + " " + msg ); return 1; break; case "/?": jmc.showme( "" ); jmc.showme( "KOS help" ); jmc.showme( "---------------------------------------"); jmc.showme( "/kos <channel> - displays your list of kos in channel"); jmc.showme( "/kosadd <player name> - adds a player to your KOS list"); jmc.showme( "/kosrem <player name> - removes a player to your KOS list"); jmc.showme( "/kosres - removes all players from your KOS list"); jmc.showme( "/kosatt <skill/spell> - changes your default attack"); jmc.showme( "---------------------------------------"); jmc.showme( "END OF KOS HELP" ); return 1; break; } return 0; break; } } function kos_optimize() { var temp = kos_list; y = 0; kos_list = new Array(); for (var x = 0; x < temp.length; x++) { if (temp[ x ] != null) { kos_list[ y ] = temp[ x ]; y++; } } } function kos_incoming( event ) { var line = remascii( event ); var player = null; var regex = new RegExp( /(.*) (is standing here.|is resting here.|has arrived.|appears with a flashing light.)/ ); for (var x = 0; x < kos_list.length; x++ ) { if ((player = regex.exec( line )) != null) { if (player[ 1 ].search( kos_list[ x ] ) != -1) jmc.parse( kos_att + " " + kos_list[ x ]); } } return event; } register_handler( "Incoming", kos_incoming ); register_handler( "Input", kos_input );
__________________
What is now proved, was once imagined! |
#6
|
|||
|
|||
Show off hehe. Didn't think about that. Shows how often I use forums 0.o.. Was just pleased it came out as beautiful as it did. =D
|
Thread Tools | |
Display Modes | |
|
|