|
LordFett213 Novice
Joined: 20 Aug 2008 Posts: 34
|
Posted: Tue Mar 24, 2009 4:20 am
Trigger based off of previous line's input |
I am trying to write a set of triggers to practice two connected skills, detect trap and disarm trap.
Right now my trigger is just for detect trap and is as such:
#alarm +10 {#case %random {detect door n} {detect door s} {detect door e} {detect door w} {detect door u} {detect door d}}
If the skill detects a trap I would like to trigger it to disarm the trap on the door in the direction it was detected. So if random gives me: detect door e and I get "You detect a trap" I will disarmtrap door e. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4690 Location: Pensacola, FL, USA
|
Posted: Tue Mar 24, 2009 7:10 am |
#ALARM +10 {Thisdoor=%item("n|e|w|s|u|d", %random(1,6));detect door @thisdoor}
#TR {You detect a trap} {disarmtrap door @thisdoor} |
|
_________________ Discord: Shalimarwildcat |
|
|
|
LordFett213 Novice
Joined: 20 Aug 2008 Posts: 34
|
Posted: Tue Mar 24, 2009 12:26 pm |
Works like a champ.
|
|
|
|
LordFett213 Novice
Joined: 20 Aug 2008 Posts: 34
|
Posted: Tue Mar 24, 2009 12:47 pm |
How about an addition to this that when you remove the trap (trigger {You remove a trap}) it starts over but removes the direction you just removed the trap from so you don't try and re-remove that trap? Then once all directions are removed they're readded.
So first success is on the east door, next attempt is between n|s|w|u|d then u door is taken care of so next round is n|s|w|d so on until the last one, say n is disarmed then the full list of 6 directions is available again. |
|
|
|
Tech GURU
Joined: 18 Oct 2000 Posts: 2733 Location: Atlanta, USA
|
Posted: Wed Mar 25, 2009 7:16 am |
Something like this should help.
Code: |
#VAR Dirs "n|e|w|s|u|d"
#ALARM +10 {Thisdoor=%item(@Dirs, %random(1,%numitems(@Dirs)));detect door @thisdoor}
#TR {You detect a trap} {disarmtrap door @thisdoor;#CALL %delitem(@Thisdoor,@Dirs);#IF (%numitems(@Dirs) == 0) {Dirs="n|e|w|s|u|d"}} |
That's off the top of my head but should do the trick. The last bit of code there resets the Dirs variable after you've gone through all the doors. |
|
_________________ Asati di tempari! |
|
|
|
LordFett213 Novice
Joined: 20 Aug 2008 Posts: 34
|
Posted: Wed Mar 25, 2009 2:59 pm |
I tried with your stuff Tech and it just isn't firing. I have since shalimar first posted added a bit to the triggers, going to post everything and see if I can figure out the problem.
Code: |
#CLASS {skillbot|detect trap}
#TRIGGER {You don't detect anything strange.} {#ALARM +15 {Thisdoor=%item( "n|e|w|s|u|d", %random( 1, 6));detect door @thisdoor}}
#TRIGGER {You are too weary to concentrate right now...rest a bit.} {#ALARM +15 {Thisdoor=%item( "n|e|w|s|u|d", %random( 1, 6));detect door @thisdoor}}
#TRIGGER {Nothing seems to happen...} {#alarm +15 {detect door @thisdoor}}
#TRIGGER {You remove a trap!} {#alarm +6 {pick door @thisdoor}}
#TRIGGER {You detect a trap!} {#alarm +15 {disarmtrap door @thisdoor}}
#TRIGGER {You cannot concentrate enough at the moment...rest a bit.} {#alarm +15 {disarmtrap door @thisdoor}}
#TRIGGER {The lock quickly yields to your skills and pops open.} {open door @thisdoor;#ALARM +15 {Thisdoor=%item( "n|e|w|s|u|d", %random( 1, 6));detect door @thisdoor}}
#TRIGGER {You failed to pick the lock.} {#alarm +6 {pick door @thisdoor}}
#CLASS 0 |
All the doors are locked, so once I have removed the trap I am trying my hand at picking the door. If I find a trap and do not disarm it, I have it recheck that same door until I disarm it and then start picking it. Once the door has been picked I start on a new random direction until I find a trap. What I have for what Tech added is this:
Code: |
#CLASS {skillbot|detect traps 2}
#TRIGGER {You don't detect anything strange.} {#ALARM +15 {Thisdoor=%item( @Dirs, %random( 1, %numitems( @Dirs))) detect door @thisdoor}}
#TRIGGER {You are too weary to concentrate right now...rest a bit.} {#ALARM +15 {Thisdoor=%item( @Dirs, %random( 1, %numitems( @Dirs))) detect door @thisdoor}}
#TRIGGER {Nothing seems to happen...} {#alarm +15 {detect door @thisdoor}}
#TRIGGER {You remove a trap!} {#alarm +6 {pick door @thisdoor}}
#TRIGGER {You detect a trap!} {#alarm +15 {disarmtrap door @thisdoor}}
#TRIGGER {You cannot concentrate enough at the moment...rest a bit.} {#alarm +15 {disarmtrap door @thisdoor}}
#TRIGGER {The lock quickly yields to your skills and pops open.} {open door @thisdoor;#CALL %delitem(@Thisdoor,@Dirs);#IF (%numitems( @Dirs) == 0) {Dirs="n|e|w|s|u|d"};#ALARM +15 {Thisdoor=%item( @Dirs, %random( 1, %numitems( @Dirs))) detect door @thisdoor}}
#TRIGGER {You failed to pick the lock.} {#alarm +6 {pick door @thisdoor}}
#CLASS 0 |
The 2nd trigger set fires on You detect a trap and Nothing seems to happen. But You don't detect anything strange it seems to have a problem. I don't know if I messed up in my entering of the #call %delitem or what. Also each time it tries it adds door dir to the thisdoor variable so after say 5 attempts I end up with "s door e door u door w door d" as the variable. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4690 Location: Pensacola, FL, USA
|
Posted: Wed Mar 25, 2009 7:35 pm |
well for one, you are redefining @thisdoor whenever you are too weary to concentrate instead of just using the current value
instead of the call line try
#DELITEM dirs @thisdoor
here is the culpret
#ALARM +15 {Thisdoor=%item( @Dirs, %random( 1, %numitems( @Dirs))) detect door @thisdoor}}
should be
#ALARM +15 {Thisdoor=%item( @Dirs, %random( 1, %numitems( @Dirs)));detect door @thisdoor}} |
|
_________________ Discord: Shalimarwildcat |
|
|
|
LordFett213 Novice
Joined: 20 Aug 2008 Posts: 34
|
Posted: Thu Mar 26, 2009 4:40 am |
Thanks for that catch on the ; shalimar. But the #CALL %delitem(@Thisdoor,@Dirs) doesn't remove anything from the @Dirs variable. So if the 2nd detect is the same as the first it gets stuck on that door until repop.
I cleared the @dirs variable list and it repopulated it fine. It is just not removing the direction it just cleared after the door was picked. |
|
|
|
shalimar GURU
Joined: 04 Aug 2002 Posts: 4690 Location: Pensacola, FL, USA
|
Posted: Thu Mar 26, 2009 6:48 am |
did you try the #DELITEM?
|
|
_________________ Discord: Shalimarwildcat |
|
|
|
LordFett213 Novice
Joined: 20 Aug 2008 Posts: 34
|
Posted: Thu Mar 26, 2009 7:33 am |
You the man shalimar... I guess I didn't fully read/understand your post the first time through.
Making more then simple triggers is still pretty new to me. So far it looks like everything is working. |
|
|
|
|
|