You can do it by requiring zone flags, with account flagging also.
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");
}
}
}
}
Code:
sub EVENT_ITEM
{
#Item handin section to recieve flags based on which token you handed in
if(plugin::check_handin(\%itemcount, 1079 => 1,))
{
quest::summonitem(1079,1)
}
#The actual flagging portion of the handin.
{
$client->Message(4,"You are now flagged for Kunark!");
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
}
You will have to set the zone flag using commands or via SQL query, I would suggest an SQL query to flag all zones in an expansion
something like (Do not use,this is an example.)
Code:
update zones set flag_needed = "Kunark" where expansion = 1;