|
MisterDwooD Novice
Joined: 04 Feb 2014 Posts: 42
|
Posted: Thu Feb 04, 2016 12:46 am
Variable Contains Script |
I'm looking for a way to look at a variable, and see if somewhere int he variable it contains a certain string. For example:
Script to trigger on:
|wielded| a strong-arms club
Trigger:
#trig {~|wielded~| (*)} {#VAR yougotsomeweapon %-1;#ECHO @yougotsomeweapon}
For some reason, I can't get the whole weapon string in. It only captains the "a"...
But, the main things is: How do I do this:
#if %contains(@yougotsomeweapon, club) {#var thisisyourweapon club}
Does that make sense? I want it to trigger off my wielded weapon, and then put it in a variable. If i don't need to create the @yougotsomeweapon to check, then maybe only needs to be one step.. like:
#trig {~|wielded~| (*)} {#if %contains(%1, club) {#var thisisyourweapon club} }}
note. this is all freehand and not actual scripts.. Just for random example.
Thanks! |
|
|
|
Daern Sorcerer
Joined: 15 Apr 2011 Posts: 809
|
Posted: Thu Feb 04, 2016 1:27 am |
%pos("club", %1)
|
|
|
|
MisterDwooD Novice
Joined: 04 Feb 2014 Posts: 42
|
Posted: Thu Feb 04, 2016 5:02 am |
Thanks for posting. But that's not really what i'm looking for. For example.
Mud output:
|wielded| a strong-arms club
Trigger:
PostPosted: Wed Feb 03, 2016 5:46 pm
Variable Contains Script
I'm looking for a way to look at a variable, and see if somewhere int he variable it contains a certain string. For example:
Script to trigger on:
|wielded| a strong-arms club
Trigger:
#trig {~|wielded~| (*)} {#var yougotsomeweapon %1
#if %contains {@yougotsomeweapon, dagger} {#var wieldedweapon dagger}
#if %contains {@yougotsomeweapon, sword} {#var wieldedweapon sword}
#if %contains {@yougotsomeweapon, mace} {#var wieldedweapon mace}
#if %contains {@yougotsomeweapon, axe} {#var wieldedweapon axe}
That way I don't have to manually set my wielded weapon.
Does that make sense? |
|
|
|
Vijilante SubAdmin
Joined: 18 Nov 2001 Posts: 5182
|
Posted: Thu Feb 04, 2016 6:49 am |
Work smarter not harder
Code: |
#TRIGGER {~|wielded~| *({dagger|sword|mace|axe})} {#VAR wieldedweapon {%1}} |
Work harder version
Code: |
#TRIGGER {~|wielded~| (*)} {#VAR yougotsomeweapon {%1}
#IF (%pos ("dagger", @yougotsomeweapon)) {#VAR wieldedweapon {dagger}}
#IF (%pos ("sword", @yougotsomeweapon)) {#VAR wieldedweapon {sword}}
#IF (%pos ("mace", @yougotsomeweapon)) {#VAR wieldedweapon {mace}}
#IF (%pos ("axe", @yougotsomeweapon)) {#VAR wieldedweapon {axe}}} |
Proper use of delimeters such as () {} "" can never be stressed enough. zMud is forgiving about doing it wrong, but can't always guess what you mean when using strange combination. |
|
_________________ The only good questions are the ones we have never answered before.
Search the Forums |
|
|
|
MisterDwooD Novice
Joined: 04 Feb 2014 Posts: 42
|
Posted: Sat Feb 06, 2016 3:57 am |
Thanks guys for piping in.
I've never used the %pos command before. Can you give me a quick rundown of it? Or rather, just confirm if my understanding is correct.. Usually it's what position is *blah* in @blah. So, using it in the way you did just checks to see if *blah* is anywhere in @blah?
If so, that's genius. Another question:
Why do you have ({dagger|sword|mace|axe}) inside brackets and parenthesis?
Thanks! |
|
|
|
Daern Sorcerer
Joined: 15 Apr 2011 Posts: 809
|
Posted: Sat Feb 06, 2016 4:53 am |
"Thanks guys for piping in.
I've never used the %pos command before. Can you give me a quick rundown of it? Or rather, just confirm if my understanding is correct.. Usually it's what position is *blah* in @blah. So, using it in the way you did just checks to see if *blah* is anywhere in @blah? "
In my initial post when I first suggested it, I included a link to the documentation on %pos. But yes, it works exactly like what you were describing. It's just called %pos, not %contains.
"Why do you have ({dagger|sword|mace|axe}) inside brackets and parenthesis?"
The braces denote a list, so that trigger pattern will match any of those words. The parentheses create a capture group, so the match can then be referenced as %1, %2, etc (same as your "(*)"). |
|
|
|
MisterDwooD Novice
Joined: 04 Feb 2014 Posts: 42
|
Posted: Sat Feb 06, 2016 6:32 pm |
That is exactly what I needed to learn! You guys were both a great help! It's working swimmingly now!
|
|
|
|
|
|