View Full Version : ::scribespells() up to X level?
Asphixiate
04-19-2008, 02:40 AM
I have a simple scribespells quest functioning, but I am wondering if it is possible to make it only scribe up to only level 50 spells?
Thanks.
Asphixiate
04-22-2008, 05:32 PM
Well let me approach this a bit differently.
if my perl script is:
sub EVENT_SAY
{
if ($text=~/Hail/i) { 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=~/scribe/i) { quest::say("Very well, here you are $name!");
quest::scribespells(); }
}
is there a way to modify this to do the following:
if pclevel < 50 then:
if ($text=~/Hail/i) { 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 pclevel > 50 then
if ($text=~/Hail/i) { quest::say("Hello, $name. You are too high to have any spells scribed!"); }
If someone could spell this out for me, that would be awesome!
Thanks
trevius
04-22-2008, 05:39 PM
This is a pretty simple quest. The following should work perfectly for you. Let me know if you have any issues with it.
sub EVENT_SAY
{
if ($text=~/Hail/i && $ulevel <= 50) { 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(); }
}
In the future, you might want to check the quest wiki. It has a TON of great info related to quests.
Here is the link:
http://www.eqemulator.net/wiki/wikka.php?wakka=QuestTutorial
Asphixiate
04-22-2008, 08:03 PM
great thank you trevius, wasn't sure how to structure it.
Asphixiate
04-26-2008, 04:14 AM
Is there a reason this doesn't work? (I want to exclude the pure melee classes from scribing discs).
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.
AndMetal
04-26-2008, 04:48 AM
Is there a reason this doesn't work? (I want to exclude the pure melee classes from scribing discs).
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 (http://www.pageresource.com/cgirec/ptut7.htm) 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:
if ($text=~/Hail/i && $ulevel <= 50 && ($class != 'Warrior' || $class != 'Rogue' || $class != 'Monk')){
Hope this helps :-)
trevius
04-26-2008, 05:52 AM
Though, this is something you shouldn't really have to worry about. Pure melee classes learned from the spell scriber don't actually work ask a disc. They either need to turn the tomb into their class GM the same as live or you would have to enable the #traindisc command. The spell scriber won't train any real discs, but it will train spell versions of some discs for hybrids.
Asphixiate
04-26-2008, 12:01 PM
Hm, still doesn't work. Not a big deal though since they don't actually learn anything from it like you said trevius.
Thanks
kovouau
04-26-2008, 02:40 PM
can try using quotation marks instead of '.... "Warrior" instead of 'Warrior' for example
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.