Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD General Discussion
surge321123
Beginner


Joined: 09 Jun 2011
Posts: 14

PostPosted: Thu Jun 09, 2011 7:33 pm   

Multistate triggers with unknown number of lines
 
I am trying to make a multistate trigger for a room description that captures all the items in the room. I can easily capture them all in a child window, but I have a list of items that are ok to be in the room, but if there is anything else in the room, I want to leave the room.

The issue I am having is that I don't know how many items will be in the room. There are bushes which always appear there, plus sometimes there is a monster in the room, which is ok. If I see a player there or an object in the room then I want to leave. If there are just bushes in the room, the trigger fires perfectly. However, if there is also a monster, it doesn't pick up on it. If there are multiple items, the trigger doesn't even fire.

Is there a method to catch multiple items in the room, and react if there is anything out of the ordinary?

here is an example of the room desc

room short

room description
room desc

room desc
room desc

Fluffy white clouds drift lazily overhead.
Obvious exits are south and north.

bushes
cricket

> (this is the command prompt)
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4578
Location: Pensacola, FL, USA

PostPosted: Thu Jun 09, 2011 8:21 pm   
 
sounds like you need to capture everything between the exit and the prompt.

I would suggest a named trigger ( #TR "catchAll" {(*)} {check on %1} ) that the exit line turns on (#T+ catchAll) and you prompt turns off (#T- catchAll)

It is up to your scripting to know what is okay to be there and what isn't.
_________________
Discord: Shalimar#3679
Reply with quote
surge321123
Beginner


Joined: 09 Jun 2011
Posts: 14

PostPosted: Fri Jun 10, 2011 12:49 am   
 
I tried what you said, but I need to find a way to make the trigger wait a couple lines before turning on. At first, all it did was capture the exits line (the one that triggered turning on the catchall trigger) So then I decided to make it a multiline trigger so it would see the exits line, then when it saw the blank line after it, it would turn on the catchall trigger. Here is what I am getting. (I deleted about 100000 "not bushes" which is the echo I made for when they are not bushes but I didn't want to fill this screen with them all)

Obvious exits are south and north.

not bushes
not bushes
not bushes
not bushes
not bushes
not bushes
not bushes
bushes
these are bushes
cricket
these are bushes
>



I don't understand why it is firing so many times! It says "these are bushes" when it sees bushes or crickets... just to clarify that

any ideas?
Reply with quote
shalimar
GURU


Joined: 04 Aug 2002
Posts: 4578
Location: Pensacola, FL, USA

PostPosted: Fri Jun 10, 2011 5:28 am   
 
the problem is that your echo message is causing the trigger to fire... try using #PRINT, i think that is the non triggering method
_________________
Discord: Shalimar#3679
Reply with quote
surge321123
Beginner


Joined: 09 Jun 2011
Posts: 14

PostPosted: Fri Jun 10, 2011 7:15 pm   
 
Excellent! That worked. Thank you.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD General Discussion All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

© 2009 Zugg Software. Hosted by Wolfpaw.net