Go Back   EQEmulator Home > EQEmulator Forums > Quests > Quests::Q&A

Quests::Q&A This is the quest support section

Reply
 
Thread Tools Display Modes
  #1  
Old 09-02-2007, 08:16 AM
sonicintuition
Hill Giant
 
Join Date: Jan 2005
Posts: 124
Default

Angelox, I'm trying to read this like a computer would read this:

Quote:
sub EVENT_SAY{
if (($text=~/hail/i&&$race eq 'Human'&&$class eq 'Enchanter')){
quest::say("I know you!!");
}
}
I'm reading that as if player says hail, and the player is a human enchanter, do action. So if I did this:

Quote:
sub EVENT_SAY
{
if(($text=~/hail/i && $class eq 'Rogue' && $class eq 'Warrior'))
{
quest::say("You are NOT a caster!");
}
}
As a computer, I would read that as if the player says hail, and is a Rogue AND a Warrior, do action ..which obviously can't be the case. And that's what I'm trying to do - I need to set up my script so that the NPC won't talk to non-casting classes, eg, Warrior, Rogue, Monk, Berserker. Trying to use || operators isn't working ..I'm going to try one more thing before I give up altogether and just allow non casting classes to use my spell scriber...lol Will post back if it works.

Sonic
Reply With Quote
  #2  
Old 09-02-2007, 08:41 AM
Angelox
AX Classic Developer
 
Join Date: May 2006
Location: filler
Posts: 2,049
Default

Don't give up! I have taken weeks to understand simple things too. Just put it to aside, and come back to it again, later.

you only need $class for what you want - make one like this:
Code:
sub EVENT_SAY{
if (($text=~/hail/i&&$class eq 'enchanter')){
quest::say("I can help you");
}
if (($text=~/hail/i&&$class eq 'wizard')){
quest::say("I can help you");
}
}
You can add all the casters to this PL and omit the non-casters. This way your npc will ignore non-casters.
You first PL might have worked, but you had typos in it.



Quote:
Originally Posted by sonicintuition View Post
Angelox, I'm trying to read this like a computer would read this:

I'm reading that as if player says hail, and the player is a human enchanter, do action. So if I did this:

As a computer, I would read that as if the player says hail, and is a Rogue AND a Warrior, do action ..which obviously can't be the case. And that's what I'm trying to do - I need to set up my script so that the NPC won't talk to non-casting classes, eg, Warrior, Rogue, Monk, Berserker. Trying to use || operators isn't working ..I'm going to try one more thing before I give up altogether and just allow non casting classes to use my spell scriber...lol Will post back if it works.

Sonic
Reply With Quote
  #3  
Old 09-02-2007, 08:46 AM
froglok23's Avatar
froglok23
Hill Giant
 
Join Date: May 2005
Location: Australia
Posts: 113
Default

While im certian no noob user of perl (i do guess work... i guess this will work) lol

but being a c++/c# dev has given me an advantage. All languages follow the sample principlals when it comes down to it.

This site, is well worth a read

http://stein.cshl.org/genome_informa...tro/index.html

In perticular, check out the "Operators" and also have a quick browse. Perl hjas the great advantage of being very english based

The above link, is not EQEmu information, but rather just perl.

- froglok
Reply With Quote
  #4  
Old 09-02-2007, 09:56 AM
sonicintuition
Hill Giant
 
Join Date: Jan 2005
Posts: 124
Default

I got it to work, finally! This is what I did:

Quote:
sub EVENT_SAY
{
if(($text=~/hail/i && $class eq 'Rogue'))
{
$client->Message(5, "Persy Clutches tells you, You are a $class. I cannot help you.");
}

if(($text=~/hail/i && $class eq 'Warrior'))
{
$client->Message(5, "Persy Clutches tells you, You are a $class. I cannot help you.");
}

if(($text=~/hail/i && $class eq 'Monk'))
{
$client->Message(5, "Persy Clutches tells you, You are a $class. I cannot help you.");
}

if(($text=~/hail/i && $class eq 'Berserker'))
{
$client->Message(5, "Persy Clutches tells you, You are a $class. I cannot help you.");
}

if($text=~/hail/i && $class ne 'Rogue' && $class ne 'Warrior' && $class ne 'Monk' && $class ne 'Berserker')
{
$client->Message(5, "Persy Clutches tells you, Hello $name. I can [scribe your spells] for you, however I
can only scribe them until you are level 60. After that, you'll have to find them
yourself.");
}

if($text=~/scribe my spells/i)
{
$client->Message(5, "Persy Clutches tells you, Very well. Scribing your spells now.");
quest::scribespells();
}
}
Yay me

Thanks all for your help and support, I appreciate it a ton.

Sonic
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 05:09 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3