I use the debug keyword to check out what happens when I say hi near your oddly shaped pole.
Do you know about the keyword?
read the info about debug
Now looking at the poles reaction to me saying something I see it correctly is identified as something that reacts.
It runs 'whodunit'
[DEBUG ## process block [whodunit] cmd_count=3 sub_count=7]
Which checks the init object equalsing the actors host
[DEBUG -> process_subs - (if $init_obj = $actor's host then whatwords else end)]
Failing this:
[DEBUG --> if [87] [eq] ["0"] then [whatwords] else [end]]
It runs the end block.. of which there is none and comamnd stops:
[DEBUG ## process block [end] cmd_count=3 sub_count=8]
Now the fun begins when we host the pole and say the magic word:
[DEBUG -> process_subs - (if $init_cmd like "soulharvest" then further else end)]
Which gets resolved down into
[DEBUG IF2 [say] [like] ["soulharvest"]]
So we see the $init_cmd is being translated into 'say' the command not what was said.
If you use the variable $text you should find this works.
if $text like "soulharvest then ...
Notice that like is handy here eg:
if $text like (soulharvest|disneyland|bingo) then ...
Another thing Id like to draw your attention to if you have a moment.. and thats the reaction code.
yes ##say: runsub ... works fine to trigger a reaction but
if reacting to say then whodunit
Is a much nicer and more readable way of trapping reactions.
The three are:
if target of {triggerword} then {block_to_run}
if second of {triggerword} then {block_to_run}
if reacting to {triggerword} then {block_to_run}
Im planning on removing the ability to have ##say: runsub ... work as a trigger some time in the distant future..
Its confusing, conflivs with general block names, the old form had to ask additional querstions to work out who was the $target etc..
so please use the IF versions where possible and update old code if you have any.
Thanks and have a nice cow.