Quote:
Originally Posted by Asphixiate
Is there a reason this doesn't work? (I want to exclude the pure melee classes from scribing discs).
Code:
sub EVENT_SAY
{
if ($text=~/Hail/i && $ulevel <= 50 && $class != 'Warrior' || $class != 'Rogue' || $class != 'Monk'){
quest::say("Hello, $name. If you would like, I can [scribe] all of your spells up to level 50. After that, you will have to find any remaining spells on your own!"); }
if ($text=~/Hail/i && $ulevel >= 51) { quest::say("Hello, $name. You are too high to have any spells scribed!"); }
if ($text=~/scribe/i && $ulevel <= 50) { quest::say("Very well, here you are $name!");
quest::scribespells(); }
}
the above actually breaks the script entirely, no one is able to trigger the hail event.
|
Change
!= to
ne and it should work fine.
Perl is a little ... different with string comparisons (especially compared to PHP). Check out
this page for the specifics.
Also, you'll probably want to put all of the checks for classes in parentheses, otherwise your order of operations might cause some problems:
Code:
if ($text=~/Hail/i && $ulevel <= 50 && ($class != 'Warrior' || $class != 'Rogue' || $class != 'Monk')){
Hope this helps
