Page 1 of 2

My scripts

Posted: Tue Jun 04, 2013 2:33 am
by MarkusRamikin
This is a copy of that deleted post of mine in Player's Lounge:

RP-lizer: link

zMUD scripts by me: download link
  • Map scripts: Find Room, Sync, FleeDline
    Targetting script
    Travel script
    Status Bar
    5/15 alting aid
    Logging script
    Narrates and Tells window
    Receipts and Tickets
    Misspam Counter

CMUD scripts by me: download link (discontinued, may or may not be out of date)

Map configuration instructions: link

Charbal's spinning timer: download link

Making zMUD's Help work in Windows 7: download link


Notice vs Hide testing data from 2010 (still valid AFAIK): link

zMUD note:
Be sure to install my zMUD scripts
- into the latest zMUD version, 7.21
- remember to turn off wordwrap before copying, if opening the text files in Notepad.
- Install the Find Room script by copy-pasting it into the command line, NOT by using the import function. (Can do it either way with other scripts).

People coming to me with problems after ignoring these instructions will hear some choice words regarding their intelligence, appearance, and sexual preferences.


CMUD note:
My scripts were written on CMUD 2.37. It seems the current version is 3.34, but I no longer use CMUD so no idea what works and what doesn't. Use at your own risk.
Update: apparently they work. :)

Re: My scripts

Posted: Sat Apr 08, 2017 5:34 am
by MarkusRamikin
Updated to take into account changes to Dropbox. Links should work again.
Update#2 : actually, enough Dropbox. Moved to Google Drive.

New users: keep in mind I have no idea if it's all still valid, since I haven't played in years.

Re: My scripts

Posted: Sun Oct 28, 2018 11:14 am
by Taziar
Markus' 5-15
The script triggers when you rent, quit or the MUD reboots. It will send you a beep and on-screen message after 5 minutes, and again after 15 minutes.

Keep the window open (in Offline mode) rather than close it when you rent.

The script works automatically. However, you may manually check how long you have left to wait by typing "wait".

Code: Select all

#CLASS {5-15}
#ALIAS wait {#SAY;#IF (%alarm( SameSideWait)>-1) {#SAY {Sameside wait: %eval( %alarm( SameSideWait)/1000/60\1440)m %eval( %alarm( SameSideWait)/1000\60)s}};#IF (%alarm( CrossRaceWait)>-1) {#SAY {Crossrace wait: %eval( %alarm( CrossRaceWait)/1000/60\1440)m %eval( %alarm( CrossRaceWait)/1000\60)s}}}
#ALIAS Set515WaitTimers {#SAY {5/15 minute countdown started... now. (%time( h:nn:ss))};#ALARM SameSideWait {+300} {#SAY {You may log on a sameside alt now!};#BEEP};#ALARM CrossRaceWait {+900} {#SAY {You may log on a crossrace alt now!};#BEEP};#INPUT wait 1}
#TRIGGER {{Goodbye... Come back soon!|Rebooting and making today's backup.|stores your belongings and helps you into your private chamber.|This body has been usurped!}$} {Set515WaitTimers}
#TRIGGER {^{Welcome to the Wheel of Time!|You take over your own body, already in use!}} {#UNTRIGGER CrossRaceWait;#UNTRIGGER SameSideWait}
#TRIGGER {Trigger ~{CrossRaceWait~} removed.$} {#GAG}
#TRIGGER {Trigger ~{SameSideWait~} removed.$} {#GAG}
#CLASS 0

Re: My scripts

Posted: Sun Oct 28, 2018 11:14 am
by Taziar
Markus' FindRoom2.2
This script lets you correct your position on the map by typing find. It works better than zMUD's #find command.

IMPORTANT:
Be sure to install this particular script by copy-pasting it into the command line. DO NOT install it by importing.

Code: Select all

