Maze_EQ |
07-26-2012 03:13 PM |
Here is another few scripts to help teach the newer server Admins some PERL in a neat, understandable, environment.
I am not a PERL master, I just figured I'd share a few things.
Code:
################
#Maze 7/26/2012#
################
#perl learning script v1
#description to teach basics.
sub EVENT_SPAWN #Shout to know when event is active
{
quest::shout("Active");
quest::setnexthpevent(98);
}
sub EVENT_HP #HPEvents quest::spawn2(NPCID,0,0,$+/-xaxist,$+/-yaxis,$+/-zaxis,$heading) xyz axis corresponds to the axis of the original npc
{
if ($hpevent == 98)
{
quest::spawn2(950764,0,0,$x,$y,$z,$h);
quest::spawn2(950764,0,0,$x-40,$y,$z,$h);#will spawn selected NPCID at given axis
quest::setnexthpevent(95); #sets for an event to happen at the given HP percentage.
}
elsif ($hpevent == 95)
{
quest::shout("Insertstringhere."); #NPC will shout at the percentage listed. Can also incorporate other quest::XXX functions.
quest::setnexthpevent(90);
}
elsif ($hpevent == 90)
{
quest::spawn2(950764,0,0,$x,$y+20,$z,$h);
quest::setnexthpevent(87);
}
elsif ($hpevent == 87)
{
quest::shout("insertstringhere");
quest::spawn2(950768,0,0,$x-40,$y+30,$z,$h);
quest::spawn2(950768,0,0,$x-40,$y-30,$z,$h);
quest::spawn2(950768,0,0,$x-40,$y+10,$z,$h);
quest::spawn2(950768,0,0,$x-40,$y-10,$z,$h);
quest::setnexthpevent(80);
}
elsif ($hpevent == 80)
{
quest::spawn2(950764,0,0,$x-40,$y+20,$z,$h);
quest::setnexthpevent(75);
}
elsif ($hpevent == 75)
{
quest::shout("insertstringhere.");
quest::setnexthpevent(70);
}
elsif ($hpevent == 70)
{
quest::spawn2(950764,0,0,$x-60,$y-40,$z,$h);
quest::setnexthpevent(68);
}
elsif ($hpevent == 68)
{
quest::shout("insertstringhere");
quest::spawn2(950765,0,0,$x-200,$y+30,$z,$h);
quest::spawn2(950765,0,0,$x-200,$y-30,$z,$h);
quest::spawn2(950765,0,0,$x-100,$y+30,$z,$h);
quest::spawn2(950765,0,0,$x-100,$y-30,$z,$h);
quest::spawn2(950765,0,0,$x-40,$y+10,$z,$h);
quest::spawn2(950765,0,0,$x-40,$y-10,$z,$h);
quest::setnexthpevent(60);
}
elsif ($hpevent == 60)
{
quest::spawn2(950764,0,0,$x+10,$y+20,$z,$h);
quest::setnexthpevent(50);
}
elsif ($hpevent == 50)
{
quest::shout("insertstringhere");
quest::setnexthpevent(49);
}
elsif ($hpevent == 49)
{
quest::spawn2(950764,0,0,$x+60,$y-70,$z,$h);
quest::setnexthpevent(44);
}
elsif ($hpevent == 44)
{
quest::shout("insertstringhere");
quest::spawn2(950766,0,0,$x-70,$y+15,$z,$h);
quest::spawn2(950766,0,0,$x-70,$y,$z,$h);
quest::spawn2(950766,0,0,$x-70,$y-15,$z,$h);
quest::setnexthpevent(40);
}
elsif ($hpevent == 40)
{
quest::spawn2(950764,0,0,$x+10,$y+10,$z,$h);
quest::setnexthpevent(35);
}
elsif ($hpevent == 35)
{
quest::spawn2(950764,0,0,$x-40,$y+20,$z,$h);
quest::setnexthpevent(33);
}
elsif ($hpevent == 33)
{
quest::shout("insertstringhere");
quest::spawn2(950767,0,0,$x+60,$y+75,$z,$h);
quest::spawn2(950767,0,0,$x+60,$y-75,$z,$h);
quest::setnexthpevent(30);
}
elsif ($hpevent == 30)
{
quest::spawn2(950764,0,0,$x,$y-40,$z,$h);
quest::setnexthpevent(25);
}
elsif ($hpevent == 25)
{
quest::shout("insertstringhere");
quest::setnexthpevent(20);
}
elsif ($hpevent == 20)
{
quest::spawn2(950764,0,0,$x,$y+40,$z,$h);
quest::setnexthpevent(17);
}
elsif ($hpevent == 17)
{
quest::spawn2(950764,0,0,$x+10,$y+10,$z,$h);
quest::setnexthpevent(15);
}
elsif ($hpevent == 15)
{
quest::shout("insertstringhere");
quest::spawn2(950769,0,0,$x+10,$y+75,$z,$h);
quest::spawn2(950769,0,0,$x+30,$y-15,$z,$h);
quest::spawn2(950769,0,0,$x+60,$y+25,$z,$h);
quest::spawn2(950769,0,0,$x+22,$y-63,$z,$h);
quest::spawn2(950769,0,0,$x-44,$y+15,$z,$h);
quest::spawn2(950769,0,0,$x-80,$y-85,$z,$h);
quest::spawn2(950769,0,0,$x-20,$y+25,$z,$h);
quest::spawn2(950769,0,0,$x-15,$y-15,$z,$h);
quest::setnexthpevent(10);
}
elsif ($hpevent == 10)
{
quest::spawn2(950764,0,0,$x,$y,$z,$h);
quest::setnexthpevent(7);
}
elsif ($hpevent == 7)
{
quest::shout("insertstringhere");
}
}
sub EVENT_DEATH
{
quest::shout("insertstringhere");
quest::spawn2(950761,0,0,233,-1115,-2,190);
}
And
Code:
#Maze 7/26/12
#Example PERL
#Based off of Cazic thule.
sub EVENT_AGGRO {
#These are the variables that declare how to get the npcid
my $Zombie_One = $entity_list->GetMobByNpcTypeID(1196);
my $Zombie_Two = $entity_list->GetMobByNpcTypeID(1203);
my $Zombie_Three = $entity_list->GetMobByNpcTypeID(1204);
my $Zombie_Four = $entity_list->GetMobByNpcTypeID(1205);
my $Zombie_Five = $entity_list->GetMobByNpcTypeID(1206);
my $Zombie_Six = $entity_list->GetMobByNpcTypeID(1213);
my $Zombie_Seven = $entity_list->GetMobByNpcTypeID(1214);
my $Zombie_Eight = $entity_list->GetMobByNpcTypeID(34002);
#end
if ($Zombie_One) {
my $Zombie_One1 = $Zombie_One->CastToNPC();
$Zombie_One1->AddToHateList($client, 1);
}
if ($Zombie_Two) {
my $Zombie_Two2 = $Zombie_Two->CastToNPC();
$Zombie_Two2->AddToHateList($client, 1);
}
if ($Zombie_Three) {
my $Zombie_Three3 = $Zombie_Three->CastToNPC();
$Zombie_Three3->AddToHateList($client, 1); #Works like cazic thule, pulls certain mobs onto the player.
if ($Zombie_Four4) {
my $Zombie_Four4 = $Zombie_Four->CastToNPC();
$Zombie_Four4->AddToHateList($client, 1);
}
if ($Zombie_Five) {
my $Zombie_Give5 = $Zombie_Five->CastToNPC();
$Zombie_Five5->AddToHateList($client, 1);
}
if ($Zombie_Six) {
my $Zombie_Six6 = $Zombie_Six->CastToNPC();
$Zombie_Six6->AddToHateList($client, 1);
}
if ($Zombie_Seven) {
my $Zombie_Seven7 = $Zombie_Seven->CastToNPC();
$Zombie_Seven7->AddToHateList($client, 1);
}
if ($Zombie_Eight) {
my $Zombie_Eight8 = $Zombie_Eight->CastToNPC();
$Zombie_Eight8->AddToHateList($client, 1);
}
}
|