Mar 212009
 

Achaea MUD ZMud script for room mapping.

#CLASS {Triggers|Room}
#ALIAS _RoomEnter {
#OK
;#EXEC  _Debug "_RoomEnter"
;Blank RoomObjects if there is no Objects in  this new room
RoomObjects = %if( %null( @sRoomObjects), "")
#IF ((@Personal.Mapping or @Personal.Hunting or %eval( %bitand(  %roomload, 2) = 2)) and not %null( @sRoomObjects)) {
;If mapping or  Hunting or desc needs updating and there are objects then IH
#EXEC _SendCommandOnPrompt "ih"
} {
#IF (%eval( %bitand(  %roomload, 2)=2)) {
; Else if desc needs updating
#IF  (%null( @sRoomObjects) and %eval( %if( %null( %roomdesc), "null",  %roomdesc) = {%if( %null( @sRoomDesc), "null", @sRoomDesc)})) {
;    If there are no objects and the description matches the description  then remove desc update
#NOOP %roomload( , %bitxor(  %roomload, 2))
}
}
#IF (%walkactive) {#ALARM  {+@Mud.SlowWalkSpeed} {#STEP}}
}
#IF (%class( _MakeNewRoom))  {#EXEC _MakeNewRoom}
}
#ALIAS onroomenter {
;#EXEC _Debug  {onroomenter: Starting %bitand( %roomload, 2)=2}
RoomDenizenEnimies  = ""
;RoomObjects = ""
;#EXEC _FormatRoomObjects
#IF  (@Personal.MapLastRoom <> %roomnum) {
#ADDKEY Personal  MapLastRoom @Personal.MapThisRoom
#ADDKEY Personal MapThisRoom  %roomnum
}
;#IF (%match( @sExits, " in%p") and %roomlink( ,  in) = -2) {#ECHO Follow In Link}
;#IF (%match( @sExits, " out%p") and  %roomlink( , out) = -2) {#ECHO Follow Out Link}
#IF  (@Personal.Mapping) {
#NOOP %maplocked( 0)
#IF (%bitand(  %roomload, 1)=1) {
#NOOP %roomname( %roomnum, @sRoomName)
#NOOP %roomload( %roomnum, %bitxor( %roomload, 1))
}
#IF (%bitand( %roomload, 2)=2) {
#NOOP %roomdesc( %roomnum,  @sRoomDesc)
#NOOP %roomload( %roomnum, %bitxor( %roomload, 2))
}
#IF (%bitand( %roomload, 4)=4) {
#EXEC  _UpdateExits
#NOOP %roomload( %roomnum, %bitxor( %roomload, 4))
}
#NOOP %roomflags( %roomnum, @sRoomWWH)
#IF (%pos(  "You see a sign here indicating there are WARES for sale here.",  @sRoomWWH) > 0) {#NOOP %roomcol( ,16744703)}
#IF (%pos( "You  may enter the wilderness map from here.", @sRoomWWH) > 0) {#NOOP  %roomcol( ,33023)}
#IF (%pos( "You may ENTER SUBDIVISION from  here.", @sRoomWWH) > 0) {#NOOP %roomcol( ,33023)}
#IF  (@sRoomName <> %roomname) {#EXEC "_Debug RoomEnter : Roomname Does  Not Match! ID:%roomnum"}
}
}
#ALIAS _MakeNewRoom {
#T- _MakeNewRoom
#EXEC _Debug "Making New Room"
#PRIORITY {
#ADDKEY SearchForObjects MapLocked %maplocked
#NOOP  %maplocked( 0)
#IF ((@Mud.CommandLast = in) or (@Mud.CommandLast =  out)) {
#IF (@Mud.CommandLast = out) {
#ADDKEY  Personal MapLastRoom %roomnum
#MAKEROOM {out|down|in}  {@sRoomName} {@sRoomDesc}
#NOOP %roomlink(  @Personal.MapLastRoom, out, %roomnum)
;      #NOOP %roomlink( , in,  @Personal.MapLastRoom)
#EXEC _Debug {Lastroom:  @Personal.MapLastRoom ThisRoom :%roomnum}
}
#IF  (@Mud.CommandLast = in) {
#ADDKEY Personal MapLastRoom  %roomnum
#MAKEROOM {in|up|out} {@sRoomName} {@sRoomDesc}
#NOOP %roomlink( @Personal.MapLastRoom, in, %roomnum)
#EXEC _Debug {Lastroom: @Personal.MapLastRoom ThisRoom :%roomnum}
}
} {#MAKEROOM @Mud.CommandLast {@sRoomName} {@sRoomDesc}}
#IF (%numitems( %mapquery( {[Name] = '@sRoomName'}))>1) {#EXEC  _Debug {Same Name: @sRoomName Room Numbers: %mapquery( {[Name] =  '@sRoomName'})}}
#VAR RoomExits "" _nodef Room
#EXEC  _UpdateExits
#NOOP %maplocked( @SearchForObjects.MapLocked)
}
;#EXEC onroomenter
;#ECHO %ismember("",%roomexit)
}
#ALIAS  _SearchObjects {
#PRIORITY {
#STATE TrigIH 0
#ADDKEY  SearchForObjects FoundObject ""
#ADDKEY SearchForObjects Reload 0
RoomDenizenEnimies = ""
#IF (not %null( @RoomObjects)) {
#LOOPDB @RoomObjects {
#IF (not %null( @DBFIND({Items},  {DenizenTargets}, {Name}, {%val}))) {#ADDKEY RoomDenizenEnimies %key  %val}
#ADDKEY SearchForObjects Temp @DBFIND({Items}, {All},  {Name}, {%val})
#IF (%null( @SearchForObjects.Temp) and not  %match( %val, "{@ObjectIgnoreList}")) {
#EXEC _Debug  String(>%val~< Not Found)
#ADDKEY SearchForObjects  Confirm 1
#IF (@SearchForObjects.Confirm) {
#NEW "All|it" {Name=%val|ZoneId=%zonenum|RoomId=%roomnum}
#ADDKEY SearchForObjects FoundObject %additem( &Num,  @SearchForObjects.FoundObject)
} {#ADDITEM  ObjectIgnoreList {%val}}
} {#ADDKEY SearchForObjects  FoundObject %additem( %db( @SearchForObjects.Temp, Num),  @SearchForObjects.FoundObject)}
}
}
}
#IF (@Personal.Mapping or %eval( %bitand( %roomload, 2)=2) or %eval(  %numkeys( @RoomObjects) > %numitems( %roomcontents))) {
#ADDKEY SearchForObjects MapLocked %maplocked
#NOOP %maplocked(  0)
#NOOP %roomcontents( , @SearchForObjects.FoundObject)
#IF ((%bitand( %roomload, 2)=2) and not (%null( @sRoomDesc))) {
#NOOP %roomdesc( ,@sRoomDesc)
#NOOP %roomload( ,%bitxor(  %roomload, 2))
}
#NOOP %maplocked(  @SearchForObjects.MapLocked)
}
#IF (%walkactive) {#ALARM  +@Mud.SlowWalkSpeed {#STEP}}
#EXEC _FormatRoomObjects
}
#ALIAS  _UpdateExits {
#PRIORITY {
#VAR InOutUnknown 0 _nodef Room
#FORALL @DirectionsFull {
;    #ECHO Trying %i
#IF  ((%roomlink( ,%i) = -1) and (%match( @sExits, " %i%p") > 0)) {
;    Creates New Links to Unknown Rooms
;      #ECHO Hit on %i
#IF ((%i=in) or (%i=out)) {
#ADD InOutUnknown 1
#IF (@InOutUnknown > @CountNull(%roomexit)) {#NOOP %roomlink( ,%i,  -2)}
} {#NOOP %roomlink( ,%i, -2)}
}
#IF ((%roomlink( ,%i) > 0) and not (%match( @sExits, " %i%p") >  0)) {
;   Deleted Links to Unlisted Exits
#NOOP %roomlink(  ,%i, -1)
}
}
}
}
#VAR sRoomAll  {Thousands of petals have been scattered around this stunning sculpture  of the Goddess Selene in honour of Her. A brass-bound spyglass rolls  about on its side. There are 2 red king crabs here.}
#VAR sRoomDesc  {}
#VAR sRoomPeople {}
#VAR sRoomWWH {}
#VAR sRoomName {Shore  along the cliff's base.}
#VAR sRoomObjects {Thousands of petals have  been scattered around this stunning sculpture of the Goddess Selene in  honour of Her. A brass-bound spyglass rolls about on its side. There are  2 red king crabs here.}
#VAR sExits { leading east, southeast, and  southwest.}
#VAR SearchForObjects  {FoundObject1823itTemp(Num1823itNamea red king  crabLevel0KindAlignmentTargetNoAgressiveNoCommentQuestItemNoRoomId1395ZoneIdVashnar  MountainsTalksNoSellsNoUpdateNo)MapLocked1Reload0Confirm1}
#VAR  TempExits {}
#VAR AllExits {}
#VAR RoomExits {}
#VAR  ObjectIgnoreList {a black Mayaween|a Logosmas |a pike with the head of|a  pine-fresh Logosmas|a sprig of mistletoe|an evergreen Logosmas|the  corpse of}
#VAR SQLQuery {_noddef} {_noddef}
#VAR sWhoHere  {Trilion}
#VAR InOutUnknown {0}
#ONINPUT "TrigIH" {^ih$} {
RoomObjects = ""
#TEMP {^Number of objects:%s%d$} {
#EXEC  _AddCommand {_SearchObjects}
#STATE TrigIH 0
}
}
#COND  {^(%w%d)%s(*)} {#ADDKEY RoomObjects {%1} {%2}} {looplines|param=100}
#TRIGGER  "TrigRoomInfo" {^%e[1;35m(*)} {
sRoomName = %stripansi( "%1")
#TAG Name @sRoomName
} "" {color}
#COND {(*)} {
;_debug Hit
#PRIORITY {
sRoomAll = %subregex( "%1", "\e\[0m", "")
#IF  (%regex( @sRoomAll, "\e\[1;34m.+")) {
sRoomObjects = ""
sExits = %stripansi( @sRoomAll)
#TAG Exit @sExits
#STATE TrigRoomInfo 0
#EXEC _RoomEnter
} {
#IF (%regex( @sRoomAll, "\e\[1;37mA blizzard rages around you.+")) {
#NOMAP
#STATE TrigRoomInfo 0
#EXEC  _RoomEnter
} {
sRoomDesc=""
sRoomObjects=""
sRoomPeople=""
;     If Room Description
#IF (%regex( @sRoomAll, "\e\[37m.+") > 0) {
;        RoomDescription SingleLine Only with no objects
#NOOP  %regex( @sRoomAll, "(\e\[37m.+$)", @sRoomDesc)
;        RoomDescription SingleLine Only
#NOOP %regex( @sRoomAll,  "(\e\[37m.+?\e)", @sRoomDesc)
;       RoomDescription Multiline to  fullstop
#NOOP %regex( @sRoomAll,  "(\e\[37m.+\e\[37m.+?\e)", @sRoomDesc)
sRoomDesc =  %stripansi( @sRoomDesc)
}
;     If Room Objects
#IF (%regex( @sRoomAll, "\e\[36m.+") > 0) {
;       Room  Objects SingleLine
#NOOP %regex( @sRoomAll, "(\e\[36m.+$)",  @sRoomObjects)
;       Room Objects MultiLine  to fullstop
#NOOP %regex( @sRoomAll, "(\e\[[0;]*?36m.+\e\[36m.+?\.)",  @sRoomObjects)
sRoomObjects = %stripansi( @sRoomObjects)
}
;     If Room People
#IF (%regex( @sRoomAll,  "\e\[1;33m.+") > 0) {
;       Room People SingleLine
#NOOP %regex( @sRoomAll, "(\e\[1;33m.+$)", @sRoomObjects)
;        Room People MultiLine to fullstop
#NOOP %regex( @sRoomAll,  "(\e\[1;33m.+\e\[1;33m.+?\.)", @sRoomObjects)
sRoomObjects  = %stripansi( @sRoomObjects)
}
}
}
}
} {within|param=1|color}
#COND {^%e[1;34m{You see|There are  no obvious} {a single exit|exits}(*.)} {
sExits = %stripansi(  "%1")
#EXEC _RoomEnter
} {within|param=1|color}
#TRIGGER  {^Now now, don't be so hasty!$} {
#COLOR bright,red
#SEND  %lastdir( )
}
#TRIGGER {^There is no exit in that direction.$} {
#IF (%inwalk) {_TelMe}
#NODIR
}
#TRIGGER {^There's water  ahead of you. You'll have to SWIM %w to make it through.$} {
#NODIR
#STOP
}
#TRIGGER {^You follow *,* ({@DirectionsFull}) to (*)} {
sRoomName = %1
#MOVE %1
#IF (@Personal.PartyHunt)  {_SendCommandOnPrompt ql}
;_Debug Mapper Moving %1
} "" {case}
#TRIGGER  {^There is a door in the way, to the (%w).$} {
#IF (not  %maplocked) {
#IF (%class( _MakeNewRoom)) {#T- _MakeNewRoom}
#IF ((%1=in) or (%1=out)) {#IF ((%roomlink( ,%1) = -1) and  (@CountNull(%roomexit)=0)) {#DOOR %1}} {#DOOR %1}
}
}
#ONINPUT  {^{map|look|l}$} {#NOMAP}
#ONINPUT {^who here$} {}
#COND {^You  see the following people here:$} {}
#COND {(*)} {#VAR sWhoHere  %replace( "%1", ",", "|") _nodef Room}
#ONINPUT {^({@Directions})$} {
#IF (%roomlink( ,%1)<0) {
#IF (%1=in) {#T+  TrigBlankDescption}
#IF %inwalk {#STOP}
#T+ _MakeNewRoom
}
}
#TRIGGER "TrigBlankDescption" {^$} {
;#ECHO %state(  TrigRoomInfo)
#IF (%state( TrigRoomInfo)=0) {#STATE TrigRoomInfo 2}
#T- TrigBlankDescption
} "" {skip|param=2|disable}
#TRIGGER  {^This door has been magically locked shut.$} {#NODIR}
#CLASS 0
#CLASS  {Triggers|Room|EnterExit}
#TRIGGER {^%w arrives from the %w.$}  {#ECHO Someone Arrived}
#TRIGGER {^%w descends from above.$} {#ECHO  Someone Arrived}
#TRIGGER {^%w leaves to the %w} {#ECHO Someone Left}
#CLASS  0
#CLASS {Triggers|Room|Denizen}
#ALIAS _RemoveLastTarget {
#IF (%iskey( @RoomObjects, @Combat.LastTarget)) {#DELKEY RoomObjects  @Combat.LastTarget}
#IF (%iskey( @RoomDenizenEnimies,  @Combat.LastTarget)) {#DELKEY RoomDenizenEnimies @Combat.LastTarget}
#EXEC _FormatRoomObjects
}
#TRIGGER {^You have slain *,  retrieving the corpse.$} {
#EXEC _RemoveLastTarget
#IF  (@Personal.AutoHuntStop and %null( @RoomDenizenEnimies)) {
#ALARM  +1 {
#BUTTON bHunt
#IF (@Personal.HuntOnRefLoss)  {#EXEC _ActionAdd Reflection me}
}
}
}
#TRIGGER  {^You detect nothing here by that name.$} {
#EXEC _RemoveLastTarget
#ADDKEY Personal EQ 1
}
#TRIGGER {^I do not recognise anything  called that here.$} {
#EXEC _RemoveLastTarget
#ADDKEY Personal  EQ 1
}
#TRIGGER {^Ahh, I am truly sorry, but I do not see  anyone by that name here.$} {
#EXEC _RemoveLastTarget
#ADDKEY  Personal EQ 1
}
#TRIGGER {^Nothing can be seen here by that  name.$} {
#EXEC _RemoveLastTarget
#ADDKEY Personal EQ 1
}
#TRIGGER  {^You cannot see that being here.$} {
#EXEC _RemoveLastTarget
#ADDKEY Personal EQ 1
}
#TRIGGER {^You will now notice the  movement of rats. Happy hunting!$} {
#T+ Rats
#ADDKEY Personal  RatsSeen 1
}
#TRIGGER {^You will no longer take notice of the  movement of rats.$} {
#T- Rats
#ADDKEY Personal RatsSeen 0
}
#CLASS 0
#CLASS {Triggers|Room|Denizen|Rats}
#VAR Rats {a  rat|a young rat|an old rat|a black rat|a baby rat}
#ONINPUT {rats} {}  "" {disable}
#TRIGGER {^{@Rats} noses its way cautiously out of the  shadows.$} {_SendCommandOnPrompt ih}
#TRIGGER {^{@Rats} wanders into  view, nosing about for food.$} {_SendCommandOnPrompt ih}
#TRIGGER  {^With a squeak, {@Rats} darts into the room, looking about wildly.$}  {_SendCommandOnPrompt ih}
#TRIGGER {^Your eyes are drawn to {@Rats}  that darts suddenly into view.$} {_SendCommandOnPrompt ih}
#TRIGGER  {^{@Rats} wanders back into its warren where you may not follow.$}  {_SendCommandOnPrompt ih}
#TRIGGER {^{@Rats} darts into the shadows  and disappears.$} {_SendCommandOnPrompt ih}
#TRIGGER {^With a flick  of its small whiskers, a*rat dashes out of view.$} {_SendCommandOnPrompt  ih}
#CLASS 0
#CLASS {Triggers|Room|Denizen|tDangerousEnters}
#TRIGGER  {^On the hunt for its next meal, a shark enters from the %w.$}  {_SendCommandOnPrompt ih}
#CLASS 0
#CLASS {Triggers|Room|tPlayers}
#TRIGGER  {^A beam of prismatic light shoots into the room.$} {
#ECHO Hit
#IF (@Personal.InHalls) {
#EXEC _SendCommandOnPrompt "ht Prysm  to me in Halls"
#PRIORITY {#EXEC _ActionAdd Move}
#IF  (@Mud.PromptWaiting) {#EXEC _ProcessActions}
}
}
#CLASS 0
#CLASS  {Triggers|Room|Old}
#ALIAS _SearchForObjectsOld2 {
#PRIORITY {
#ADDKEY SearchForObjects FoundObject ""
#ADDKEY  SearchForObjects Reload 0
RoomDenizenEnimies = ""
#IF (not  %null( @RoomObjects)) {
#LOOPDB @RoomObjects {
#IF  (not %null( %query( (&Name=%val), DenizenTargets|it))) {#ADDKEY  RoomDenizenEnimies %key %val}
#IF (@Personal.Mapping) {
#ADDKEY SearchForObjects Temp %find( %val, All|it, Name)
#IF (not %null( @SearchForObjects.Temp)) {#ADDKEY SearchForObjects  FoundObject %additem( @SearchForObjects.Temp,  @SearchForObjects.FoundObject)} {
#IF (not %match( %val,  "{@ObjectIgnoreList}")) {
#EXEC _Debug  String(>%val> Not Found)
#ADDKEY SearchForObjects  Confirm %yesno( Enter %val)
#IF  (@SearchForObjects.Confirm) {
#NEW "All|it"  {Name=%val|ZoneId=%zonenum|RoomId=%roomnum}
#ADDKEY  SearchForObjects Reload 1
} {#ADDITEM  ObjectIgnoreList {%val}}
}
}
}
}
}
}
#EXEC _FormatRoomObjects
}
#ALIAS  _RoomEnterOld {
#OK
RoomObjects = ""
#IF  ((@Personal.Mapping or @Personal.Hunting) and not %null( @sRoomObjects))  {_SendCommandOnPrompt ih} {#ALARM {+@Mud.SlowWalkSpeed} {#IF  (%walkactive) {#STEP}}}
#IF (@Personal.Mapping) {
#ALARM  +0.2 {
#ADDKEY Mud LastRoomNum @Mud.ThisRoomNum
#ADDKEY Mud ThisRoomNum %roomnum
#IF (%ismember(  @Mud.CommandLast, @Directions) and (@Mud.LastRoomNum=@Mud.ThisRoomNum)) {
;%eval(  %roomlink( ,@Mud.CommandLast)=-2)
#EXEC _Debug "Making New  Room"
#IF (not %null( %mapquery( {[Name] = '@sRoomName'})))  {#EXEC _Debug {Same Name: @sRoomName Room Numbers: %mapquery(  @SQLQuery)}}
#MAKE @Mud.CommandLast {@sRoomName} {@sRoomDesc}
#VAR RoomExits "" _nodef Room
#FORALL @DirectionsFull  {#IF (%match( @sExits, "[ ]%i[ .,]")) {#ADDITEM RoomExits %i}}
#FORALL @RoomExits {#IF (%roomlink( ,%i)<0) {#NOOP %roomlink( ,%i,  -2)}}
#STOP
}
}
}
}
#ALIAS  _UpdateExitsOld {
#FORALL @DirectionsFull {#IF (%match( @sExits,  "[ ]%i[ .,]")) {
#ADDITEM RoomExits %i
#IF (%roomlink(  ,%i) < 0) {#NOOP %roomlink( ,%i, -2)}
} {#IF (%roomlink(  ,%i) <> @Personal.LastRoom) {#NOOP %roomlink( ,%i, -1)}}}
;#FORALL  @RoomExits {#IF (%roomlink( ,%i)<0) {#NOOP %roomlink( ,%i, -2)}}
}
#ALIAS _SearchObjectsOld {
#PRIORITY {
#STATE TrigIH 0
#ADDKEY SearchForObjects FoundObject ""
#ADDKEY  SearchForObjects Reload 0
RoomDenizenEnimies = ""
#IF (not  %null( @RoomObjects)) {
#LOOPDB @RoomObjects {
#IF  (%not %null(  @DBQuery(Items,(%literal(&Name)=%string(%val))~&(~&Type="Denizen")~&(~&Target="Yes"))))  {#ADDKEY RoomDenizenEnimies %key %val}
#ADDKEY  SearchForObjects Temp %find( %val, All|it, Name)
#IF (not  %null( @SearchForObjects.Temp)) {#ADDKEY SearchForObjects FoundObject  %additem( @SearchForObjects.Temp, @SearchForObjects.FoundObject)} {
#IF (not %match( %val, "{@ObjectIgnoreList}")) {
#EXEC _Debug String(>%val~< Not Found)
#ADDKEY  SearchForObjects Confirm 1
;%yesno( Enter %val)
#IF  (@SearchForObjects.Confirm) {
#NEW "All|it"  {Name=%val|ZoneId=%zonenum|RoomId=%roomnum}
#ADDKEY  SearchForObjects FoundObject %additem( &Num,  @SearchForObjects.FoundObject)
} {#ADDITEM  ObjectIgnoreList {%val}}
}
}
}
}
}
#IF (@Personal.Mapping or %eval( %bitand(  %roomload, 2)=2) or %eval( %numkeys( @RoomObjects)>%numitems(  %roomcontents))) {
#ADDKEY SearchForObjects MapLocked %maplocked
#NOOP %maplocked( 0)
#NOOP %roomcontents( ,  @SearchForObjects.FoundObject)
;    #IF (%bitand( %roomload, 2)=2)  {#NOOP %roomload( ,%bitxor( %roomload, 2))}
#NOOP %maplocked(  @SearchForObjects.MapLocked)
}
#ALARM +@Mud.SlowWalkSpeed  {#IF (%walkactive) {#STEP}}
#EXEC _FormatRoomObjects
}
#ALIAS  _UpdateExitsOld2 {
#FORALL @DirectionsFull {
; Creates New  Links to Unknown Rooms
#IF ((%roomlink( ,%i) = -1) and (%match(  @sExits, "[ ]%i[ .,]") > 0)) {#NOOP %roomlink( ,%i, -2)}
#IF  ((%roomlink( ,%i) > 0) and not (%match( @sExits, "[ ]%i[ .,]") >  0)) {#NOOP %roomlink( ,%i, -1)}
}
;#FORALL @RoomExits {#IF  (%roomlink( ,%i)<0) {#NOOP %roomlink( ,%i, -2)}}
}
#VAR  IsDenizenTarget {%eval( not %null( %query( (&Name="%1"),  DenizenTargets|it)))}
#TRIGGER "TrigRoomInfo" {^%e[1;35m(*)} {
sRoomName = %stripansi( "%1")
#TAG Name @sRoomName
} ""  {color|disable}
#COND {(*)} {
#PRIORITY {
sRoomAll =  %subregex( "%1", "\e\[0m", "")
#IF (%regex( @sRoomAll,  "\e\[1;34m.+")) {
sRoomObjects = ""
sExits =  %stripansi( @sRoomAll)
#TAG Exit @sExits
#STATE  TrigRoomInfo 0
#EXEC _RoomEnter
} {
#IF  (%regex( @sRoomAll, "\e\[1;37mA blizzard rages around you.+")) {
#NOMAP
#STATE TrigRoomInfo 0
#EXEC _RoomEnter
} {
sRoomDesc=""
sRoomObjects=""
sRoomPeople=""
sRoomWWH=""
#IF (%regex(  @sRoomAll, "(\e\[[0;]*?37m.+$)", @sRoomDesc) > 0) {
#NOOP %regex( @sRoomAll, "(\e\[[0;]*?37m.+\e\[37m.+?\.)", @sRoomDesc)
sRoomDesc = %stripansi( @sRoomDesc)
}
#IF (%regex( @sRoomAll, "(\e\[[0;]*?36m.+$)", @sRoomObjects)) {#NOOP  %regex( @sRoomAll, "(\e\[[0;]*?36m.+\e\[36m.+?\.)", @sRoomObjects)}
#NOOP %regex( @sRoomAll, "(\e\[1;36m.+?\.+$)", @sRoomPeople)
#IF (%regex( @sRoomAll, "(\e\[[0;]*?33m.+$)", @sRoomWWH)) {
#NOOP %regex( @sRoomAll, "(\e\[[0;]*?33m.+\e\[33m.+?\.)",  @sRoomWWH)
sRoomWWH = %stripansi( @sRoomWWH)
}
}
}
}
} {within|param=1|color|disable}
#COND  {^%e[1;34m{You see|There are no obvious} {a single exit|exits}(*.)} {
sExits = %stripansi( "%1")
#EXEC _RoomEnter
}  {within|param=1|color|disable}
#CLASS 0
Share

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>