#CLASS {Map Scripts|Find Room 2.2}
#ALIAS find {
  #PRIORITY {
    #VARIABLE FindRoomName {}
    #VARIABLE FindRoomDesc {}
    #VARIABLE FindRoomExits {}
    #IF (%begins( %proper( %1), "V")) {
      #SAY %crlf Find Room will now use VERBOSE mode.
      #VARIABLE FindVerbose {2}
      }
    #IF (%begins( %proper( %1), "B")) {
      #SAY %crlf Find Room will now use BRIEF mode.
      #VARIABLE FindVerbose {1}
      }
    #IF (%begins( %proper( %1), "S")) {
      #SAY %crlf Find Room will now use SILENT mode.
      #VARIABLE FindVerbose {0}
      }
    #IF (%begins( %proper( %1), "M")) {
      #SAY %crlf Find Room is currently in %item( "SILENT|BRIEF|VERBOSE", %eval( @findverbose+1)) mode.
      #SAY %char( 32)Modes available: SILENT, BRIEF, VERBOSE.
      }
    #IF (%numparam( ) = 0) {
      look
      #IF (@findverbose) {#SAY Preparing to find this room on the map.}
      #T+ FindRoomTrigger
      #T+ FindRoomExitsTrigger
      }
    #NOOP
    }
  }
#FUNCTION frsubexits {%sort( %upper( %replace( %replace( %replace( %1, "[ obvious exits: ", ""), " ]", ""), " ", "|")))}
#VARIABLE FindRoomDesc {This is an inn favored by the merchants who come to Fal Dara. It is a quiet}
#VARIABLE FindRoomName {The Peaceful Knight''s Rest}
#VARIABLE RoomsFoundByName {38653}
#VARIABLE RoomsFoundByDesc {6113}
#VARIABLE FindRoomExits {S}
#VARIABLE RoomsFoundByExits {38354|38355|38356|38383}
#VARIABLE findverbose {1}
#REGEX "FindRoomTrigger" {(?:^|> )(\033.?.?36m(?!\a+ (?:speaks from the |answers your prayer)).*\033)} {
%literal(  #PRIORITY {#VARIABLE FindRoomName {%trimleft( %right( %line, %pos( '> ', %line)))}})
  #NOOP
  } "" {notrig|color|disable}
#CONDITION {^(*)$} {
  #IF (%line =~ "^*obvious exits: (*) ]$") {#VARIABLE FindRoomDesc {}} {#VARIABLE FindRoomDesc {%1}}
  #STATE FindRoomTrigger 0
  } {looplines|param=50|notrig|disable}
#TRIGGER "FindRoomExitsTrigger" {^*obvious exits: (*) ]$} {
  #PRIORITY {
    #VARIABLE FindRoomExits {%1}
    #T- FindRoomTrigger
    #IF (@findverbose=2) {#SAY}
    #IF (%numitems( @FindRoomName) = 0) {
      #IF (@findverbose) {
        #SAY %char( 32)Failed to retrieve room info!
        #COLOR red
        }
      } {
      #IF (@findverbose=2) {
        #SAY %char( 32)Searching for room names...
        #COLOR darkgray
        }
      #VARIABLE FindRoomName {%replace( @FindRoomName, "'", "''")}
      #VARIABLE RoomsFoundByName {%mapquery( NAME = '@FindRoomName')}
      #IF (%numitems( @RoomsFoundByName) = 0) {
        #IF (@findverbose) {
          #SAY %crlf No matching room name found! Update your map.
          #COLOR red
          }
        } {
        #IF (%numitems( @RoomsFoundByName) = 1) {
          #TELEPORT {@RoomsFoundByName}
          #IF (@findverbose=2) {
            #SAY %crlf Matching room name found! Correcting map position.
            #COLOR green
            } {
            #IF (@findverbose=1) {
              #SAY %crlf Matching room found! Correcting map position.
              #COLOR green
              }
            }
          } {
          #IF (@findverbose=2) {
            #SAY %char( 32)Multiple matching room names found.
            #COLOR goldenrod
            #SAY %char( 32)Searching through descriptions...
            #COLOR darkgray
            }
          #IF (%numitems( @FindRoomDesc) = 0) {
            #IF (@findverbose=2) {
              #SAY %char( 32)Failed to retrieve room description!
              #COLOR red
              }
            #VARIABLE RoomsFoundByDesc {@RoomsFoundByName}
            } {
            #VARIABLE RoomsFoundByDesc {}
            #FORALL @RoomsFoundByName {#IF (%begins( %roomdesc( %i), @FindRoomDesc)) {#ADDITEM RoomsFoundByDesc %i}}
            }
          #IF (%numitems( @RoomsFoundByDesc)=1) {
            #TELEPORT {@RoomsFoundByDesc}
            #IF (@findverbose = 2) {
              #SAY %crlf Matching room description found! Correcting map position.
              #COLOR green
              } {
              #IF (@findverbose = 1) {
                #SAY %crlf Matching room found! Correcting map position.
                #COLOR green
                }
              }
            } {
            #IF (%numitems( @RoomsFoundByDesc)=0) {
              #IF (@findverbose=2) {
                #SAY %char( 32)No matching room description found! Update your map.
                #COLOR red
                }
              #VARIABLE RoomsFoundByDesc {@RoomsFoundByName}
              } {
              #IF (@findverbose=2) {
                #SAY %char( 32)Multiple matching descriptions found.
                #COLOR goldenrod
                }
              }
            #IF (@findverbose=2) {
              #SAY %char( 32)Searching through exits...
              #COLOR darkgray
              }
            #VARIABLE RoomsFoundByExits {}
            #FORALL @RoomsFoundByDesc {#IF (@frsubexits(@FindRoomExits)=@frsubexits(%roomexit( %i))) {#ADDITEM RoomsFoundByExits %i}}
            #IF (%numitems( @RoomsFoundByExits)=1) {
              #TELEPORT {@RoomsFoundByExits}
              #IF (@findverbose=2) {
                #SAY %crlf Matching room exits found! Correcting map position.
                #COLOR green
                } {
                #IF (@findverbose=1) {
                  #SAY %crlf Matching room found! Correcting map position.
                  #COLOR green
                  }
                }
              } {
              #IF (%numitems( @RoomsFoundByExits)=0) {
                #IF (@findverbose=2) {
                  #SAY %char( 32)No matching room exits found! Hidden doors suspected.
                  #COLOR goldenrod
                  }
                #VARIABLE RoomsFoundByExits {@RoomsFoundByDesc}
                }
              #IF (%numitems( @RoomsFoundByExits)>1) {
                #IF (@findverbose=2) {
                  #SAY %char( 32)Multiple matching room exits found!
                  #COLOR goldenrod
                  }
                #VARIABLE RoomsFoundByExits {@RoomsFoundByDesc}
                }
              #IF (%ismember( %roomkey, @RoomsFoundByExits)) {
                #IF (@findverbose) {
                  #SAY %crlf Multiple possible matches, and your map is already in one of them. No action taken.
                  #COLOR goldenrod
                  }
                } {
                #TELEPORT %item( @RoomsFoundByExits, 1)
                #IF (@findverbose) {
                  #SAY %crlf Multiple possible matches! Randomly guessing map position...
                  #COLOR goldenrod
                  }
                }
              }
            }
          }
        }
      }
    #IF (@findverbose) {#SAY}
    }
  #T- FindRoomExitsTrigger
  } "" {notrig|disable}
#CLASS 0

Re: My scripts

Posted: Sun Oct 28, 2018 11:15 am
by Taziar
Markus' FleeDline1.4

Code: Select all

#CLASS {Map Scripts|Flee and Doubleline 1.4}
#ALIAS FindingRoomAfterFleeing {
  #VARIABLE FledToIDs {%mapquery( Name = '@FleeToName')}
  #FORALL %roomexit( @FleeFromID) {#FORALL %roomlink( @FleeFromID , %i) {#IF (%ismember( %j, @FledToIDs)) {#ADDITEM FledToIDsByNames %j}}}
  #IF (@Line2AfterFlee =~ "obvious exits: ") {#FORALL @FledToIDsByNames {#IF (@fdlsubexits( @Line2AfterFlee)=@fdlsubexits(%roomexit( %i))) {#ADDITEM FleeToIDsByLine2 %i}}} {#FORALL @FledToIDsByNames {#IF (%begins( %roomdesc( %i), @Line2AfterFlee)) {#ADDITEM FleeToIDsByLine2 %i}}}
  #IF (%numitems( @FleeToIDsByLine2)=0) {#VARIABLE FleeToIDsByLine2 {@FledToIDsByNames}}
  #IF (%numitems( @FleeToIDsByLine2)=1) {
    #IF (@FleeDlineVerbose) {#SAY Correcting map position after fleeing.}
    #TELEPORT @FleeToIDsByLine2
    #FORALL @PostFleeDirections {#MAP %i}
    } {#IF (%numitems( @FleeToIDsByLine2)>1) {
      #IF (@FleeDlineVerbose) {#SAY Multiple possible map positions after fleeing. Guessing...}
      #TELEPORT %item( @FleeToIDsByLine2, 1)
      #FORALL @PostFleeDirections {#MAP %i}
      } {#IF (@FleeDlineVerbose) {#SAY Failed to correct map position after fleeing.}}}
  }
