View Single Post
  #2  
Old 04-26-2008, 04:48 AM
AndMetal
Developer
 
Join Date: Mar 2007
Location: Ohio
Posts: 648
Default

Quote:
Originally Posted by Asphixiate View Post
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
__________________
GM-Impossible of 'A work in progress'
A non-legit PEQ DB server
How to create your own non-legit server

My Contributions to the Wiki
Reply With Quote