mIRC MUD Client Script — File Browser
mIRCMUDClientScriptv1.6b / mIRCMUDClientScriptv1.6b / Mudclient / Mudclient.mrc
Mudclient.mrc — 35.69 KB — Download this file
;==========================================================
; mIRC MUD Client Script Version 1.6b
; By Brenton Scott aka Trixar_za
; http://www.trixarian.co.cc
;
; Multi-Space Support:
; spaces.dll v1.1 - multi-space support DLL for mIRC
; Copyright (c) 2005-2009, David van Moolenbroek
; http://www.xise.nl/mirc/
;
;==========================================================
;=========
; Loading
;=========
on *:LOAD:{
if ($version < 6.20) {
echo -
echo 4 WARNING:
echo -
echo MUDClient might not function correctly with your copy of mIRC!
echo Please update to the latest mIRC from http://www.mirc.com
echo -
}
if (!%mud.address) { %mud.address = mud.wormhole.se }
if (%mud.winreopen) { unset %mud.winreopen }
if (!%mud.port) { %mud.port = 4000 }
if (!%mud.numwalk) { %mud.numwalk = 1 }
if (!%mud.tbarhide) { %mud.tbarhide = 1 }
if (!%mud.colourdot) { %mud.colourdot = on }
if (!%mud.echodot) { %mud.echodot = on }
if (!%mud.quitdot) { %mud.quitdot = off }
if (!%mud.returndot) { %mud.returndot = off }
if (!%mud.font) { %mud.font = FixedSys }
if (!%mud.fontsize) {
if (%mud.font == FixedSys) || (%mud.font == Courier) { %mud.fontsize = 9 }
else { %mud.fontsize = 14 }
}
if ((!%mud.logdot) && (%mud.logging)) { %mud.logdot = on }
if ((!%mud.logdot) && (!%mud.logging)) { %mud.logdot = off }
if ((!%mud.tbarhidedot) && (%mud.tbarhide)) { %mud.tbarhidedot = on }
if ((!%mud.tbarhidedot) && (!%mud.tbarhide)) { %mud.tbarhidedot = off }
if ((!%mud.numdot) && (%mud.numwalk)) { %mud.numdot = on }
if ((!%mud.numdot) && (!%mud.numwalk)) { %mud.numdot = off }
if ((!%mud.keeptexton) && (!%mud.keeptext)) { %mud.keeptextdot = off }
if ((!%mud.keeptexton) && (%mud.keeptext)) {
%mud.keeptextdot = off
unset %mud.keeptext
}
if ((!%mud.fontdot1) && (%mud.font == FixedSys)) { %mud.fontdot1 = $chr(171) }
if ((!%mud.spacedef) && (!%mud.spaceoff) && (!%mud.spacealt)) { %mud.spacedef = $chr(171) }
if ((!%mud.quit) || (%mud.quit != quit)) { %mud.quit = quit }
if ((!%mud.return) || (%mud.return != $lf)) { %mud.return = $lf }
if ((!%mud.aldot) && (!%mud.name) && (!%mud.password)) { %mud.aldot = is not set }
if ((!%mud.aldot) && (%mud.name) && (!%mud.password)) { %mud.aldot = is not set }
if ((!%mud.aldot) && (%mud.name) && (%mud.password)) { %mud.aldot = is set }
if ((!%mud.saydot) && (!%mud.saymode)) { %mud.saydot = off }
if ((!%mud.saydot) && (%mud.saymode)) { %mud.saydot = on }
if ((!%mud.logpath2) && (%mud.logging)) { %mud.logpath2 = $sdir($logdir) }
}
;=======
; Menus
;=======
menu status,channel,query {
MUDclient
.Connect:{
if (!%mud.enter) { %mud.enter = 1 }
dialog -ma MUDclient MUDclient
}
.-
.Features
..Global Logging
...Global Logging %mud.logdot:{
if (!%mud.logging) {
if (!%mud.logpath2) { %mud.logpath2 = $sdir($logdir) }
set %mud.logging 1
set %mud.logdot on
halt
}
else {
unset %mud.logging
set %mud.logdot off
halt
}
}
...-
...Set Logging Path:{
if (!%mud.logpath2) { %mud.logpath2 = $sdir($logdir) }
else { %mud.logpath2 = $sdir($qt(%mud.logpath2)) }
halt
}
..Auto-login %mud.aldot:dialog -m Autologin Autologin
..Command Locking %mud.saydot:{
if (!%mud.saymode) {
var %mud.jset $?="What command do you want to lock?"
if (%mud.jset) {
set %mud.saymode %mud.jset
set %mud.saydot on
halt
}
else { halt }
}
else {
unset %mud.saymode
set %mud.saydot off
halt
}
}
..Numpad Walking %mud.numdot:{
if (!%mud.numwalk) {
set %mud.numwalk 1
set %mud.numdot on
halt
}
else {
unset %mud.numwalk
set %mud.numdot off
halt
}
}
..Keep Sent Text %mud.keeptextdot:{
if (!%mud.keeptexton) {
set %mud.keeptexton 1
set %mud.keeptextdot on
halt
}
else {
unset %mud.keeptexton
unset %mud.keeptext
set %mud.keeptextdot off
halt
}
}
.Settings
..Font
...Default Font %mud.fontdot1:{
set %mud.fontdot1 $chr(171)
set %mud.font FixedSys
set %mud.fontsize 9
unset %mud.fontdot2 %mud.fontdot3 %mud.fontdot4
}
...-
...Courier %mud.fontdot2:{
set %mud.fontdot2 $chr(171)
set %mud.font Courier
set %mud.fontsize 9
unset %mud.fontdot1 %mud.fontdot3 %mud.fontdot4
}
...Courier New %mud.fontdot3:{
set %mud.fontdot3 $chr(171)
set %mud.font Courier New
set %mud.fontsize 14
unset %mud.fontdot1 %mud.fontdot2 %mud.fontdot4
}
...Lucida Console %mud.fontdot4:{
set %mud.fontdot4 $chr(171)
set %mud.font Lucida Console
set %mud.fontsize 14
unset %mud.fontdot1 %mud.fontdot2 %mud.fontdot3
}
..Compatibility
...Input Echoing %mud.echodot:{
if (%mud.noecho) {
unset %mud.noecho
%mud.echodot = on
}
else {
%mud.noecho = 1
%mud.echodot = off
}
}
...MUCK QUIT %mud.quitdot:{
if (%mud.quit == quit) {
set %mud.quit QUIT
set %mud.quitdot on
}
else {
set %mud.quit quit
set %mud.quitdot off
}
}
...CRLF Return %mud.returndot:{
if (%mud.return == $lf) {
set %mud.return $crlf
set %mud.returndot on
}
else {
set %mud.return $lf
set %mud.returndot off
}
}
..Colour
...Auto-Set Colours %mud.colourdot:{
%mud.colourdot = on
unset %mud.customcolour %mud.customwhitedot %mud.customblackdot %mud.customstripdot %mud.clearviewdot
if ($color(background) == 0 || $color(background) == 15) {
%mud.colour = 1
%mud.bn = 99,01
%mud.bn2 = 01,00
%mud.by = 99,08
%mud.by2 = 99,07
%mud.bm = 99,13
%mud.bm2 = 99,06
%mud.bw = 99,15
%mud.bw2 = 99,01
}
else {
%mud.colour = 15
%mud.bn = 99,01
%mud.bn2 = 15,01
%mud.bw = 99,15
%mud.bw2 = 01,15
%mud.bm = 99,13
%mud.bm2 = 99,06
}
}
...-
...White Backgrounds %mud.customwhitedot:{
%mud.colourdot = off
%mud.customwhitedot = $chr(171)
%mud.customcolour = 1
%mud.colour = 1
%mud.bn = 99,01
%mud.bn2 = 01,00
%mud.by = 99,08
%mud.by2 = 99,07
%mud.bm = 99,13
%mud.bm2 = 99,06
%mud.bw = 99,15
%mud.bw2 = 99,01
unset %mud.customblackdot %mud.customstripdot %mud.clearviewdot
}
...Black Backgrounds %mud.customblackdot:{
%mud.colourdot = off
%mud.customblackdot = $chr(171)
%mud.customcolour = 15
%mud.colour = 15
%mud.bn = 99,01
%mud.bn2 = 15,01
%mud.bw = 99,15
%mud.bw2 = 01,15
%mud.bm = 99,13
%mud.bm2 = 99,06
unset %mud.customwhitedot %mud.customstripdot %mud.clearviewdot
}
...Clearview Colours %mud.clearviewdot:{
%mud.colourdot = off
%mud.clearviewdot = $chr(171)
%mud.bm = 99,13
%mud.bm2 = 99,06
%mud.customcolour = clearview
unset %mud.colour %mud.customwhitedot %mud.customstripdot %mud.customblackdot
}
...-
...Strip All The Colours %mud.customstripdot:{
%mud.colourdot = off
%mud.customstripdot = $chr(171)
%mud.customcolour = strip
unset %mud.colour %mud.customwhitedot %mud.customblackdot %mud.clearviewdot
}
..Spacing
...Default %mud.spacedef:{
%mud.spacedef = $chr(171)
unset %mud.spacealt %mud.spaceoff %mud.spacing
}
...Alternitive %mud.spacealt:{
set %mud.spacing 1
%mud.spacealt = $chr(171)
unset %mud.spaceoff %mud.spacedef
}
...-
...Disabled %mud.spaceoff:{
set %mud.spacing 1
%mud.spaceoff = $chr(171)
unset %mud.spacealt %mud.spacedef
}
..Tabbar
...Tabbar Auto-Hide %mud.tbarhidedot:{
if (!%mud.tbarhide) {
set %mud.tbarhide 1
set %mud.tbarhidedot on
halt
}
else {
unset %mud.tbarhide
set %mud.tbarhidedot off
halt
}
}
...Edit Tabbar Defaults:/run notepad.exe $qt($scriptdir $+ \ $+ Mudclienttab.cfg)
...-
...Refresh All Tabbars:{
if ($window(@MUDclient*,0)) {
var %mud.winnum = $window(@MUDclient*,0)
while (%mud.winnum) {
var %mud.window = $window(@MUDclient*,%mud.winnum)
var %mud.i = $calc($lines($qt($scriptdir\MUDclienttab.cfg))+1)
var %mud.b = 1
var %mud.gimme = 1
clear -l %mud.window
while %mud.b < %mud.i {
%mud.gimme = $read($qt($scriptdir\MUDclienttab.cfg),%mud.b)
iline -ln %mud.window %mud.b %mud.gimme
inc %mud.b
}
dec %mud.winnum
}
}
}
.Other
..Docs
...Read The Mudclient Manual:/run notepad.exe $qt($scriptdir $+ \ $+ Mudclient Manual.txt)
...Read The Mudclient Version list:/run notepad.exe $qt($scriptdir $+ \ $+ Mudclient Version.txt)
...Read The Mudclient TODO list:/run notepad.exe $qt($scriptdir $+ \ $+ Mudclient TODO.txt)
...Read The Beginner's Guide:/run notepad.exe $qt($scriptdir $+ \ $+ WormholeMUD's Advice for Beginners.txt)
.-
.Close All:{
closemud DCALL
close -@ @MUDclient*
halt
}
.Disconnect All:closemud DCALL
}
menu @MUDclient* {
Connect:{
if (!%mud.enter) { %mud.enter = 1 }
%mud.address = $gettok($active,2,58)
%mud.port = $gettok($active,3,58)
dialog -m MUDclient MUDclient
}
-
Features
.Global Logging
..Global Logging %mud.logdot:{
if (!%mud.logging) {
echo -m $active 7GLOBAL LOGGING ON
if (!%mud.logpath2) { %mud.logpath2 = $sdir($logdir) }
set %mud.logging 1
set %mud.logdot on
halt
}
else {
echo -m $active 7GLOBAL LOGGING OFF
unset %mud.logging
set %mud.logdot off
halt
}
}
..-
..Set Logging Path:{
if (!%mud.logpath2) { %mud.logpath2 = $sdir($logdir) }
else { %mud.logpath2 = $sdir($qt(%mud.logpath2)) }
halt
}
.Auto-login %mud.aldot:dialog -m Autologin Autologin
.Command Locking %mud.saydot:{
if (!%mud.saymode) {
var %mud.jset $?="What command do you want to lock?"
if (%mud.jset) {
set %mud.saymode %mud.jset
echo -m $active 7COMMAND LOCKING ON
set %mud.saydot on
halt
}
else { halt }
}
else {
echo -m $active 7COMMAND LOCKING OFF
unset %mud.saymode
set %mud.saydot off
halt
}
}
.Numpad Walking %mud.numdot:{
if (!%mud.numwalk) {
echo -m $active 7NUMPAD WALKING ON
set %mud.numwalk 1
set %mud.numdot on
halt
}
else {
echo -m $active 7NUMPAD WALKING OFF
unset %mud.numwalk
set %mud.numdot off
halt
}
}
.Keep Sent Text %mud.keeptextdot:{
if (!%mud.keeptexton) {
set %mud.keeptexton 1
set %mud.keeptextdot on
halt
}
else {
unset %mud.keeptexton
unset %mud.keeptext
set %mud.keeptextdot off
halt
}
}
Settings
.Font
..Default Font %mud.fontdot1:{
set %mud.fontdot1 $chr(171)
set %mud.font FixedSys
set %mud.fontsize 9
unset %mud.fontdot2 %mud.fontdot3 %mud.fontdot4
font -a %mud.fontsize %mud.font
}
..-
..Courier %mud.fontdot2:{
set %mud.fontdot2 $chr(171)
set %mud.font Courier
set %mud.fontsize 9
unset %mud.fontdot1 %mud.fontdot3 %mud.fontdot4
font -a %mud.fontsize %mud.font
}
..Courier New %mud.fontdot3:{
set %mud.fontdot3 $chr(171)
set %mud.font Courier New
set %mud.fontsize 14
unset %mud.fontdot1 %mud.fontdot2 %mud.fontdot4
font -a %mud.fontsize %mud.font
}
..Lucida Console %mud.fontdot4:{
set %mud.fontdot4 $chr(171)
set %mud.font Lucida Console
set %mud.fontsize 14
unset %mud.fontdot1 %mud.fontdot2 %mud.fontdot3
font -a %mud.fontsize %mud.font
}
.Compatibility
..Input Echoing %mud.echodot:{
if (%mud.noecho) {
unset %mud.noecho
%mud.echodot = on
}
else {
%mud.noecho = 1
%mud.echodot = off
}
}
..MUCK QUIT %mud.quitdot:{
if (%mud.quit == quit) {
set %mud.quit QUIT
set %mud.quitdot on
}
else {
set %mud.quit quit
set %mud.quitdot off
}
}
..CRLF Return %mud.returndot:{
if (%mud.return == $lf) {
set %mud.return $crlf
set %mud.returndot on
}
else {
set %mud.return $lf
set %mud.returndot off
}
}
.Colour
..Auto-Set Colours %mud.colourdot:{
%mud.colourdot = on
unset %mud.customcolour %mud.customwhitedot %mud.customblackdot %mud.customstripdot %mud.clearviewdot
if ($color(background) == 0 || $color(background) == 15) {
%mud.colour = 1
%mud.bn = 99,01
%mud.bn2 = 01,00
%mud.by = 99,08
%mud.by2 = 99,07
%mud.bm = 99,13
%mud.bm2 = 99,06
%mud.bw = 99,15
%mud.bw2 = 99,01
}
else {
%mud.colour = 15
%mud.bn = 99,01
%mud.bn2 = 15,01
%mud.bw = 99,15
%mud.bw2 = 01,15
%mud.bm = 99,13
%mud.bm2 = 99,06
}
}
..-
..White Backgrounds %mud.customwhitedot:{
%mud.colourdot = off
%mud.customwhitedot = $chr(171)
%mud.customcolour = 1
%mud.colour = 1
%mud.bn = 99,01
%mud.bn2 = 01,00
%mud.by = 99,08
%mud.by2 = 99,07
%mud.bm = 99,13
%mud.bm2 = 99,06
%mud.bw = 99,15
%mud.bw2 = 99,01
unset %mud.customblackdot %mud.customstripdot %mud.clearviewdot
}
..Black Backgrounds %mud.customblackdot:{
%mud.colourdot = off
%mud.customblackdot = $chr(171)
%mud.customcolour = 15
%mud.colour = 15
%mud.bn = 99,01
%mud.bn2 = 15,01
%mud.bw = 99,15
%mud.bw2 = 01,15
%mud.bm = 99,13
%mud.bm2 = 99,06
unset %mud.customwhitedot %mud.customstripdot %mud.clearviewdot
}
..Clearview Colours %mud.clearviewdot:{
%mud.colourdot = off
%mud.clearviewdot = $chr(171)
%mud.bm = 99,13
%mud.bm2 = 99,06
%mud.customcolour = clearview
unset %mud.colour %mud.customwhitedot %mud.customstripdot %mud.customblackdot
}
..-
..Strip All The Colours %mud.customstripdot:{
%mud.colourdot = off
%mud.customstripdot = $chr(171)
%mud.customcolour = strip
unset %mud.colour %mud.customwhitedot %mud.customblackdot %mud.clearviewdot
}
.Spacing
..Default %mud.spacedef:{
%mud.spacedef = $chr(171)
unset %mud.spacealt %mud.spaceoff %mud.spacing
}
..Alternitive %mud.spacealt:{
set %mud.spacing 1
%mud.spacealt = $chr(171)
unset %mud.spaceoff %mud.spacedef
}
..-
..Disabled %mud.spaceoff:{
set %mud.spacing 1
%mud.spaceoff = $chr(171)
unset %mud.spacealt %mud.spacedef
}
.Tabbar
..Tabbar Auto-Hide %mud.tbarhidedot:{
if (!%mud.tbarhide) {
var %mud.window $active
set %mud.tbarhide 1
set %mud.tbarhidedot on
set %mud.winreopen 1
savebuf 9999 $active $qt($logdirMUD\ $+ $active $+ -tempbuffer.log)
close -@ %mud.window
window -HexSl12k[9] +bestxn %mud.window %mud.font %mud.fontsize
if (%mud.colour) { loadbuf 9999 -pic $+ %mud.colour $active $qt($logdirMUD\ $+ $active $+ -tempbuffer.log) }
else { loadbuf 9999 -pi $active $qt($logdirMUD\ $+ $active $+ -tempbuffer.log) }
.remove $qt($logdirMUD\ $+ $active $+ -tempbuffer.log)
var %mud.i = $calc($lines($qt($scriptdir\MUDclienttab.cfg))+1)
var %mud.b = 1
var %mud.gimme = 1
while %mud.b < %mud.i {
%mud.gimme = $read($qt($scriptdir\MUDclienttab.cfg),%mud.b)
iline -ln %mud.window %mud.b %mud.gimme
inc %mud.b
}
halt
}
else {
var %mud.window $active
unset %mud.tbarhide
set %mud.tbarhidedot off
set %mud.winreopen 1
savebuf 9999 $active $qt($logdirMUD\ $+ $active $+ -tempbuffer.log)
close -@ %mud.window
window -exSl12k[9] +bestxn %mud.window %mud.font %mud.fontsize
if (%mud.colour) { loadbuf 9999 -pic $+ %mud.colour $active $qt($logdirMUD\ $+ $active $+ -tempbuffer.log) }
else { loadbuf 9999 -pi $active $qt($logdirMUD\ $+ $active $+ -tempbuffer.log) }
.remove $qt($logdirMUD\ $+ $active $+ -tempbuffer.log)
var %mud.i = $calc($lines($qt($scriptdir\MUDclienttab.cfg))+1)
var %mud.b = 1
var %mud.gimme = 1
while %mud.b < %mud.i {
%mud.gimme = $read($qt($scriptdir\MUDclienttab.cfg),%mud.b)
iline -ln %mud.window %mud.b %mud.gimme
inc %mud.b
}
halt
}
}
..Edit Tabbar Defaults:/run notepad.exe $qt($scriptdir $+ \ $+ Mudclienttab.cfg)
..-
..Refresh This Tabbar:{
var %mud.window $active
var %mud.i = $calc($lines($qt($scriptdir\MUDclienttab.cfg))+1)
var %mud.b = 1
var %mud.gimme = 1
clear -l %mud.window
while %mud.b < %mud.i {
%mud.gimme = $read($qt($scriptdir\MUDclienttab.cfg),%mud.b)
iline -ln %mud.window %mud.b %mud.gimme
inc %mud.b
}
halt
}
..Refresh All Tabbars:{
if ($window(MUDclient*,1)) {
var %mud.winnum = $window(@MUDclient*,0)
while (%mud.winnum) {
var %mud.window = $window(@MUDclient*,%mud.winnum)
var %mud.i = $calc($lines($qt($scriptdir\MUDclienttab.cfg))+1)
var %mud.b = 1
var %mud.gimme = 1
clear -l %mud.window
while %mud.b < %mud.i {
%mud.gimme = $read($qt($scriptdir\MUDclienttab.cfg),%mud.b)
iline -ln %mud.window %mud.b %mud.gimme
inc %mud.b
}
dec %mud.winnum
}
}
}
Other
.mIRC Logging
..Logging on:log on $active
..Logging off:log off $active
..-
..Clear:{}
.Buffer
..Save As...:{
var %mud.bufsave = $sfile($logdir $+ \ $+ $active $+ -buffer.log,Save Buffer As...,Save)
if (!%mud.bufsave) { halt }
savebuf 9999 $active $qt(%mud.bufsave)
echo -m $active 7Buffer Saved to $nopath(%mud.bufsave)
halt
}
..Save && Log As...:{
var %mud.bufsave = $sfile($logdir $+ \ $+ $active $+ -buffer.log,Save Buffer & Log As...,Save)
if (!%mud.bufsave) { halt }
savebuf 9999 $active $qt(%mud.bufsave)
echo -m $active 7Buffer Saved & Logging to $nopath(%mud.bufsave)
log on $active -f %qt(%mud.bufsave)
halt
}
..-
..Clear:clear $active
.Docs
..Read The Mudclient Manual:/run notepad.exe $qt($scriptdir $+ \ $+ Mudclient Manual.txt)
..Read The Mudclient Version list:/run notepad.exe $qt($scriptdir $+ \ $+ Mudclient Version.txt)
..Read The Mudclient TODO list:/run notepad.exe $qt($scriptdir $+ \ $+ Mudclient TODO.txt)
..Read The Beginner's Guide:/run notepad.exe $qt($scriptdir $+ \ $+ WormholeMUD's Advice for Beginners.txt)
-
Close:{
if ($sock($remove($active,@))) { closemud $active }
close -@ $active
}
Disconnect:closemud $active
}
;===========================
; Dialogs & Window Creation
;===========================
dialog MUDclient {
title "MUD Client"
size -1 -1 200 135
edit %mud.address, 1, 5 25 190 20, autohs
text "Port:", 2, 6 47 50 20
edit %mud.port, 3, 5 65 190 20, autohs
button "Connect", 4, 5 95 60 30, ok
button "Cancel", 5, 135 95 60 30, cancel
box "Remote Host:", 6, 0 1 200 135
}
dialog Autologin {
title "Auto-login"
size -1 -1 200 135
edit %mud.name, 1, 5 25 190 20, autohs
text "Password:", 2, 6 47 50 20
edit %mud.password, 3, 5 65 190 20, autohs
button "OK", 4, 5 95 60 30, ok
button "Cancel", 5, 135 95 60 30, cancel
box "Name:", 6, 0 1 200 135
}
on *:DIALOG:Autologin:sclick:4:{
%mud.name = $did(1).text
%mud.password = $did(3).text
if ((!%mud.name) && (!%mud.password)) { %mud.aldot = is not set }
elseif ((!%mud.name) && (%mud.password)) { %mud.aldot = is not set }
elseif ((%mud.name) && (!%mud.password)) { %mud.aldot = is not set }
elseif ((%mud.name) && (%mud.password)) { %mud.aldot = is set }
}
on *:DIALOG:MUDclient:sclick:4:{
if (!%mud.enter) { %mud.enter = 1 }
%mud.address = $did(1).text
%mud.port = $did(3).text
var %mud.socket = MUDclient: $+ %mud.address $+ : $+ %mud.port
var %mud.window = @MUDclient: $+ %mud.address $+ : $+ %mud.port
if ($sock(%mud.socket)) { closemud %mud.window }
if (+ isincs %mud.port) { sockopen -e %mud.socket %mud.address $removecs(%mud.port,+) }
else { sockopen %mud.socket %mud.address %mud.port }
if (%mud.winreopen) { unset %mud.winreopen }
if (%mud.tbarhide) { window -HexSl12k[9] +bestxn %mud.window %mud.font %mud.fontsize }
else { window -exSl12k[9] +bestxn %mud.window %mud.font %mud.fontsize }
var %mud.i = $calc($lines($qt($scriptdir\MUDclienttab.cfg))+1)
var %mud.b = 1
var %mud.gimme = 1
while %mud.b < %mud.i {
%mud.gimme = $read($qt($scriptdir\MUDclienttab.cfg),%mud.b)
iline -ln %mud.window %mud.b %mud.gimme
inc %mud.b
}
if (+ isincs %mud.port) {
if ($window(%mud.window)) {
echo -m %mud.window 7Connecting with SSL to %mud.address on port $removecs(%mud.port,+)
}
}
else {
if ($window(%mud.window)) {
echo -m %mud.window 7Connecting to %mud.address on port %mud.port
}
}
}
;=================
; Opening Routine
;=================
on *:SOCKOPEN:MUDclient*:{
set %mud.spacedll $dll($qt($scriptdirspaces.dll), loaded, )
var %mud.socket = $sockname
var %mud.window = @ $+ %mud.socket
if (!%mud.customcolour) {
if ($color(background) == 0 || $color(background) == 15) { %mud.colour = 1 }
else { %mud.colour = 15 }
}
elseif (%mud.customcolour == 1) { %mud.colour = 1 }
elseif (%mud.customcolour == 15) { %mud.colour = 15 }
elseif (%mud.customcolour == strip) { unset %mud.colour }
elseif (%mud.customcolour == clearview) {
unset %mud.colour
%mud.bm = 99,13
%mud.bm2 = 99,06
}
if (%mud.colour == 1) {
%mud.bn = 99,01
%mud.bn2 = 01,00
%mud.by = 99,08
%mud.by2 = 99,07
%mud.bm = 99,13
%mud.bm2 = 99,06
%mud.bw = 99,15
%mud.bw2 = 99,01
}
elseif (%mud.colour == 15) {
%mud.bn = 99,01
%mud.bn2 = 15,01
%mud.bw = 99,15
%mud.bw2 = 01,15
%mud.bm = 99,13
%mud.bm2 = 99,06
}
if ($sockerr > 0) {
if ($window(%mud.window)) { echo -m %mud.window 4Cannot Connect to %mud.address }
return
}
else {
if ($window(%mud.window)) { echo -m %mud.window 7Connection Opened to %mud.address }
if (%mud.logging) {
var %mud.logpath = $qt(%mud.logpath2 $+ \ $+ %mud.window $+ .log)
write %mud.logpath $chr(160)
write %mud.logpath Starting Session: $fulldate
write %mud.logpath Session Ident: %mud.window
write %mud.logpath $logstamp Connection Opened to %mud.address
}
if ((%mud.name) && (%mud.password)) {
if ($sock(%mud.socket).status == active) {
sockwrite -nt %mud.socket %mud.name
sockwrite -nt %mud.socket %mud.password
unset %mud.enter
}
}
}
}
;=============================================
; Reading, Processing and Outputting Routines
;=============================================
on *:SOCKREAD:MUDclient*:{
var %mud.socket = $sockname
var %mud.window = @ $+ %mud.socket
var %mud.logpath = $qt(%mud.logpath2 $+ \ $+ %mud.window $+ .log)
:mud.nextread
if (!$window(%mud.window)) { halt }
if ($sockerr > 0) {
if ($window(%mud.window)) { echo -m %mud.window 4Connection to $gettok(%mud.window,2,58) Lost }
return
}
else {
sockread -f %mud.data
if ($sockbr == 0) { return }
if (!%mud.data) { %mud.data = $chr(160) }
if (%mud.data !isalnum) {
if (*[* iswmcs %mud.data) {
if (%mud.customcolour != strip) {
if ([1;31m isincs %mud.data) { %mud.data = $replacecs(%mud.data,[1;31m,04) }
elseif ([1m[31m isincs %mud.data) { %mud.data = $replacecs(%mud.data,[1m[31m,04) }
if ([0;33m isincs %mud.data) { %mud.data = $replacecs(%mud.data,[0;33m,07) }
elseif (([33m isincs %mud.data) && ([1m[33m !isincs %mud.data)) { %mud.data = $replacecs(%mud.data,[33m,07) }
if ([0;35m isincs %mud.data) { %mud.data = $replacecs(%mud.data,[0;35m ,06) }
elseif (([35m isincs %mud.data) && ([1m[35m !isincs %mud.data)) { %mud.data = $replacecs(%mud.data,[35m,06) }
if ([1;37m isincs %mud.data) { %mud.data = $replacecs(%mud.data,[1;37m,99) }
if (*[*30m* iswmcs %mud.data) { %mud.data = $regsubex(%mud.data,(\[(0;)*30m),$null) }
}
if (*[2* iswmcs %mud.data) { %mud.data = $regsubex(%mud.data,(\[2([0-9];[0-9]{1,2})f),$null) }
}
if (ý[ isincs %mud.data) { %mud.data = $removecs(%mud.data,ý[) }
if (ûV isincs %mud.data) { %mud.data = $removecs(%mud.data,ûV) }
if ([7z isincs %mud.data) { %mud.data = $removecs(%mud.data,[7z) }
; Removes characters not within the ASCII 32 to 126 and 161 to 191 character
; ranges without effecting the mIRC colour code or the ANSI control code 27
if ($regex(%mud.data,[^\x3\x1B\x20-\x7E\xA0-\xBF])) {
%mud.data = $regsubex(%mud.data,/[^\x3\x1B\x20-\x7E\xA0-\xBF]/g,$null)
}
}
%mud.data2 = $ansi2mirc(%mud.data)
;%mud.data2 = %mud.data
if (!%mud.data2) { %mud.data2 = $chr(160) }
if (*;3?m* iswmcs %mud.data2) { %mud.data2 = $regsubex(%mud.data2,((0|1)*;3([0-9])m),$null) }
if (%mud.colour == 1) {
if (** iswm %mud.data2) {
%mud.data2 = $replace(%mud.data2,08,07,15,14,09,03,11,10,%mud.bn,%mud.bn2,%mud.by,%mud.by2,%mud.bm,%mud.bm2,%mud.bw,%mud.bw2)
}
}
elseif (%mud.colour == 15) {
if (** iswm %mud.data2) {
%mud.data2 = $replace(%mud.data2,%mud.bn,%mud.bn2,%mud.bw,%mud.bw2,%mud.bm,%mud.bm2,02,12)
}
}
elseif (!%mud.colour) {
if (%mud.customcolour == clearview) {
if (** iswm %mud.data2) {
%mud.data2 = $replace(%mud.data2,13,06,02,12,09,03,08,07,02,12,11,10,13,06,%mud.bm,%mud.bm2)
}
}
elseif (%mud.customcolour == strip) {
%mud.data2 = $strip($replace(%mud.data2,$chr(32),$chr(160)))
%mud.data2 = $replace(%mud.data2,$chr(160),$chr(32))
if (!%mud.data2) { %mud.data2 = $chr(160) }
}
}
var %mud.friend = $strip(%mud.data2)
if (says isincs %mud.friend || states isincs %mud.friend || asks isincs %mud.friend || chats isincs %mud.friend || questions isincs %mud.friend || whispers isincs %mud.friend || tells isincs %mud.friend || grats isincs %mud.friend || walks isincs %mud.friend) {
%mud.friend = $gettok(%mud.friend,1,32)
if ($len(%mud.friend) > 3) {
if (%mud.friend != some && %mud.friend != that && %mud.friend != from && %mud.friend isalnum) {
aline -ln %mud.window %mud.friend
}
}
}
if (%mud.data2 != $chr(160)) { %mud.data2 = $chr(160) $+ %mud.data2 }
if ((!%mud.spacedll) || (%mud.spacing)) {
if (!%mud.spaceoff) { %mud.data2 = $replace(%mud.data2,$chr(32),$chr(160)) }
echo %mud.colour -mi1 %mud.window %mud.data2
}
else {
$dll($qt($scriptdirspaces.dll), echo, %mud.colour -mi1 %mud.window %mud.data2)
}
if (%mud.logging) {
var %mud.logdata = $strip($replace(%mud.data2,$chr(32),$chr(160)))
write %mud.logpath $logstamp %mud.logdata
}
unset %mud.data %mud.data2
goto mud.nextread
}
}
;==================
; Input Processing
;==================
on *:INPUT:@MUDclient*:{
var %mud.socket = $remove($target,@)
var %mud.window = $target
var %mud.logpath = $qt(%mud.logpath2 $+ %mud.window $+ .log)
if ($1) { set %mud.enter 1 }
if ($left($1-,1) == /) {
if $1 == /lock {
if (!%mud.saymode) {
if (!$2) {
var %mud.jset $?="What command do you want to lock?"
if (%mud.jset) { set %mud.saymode %mud.jset }
if (!%mud.jset) { halt }
}
elseif ($2) { %mud.saymode = $2 }
else { halt }
echo -m %mud.window 7COMMAND LOCKING ON
set %mud.saydot on
halt
}
else {
echo -m %mud.window 7COMMAND LOCKING OFF
unset %mud.saymode
set %mud.saydot off
halt
}
}
if $1 == /numwalk {
if (!%mud.numwalk) {
echo -m %mud.window 7NUMPAD WALKING ON
set %mud.numwalk 1
set %mud.numdot on
halt
}
else {
echo -m %mud.window 7NUMPAD WALKING OFF
unset %mud.numwalk
set %mud.numdot off
halt
}
}
if ($len($1) <= 2) {
if ($sock(%mud.socket).status == active) {
sockwrite -nt %mud.socket $1-
}
}
else { return }
}
if ($1 == greet || $1 == tell || $1 == whisper || $1 == follow) {
if (($2) && ($len($2) > 3)) {
aline -ln $2
}
}
if (!$sock(%mud.socket)) {
echo -m %mud.window 4Not Connected
halt
}
else {
if (%mud.saymode) {
if ($sock(%mud.socket).status == active) { sockwrite -nt %mud.socket %mud.saymode $1- }
}
else {
if ($sock(%mud.socket).status == active) { sockwrite -nt %mud.socket $1- }
}
}
if ((%mud.name) && (!%mud.noecho)) {
echo %mud.colour -mi1 %mud.window 4[ $+ %mud.name $+ 4] $1-
if (%mud.logging) { write %mud.logpath $logstamp $chr(91) $+ %mud.name $+ $chr(93) $1- }
}
elseif (!%mud.noecho) {
echo %mud.colour -mi1 %mud.window 4[ $+ $nick $+ 4] $1-
if (%mud.logging) { write %mud.logpath $logstamp $chr(91) $+ $nick $+ $chr(93) $1- }
}
if (%mud.keeptexton) {
set %mud.keeptext $1-
editbox -a $chr(0)
editbox -a %mud.keeptext
}
halt
}
;==========================
; Numpad & Enter Functions
;==========================
on *:KEYUP:@MUDclient*:13,19,96,97,98,99,100,101,102,103,104,105,106,107,109,110,111:{
var %mud.socket = $remove($target,@)
if (!$sock(%mud.socket)) { set %mud.enter 1 }
if ($keyval == 13) {
if (!%mud.enter) {
if ($sock(%mud.socket).status == active) {
sockwrite -nt %mud.socket %mud.return
}
}
else { unset %mud.enter }
}
if ($keyval == 19) {
;Pause
if (!%mud.numwalk) {
echo -m %mud.window 7NUMPAD WALKING ON
set %mud.numwalk 1
set %mud.numdot on
halt
}
else {
echo -m %mud.window 7NUMPAD WALKING OFF
unset %mud.numwalk
set %mud.numdot off
halt
}
halt
}
if (!%mud.numwalk) { halt }
if ((!$sock(%mud.socket)) && ($keyval != 13)) {
echo -am 4Not Connected
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 111) {
;Numpad /
sockwrite -nt %mud.socket open door
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 106) {
;Numpad *
sockwrite -nt %mud.socket close door
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 109) {
;Numpad -
sockwrite -nt %mud.socket up
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 107) {
;Numpad +
sockwrite -nt %mud.socket down
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 104) {
;Numpad 8
sockwrite -nt %mud.socket north
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 100) {
;Numpad 4
sockwrite -nt %mud.socket west
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 102) {
;Numpad 6
sockwrite -nt %mud.socket east
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 98) {
;Numpad 2
sockwrite -nt %mud.socket south
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 103) {
;Numpad 7
sockwrite -nt %mud.socket northwest
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 105) {
;Numpad 9
sockwrite -nt %mud.socket northeast
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 97) {
;Numpad 1
sockwrite -nt %mud.socket southwest
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 99) {
;Numpad 3
sockwrite -nt %mud.socket southeast
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 101) {
;Numpad 5
sockwrite -nt %mud.socket look
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 96) {
;Numpad 0
sockwrite -nt %mud.socket inventory
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
if ($keyval == 110) {
;Numpad .
sockwrite -nt %mud.socket stat
editbox -a $chr(0)
if ((%mud.keeptexton) && (%mud.keeptext)) { editbox -a %mud.keeptext }
halt
}
halt
}
;================
;Closing Routines
;================
on *:SOCKCLOSE:MUDclient*:{
var %mud.window = @ $+ $sockname
if ($window(%mud.window)) { echo -m %mud.window 4Connection to $gettok(%mud.window,2,58) Lost. }
if (%mud.logging) {
var %mud.logpath = $qt(%mud.logpath2 $+ %mud.window $+ .log)
write %mud.logpath $logstamp Connection to $gettok(%mud.window,2,58) Lost
write %mud.logpath Session Closed: $fulldate
}
}
alias -l closemud {
if ($1 == DCALL) {
var %mud.sockamount = $sock(MUDclient*,0)
while (%mud.sockamount) {
var %mud.socket = $sock(MUDclient*,1)
var %mud.window = @ $+ %mud.socket
if ($sock(%mud.socket).status == active) {
sockwrite -nt %mud.socket %mud.quit
sockclose %mud.socket
}
if ($window(@MUDclient*,0)) {
echo -m %mud.window 4Connection to $gettok(%mud.window,2,58) Closed.
}
if (%mud.logging) {
var %mud.logpath = $qt(%mud.logpath2 $+ %mud.window $+ .log)
write %mud.logpath $logstamp Connection to $gettok(%mud.window,2,58) Closed
write %mud.logpath Session Closed: $fulldate
}
dec %mud.sockamount
}
}
else {
var %mud.socket = $remove($1,@)
var %mud.window = $1
if ($sock(%mud.socket).status == active) {
sockwrite -nt %mud.socket %mud.quit
sockclose %mud.socket
}
if ($window(%mud.window)) { echo -m %mud.window 4Connection to $gettok(%mud.window,2,58) Closed. }
if (%mud.logging) {
var %mud.logpath = $qt(%mud.logpath2 $+ %mud.window $+ .log)
write %mud.logpath $logstamp Connection to $gettok(%mud.window,2,58) Closed
write %mud.logpath Session Closed: $fulldate
}
}
}
on *:CLOSE:@MUDclient*:{
var %mud.socket = $remove($active,@)
var %mud.window = $active
if (%mud.winreopen) { unset %mud.winreopen | halt }
if ($sock(%mud.socket).status == active) {
sockwrite -nt %mud.socket %mud.quit
sockclose %mud.socket
}
if (%mud.logging) {
var %mud.logpath = $qt(%mud.logpath2 $+ %mud.window $+ .log)
write %mud.logpath $logstamp Connection to $gettok(%mud.window,2,58) Closed
write %mud.logpath Session Closed: $fulldate
}
}
on *:EXIT:{
if ($sock(MUDclient*)) {
sockwrite -nt MUDclient* %mud.quit
sockclose MUDclient*
}
}