#ALIAS fleedline {
  #IF (%begins( %proper( %1), "V")) {
    #SAY %crlf VERBOSE mode not supported at this time. Setting BRIEF mode.
    #VARIABLE FleeDlineVerbose {1}
    }
  #IF (%begins( %proper( %1), "B")) {
    #SAY %crlf Flee and Doubleline will now use BRIEF mode.
    #VARIABLE FleeDlineVerbose {1}
    }
  #IF (%begins( %proper( %1), "S")) {
    #SAY %crlf Flee and Doubleline will now use SILENT mode.
    #VARIABLE FleeDlineVerbose {0}
    }
  #IF (%begins( %proper( %1), "M")) {
    #SAY %crlf Flee and Doubleline is currently in %item( "SILENT|BRIEF|VERBOSE", %eval( @FleeDlineVerbose +1)) mode.
    #SAY %char( 32)Modes available: SILENT, BRIEF.
    }
  #NOOP
  }
#FUNCTION fdlsubexits {%sort( %upper( %replace( %replace( %replace( %replace( %1, "[ ", ""), "obvious exits: ", ""), " ]", ""), " ", "|"))))}
#VARIABLE FleeFromID {6079}
#VARIABLE FledToIDs {6103|6104|6078|6080|6081|6087}
#VARIABLE Line2AfterFlee {obvious exits: N S}
#VARIABLE PostFleeDirections {n|w}
#VARIABLE FleeToName {A Long Road}
#VARIABLE FleeToIDsByLine2 {6080}
#VARIABLE FledToIDsByNames {6078|6080}
#VARIABLE Line1AfterFlee {A Long Road}
#VARIABLE FleeDlineVerbose {1}
#ONINPUT "DetectingFleeForDline" {^(?:flee|fle|fl|f)$} {
  #VARIABLE PostFleeDirections {}
  #T+ DlineRelatedDetection
  #ALARM StopDlineRelatedDetection {+15} {#T- DlineRelatedDetection}
  #VARIABLE FleeFromID {%roomkey( )}
  } "" {notrig|regex}
#TRIGGER "FleeGoingThrough" {^You flee head over heels.$} {
  #VARIABLE FledToIDsByNames {}
  #VARIABLE FleeToIDsByLine2 {}
  #IF (%walkmode( )) {#VARIABLE FleeFromID {%roomkey( )}}
  }
#CONDITION {^(*)$^(*)$} {
  #VARIABLE Line1AfterFlee {%1}
  #VARIABLE Line2AfterFlee {%2}
  #VARIABLE FleeToName {%replace( @Line1AfterFlee, "'", "''")}
  #PRIORITY {FindingRoomAfterFleeing}
  #T- DlineRelatedDetection
  } {within|param=2}
#ONINPUT "DlineRelatedDetection" {^(west|w|up|u|south|s|north|n|east|e|down|d)$} {#VARIABLE PostFleeDirections {%additem( %1, @PostFleeDirections)}} "" {notrig|disable|regex}
#CLASS 0
#T- DlineRelatedDetection

Re: My scripts

