Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #####################################################################################################################################################
- ### Quest : player.pl (Waypoint) will be copied/moved to global_player.pl
- ### REQURIED PLUGIN 1 : globals.pl (plugin::var, plugin::val) for subs to get variable values. (Copy plugins to subs in player.pl ?)
- ### Version : 1.0
- ### REQURIED PLUGIN 2 : check_hasitem.pl (plugin::check_hasitem) to determine prices via item
- ### QGLOBAL SOLO : $name_Solo_$zonesn_ID
- ### QGLOBAL RAID : $name_Raid_$zonesn_ID, XXX_RaidI_Leader, XXX__RaidI_Time, XXX_RaidI_$zonesn, XXX_RaidI_Status_XXX
- ### QGLOBAL GUILD : XXX_Guild_$zonesn_ID, XXX_GuildI_Leader, XXX__GuildI_Time, XXX_GuildI_$zonesn, XXX_GuildI_Status_XXX
- ### Special Thanks : Used code from Akkadius, Trevius, Natedog, Hateborne and a few other people.
- ###
- ### STUFF TO DO : Edit: prices per zone in sub SOLO_COST(), RAID_COST(), GUILD_COST()
- ### Edit: popup window info for enter solo/raid/guild instance
- ### Edit: syntax from Raid Join to RaidJoin (minor tweak)
- ### Add spam delay timer for create/delete in same zone
- ### Add Join Guild <Player Name> or <Guild Name> in addition to Join Guild <number>
- ### Add: my $GuildName = $client->GuildID(); my $GuildName = quest::getguildnamebyid($guildID);
- ### Add: my $RaidGroup = $client->GetRaid(); my $raidID = $RaidGroup->GetID();
- ### Add: One command to port entire guild/raid into the instance, might require to be in same zone name though.
- ###
- ### OTHER NOTES : This is done 100% without DBI, just qglobals. Using DBI would probably be
- ### more simple and shorter, but also could create more lag on the database.
- #####################################################################################################################################################
- sub EVENT_SAY
- {
- my $SoloStatus = 1;
- my $GroupStatus = 1;
- my $GuildStatus = 1;
- my $RaidStatus = 1;
- if ($text=~/^Instance$/i || $text=~/^Instances$/i)
- {
- my $freeinstance = plugin::check_hasitem($client, 120003); #EDIT item ID for FREE instance item
- my $paidinstance = plugin::check_hasitem($client, 119998); #EDIT item ID for PAID instance item
- $client->Message(315," ");
- if ($freeinstance)
- {
- $client->Message(315,"Free Waypoint Menu");
- $client->Message(315,"------------------------------");
- }
- elsif ($paidinstance)
- {
- $client->Message(315,"Reglar Waypoint Menu");
- $client->Message(315,"---------------------------------");
- }
- else
- {
- $client->Message(315,"Non Discount Waypoint Menu");
- $client->Message(315,"-------------------------------------------");
- }
- }
- ###############################################################################################
- ### START SOLO INSTANCES ######################################################################
- if ($SoloStatus == 1)
- {
- if ($text=~/^Instance$/i || $text=~/^Instances$/i) {
- my $SoloInstanceID = "$name" . "_Solo_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$SoloInstanceID"})) {
- my $EnterSoloInstance = quest::saylink("Enter Solo", 1);
- my $DeleteSoloInstance = quest::saylink("Delete Solo", 1);
- $client->Message(315,"[$EnterSoloInstance] [$DeleteSoloInstance] Instance");
- }
- else {
- my $SoloCreate = quest::saylink("Create Solo Instance", 1);
- my $SoloCost = SOLO_PRICE();
- $client->Message(315,"[$SoloCreate] : $SoloCost Platinum");
- }
- $qglobals{"$SoloInstanceID"} = undef;
- }
- if($text=~/^Create Solo Instance$/i) {
- my $SoloInstanceID = "$name" . "_Solo_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$SoloInstanceID"})) {
- $client->Message(315,"You already have a solo instance for $zonesn.");
- }
- else {
- my $accountid = $client->AccountID();
- my $bankcredit = $qglobals{"BankCredit_$accountid"};
- my $SoloCost = SOLO_PRICE();
- my $cost = $SoloCost;
- if ($bankcredit < $cost) {
- $client->Message(315,"You need ". ($cost - $bankcredit) . " more plat!");
- }
- else {
- PayInstance("BankCredit", $cost, "Solo Instance");
- my $InstVersion = 0; # Must be 0 to load NPCs into an instance
- my $InstanceDuration = 14400;
- my $EnterSoloInstance = quest::saylink("Enter Solo", 1);
- my $InstID = quest::CreateInstance("$zonesn", $InstVersion, $InstanceDuration);
- quest::setglobal("$SoloInstanceID","$InstID","7","S$InstanceDuration");
- quest::AssignToInstance($InstID);
- # $client->Message(315," ");
- $client->Message(315,"You created a solo instance ($InstID) for $zonesn.");
- $client->Message(315,"Would you like to $EnterSoloInstance instance?");
- } # create instance then send
- }
- $qglobals{"$SoloInstanceID"} = undef;
- }
- if($text=~/^Enter Solo$/i)
- {
- my $SoloInstanceID = "$name" . "_Solo_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$SoloInstanceID"}))
- {
- my $timestamp = localtime(time);
- my $InstID = $qglobals{"$SoloInstanceID"};
- my $Cx = $client->GetX();
- my $Cy = $client->GetY();
- my $Cz = $client->GetZ();
- quest::popup("ENTER SOLO INSTANCE","<br>
- <c \"#FE2E2E\">Moving you to SOLO instance!<br>
- <br>
- <c \"#FFFF49\">Time : <c \"#00FF00\">$timestamp<br>
- <c \"#FFFF49\">Name : <c \"#00FF00\">$name<br>
- <c \"#FFFF49\">Zone : <c \"#00FF00\">$zonesn<br>
- <c \"#FFFF49\">Type : <c \"#00FF00\">Solo<br>
- <br>
- <c \"#00BFFF\">ENJOY!<br>
- <br>
- <br>
- ",1050,0);
- $client->Message(315, " ");
- $client->Message(315, "Moving you to solo instance ($InstID) for $zonesn.");
- quest::MovePCInstance($zoneid, $InstID, $Cx, $Cy, $Cz);
- }
- else
- {
- $client->Message(315,"You do not have a solo instance for $zonesn.");
- } # create instance then send
- $qglobals{"$SoloInstanceID"} = undef;
- }
- if ($text=~/^Delete Solo$/i)
- {
- my $SoloInstanceID = "$name" . "_Solo_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$SoloInstanceID"}))
- {
- my $InstID = $qglobals{"$SoloInstanceID"};
- quest::DestroyInstance($InstID);
- quest::delglobal($SoloInstanceID);
- $client->Message(315, " ");
- $client->Message(315, "Solo Instance ($InstID) Deleted!");
- }
- else
- {
- $client->Message(315, "You do not have a solo instance to delete!");
- }
- $qglobals{"$SoloInstanceID"} = undef;
- }
- }
- ### END SOLO INSTANCES #######################################################################
- ###############################################################################################
- ###############################################################################################
- ### START RAID INSTANCES #####################################################################
- if ($RaidStatus == 1)
- {
- if ($text=~/^Instance$/i || $text=~/^Instances$/i)
- {
- my $RaidID = $name;
- my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$RaidInstanceID"}))
- {
- my $EnterRaidInstance = quest::saylink("Enter Raid", 1);
- my $DeleteRaidInstance = quest::saylink("Delete Raid", 1);
- $client->Message(315,"[$EnterRaidInstance] [$DeleteRaidInstance] Instance");
- }
- else
- {
- my $RaidCreate = quest::saylink("Create Raid Instance", 1);
- my $RaidCost = RAID_PRICE();
- $client->Message(315,"[$RaidCreate] : $RaidCost Platinum");
- }
- $qglobals{"$RaidInstanceID"} = undef;
- }
- if($text=~/^Create Raid Instance$/i)
- {
- my $RaidID = $name;
- my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$RaidInstanceID"}))
- {
- $client->Message(315,"You already have a raid instance for $zonesn.");
- }
- else
- {
- my $accountid = $client->AccountID();
- my $bankcredit = $qglobals{"BankCredit_$accountid"};
- my $RaidCost = RAID_PRICE();
- my $cost = $RaidCost;
- if ($bankcredit < $cost)
- {
- $client->Message(315,"You need ". ($cost - $bankcredit) . " more plat!");
- }
- else
- {
- PayInstance("BankCredit", $cost, "Raid Instance");
- my $InstVersion = 0; # Must be 0 to load NPCs in an instance
- my $InstanceDuration = 14400;
- my $EnterRaidInstance = quest::saylink("Enter Raid", 1);
- my $InstID = quest::CreateInstance("$zonesn", $InstVersion, $InstanceDuration);
- my $LeaderZone = $InstID . "_RaidI_" . $zonesn; # Qglobal name for Raid Instance ID + zone to do raid invites
- quest::setglobal("$LeaderZone","$InstID","7","S$InstanceDuration"); # Qglobal name for Raid Instance ID + zone to do raid invites
- my $LeaderName = $InstID . "_RaidI_Leader"; # Qglobal Instance/Zone ID to Leaders Name
- quest::setglobal("$LeaderName","$name","7","S$InstanceDuration"); # Qglobal Instance/Zone ID to Leaders Name
- my $LeaderTime = $InstID . "_RaidI_Time"; # Qglobal Raid Instance Timer
- my $Expire_Time = time() + $InstanceDuration; # Qglobal Raid Instance Timer
- quest::setglobal("$LeaderTime","$Expire_Time","7","S$InstanceDuration"); # Qglobal Raid Instance Timer
- quest::setglobal("$RaidInstanceID","$InstID","7","S$InstanceDuration"); # Qglobal Set Raid Instance ID
- quest::AssignToInstance($InstID);
- # $client->Message(315," ");
- $client->Message(315,"You created a raid instance ($InstID) for $zonesn.");
- $client->Message(315,"Would you like to $EnterRaidInstance instance?");
- $qglobals{"$LeaderZone"} = undef;
- $qglobals{"$LeaderName"} = undef;
- } # create instance then send
- }
- $qglobals{"$RaidInstanceID"} = undef;
- }
- if($text=~/^Enter Raid$/i)
- {
- my $RaidID = $name;
- my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$RaidInstanceID"}))
- {
- my $timestamp = localtime(time);
- my $InstID = $qglobals{"$RaidInstanceID"};
- my $Cx = $client->GetX();
- my $Cy = $client->GetY();
- my $Cz = $client->GetZ();
- quest::popup("ENTER RAID INSTANCE","<br>
- <c \"#FE2E2E\">Moving you to a RAID instance!<br>
- <br>
- <c \"#FFFF49\">Time : <c \"#00FF00\">$timestamp<br>
- <c \"#FFFF49\">Name : <c \"#00FF00\">$name<br>
- <c \"#FFFF49\">Zone : <c \"#00FF00\">$zonesn<br>
- <c \"#FFFF49\">Type : <c \"#00FF00\">Raid<br>
- <br>
- <c \"#00BFFF\">ENJOY!<br>
- <br>
- ",1050,0);
- $client->Message(315, " ");
- $client->Message(315, "Moving you to raid instance ($InstID) for $zonesn.");
- quest::AssignToInstance($InstID);
- quest::MovePCInstance($zoneid, $InstID, $Cx, $Cy, $Cz);
- }
- else
- {
- $client->Message(315,"You do not have a raid instance for $zonesn.");
- } # create instance then send
- $qglobals{"$RaidInstanceID"} = undef;
- }
- if ($text=~/^Delete Raid$/i)
- {
- $client->Message(315, " ");
- # $client->Message(315,"Delete Instance Not Available Yet.");
- my $RaidID = $name;
- my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$RaidInstanceID"}))
- {
- my $InstID = $qglobals{"$RaidInstanceID"};
- my $LeaderZone = $InstID . "_RaidI_" . $zonesn; # Qglobal name for charid + zonesn to invite raid
- my $LeaderName = $InstID . "_RaidI_Leader"; # Qglobal ID to Name
- my $LeaderTime = $InstID . "_RaidI_Time"; # Qglobal Time
- # DELETE Raid Player Qglobal to change status
- my $count = 1;
- my $raid_invite_name = $InstID . "_RaidI_Status_";
- my $temp_del = "";
- while ($count > 0)
- {
- if (defined($qglobals{"$raid_invite_name$count"}))
- {
- $temp_del = $raid_invite_name . $count;
- quest::delglobal($temp_del);
- $count ++;
- }
- else
- {
- $count = $count - 1;
- quest::gmsay("GM: Deleted $count Invited Players!", 18, 0);
- $count = 0;
- }
- }
- # END DELETE Raid Player QGlobal to change status
- quest::DestroyInstance($InstID);
- quest::delglobal($RaidInstanceID);
- quest::delglobal($LeaderZone);
- quest::delglobal($LeaderName);
- quest::delglobal($LeaderTime);
- $client->Message(315, "Raid Instance ($InstID) Deleted!");
- $qglobals{"$LeaderZone"} = undef;
- $qglobals{"$LeaderName"} = undef;
- $qglobals{"$LeaderTime"} = undef;
- }
- else
- {
- $client->Message(315, "You do not have a raid instance to delete!");
- }
- $qglobals{"$RaidInstanceID"} = undef;
- }
- }
- ### END RAID INSTANCES ######################################################################
- ###############################################################################################
- ###############################################################################################
- ### START GUILD INSTANCES #####################################################################
- if ($GuildStatus == 1)
- {
- if ($text=~/^Instance$/i || $text=~/^Instances$/i)
- {
- my $GuildID = $uguild_id;
- my $GuildInstanceID = "$GuildID" . "_Guild_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$GuildInstanceID"}))
- {
- my $EnterGuildInstance = quest::saylink("Enter Guild", 1);
- my $DeleteGuildInstance = quest::saylink("Delete Guild", 1);
- $client->Message(315,"[$EnterGuildInstance] [$DeleteGuildInstance] Instance");
- }
- else
- {
- my $GuildCreate = quest::saylink("Create Guild Instance", 1);
- my $GuildCost = GUILD_PRICE();
- $client->Message(315,"[$GuildCreate] : $GuildCost Platinum");
- }
- $qglobals{"$GuildInstanceID"} = undef;
- }
- if($text=~/^Create Guild Instance$/i)
- {
- my $GuildID = $uguild_id;
- my $GuildInstanceID = "$GuildID" . "_Guild_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$GuildInstanceID"}))
- {
- $client->Message(315,"You already have a guild instance for $zonesn.");
- }
- else
- {
- my $accountid = $client->AccountID();
- my $bankcredit = $qglobals{"BankCredit_$accountid"};
- my $GuildCost = GUILD_PRICE();
- my $cost = $GuildCost;
- if ($bankcredit < $cost)
- {
- $client->Message(315,"You need ". ($cost - $bankcredit) . " more plat!");
- }
- else
- {
- PayInstance("BankCredit", $cost, "Guild Instance");
- my $InstVersion = 0; # Must be 0 to load NPCs in an instance
- my $InstanceDuration = 14400;
- my $EnterGuildInstance = quest::saylink("Enter Guild", 1);
- my $InstID = quest::CreateInstance("$zonesn", $InstVersion, $InstanceDuration);
- my $LeaderZone = $InstID . "_GuildI_" . $zonesn; # Qglobal name for Guild Instance ID + zone to do guild invites
- quest::setglobal("$LeaderZone","$InstID","7","S$InstanceDuration"); # Qglobal name for Guild Instance ID + zone to do guild invites
- my $LeaderName = $InstID . "_GuildI_Leader"; # Qglobal Instance/Zone ID to Leaders Name
- quest::setglobal("$LeaderName","$name","7","S$InstanceDuration"); # Qglobal Instance/Zone ID to Leaders Name
- my $LeaderTime = $InstID . "_GuildI_Time"; # Qglobal Guild Instance Timer
- my $Expire_Time = time() + $InstanceDuration; # Qglobal Guild Instance Timer
- quest::setglobal("$LeaderTime","$Expire_Time","7","S$InstanceDuration"); # Qglobal Guild Instance Timer
- quest::setglobal("$GuildInstanceID","$InstID","7","S$InstanceDuration"); # Qglobal Set Guild Instance ID
- quest::AssignToInstance($InstID);
- # $client->Message(315," ");
- $client->Message(315,"You created a guild instance ($InstID) for $zonesn.");
- $client->Message(315,"Would you like to $EnterGuildInstance instance?");
- $qglobals{"$LeaderZone"} = undef;
- $qglobals{"$LeaderName"} = undef;
- } # create instance then send
- }
- $qglobals{"$GuildInstanceID"} = undef;
- }
- if($text=~/^Enter Guild$/i)
- {
- my $GuildID = $uguild_id;
- my $GuildInstanceID = "$GuildID" . "_Guild_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$GuildInstanceID"}))
- {
- my $timestamp = localtime(time);
- my $InstID = $qglobals{"$GuildInstanceID"};
- my $Cx = $client->GetX();
- my $Cy = $client->GetY();
- my $Cz = $client->GetZ();
- quest::popup("ENTER GUILD INSTANCE","<br>
- <c \"#FE2E2E\">Moving you to a GUILD instance!<br>
- <br>
- <c \"#FFFF49\">Time : <c \"#00FF00\">$timestamp<br>
- <c \"#FFFF49\">Name : <c \"#00FF00\">$name<br>
- <c \"#FFFF49\">Zone : <c \"#00FF00\">$zonesn<br>
- <c \"#FFFF49\">Type : <c \"#00FF00\">Guild<br>
- <br>
- <c \"#00BFFF\">ENJOY!<br>
- <br>
- ",1050,0);
- $client->Message(315, " ");
- $client->Message(315, "Moving you to guild instance ($InstID) for $zonesn.");
- quest::AssignToInstance($InstID);
- quest::MovePCInstance($zoneid, $InstID, $Cx, $Cy, $Cz);
- }
- else
- {
- $client->Message(315,"You do not have a guild instance for $zonesn.");
- } # create instance then send
- $qglobals{"$GuildInstanceID"} = undef;
- }
- if ($text=~/^Delete Guild$/i)
- {
- $client->Message(315, " ");
- # $client->Message(315,"Delete Instance Not Available Yet.");
- my $GuildID = $uguild_id;
- my $GuildInstanceID = "$GuildID" . "_Guild_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$GuildInstanceID"}))
- {
- my $InstID = $qglobals{"$GuildInstanceID"};
- my $LeaderZone = $InstID . "_GuildI_" . $zonesn;
- my $LeaderName = $InstID . "_GuildI_Leader";
- my $LeaderTime = $InstID . "_GuildI_Time";
- # DELETE Guild Player Qglobal to change status
- my $count = 1;
- my $guild_invite_name = $InstID . "_GuildI_Status_";
- my $temp_del = "";
- while ($count > 0)
- {
- if (defined($qglobals{"$guild_invite_name$count"}))
- {
- $temp_del = $guild_invite_name . $count;
- quest::delglobal($temp_del);
- $count ++;
- }
- else
- {
- $count = $count - 1;
- quest::gmsay("GM: Deleted $count Invited Players!", 18, 0);
- $count = 0;
- }
- }
- # END DELETE Guild Player QGlobal to change status
- quest::DestroyInstance($InstID);
- quest::delglobal($GuildInstanceID);
- quest::delglobal($LeaderZone);
- quest::delglobal($LeaderName);
- quest::delglobal($LeaderTime);
- $client->Message(315, "Guild Instance ($InstID) Deleted!");
- $qglobals{"$LeaderZone"} = undef;
- $qglobals{"$LeaderName"} = undef;
- $qglobals{"$LeaderTime"} = undef;
- }
- else
- {
- $client->Message(315, "You do not have a guild instance to delete!");
- }
- $qglobals{"$GuildInstanceID"} = undef;
- }
- }
- ### END GUILD INSTANCES ######################################################################
- ###############################################################################################
- if ($text=~/^Instance$/i || $text=~/^Instances$/i)
- {
- my $GuildInvite = quest::saylink("Guild Invite", 1);
- my $GuildJoin = quest::saylink("Guild Join", 1);
- my $GuildRemove = quest::saylink("Guild Remove", 1);
- my $GuildList = quest::saylink("Guild List", 1);
- my $RaidInvite = quest::saylink("Raid Invite", 1);
- my $RaidJoin = quest::saylink("Raid Join", 1);
- my $RaidRemove = quest::saylink("Raid Remove", 1);
- my $RaidList = quest::saylink("Raid List", 1);
- my $ManageCredit = quest::saylink("Manage Credit", 1);
- my $LeaveInstance = quest::saylink("Leave Instance", 1);
- # $client->Message(315, "[$RaidInvite] [$RaidJoin] [$RaidRemove] [$RaidList]");
- # $client->Message(315, "[$GuildInvite] [$GuildJoin] [$GuildRemove] [$GuildList]");
- $client->Message(315, "[$RaidInvite] [$RaidJoin]");
- $client->Message(315, "[$RaidRemove] [$RaidList]");
- $client->Message(315, "[$GuildInvite] [$GuildJoin]");
- $client->Message(315, "[$GuildRemove] [$GuildList]");
- $client->Message(315, "[$LeaveInstance] [$ManageCredit]");
- }
- if($text=~/^Guild Invite$/i)
- {
- $client->Message(315, " ");
- $client->Message(315, "Syntax: guild invite <Player Name>");
- }
- if($text=~/^Raid Invite$/i)
- {
- $client->Message(315, " ");
- $client->Message(315, "Syntax: raid invite <Player Name>");
- }
- # Invite Guild Member
- if($text=~/^Guild Invite /i && $text ne "Guild Invite")
- {
- my $GuildID = $uguild_id;
- my $GuildInstanceID = "$GuildID" . "_Guild_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$GuildInstanceID"}))
- {
- my $GetFriendName = substr($text, 13);
- my $Instance_Invite = 0 + $qglobals{"$GuildInstanceID"};
- quest::crosszonesignalclientbyname($GetFriendName, $Instance_Invite);
- $client->Message(315, " ");
- $client->Message(315, "You sent an invite to $GetFriendName to join instance ($Instance_Invite) in $zonesn.");
- }
- else
- {
- $client->Message(315, " ");
- $client->Message(315, "You do not have a guild instance for inviting.");
- }
- $qglobals{"$GuildInstanceID"} = undef;
- }
- # Invite Raid Member
- if($text=~/^Raid Invite /i && $text ne "Raid Invite")
- {
- my $RaidID = $name;
- my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$RaidInstanceID"}))
- {
- my $GetFriendName = substr($text, 12);
- my $Instance_Invite = 0 + $qglobals{"$RaidInstanceID"};
- quest::crosszonesignalclientbyname($GetFriendName, $Instance_Invite);
- $client->Message(315, " ");
- $client->Message(315, "You sent an invite to $GetFriendName to join instance ($Instance_Invite) in $zonesn.");
- }
- else
- {
- $client->Message(315, " ");
- $client->Message(315, "You do not have a raid instance for inviting.");
- }
- $qglobals{"$RaidInstanceID"} = undef;
- }
- # Invite Guild Member
- if($text=~/^Guild Remove /i && $text ne "Guild Remove")
- {
- my $GuildID = $uguild_id;
- my $GuildInstanceID = "$GuildID" . "_Guild_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$GuildInstanceID"}))
- {
- my $GetFriendName = substr($text, 13);
- my $Instance_Remove = 0 + $qglobals{"$GuildInstanceID"};
- my $Instance_Remove9 = $Instance_Remove + 900000000; # 900,000,000
- quest::crosszonesignalclientbyname($GetFriendName, $Instance_Remove9);
- $client->Message(315, " ");
- $client->Message(315, "You removed $GetFriendName from instance ($Instance_Remove) in $zonesn.");
- }
- else
- {
- $client->Message(315, " ");
- $client->Message(315, "You do not have a guild instance for inviting.");
- }
- $qglobals{"$GuildInstanceID"} = undef;
- }
- # Invite Raid Member
- if($text=~/^Raid Remove /i && $text ne "Raid Remove")
- {
- my $RaidID = $name;
- my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$RaidInstanceID"}))
- {
- my $GetFriendName = substr($text, 12);
- my $Instance_Remove = 0 + $qglobals{"$RaidInstanceID"};
- my $Instance_Remove9 = $Instance_Remove + 900000000; # 900,000,000
- quest::crosszonesignalclientbyname($GetFriendName, $Instance_Remove9);
- $client->Message(315, " ");
- $client->Message(315, "You removed $GetFriendName from instance ($Instance_Remove) in $zonesn.");
- }
- else
- {
- $client->Message(315, " ");
- $client->Message(315, "You do not have a raid instance for inviting.");
- }
- $qglobals{"$RaidInstanceID"} = undef;
- }
- if($text=~/^guild join$/i)
- {
- $client->Message(315, " ");
- $client->Message(315,"Syntax: guild join <number>");
- }
- if($text=~/^raid join$/i)
- {
- $client->Message(315, " ");
- $client->Message(315,"Syntax: raid join <number>");
- }
- if($text=~/^guild remove$/i)
- {
- $client->Message(315, " ");
- $client->Message(315,"Syntax: guild remove <name>");
- }
- if($text=~/^raid remove$/i)
- {
- $client->Message(315, " ");
- $client->Message(315,"Syntax: raid remove <name>");
- }
- ###############################################################################################
- ### JOIN JOIN GUILD INSTANCE ##################################################################
- if($text=~/^guild join /i)
- {
- my $GetJoinID = substr($text, 11);
- my $Check_G_Invite = $GetJoinID . "_GuildI_" . $zonesn;
- my $Check_G_Leader = $GetJoinID . "_GuildI_Leader";
- if (defined($qglobals{"$Check_G_Invite"}))
- {
- # Find Player Qglobal to change status
- my $count = 1;
- my $guild_invite_name = $GetJoinID . "_GuildI_Status_";
- my $guild_invite_pending = $name . "_pending";
- my $guild_invite_joined = $name . "_joined";
- my $compare_name = "";
- while ($count > 0)
- {
- if (defined($qglobals{"$guild_invite_name$count"}))
- {
- $compare_name = $qglobals{"$guild_invite_name$count"};
- if ($compare_name eq $guild_invite_pending)
- {
- # my $SetTimeLeft = GET_TIME_LEFT("GUILD"); # NO
- # When qglobal name found, change value from pending to joined, then enter.
- my $GetSeconds = GET_TIME_LEFT("GUILD", $GetJoinID);
- quest::setglobal("$guild_invite_name$count","$guild_invite_joined","7","S$GetSeconds");
- my $Leader = $qglobals{"$Check_G_Leader"};
- my $timestamp = localtime(time);
- my $Cx = $client->GetX();
- my $Cy = $client->GetY();
- my $Cz = $client->GetZ();
- quest::popup("ENTERING INVITED GUILD INSTANCE","<br>
- <c \"#FE2E2E\">Moving you to a INVITED GUILD instance ($GetJoinID)!<br>
- <br>
- <c \"#FFFF49\">Time : <c \"#00FF00\">$timestamp<br>
- <c \"#FFFF49\">Name : <c \"#00FF00\">$name<br>
- <c \"#FFFF49\">Zone : <c \"#00FF00\">$zonesn<br>
- <c \"#FFFF49\">Type : <c \"#00FF00\">$Leader Guild Instance<br>
- <br>
- <c \"#00BFFF\">ENJOY!<br>
- <br>
- ",1050,0);
- $client->Message(315, " ");
- $client->Message(315, "Moving you to $Leader guild instance ($GetJoinID) for $zonesn.");
- $qglobals{"$guild_invite_name"} = undef;
- quest::MovePCInstance($zoneid, $GetJoinID, $Cx, $Cy, $Cz);
- $count = 0;
- }
- else
- {
- $count ++;
- }
- }
- else
- {
- $client->Message(315,"You were not invited to Instance $GetJoinID in $zonesn!");
- $count = 0;
- }
- }
- }
- else
- {
- $client->Message(315,"Instance $GetJoinID in $zonesn does not exist!");
- }
- $qglobals{"$Check_G_Invite"} = undef;
- $qglobals{"$Check_G_Leader"} = undef;
- }
- ### END JOIN GUILD INSTANCE ##################################################################
- ###############################################################################################
- ###############################################################################################
- ### JOIN RAID INSTANCE ########################################################################
- if($text=~/^raid join /i)
- {
- my $GetJoinID = substr($text, 10);
- my $Check_R_Invite = $GetJoinID . "_RaidI_" . $zonesn;
- my $Check_R_Leader = $GetJoinID . "_RaidI_Leader";
- if (defined($qglobals{"$Check_R_Invite"}))
- {
- # Find Player Qglobal to change status
- my $count = 1;
- my $raid_invite_name = $GetJoinID . "_RaidI_Status_";
- my $raid_invite_value = $name . "_pending";
- my $raid_invite_value2 = $name . "_joined";
- while ($count > 0)
- {
- if (defined($qglobals{"$raid_invite_name$count"}))
- {
- if ($qglobals{"$raid_invite_name$count"} eq $raid_invite_value)
- {
- # When qglobal name found, change value from pending to joined, then enter
- my $GetSeconds = GET_TIME_LEFT("RAID", $GetJoinID);
- quest::setglobal("$raid_invite_name$count","$raid_invite_value2","7","S$GetSeconds");
- my $Leader = $qglobals{"$Check_R_Leader"};
- my $timestamp = localtime(time);
- my $Cx = $client->GetX();
- my $Cy = $client->GetY();
- my $Cz = $client->GetZ();
- quest::popup("ENTERING INVITED RAID INSTANCE","<br>
- <c \"#FE2E2E\">Moving you to a INVITED RAID instance ($GetJoinID)!<br>
- <br>
- <c \"#FFFF49\">Time : <c \"#00FF00\">$timestamp<br>
- <c \"#FFFF49\">Name : <c \"#00FF00\">$name<br>
- <c \"#FFFF49\">Zone : <c \"#00FF00\">$zonesn<br>
- <c \"#FFFF49\">Type : <c \"#00FF00\">$Leader Raid Instance<br>
- <br>
- <c \"#00BFFF\">ENJOY!<br>
- <br>
- ",1050,0);
- $client->Message(315, " ");
- $client->Message(315, "Moving you to $Leader raid instance ($GetJoinID) for $zonesn.");
- $qglobals{"$raid_invite_name"} = undef;
- quest::MovePCInstance($zoneid, $GetJoinID, $Cx, $Cy, $Cz);
- $count = 0;
- }
- else
- {
- $count ++;
- }
- }
- else
- {
- $client->Message(315,"You were not invited to Instance $GetJoinID in $zonesn!");
- $count = 0;
- }
- }
- }
- else
- {
- $client->Message(315,"Instance $GetJoinID in $zonesn does not exist!");
- }
- $qglobals{"$Check_R_Invite"} = undef;
- $qglobals{"$Check_R_Leader"} = undef;
- }
- ### END JOIN RAID INSTANCE ###################################################################
- ###############################################################################################
- #################################################################################################################################################
- # LIST of players invited/assigned to Guild Instance
- if($text=~/^Guild List$/i)
- {
- my $timestamp = localtime(time);
- $client->Message(315," ");
- my $GuildID = $uguild_id;
- my $GuildInstanceID = "$GuildID" . "_Guild_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$GuildInstanceID"}))
- {
- my $Check_G_Invite = $qglobals{"$GuildInstanceID"} . "_GuildI_" . $zonesn;
- my $Check_G_Leader = $qglobals{"$GuildInstanceID"} . "_GuildI_Leader";
- my $GID = $qglobals{"$GuildInstanceID"};
- # GET TIME LEFT UNTIL INSTANCE EXPIRES
- my $LeaderTime = $GID . "_GuildI_Time";
- my $ExpireTime = $qglobals{"$LeaderTime"};
- my $TimeLeft = $ExpireTime - time();
- my $GetDays = int($TimeLeft/(24*60*60));
- my $GetHours = ($TimeLeft/(60*60))%24;
- my $GetMins = ($TimeLeft/60)%60;
- my $GetSecs = $TimeLeft%60;
- $client->Message(315,"Expires: $GetDays Day, $GetHours Hr, $GetMins Min, $GetSecs Sec");
- $client->Message(315,"List of players in your guild instance ($GID) in $zonesn!");
- my $names_list = "";
- my $temp_name = "";
- my $guild_invite_name = $GID . "_GuildI_Status_";
- my $count = 1;
- my $player_count = 0;
- while ($count > 0)
- {
- if (defined($qglobals{"$guild_invite_name$count"}))
- {
- $player_count = $count;
- $temp_name = $qglobals{"$guild_invite_name$count"};
- if ($temp_name=~/pending$/i)
- {
- my $player_name = $temp_name;
- $player_name =~ s/_pending//; # string substitute flag
- my $player_status = " - Pending";
- my $player_color_yellow = "<c \"#AEB404\">";
- my $player_color_white = "<c \"#FFFFFF\">";
- my $player_space = " ";
- my $player_break = "<br>";
- my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
- $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_yellow . $player_status . $player_break;
- }
- elsif ($temp_name=~/joined$/i)
- {
- my $player_name = $temp_name;
- $player_name =~ s/_joined//;
- my $player_status = " - Joined";
- my $player_color_green = "<c \"#298A08\">";
- my $player_color_white = "<c \"#FFFFFF\">";
- my $player_space = " ";
- my $player_break = "<br>";
- my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
- $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_green . $player_status . $player_break;
- }
- elsif ($temp_name=~/removed$/i)
- {
- my $player_name = $temp_name;
- $player_name =~ s/_removed//;
- my $player_status = " - Removed";
- my $player_color_red = "<c \"#FE2E2E\">";
- my $player_color_white = "<c \"#FFFFFF\">";
- my $player_space = " ";
- my $player_break = "<br>";
- my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
- $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_red . $player_status . $player_break;
- }
- else
- {
- # quest::gmsay("GM: ADD NAME ERROR.", 18, 0);
- }
- # quest::gmsay("GM: $temp_name added to List", 18, 0);
- $count ++;
- }
- else
- {
- # quest::gmsay("GM: End of List", 18, 0);
- $count = 0;
- }
- }
- quest::popup("GUILD INSTANCE LIST","
- Expires: $GetDays Day, $GetHours Hr, $GetMins Min, $GetSecs Sec <br>
- <c \"#FE2E2E\">List of ($player_count) players in Guild Instance ($GID) in $zonesn<br>
- <br>
- $names_list
- <br>
- ",1050,0);
- $qglobals{"$Check_G_Invite"} = undef;
- $qglobals{"$Check_G_Leader"} = undef;
- }
- else { $client->Message(315,"You do not have a guild instance in $zonesn!"); }
- $qglobals{"$GuildInstanceID"} = undef;
- }
- # End Guild Instance LIST
- #################################################################################################################################################
- #################################################################################################################################################
- # List of players invited/assigned to Raid Instance
- if($text=~/^Raid List$/i)
- {
- # my $timestamp = localtime(time);
- $client->Message(315," ");
- my $RaidID = $name;
- my $RaidInstanceID = "$RaidID" . "_Raid_" . "$zonesn" . "_ID";
- if (defined($qglobals{"$RaidInstanceID"}))
- {
- my $Check_G_Invite = $qglobals{"$RaidInstanceID"} . "_RaidI_" . $zonesn;
- my $Check_G_Leader = $qglobals{"$RaidInstanceID"} . "_RaidI_Leader";
- my $GID = $qglobals{"$RaidInstanceID"};
- # GET TIME LEFT UNTIL INSTANCE EXPIRES
- my $LeaderTime = $GID . "_RaidI_Time";
- my $ExpireTime = $qglobals{"$LeaderTime"};
- my $TimeLeft = $ExpireTime - time();
- my $GetDays = int($TimeLeft/(24*60*60));
- my $GetHours = ($TimeLeft/(60*60))%24;
- my $GetMins = ($TimeLeft/60)%60;
- my $GetSecs = $TimeLeft%60;
- $client->Message(315,"Expires: $GetDays Day, $GetHours Hr, $GetMins Min, $GetSecs Sec");
- $client->Message(315,"List of players in your raid instance ($GID) in $zonesn!");
- my $names_list = "";
- my $temp_name = "";
- my $raid_invite_name = $GID . "_RaidI_Status_";
- my $count = 1;
- my $player_count = 0;
- while ($count > 0)
- {
- if (defined($qglobals{"$raid_invite_name$count"}))
- {
- $player_count = $count;
- $temp_name = $qglobals{"$raid_invite_name$count"};
- if ($temp_name=~/pending$/i)
- {
- my $player_name = $temp_name;
- $player_name =~ s/_pending//; # string substitute flag
- my $player_status = " - Pending";
- my $player_color_yellow = "<c \"#AEB404\">";
- my $player_color_white = "<c \"#FFFFFF\">";
- my $player_space = " ";
- my $player_break = "<br>";
- my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
- $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_yellow . $player_status . $player_break;
- }
- elsif ($temp_name=~/joined$/i)
- {
- my $player_name = $temp_name;
- $player_name =~ s/_joined//;
- my $player_status = " - Joined";
- my $player_color_green = "<c \"#298A08\">";
- my $player_color_white = "<c \"#FFFFFF\">";
- my $player_space = " ";
- my $player_break = "<br>";
- my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
- $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_green . $player_status . $player_break;
- }
- elsif ($temp_name=~/removed$/i)
- {
- my $player_name = $temp_name;
- $player_name =~ s/_removed//;
- my $player_status = " - Removed";
- my $player_color_red = "<c \"#FE2E2E\">";
- my $player_color_white = "<c \"#FFFFFF\">";
- my $player_space = " ";
- my $player_break = "<br>";
- my $player_number = "<c \"#0489B1\">$count : "; # Teal Color
- $names_list = $names_list . $player_number . $player_color_white . $player_name . $player_color_red . $player_status . $player_break;
- }
- else
- {
- quest::gmsay("GM: ADD NAME ERROR.", 18, 0);
- }
- # quest::gmsay("GM: $temp_name added to List", 18, 0);
- $count ++;
- }
- else
- {
- # quest::gmsay("GM: End of List", 18, 0);
- $count = 0;
- }
- }
- quest::popup("RAID INSTANCE LIST","
- Expires: $GetDays Day, $GetHours Hr, $GetMins Min, $GetSecs Sec <br>
- <c \"#FE2E2E\">List of ($player_count) players in Raid Instance ($GID) in $zonesn<br>
- <br>
- $names_list
- <br>
- ",1050,0);
- $qglobals{"$Check_G_Invite"} = undef;
- $qglobals{"$Check_G_Leader"} = undef;
- }
- else { $client->Message(315,"You do not have a raid instance in $zonesn!"); }
- $qglobals{"$RaidInstanceID"} = undef;
- }
- # End Raid Instance LIST
- #################################################################################################################################################
- if($text=~/^Manage credit$/i)
- {
- $client->Message(315, " ");
- my $Deposit = quest::saylink("Deposit",1);
- my $Withdraw = quest::saylink("Withdraw",1);
- my $Check = quest::saylink("Check Balance",1);
- $client->Message(315, "[$Check]");
- $client->Message(315, "[$Deposit]");
- $client->Message(315, "[$Withdraw]");
- }
- if($text =~ /^Check Balance$/i)
- {
- # plugin::CreditStatusAccount("BankCredit");
- Check_Balance("BankCredit");
- }
- if($text =~ /^Deposit$/i)
- {
- $client->Message(315," ");
- $client->Message(315,"Just give a Waypoint any amount of platinum you'd like to deposit!");
- }
- if($text =~ /^Withdraw$/i)
- {
- $client->Message(315," ");
- $client->Message(315,"Withdraw not available.");
- }
- if($text=~/^Leave Instance$/i)
- {
- my $Cx = $client->GetX();
- my $Cy = $client->GetY();
- my $Cz = $client->GetZ();
- my $Ch = $client->GetHeading();
- my $timestamp = localtime(time);
- $client->Message(315," ");
- $client->Message(315,"Moving you back to public zone in $zonesn!");
- quest::popup("ENTER PUBLIC ZONE","<br>
- <c \"#FE2E2E\">Moving you to a PUBLIC zone!<br>
- <br>
- <c \"#FFFF49\">Time : <c \"#00FF00\">$timestamp<br>
- <c \"#FFFF49\">Name : <c \"#00FF00\">$name<br>
- <c \"#FFFF49\">Zone : <c \"#00FF00\">$zonesn<br>
- <c \"#FFFF49\">Type : <c \"#00FF00\">Public<br>
- <br>
- <c \"#00BFFF\">ENJOY!<br>
- <br>
- ",1050,0);
- quest::movepc($zoneid, $Cx, $Cy, $Cz, $Ch);
- }
- # $qglobals{"$SoloInstanceID"} = undef;
- # $qglobals{"$GuildInstanceID"} = undef;
- # $qglobals{"$Check_G_Invite"} = undef;
- # $qglobals{"$Check_G_Leader"} = undef;
- } # End EVENT_SAY
- sub EVENT_SIGNAL
- {
- # 900000000 is to remove player from instance (900,000,000)
- my $signal_instance_ID = $signal;
- if ($signal_instance_ID > 900000000) { $signal_instance_ID = $signal_instance_ID - 900000000; }
- my $Check_G_Invite = $signal_instance_ID . "_GuildI_" . $zonesn;
- my $Check_G_Leader = $signal_instance_ID . "_GuildI_Leader";
- my $Check_R_Invite = $signal_instance_ID . "_RaidI_" . $zonesn;
- my $Check_R_Leader = $signal_instance_ID . "_RaidI_Leader";
- # quest::gmsay("GM: Signal = $signal / $signal_instance_ID", 18, 0);
- #############################################################################################################################
- # IF GUILD INVITE ###########################################################################################################
- if (defined($qglobals{"$Check_G_Invite"}))
- {
- my $Leader = $qglobals{"$Check_G_Leader"};
- quest::AssignToInstance($signal_instance_ID);
- # Create a qglobal list of players invited/assigned to Guild Instance
- my $count = 1;
- my $guild_invite_name = $signal_instance_ID . "_GuildI_Status_";
- my $guild_invite_pending = $name . "_pending";
- my $guild_invite_joined = $name . "_joined";
- my $guild_invite_removed = $name . "_removed";
- while ($count > 0)
- {
- if (defined($qglobals{"$guild_invite_name$count"}))
- {
- if ($qglobals{"$guild_invite_name$count"} eq $guild_invite_pending ||
- $qglobals{"$guild_invite_name$count"} eq $guild_invite_joined)
- {
- if ($signal > 900000000)
- {
- my $Cx = $client->GetX();
- my $Cy = $client->GetY();
- my $Cz = $client->GetZ();
- my $Ch = $client->GetHeading();
- my $timestamp = localtime(time);
- $client->Message(315," ");
- $client->Message(315,"You have been removed from guild instance ($signal_instance_ID) in $zonesn!");
- quest::popup("YOU HAVE BEEN REMOVED","<br>
- <c \"#FE2E2E\">Moving you to a PUBLIC zone!<br>
- <br>
- <c \"#FFFF49\">Time : <c \"#00FF00\">$timestamp<br>
- <c \"#FFFF49\">Name : <c \"#00FF00\">$name<br>
- <c \"#FFFF49\">Zone : <c \"#00FF00\">$zonesn<br>
- <c \"#FFFF49\">Type : <c \"#00FF00\">Public<br>
- <br>
- <c \"#00BFFF\">You have been removed from guild instance ($signal_instance_ID) in $zonesn!<br>
- <br>
- ",1050,0);
- my $GetSeconds = GET_TIME_LEFT("GUILD", $signal_instance_ID);
- quest::setglobal("$guild_invite_name$count","$guild_invite_removed","7","S$GetSeconds");
- $count = 0;
- quest::movepc($zoneid, $Cx, $Cy, $Cz, $Ch);
- }
- $count = 0;
- }
- elsif ($qglobals{"$guild_invite_name$count"} eq $guild_invite_removed)
- {
- if ($signal < 900000000)
- {
- my $GetSeconds = GET_TIME_LEFT("GUILD", $signal_instance_ID);
- quest::setglobal("$guild_invite_name$count","$guild_invite_pending","7","S$GetSeconds");
- $client->Message(315," ");
- $client->Message(315,"$Leader has invited you to join a Guild Instance in $zonesn.");
- $client->Message(315,"Type: guild join $signal_instance_ID");
- }
- $count = 0;
- }
- else
- {
- $count ++;
- }
- }
- else
- {
- ###############################################################################
- my $GetSeconds = GET_TIME_LEFT("GUILD", $signal_instance_ID);
- quest::setglobal("$guild_invite_name$count","$guild_invite_pending","7","S$GetSeconds");
- $client->Message(315," ");
- $client->Message(315,"$Leader has invited you to join a Guild Instance in $zonesn.");
- $client->Message(315,"Type: guild join $signal_instance_ID");
- $count = 0;
- }
- }
- $qglobals{"$Check_G_Invite"} = undef;
- $qglobals{"$Check_G_Leader"} = undef;
- }
- # END IF GUILD INVITE #######################################################################################################
- #############################################################################################################################
- #############################################################################################################################
- # IF RAID INVITE ############################################################################################################
- if (defined($qglobals{"$Check_R_Invite"}))
- {
- my $Leader = $qglobals{"$Check_R_Leader"};
- quest::AssignToInstance($signal_instance_ID);
- # Create a qglobal list of players invited/assigned to Raid Instance
- my $count = 1;
- my $raid_invite_name = $signal_instance_ID . "_RaidI_Status_";
- my $raid_invite_pending = $name . "_pending";
- my $raid_invite_joined = $name . "_joined";
- my $raid_invite_removed = $name . "_removed";
- while ($count > 0)
- {
- if (defined($qglobals{"$raid_invite_name$count"}))
- {
- if ($qglobals{"$raid_invite_name$count"} eq $raid_invite_pending ||
- $qglobals{"$raid_invite_name$count"} eq $raid_invite_joined)
- {
- if ($signal > 900000000)
- {
- my $Cx = $client->GetX();
- my $Cy = $client->GetY();
- my $Cz = $client->GetZ();
- my $Ch = $client->GetHeading();
- my $timestamp = localtime(time);
- $client->Message(315," ");
- $client->Message(315,"You have been removed from raid instance ($signal_instance_ID) in $zonesn!");
- quest::popup("YOU HAVE BEEN REMOVED","<br>
- <c \"#FE2E2E\">Moving you to a PUBLIC zone!<br>
- <br>
- <c \"#FFFF49\">Time : <c \"#00FF00\">$timestamp<br>
- <c \"#FFFF49\">Name : <c \"#00FF00\">$name<br>
- <c \"#FFFF49\">Zone : <c \"#00FF00\">$zonesn<br>
- <c \"#FFFF49\">Type : <c \"#00FF00\">Public<br>
- <br>
- <c \"#00BFFF\">You have been removed from raid instance ($signal_instance_ID) in $zonesn!<br>
- <br>
- ",1050,0);
- my $GetSeconds = GET_TIME_LEFT("RAID", $signal_instance_ID);
- quest::setglobal("$raid_invite_name$count","$raid_invite_removed","7","S$GetSeconds");
- $count = 0;
- quest::movepc($zoneid, $Cx, $Cy, $Cz, $Ch);
- }
- $count = 0;
- }
- elsif ($qglobals{"$raid_invite_name$count"} eq $raid_invite_removed)
- {
- if ($signal < 900000000)
- {
- my $GetSeconds = GET_TIME_LEFT("RAID", $signal_instance_ID);
- quest::setglobal("$raid_invite_name$count","$raid_invite_pending","7","S$GetSeconds");
- $client->Message(315," ");
- $client->Message(315,"$Leader has invited you to join a Raid Instance in $zonesn.");
- $client->Message(315,"Type: raid join $signal_instance_ID");
- }
- $count = 0;
- }
- else
- {
- $count ++;
- }
- }
- else
- {
- ###############################################################################
- my $GetSeconds = GET_TIME_LEFT("RAID", $signal_instance_ID);
- quest::setglobal("$raid_invite_name$count","$raid_invite_pending","7","S$GetSeconds");
- $client->Message(315," ");
- $client->Message(315,"$Leader has invited you to join a Raid Instance in $zonesn.");
- $client->Message(315,"Type: raid join $signal_instance_ID");
- $count = 0;
- }
- }
- $qglobals{"$Check_R_Invite"} = undef;
- $qglobals{"$Check_R_Leader"} = undef;
- }
- # END IF RAID INVITE ########################################################################################################
- #############################################################################################################################
- } # End EVENT_SIGNAL
- #################################################################################################################################
- #### CUSTOM SUBS ############################################################################################################
- #################################################################################################################################
- ### Usage: PayInstance("Creditname", Cost, "Solo/Guild/Raid");
- ### This will take into account the whole account of the player
- sub PayInstance
- {
- my $CreditName = $_[0];
- my $Cost = $_[1];
- my $Instance_Type = $_[2]; # Solo, Guild, or Raid
- my $client = plugin::val('$client');
- my $name = plugin::val('$name');
- my $zonesn = plugin::val('$zonesn');
- my $qglobals = plugin::var('qglobals');
- my $space = "_";
- my $accountid = $client->AccountID();
- my $accountname = $client->AccountName();
- # my $CreditAmnt = $qglobals{"$CreditName$space$accountid"};
- my $CreditAmnt = $qglobals->{"$CreditName$space$accountid"};
- my $CreditAmnt2 = commify2($CreditAmnt - $Cost);
- my $CostCommify = commify2($Cost);
- if ($CreditAmnt < $Cost)
- {
- $client->Message(315,"Insuffient funds... You need " . ($Cost - $CreditAmnt) . " more Platinum pieces.");
- }
- else
- {
- $CreditAmnt -= $Cost;
- $client->SetGlobal("$CreditName$space$accountid", "$CreditAmnt", 7, 'F');
- $client->Message(315," ");
- $client->Message(315,"You now have $CreditAmnt2 platinum left.");
- my $ClientCheck = PlayerClientCheck();
- my $timestamp = localtime(time);
- quest::popup("Account Balance","
- <c \"#FFFF66\">Time : </c> $timestamp </c> <br>
- <c \"#FFFF66\">Client : </c> $ClientCheck </c> <br>
- <c \"#FFFF66\">Account : </c> $accountname <br>
- <c \"#FFFF66\">Character : </c>$name <br>
- <c \"#FFFF66\">Zone Name : </c>$zonesn <br>
- <c \"#FFFF66\">Instance Type : </c>$Instance_Type <br>
- <c \"#FFFF66\">Cost from Account : </c> <c \"#FE2E2E</c> - $CostCommify </c> <br>
- <c \"#FFFF66\">Remaining Balance : </c> <c \"#33FF99\"> $CreditAmnt2 </c> <br>
- <br>
- <c \"#FE2E2E\">WARNING: </c> Like <c \"#FFFF66\">Other Qglobals</c>, sometimes the zone will bug out
- and not see the current values. If your balance or instance has disappeared, try going to a public zone
- or different zone to see if it gets refresh.
- We apologize for the inconvenience as it will reappear in time.
- ");
- }
- $qglobals{"$CreditName$space$accountid"} = undef;
- } # End PayInstance
- ### POP UP TO DISPLAY WAYPOINT BALANCE
- sub Check_Balance
- {
- my $CreditName = $_[0];
- my $client = plugin::val('$client');
- my $name = plugin::val('$name');
- my $zonesn = plugin::val('$zonesn');
- my $qglobals = plugin::var('qglobals');
- my $space = "_";
- my $accountid = $client->AccountID();
- my $accountname = $client->AccountName();
- # my $CreditAmnt = $qglobals{"$CreditName$space$accountid"};
- my $CreditAmnt = $qglobals->{"$CreditName$space$accountid"};
- my $CreditAmnt2 = commify2($CreditAmnt);
- # my $CreditAmnt2 = $CreditAmnt - $Cost;
- my $ClientCheck = PlayerClientCheck();
- my $timestamp = localtime(time);
- quest::popup("Account Balance","
- <c \"#FFFF66\">Time : </c> $timestamp </c> <br>
- <c \"#FFFF66\">Client : </c> $ClientCheck </c> <br>
- <c \"#FFFF66\">Account : </c> $accountname <br>
- <c \"#FFFF66\">Character : </c>$name <br>
- <c \"#FFFF66\">Zone Name : </c>$zonesn <br>
- <c \"#FFFF66\">Remaining Balance : </c> <c \"#33FF99\"> $CreditAmnt2 </c> <br>
- <br>
- <c \"#FE2E2E\">WARNING: </c> Like <c \"#FFFF66\">Other Qglobals</c> , sometimes the zone will bug out
- and not see the current values. If your balance or instance has disappeared, try going to a public zone
- or different zone to see if it gets refresh.
- We apologize for the inconvenience as it will reappear in time.
- ");
- $client->Message(315," ");
- $client->Message(315,"You now have $CreditAmnt2 platinum left.");
- $qglobals{"$CreditName$space$accountid"} = undef;
- } # End Check_Balance
- ### Check Expansion Name
- sub PlayerClientCheck
- {
- my $client = plugin::val('$client');
- my $clientver = $client->GetClientVersion();
- my $ShowClient = "";
- if ($clientver == 2) { $ShowClient = "Titanium"; }
- elsif ($clientver == 3) { $ShowClient = "Secrets of Faydwer"; }
- elsif ($clientver == 4) { $ShowClient = "Seeds of Destruction"; }
- elsif ($clientver == 5) { $ShowClient = "Underfoot"; }
- else { $ShowClient = "Other"; }
- return "$ShowClient";
- }
- ### Change 900000 to 900,000
- sub commify2
- {
- local $_ = shift;
- s{(?<!\d|\.)(\d{4,})}
- {my $n = $1;
- $n=~s/(?<=.)(?=(?:.{3})+$)/,/g;
- $n;
- }eg;
- return $_;
- }
- ### EDIT/UPDATE PRICES PER ZONE NAME!
- sub SOLO_PRICE
- {
- my $client = plugin::val('$client');
- my $freeinstance = plugin::check_hasitem($client, 120003); #EDIT item ID for FREE instance item
- my $paidinstance = plugin::check_hasitem($client, 119998); #EDIT item ID for PAID instance item
- my $new_price = 99999999;
- if ($freeinstance) { $new_price = 0; }
- elsif ($paidinstance) { $new_price = 1000; }
- else { $new_price = 50000000; }
- return $new_price;
- }
- ### EDIT/UPDATE PRICES PER ZONE NAME!
- sub GUILD_PRICE
- {
- my $freeinstance = plugin::check_hasitem($client, 120003); #EDIT item ID for FREE instance item
- my $paidinstance = plugin::check_hasitem($client, 119998); #EDIT item ID for PAID instance item
- my $new_price = 99999999;
- if ($freeinstance) { $new_price = 0; }
- elsif ($paidinstance) { $new_price = 3000; }
- else { $new_price = 50000000; }
- return $new_price;
- }
- ### EDIT/UPDATE PRICES PER ZONE NAME!
- sub RAID_PRICE
- {
- my $freeinstance = plugin::check_hasitem($client, 120003); #EDIT item ID for FREE instance item
- my $paidinstance = plugin::check_hasitem($client, 119998); #EDIT item ID for PAID instance item
- my $new_price = 99999999;
- if ($freeinstance) { $new_price = 0; }
- elsif ($paidinstance) { $new_price = 5000; }
- else { $new_price = 50000000; }
- return $new_price;
- }
- ### Gets the amount of time left for the instance so we can sync/set qglobal expire times
- ### for invited player (on list) qglobal and leader created instance qglobal to expire at same time
- sub GET_TIME_LEFT
- {
- my $instance_type = $_[0]; # GUILD / RAID
- my $InstID = $_[1]; # ID OF INSTANCE
- my $TimeName = "";
- my $qglobals = plugin::var('qglobals');
- my $LeaderTime = "";
- my $ExpireTime = 0;
- my $TimeLeft = 0;
- if ($instance_type eq "RAID") { $TimeName = "_RaidI_Time"; }
- if ($instance_type eq "GUILD") { $TimeName = "_GuildI_Time"; }
- $LeaderTime = $InstID . $TimeName;
- if (defined($qglobals{"$LeaderTime"}))
- {
- $ExpireTime = $qglobals{"$LeaderTime"};
- $TimeLeft = $ExpireTime - time();
- }
- return $TimeLeft
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement