This isn't too terribly hard, I promise.
Here's the issue: When you encounter a pony, you disable the trigger that follows your INFO HERE (the command that prompts the list of items in a room, for those that don't do IRE games). Now, if it didn't do this, you'd always target the last name on the list. For example:
"MUSHUser0001" Nick Gammon
"MUSHUser1853" Thomas B
"MUSHUser0892" Worstje
Your trigger basically scans for things in quotes that end with number. Since it doesn't see a pony, that trigger will execute three times and end by targeting MUSHUser0892, who is Worstje. If MUSHUsr1853, Thomas B, was actually a pony, that is "MUSHUSer0001" Nick Gammon
"Pony0022" Thomas B
"MUSHUser0892" Worstje
things would happen like this:
MUSH sees "MUSHUSer0001", it's not a pony, so we Execute("t %1;bashon")
EnableTrigger("ihbash_", false)
, then it sees a pony. So, it does this:display.Info("NO TARGETS HERE")
EnableTrigger("ihbash_", false)
.
Now that the ibash_ trigger is turned off, it won't be able to see Worstje. Problem!
Here's how to fix the pony issue. Change the entire <send> schtuff to:
if "%1" != "pony" then
Execute("t %1;bashon")
EnableTrigger("ihbash_", false)
end
We want the pony to be ignored, this will do that.
Now, you're still going to have the issue of your target always being the last item in the room since that'll be the last line in the IH.
If you really want to stop targeting inanimate objects completely you'll need either a list of animate objects or a list of inanimate objects to target/avoid. The script has no idea if the item can be targeted or not unless you code in a few things to look out for. |