Posted: Sun Oct 28, 2018 11:16 am
by Taziar
Markus' Horsescript
#CLASS {Horsescript}
#ALIAS enable_horsescript {#var horserider 1}
#ALIAS disable_horsescript {#var horserider 0}
#VAR horsecount {0}
#VAR horselist {warhorse|wild stallion|gray palfrey|roan charger|black stallion|shaggy brown mare|draft horse|dust-colored gelding|bloodstock stallion|dun mare|brown stallion|prancing palomino mare|Domani razor}
#VAR horserider {1}
#VAR tormcount {0}
#VAR rakencount {0}
#VAR shadowcount {0}
#TRIGGER {obvious exits:} {
#var horsecount 0
#var tormcount 0
#var rakencount 0
#var shadowcount 0
}
#TRIGGER {, riding a (*).} {
#if %ismember( %1, @horselist)>0 {
#math horsecount @horsecount+1
#if @horserider=1 {#sub {, riding a ~|@horsecount~|~.%1~.}}
} {}
}
#TRIGGER {A gray palfrey prances skittishly nearby} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A gray palfrey prances skittishly nearby}
}
#TRIGGER {A warhorse is here, stamping his feet impatiently} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A warhorse is here, stamping his feet impatiently}
}
#TRIGGER {A wild stallion bucks madly} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A wild stallion bucks madly}
}
#TRIGGER {A draft horse is here} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A draft horse is here}
}
#TRIGGER {A shaggy brown mare stands here} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A shaggy brown mare stands here}
}
#TRIGGER {An Illianer steed stands here proudly, its black mane glistening} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.An Illianer steed stands here proudly, its black mane glistening}
}
#TRIGGER {A dun mare is here, snorting angrily.} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A dun mare is here, snorting angrily}
}
#TRIGGER {A tall dust-colored gelding prances in a circle here} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A tall dust-colored gelding prances in a circle here}
}
#TRIGGER {A massive three-eyed reptile gazes at you} {
#math tormcount @tormcount+1
#sub {~<color purple>~|@tormcount~|~.~</color>A massive three-eyed reptile gazes at you}
}
#TRIGGER {, riding a raken.} {
#math rakencount @rakencount+1
#if @horserider=1 {#sub {, riding a ~<color purple>~|@rakencount~|~.~</color>raken.}}
}
#TRIGGER {, riding a torm.} {
#math tormcount @tormcount+1
#if @horserider=1 {#sub {, riding a ~<color purple>~|@tormcount~|~.~</color>torm}}
}
#TRIGGER {, riding a shadow stallion.} {
#math shadowcount @shadowcount+1
#if @horserider=1 {#sub {, riding a ~<color red>~|@shadowcount~|~.~</color>shadow stallion}}
}
#TRIGGER {, riding an Illianer steed.} {
#math horsecount @horsecount+1
#if @horserider=1 {#sub {, riding an ~|@horsecount~|~.Illianer steed.}}
}
#TRIGGER {A black shadow stallion paws the ground here, fiery-red eyes shining with evil} {
#math shadowcount @shadowcount+1
#sub {~<color red>~|@shadowcount~|~.~</color>A black shadow stallion paws the ground here, fiery-red eyes shining with evil}
}
#TRIGGER {A Tairen bloodstock stallion stands here, tail swaying with the breeze} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A Tairen bloodstock stallion stands here, tail swaying with the breeze}
}
#TRIGGER {Prancing about on dainty feet, a palomino mare stands here} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.Prancing about on dainty feet, a palomino mare stands here}
}
#TRIGGER {A black stallion prances about} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.A black stallion prances about}
}
#TRIGGER {, riding a Domani razor.} {
#math horsecount @horsecount+1
#if @horserider=1 {#sub {, riding a ~|@horsecount~|~.Domani razor.}}
}
#TRIGGER {Eyes keen, a Domani razor stands here swishing its tail.} {
#math horsecount @horsecount+1
#sub {~|@horsecount~|~.Eyes keen, a Domani razor stands here swishing its tail.}
}
#CLASS 0

Re: My scripts

Posted: Sun Oct 28, 2018 11:17 am
by Taziar
Markus' Logging
Whenever you log on to the MUD, a text log will be automatically created under the name, for instance, 20090514.txt, corresponding to the date of May 14, 2009. If the log already exists, it will be appended.

If you do not change anything after installing the script, those text files will be created in Zmud's main folder.

------------
COMMANDS:

readlog - opens your log in Notepad. A useful alternative to scrolling up the buffer.

gologs - opens the folder where you keep your logs.

logpath - sets a new destination for logs. It's safest to use a full path, for example:
logpath C:\Documents\Wotmud Logs

Important: the folder to which you are trying to save logs must already exist! So e.g. first create a folder "Logs" in your Zmud folder, and then type "logpath Logs".

Try "gologs" afterwards to make sure the path you entered works.

Code: Select all

#CLASS {Logging}
#ALIAS setuplogging {
  #VARIABLE PathToCurrentLog {%concat( @PathToLog, %time( yyyymmdd), ".txt")}
  #LOG @PathToCurrentLog
  }
