EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Custom (https://www.eqemulator.org/forums/forumdisplay.php?f=671)
-   -   Account Based Flagging (https://www.eqemulator.org/forums/showthread.php?t=35858)

Maze_EQ 10-12-2012 04:30 PM

Account Based Flagging
 
Here is an example of how we do our account based flagging system over at NL, I'd post the actual context we use, but its basically proprietary to our system.


Code:

sub EVENT_SAY {
my $t = $client->AccountID();
my $globalname = "$t";

 
        if ($text =~/hail/i) {
                plugin::whisper("$t");
                }
        if ($text =~/account/i) {
                quest::setglobal("$t",1,7,'F');
                quest::say("Flag set");
                }
       
if (defined $qglobals{$globalname}) {
        if ($qglobals{$globalname} == 1) {
                if ($text =~/test/i) {
                        plugin::Whisper("You are Account Flagged");
                        }
                }
        }
}


Maze_EQ 10-16-2012 11:27 AM

Code:

#Velious Keeper Clean Up Gummi
sub EVENT_SAY {

my $gi = quest::saylink ("give",1);
my $t = $client->AccountID();
my $ent = quest::saylink ("I wish to enter Velious!");
my $zone0 = quest::saylink ("Wakening Lands",1);
my $zone1 = quest::saylink ("Iceclad Ocean", 1);
my $zone2 = quest::saylink ("Cobalt Scar", 1);
my $zone3 = quest::saylink ("Eastern Wastelands", 1);
my $zone4 = quest::saylink ("Great Divide", 1);
my $zone5 = quest::saylink ("Thurgadin", 1);
my $spirits = quest::saylink ("spirits", 1);
my $globalname = "flagging";
my $globalname2 = "$t";
my $gc = quest::saylink ("guild's",1);
my $npc1 = quest::saylink ("Phara Dar",1);
my $npc2 = quest::saylink ("Druushk",1);
my $npc3 = quest::saylink ("Nexona",1);
my $npc4 = quest::saylink ("Silverwing",1);
my $npc5 = quest::saylink ("Hoshkar",1);
my $npc6 = quest::saylink ("Xygoz",1);
my $npc7 = quest::saylink ("Gorenaire",1);
my $npc8 = quest::saylink ("Trakanon",1);
my $npc9 = quest::saylink ("Severilous",1);
my $npc10 = quest::saylink ("Faydedar",1);
my $npc11 = quest::saylink ("Talendor",1);
my $globalname4 = "$uguild_id Phara Dar";
my $globalname5 = "$uguild_id Druushk";
my $globalname6 = "$uguild_id Nexona";
my $globalname7 = "$uguild_id Silverwing";
my $globalname8 = "$uguild_id Hoshkar";
my $globalname9 = "$uguild_id Xygoz";
my $globalname10 = "$uguild_id Gorenaire";
my $globalname11 = "$uguild_id Trakanon";
my $globalname12 = "$uguild_id Severilous";
my $globalname13 = "$uguild_id Faydedar";
my $globalname14 = "$uguild_id Talendor";
#my $uguild_id = $client->GuildID();




if($text=~/testkills/i)
{
quest::setglobal("$uguild_id Xygoz",1,7,'F');
#quest::setglobal("Druushk",1,5,'F');
}
if($text=~/Remove/i)
{
quest::say($globalname4);
}

if($text =~/guild's/i)
{
$client->Message(335,"[$npc1]");
$client->Message(335,"[$npc2]");
$client->Message(335,"[$npc3]");
$client->Message(335,"[$npc4]");
$client->Message(335,"[$npc5]");
$client->Message(335,"[$npc6]");
$client->Message(335,"[$npc7]");
$client->Message(335,"[$npc8]");
$client->Message(335,"[$npc9]");
$client->Message(335,"[$npc10]");
$client->Message(335,"[$npc11]");
}
#("Phara Dar");
#("Druushk");
#("Nexona");
#("Silverwing");
#("Hoshkar");
#("Xygoz");
#("Gorenaire");
#("Trakanon");
#("Severilous");
# ("Faydedar");
# ("Talendor");
if($text=~/Phara Dar/i)
        {
        if($qglobals{$globalname4} == 0) # This portion means it will tell you in red if the npc declared above has not been killed by your guild, or if it has
                {
                        $client->Message(13,"$npc1 has not been slain!");
                }
                        if($qglobals{$globalname4} == 1)
                                {
                                        $client->Message(14,"$npc1 has been slain!");
                                }
        }
        if($text=~/Druushk/i)
        {
        if($qglobals{$globalname5} == 0)
                {
                        $client->Message(13,"$npc2 has not been slain!");
                }
                        if($qglobals{$globalname5} == 1)
                                {
                                        $client->Message(14,"$npc2 has been slain!");
                                }
        }
        if($text=~/Nexona/i)
        {
        if($qglobals{$globalname6} == 0)
                {
                        $client->Message(13,"$npc3 has not been slain!");
                }
                        if($qglobals{$globalname6} == 1)
                                {
                                        $client->Message(14,"$npc3 has been slain!");
                                }
        }
        if($text=~/Silverwing/i)
        {
        if($qglobals{$globalname7} == 0)
                {
                        $client->Message(13,"$npc4 has not been slain!");
                }
                        if($qglobals{$globalname7} == 1)
                                {
                                        $client->Message(14,"$npc4 has been slain!");
                                }
        }
        if($text=~/Hoshkar/i)
        {
        if($qglobals{$globalname8} == 0)
                {
                        $client->Message(13,"$npc5 has not been slain!");
                }
                        if($qglobals{$globalname8} == 1)
                                {
                                        $client->Message(14,"$npc5 has been slain!");
                                }
        }
        if($text=~/Xygoz/i)
        {
        if($qglobals{$globalname9} == 0)
                {
                        $client->Message(13,"$npc6 has not been slain!");
                }
                        if($qglobals{$globalname9} == 1)
                                {
                                        $client->Message(14,"$npc6 has been slain!");
                                }
        }
        if($text=~/Gorenaire/i)
        {
        if($qglobals{$globalname10} == 0)
                {
                        $client->Message(13,"$npc7 has not been slain!");
                }
                        if($qglobals{$globalname10} == 1)
                                {
                                        $client->Message(14,"$npc7 has been slain!");
                                }
        }
        if($text=~/Trakanon/i)
        {
        if($qglobals{$globalname11} == 0)
                {
                        $client->Message(13,"$npc8 has not been slain!");
                }
                        if($qglobals{$globalname11} == 1)
                                {
                                        $client->Message(14,"$npc8 has been slain!");
                                }
        }
        if($text=~/Severilous/i)
        {
        if($qglobals{$globalname12} == 0)
                {
                        $client->Message(13,"$npc9 has not been slain!");
                }
                        if($qglobals{$globalname12} == 1)
                                {
                                        $client->Message(14,"$npc9 has been slain!");
                                }
        }
        if($text=~/Faydedar/i)
        {
        if($qglobals{$globalname13} == 0)
                {
                        $client->Message(13,"$npc10 has not been slain!");
                }
                        if($qglobals{$globalname13} == 1)
                                {
                                        $client->Message(14,"$npc10 has been slain!");
                                }
        }
        if($text=~/Talendor/i)
        {
        if($qglobals{$globalname14} == 0)
                {
                        $client->Message(13,"$npc11 has not been slain!");
                }
                        if($qglobals{$globalname14} == 1)
                                {
                                        $client->Message(14,"$npc11 has been slain!");
                                }
        }






if (defined $qglobals{$globalname}) {
        if ($qglobals{$globalname} == 1) {
        if ($text =~/hail/i) {
                plugin::Whisper("Greetin`s $name, Heard ya wanna enter the lands of Velious? If another instance of your soul has been there I can [$gi] you access or check your [$gc] progression. ");
                $client->Message(13,"$ent");
                }
        if ($text =~/enter Velious/i) {
                plugin::Whisper("First, you must prove you are worthy. If you show yourself to be powerful enough to slay the Ring of Scale, I shall invite you to begin your journey into the new world, but I must see the insignia of Velious as proof!");
                #quest::assigntask(2033);
                        }
                }
        }
       
               
               
if (defined $qglobals{$globalname}) {
        if ($qglobals{$globalname} >= 2) {
        if ($text =~/hail/i) {
                plugin::Whisper("Well hello there $name. Would you like to go to [$zone0], [$zone1], [$zone2], [$zone3], or [$zone4], I can also allow your other [$spirits] to access these lands. ");
                }
        if ($text =~/spirits/i) {
                plugin::Whisper("Please leave this world and come back for the magic to affect your spirit.");
                quest::setglobal("$globalname2",2,7,'F');
                }
        if ($text =~/Iceclad Ocean/i) {
                quest::say ("$name , stand close to me while I cast..");
                quest::emote ("moves his hands as if chanting...");
                quest::zone(iceclad);
                }
        if ($text =~/Eastern Wastelands/i) {
                quest::say ("$name , stand close to me while I cast..");
                quest::emote ("moves his hands as if chanting...");
                quest::zone(eastwastes);
                }
        if ($text =~/Great Divide/i) {
                quest::say ("$name , stand close to me while I cast..");
                quest::emote ("moves his hands as if chanting...");
                quest::zone(greatdivide);
                }
        if ($text =~/Thurgadin/i) {
                quest::say ("$name , stand close to me while I cast..");
                quest::emote ("moves his hands as if chanting...");
                quest::zone(thurgadina)
                }
        if ($text =~/wakening lands/i) {
                quest::say ("$name , stand close to me while I cast..");
                quest::emote ("moves his hands as if chanting...");
                quest::zone(wakening);
                }
        if ($text =~/cobalt scar/i) {
                quest::say ("$name , stand close to me while I cast..");
                quest::emote ("moves his hands as if chanting...");
                quest::zone(wakening);
                }
        }
}
       
if (defined $qglobals{$globalname2}) {
        if ($qglobals{$globalname2} == 2) {#this sets the flag for the account, and also the flags for the zone.
                if ($text =~/give/i) {
                        plugin::Whisper("You have the account flag of $t.");
                        $client->Message(14,"Now setting character zone flags");
                        quest::setglobal("$globalname",2,5,'F');
                        quest::summonitem(132661);
                        quest::set_zone_flag(87);#1 burning woods
                        quest::set_zone_flag(103);#2 chardok
                        quest::set_zone_flag(90);#3 City of mist
                        quest::set_zone_flag(104);#4 dalnir
                        quest::set_zone_flag(86);#5 dreadlands
                        quest::set_zone_flag(106);#6 cabeast
                        quest::set_zone_flag(82);#7 cabwest
                        quest::set_zone_flag(94);#8 emeraldjungle
                        quest::set_zone_flag(78);#9 fieldofbone
                        quest::set_zone_flag(84);#10 firiona
                        quest::set_zone_flag(92);#11 frontiermtns
                        quest::set_zone_flag(105);#12 charasis
                        quest::set_zone_flag(88);#13 kaesora
                        quest::set_zone_flag(102);#14 karnor
                        quest::set_zone_flag(97);#15 Kurn
                        quest::set_zone_flag(85);#16 lakeofillomen
                        quest::set_zone_flag(107);#17 nurga
                        quest::set_zone_flag(89);#18 sebilis
                        quest::set_zone_flag(91);#19 skyfire
                        quest::set_zone_flag(83);#20 swampofnohope
                        quest::set_zone_flag(96);#21 timorous
                        quest::set_zone_flag(95);#22 trakanon
                        quest::set_zone_flag(108);#23 veeshan
                        quest::set_zone_flag(79);#24 warsliks
                        #quest::set_zone_flag(81);#25 droga
                        quest::set_zone_flag(93);#26 overthere
                        quest::set_zone_flag(117);#Velious start
                        quest::set_zone_flag(121);
                        quest::set_zone_flag(116);
                        quest::set_zone_flag(111);
                        quest::set_zone_flag(118);
                        quest::set_zone_flag(127);
                        quest::set_zone_flag(110);
                        quest::set_zone_flag(181);
                        quest::set_zone_flag(113);
                        quest::set_zone_flag(126);
                        quest::set_zone_flag(123);
                        quest::set_zone_flag(75 );
                        quest::set_zone_flag(125);
                        quest::set_zone_flag(114);
                        quest::set_zone_flag(128);
                        quest::set_zone_flag(124);
                        quest::set_zone_flag(115);
                        quest::set_zone_flag(129);
                        quest::set_zone_flag(112);
                        quest::set_zone_flag(119);
                        quest::set_zone_flag(120);
                        quest::set_zone_flag(114);#velious end
                        }
                }
        }
}
sub EVENT_ITEM {
if(plugin::check_handin(\%itemcount,132661 => 1)) { #on handin of our custom token it flags for all older expansions and our current
quest::set_zone_flag(87);#1 burning woods
quest::set_zone_flag(103);#2 chardok
quest::set_zone_flag(90);#3 City of mist
quest::set_zone_flag(104);#4 dalnir
quest::set_zone_flag(86);#5 dreadlands
quest::set_zone_flag(106);#6 cabeast
quest::set_zone_flag(82);#7 cabwest
quest::set_zone_flag(94);#8 emeraldjungle
quest::set_zone_flag(78);#9 fieldofbone
quest::set_zone_flag(84);#10 firiona
quest::set_zone_flag(92);#11 frontiermtns
quest::set_zone_flag(105);#12 charasis
quest::set_zone_flag(88);#13 kaesora
quest::set_zone_flag(102);#14 karnor
quest::set_zone_flag(97);#15 Kurn
quest::set_zone_flag(85);#16 lakeofillomen
quest::set_zone_flag(107);#17 nurga
quest::set_zone_flag(89);#18 sebilis
quest::set_zone_flag(91);#19 skyfire
quest::set_zone_flag(83);#20 swampofnohope
quest::set_zone_flag(96);#21 timorous
quest::set_zone_flag(95);#22 trakanon
quest::set_zone_flag(108);#23 veeshan
quest::set_zone_flag(79);#24 warsliks
#quest::set_zone_flag(81);#25 droga
quest::set_zone_flag(93);#26 overthere
quest::set_zone_flag(117);#Velious start
quest::set_zone_flag(121);
quest::set_zone_flag(116);
quest::set_zone_flag(111);
quest::set_zone_flag(118);
quest::set_zone_flag(127);
quest::set_zone_flag(110);
quest::set_zone_flag(181);
quest::set_zone_flag(113);
quest::set_zone_flag(126);
quest::set_zone_flag(123);
quest::set_zone_flag(75 );
quest::set_zone_flag(125);
quest::set_zone_flag(114);
quest::set_zone_flag(128);
quest::set_zone_flag(124);
quest::set_zone_flag(115);
quest::set_zone_flag(129);
quest::set_zone_flag(112);
quest::set_zone_flag(119);
quest::set_zone_flag(120);
quest::set_zone_flag(114);#velious end


       
       
       
       
if(plugin::check_handin(\%itemcount,132661 => 1)) {

if ($qglobals{flagging} >= 2 ) {
        $client->Message(15,"You are already flagged to enter Velious zones");
        quest::summonitem(132661);
                                                        }
        if ($qglobals{flagging} < 2 ) {
        $client->Message(15,"You are now flagged to enter Velious zones");
 quest::setglobal("flagging", 2, 5, "F");
 quest::summonitem(132661);
                                                                }
 

}

else {
plugin::return_items(\%itemcount);
plugin::Whisper("I don't need this!");
}
}
}

To issue a guild based flag

Code:

sub EVENT_KILLED_MERIT
{

quest::setglobal("$uguild_id Phara Dar",1,7,'F');
}

will effectively show Phara Dar has been killed! when the saylink is either said or clicked for pharadar


All times are GMT -4. The time now is 03:18 PM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.