Draugr
10-25-2004, 07:01 PM
Hi,
I just made my first PERL script for a quest NPC. It is a modified soulbinder script that includes the options to heal HPs, cure poison and disease and finally to bind your soul. I saved the *.pl file into my eqemu\quests\zonesn\ folder on my EQEmu server. I created a NPC and used the #npcspawn create and add. The NPC respawns properly and I used #npcstats to get the NPCs ID. I got the id, so in the c:\eqemu\quests\zonesn\121095.pl 121095 is the NPCID number given to me by #npcstats. When I restarted the server and logged in the NPC was there but the script isn't running. When I hail the NPC he just faces me and does nothing. I'll list my code below. I would love to get this fixed so I can move forward making it more complex.
Also, I'm using the latest version of the CVS 6.0 release of EQEmu with Perl enabled. I also have Perl installed on the EQEmu server and it appears to be running fine. I don't get any error messages when starting up the emulator.
#Quest made by John Von Draugr 10-25-04
sub EVENT_SAY
{
if($text=~/Hail/i){quest::say("Greetings $name. I am the Qeynos Gate Healer and can offer you various services currently free of charge. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish, or to offer [healing], cure [disease], cure [poison].");}
#Binding to Point
if($text=~/bind my soul/i)
{
quest::say("Binding your soul. You will return here when you die.");
quest::castspell($userid,2049);
}
}
#Binding to Point (Alt)
if($text=~/bind/i)
{
quest::say("Binding your soul. You will return here when you die.");
quest::castspell($userid,2049);
}
}
#Full Healing
if($text=~/healing/i)
{
quest::say("Your wounds are washed away. Be well my child.");
quest::castspell($userid,13);
}
}
#Cure Disease
if($text=~/cure disease/i)
{
quest::say("I am removing the vile diseases from thy system. Be well my child.");
quest::castspell($userid,213);
}
}
#Cure Disease (Alt)
if($text=~/disease/i)
{
quest::say("I am removing the vile diseases from thy system. Be well my child.");
quest::castspell($userid,213);
}
}
#Cure Poison
if($text=~/cure poison/i)
{
quest::say("I am cleansing thy system of the noxious posions within. Be well my child.");
quest::castspell($userid,203);
}
}
#Cure Poison (Alt)
if($text=~/poison/i)
{
quest::say("I am cleansing thy system of the noxious posions within. Be well my child.");
quest::castspell($userid,203);
}
}
I just made my first PERL script for a quest NPC. It is a modified soulbinder script that includes the options to heal HPs, cure poison and disease and finally to bind your soul. I saved the *.pl file into my eqemu\quests\zonesn\ folder on my EQEmu server. I created a NPC and used the #npcspawn create and add. The NPC respawns properly and I used #npcstats to get the NPCs ID. I got the id, so in the c:\eqemu\quests\zonesn\121095.pl 121095 is the NPCID number given to me by #npcstats. When I restarted the server and logged in the NPC was there but the script isn't running. When I hail the NPC he just faces me and does nothing. I'll list my code below. I would love to get this fixed so I can move forward making it more complex.
Also, I'm using the latest version of the CVS 6.0 release of EQEmu with Perl enabled. I also have Perl installed on the EQEmu server and it appears to be running fine. I don't get any error messages when starting up the emulator.
#Quest made by John Von Draugr 10-25-04
sub EVENT_SAY
{
if($text=~/Hail/i){quest::say("Greetings $name. I am the Qeynos Gate Healer and can offer you various services currently free of charge. As a member of the Order of Eternity it is my duty to [bind your soul] to this location if that is your wish, or to offer [healing], cure [disease], cure [poison].");}
#Binding to Point
if($text=~/bind my soul/i)
{
quest::say("Binding your soul. You will return here when you die.");
quest::castspell($userid,2049);
}
}
#Binding to Point (Alt)
if($text=~/bind/i)
{
quest::say("Binding your soul. You will return here when you die.");
quest::castspell($userid,2049);
}
}
#Full Healing
if($text=~/healing/i)
{
quest::say("Your wounds are washed away. Be well my child.");
quest::castspell($userid,13);
}
}
#Cure Disease
if($text=~/cure disease/i)
{
quest::say("I am removing the vile diseases from thy system. Be well my child.");
quest::castspell($userid,213);
}
}
#Cure Disease (Alt)
if($text=~/disease/i)
{
quest::say("I am removing the vile diseases from thy system. Be well my child.");
quest::castspell($userid,213);
}
}
#Cure Poison
if($text=~/cure poison/i)
{
quest::say("I am cleansing thy system of the noxious posions within. Be well my child.");
quest::castspell($userid,203);
}
}
#Cure Poison (Alt)
if($text=~/poison/i)
{
quest::say("I am cleansing thy system of the noxious posions within. Be well my child.");
quest::castspell($userid,203);
}
}