#ALIAS readlog {#LAUNCH {notepad.exe @PathToCurrentLog}}
#ALIAS gologs {
  #IF (@PathToLog ="") {#LAUNCH {explorer ..\wotMUD}} {#LAUNCH {explorer @PathToLog}}
}
#ALIAS logpath {
  #VARIABLE PathToLog {%1}
  #IF (@PathToLog ="") {#VARIABLE PathToLog {}} {
    #IF (%numparam( ) > 1) {#LOOP 2,%numparam( ) {#VARIABLE PathToLog %concat( @PathToLog, " ", %param( %i))}}
    #IF (NOT %ends( @PathToLog, "\")) {#VARIABLE PathToLog {%concat( @PathToLog, "\")}}
  }
  setuplogging
  #NOOP
  }
#VARIABLE PathToLog {}
#VARIABLE PathToCurrentLog {}
#TRIGGER "SetupLoggingAtMUDLogon" {^%sMichael Seifert, and Sebastian Hammer$} {setuplogging}
#CLASS 0

Re: My scripts

Posted: Sun Oct 28, 2018 11:18 am
by Taziar
Markus' Map Sync 1.2
___________________________

WoTMUD map configuration on zMUD
by Markus Ramikin
___________________________

If your map isn't configured yet, and you don't know how to go about it, here is how I do this.

---------------
Getting started
---------------

Click on Map to open your mapper, then File/Open and open the map file you'll be using.

Make sure you are in Follow Mode. Do not play in Map Creation Mode, because that would very quickly mess up your map.
And there is no "undo" button to make reversing changes easy.

-------------------
The automatic part:
-------------------

* Log on to the MUD. Go to some safe room.

* Make certain that the map shows you as being in the correct room.
If it doesn't, type #find.
If that doesn't work, manually select the correct zone, then right-click on the correct room, and "Set Current Position".

* On the MUD, turn brief mode off.
You can turn brief mode back on afterwards if you like, but for this you want to see room descriptions.

* Go to Config and start New Configuration.
Follow the instructions there carefully.

This will get most of the configuration out of the way.

----------------
The manual part:
----------------

Once automatic configuration is done, certain tweaks may be necessary.

Go to Config / Configuration Settings. Change only the following parts:

* Room Name

- "Match Room Name at End of line" - turn this ON
- "Match Room Name at Start of line" - turn this OFF
(because sometimes a line containing the roomname will start with a prompt instead.)

* Speedwalking

- Set to "SAFE"
- Set to "Match Room Name"
- optionally, "Center map after every movement".

* Strings and Doors

delete and uncheck all options, except "look" in the look command.

_______________________

Afterword:
Scripting your map
_______________________

Once configured, your map is prepared to track your movement on WoTMUD in simple circumstances.
Unfortunately, there are still many ways it can get confused and lose track of your position. For example,
it doesn't understand what's going on when you're fleeing, or run into a closed door, or are moving around
in the dark.

Various player-written scripts exist to minimise (though sadly, not eliminate) this problem.
I recommend the following 3 scripts of mine:

1. Map Synchronisation
- allows the map to keep track of your movement through most circumstances

2. Flee and Doubleline
- helps your map keep track when you're fleeing and doublelining
- this is an improved version of the "fleescript"

3. Find Room
- provides a 'find' command, which you can use to fix your position on the map when it does get lost.
- much like zMUD/CMUD's own '#find', but better.

Those three scripts provide comprehensive scripting for your map. They are best used together.
If using those three, no other map script should, or need, be installed (such as "fleescript", "followscript" etc).

Code: Select all

