PDA

View Full Version : Account Based Flagging


Maze_EQ
10-12-2012, 04:30 PM
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.


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
#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


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