#DELCLASS {Confirm Direction}
#DELCLASS {Following a Leader}
#CLASS {Map Scripts|Map Sync 1.2}
#CLASS 0
#CLASS {Map Scripts|Map Sync 1.2|Following a Leader}
#VARIABLE GroupLeader {N/A}
#VARIABLE MoveDirection {east}
#TRIGGER {You now follow (%w).$} {#VARIABLE GroupLeader %1}
#TRIGGER {You stop following %w.$} {#VARIABLE GroupLeader N/A}
#TRIGGER {@GroupLeader leaves (%w)*.$} {#VARIABLE MoveDirection %1}
#TRIGGER {^You follow *.$} {#MAP @MoveDirection}
#CLASS 0
#CLASS {Map Scripts|Map Sync 1.2|Movement Failed}
#TRIGGER {The * seems to be closed.$} {#NODIR}
#TRIGGER {Nah... You feel too relaxed to do that..$} {#NODIR}
#TRIGGER {In your dreams, or what?$} {#NODIR}
#TRIGGER {Maybe you should get on your feet first?$} {#NODIR}
#TRIGGER {No way!%sYou're fighting for your life!$} {#NODIR}
#TRIGGER {You shudder at the concept of crossing water.$} {#NODIR}
#TRIGGER {You would need to swim there, you can't just walk it.$} {#NODIR}
#TRIGGER {You are too exhausted.$} {#NODIR}
#TRIGGER {You can't ride in there.$} {#NODIR}
#TRIGGER {You can't ride on water.$} {#NODIR}
#TRIGGER {You can't ride there on a horse!$} {#NODIR}
#TRIGGER {You need a boat to go there.$} {#NODIR}
#TRIGGER {Your mount is too exhausted.$} {#NODIR}
#TRIGGER {Your mount is engaged in combat!$} {#NODIR}
#TRIGGER {Your mount ought to be awake and standing first!$} {#NODIR}
#CLASS 0
#CLASS {Map Scripts|Map Sync 1.2|Movement Succeeded}
#TRIGGER {You can't see a damned thing, you're blinded!} {#OK}
#TRIGGER {It is pitch black...} {#OK}
#TRIGGER {The door swings open and you leave the Aes Sedai chambers.} {
  #MAP w
  #OK
  }
#TRIGGER {The door swings open and you enter the Aes Sedai chambers.} {#MAP e}
#TRIGGER {Your skin tingles all over as you pass through.} {#NODIR}
#CLASS 0

Re: My scripts

Posted: Sun Oct 28, 2018 11:19 am
by Taziar
Markus' MisSpam Counter 1.3
This script will help you if you're curious to see how much you misspam when you play WoTMUD.

Code: Select all

#CLASS {MisSpam Counter 1.3}
#ALIAS MisSpams {
  #IF (%numparam( )) {#ADD MisSpamsCount %1}
  #SAY This session you've missed @MisSpamsCount spams out of @TotalSpamsCount ~(%eval( 1000*@MisSpamsCount/@TotalSpamsCount) promille~)
  }
#VARIABLE TotalSpamsCount {2} {0}
#VARIABLE TargetColor {white}
#VARIABLE MisSpamsCount {3} {0}
#ONINPUT {^(?:west|w|up|u|south|s|north|n|east|e|down|d)$} {#ADD TotalSpamsCount 1} "" {notrig|regex}
#REGEX "MisSpamGracePeriod" {(You flee head over heels\.|seems to be closed\.|You are too exhausted\.|Your mount is too exhausted\.)$} {
  #T- MisSpamTrigger
  #ALARM +2 {#T+ MisSpamTrigger}
  }
#REGEX "MisSpamTrigger" {(?:Alas, you cannot go that way\.\.\.|You would need to swim there\, you can\'t just walk it\.|You shudder at the concept of crossing water\.|You would need to swim there, you can\'t just walk it\.|You can\'t ride on water\.|You can\'t ride in there\.|You can\'t ride there on a horse\!|You need a boat to go there\.)$} {MisSpams 1}
#CLASS 0

Re: My scripts

Posted: Sun Oct 28, 2018 11:19 am
by Taziar
Markus' Narrates and Tells
The script captures tells and narrates and displays them in a second window. It does not remove them from the main MUD output window.
#CLASS {Narrates and Tells}
#TRIGGER {%x narrates '*'$} {#CAPTURE Communications} "" notrig
#TRIGGER {%x tells you '*'$} {#CAPTURE Communications} "" notrig
#TRIGGER {You narrate '*'$} {#CAPTURE Communications} "" notrig
#TRIGGER {You reply to %x '*'$} {#CAPTURE Communications} "" notrig
#TRIGGER {You tell %x '*'$} {#CAPTURE Communications} "" notrig
#TRIGGER {%x answers your prayer '*'$} {#CAPTURE Communications} "" notrig
#TRIGGER {You pray '*'$} {#CAPTURE Communications} "" notrig
#CLASS 0