Once
this pull request gets committed, this will be possible without Perl DBI. There is a plugin, as mentioned, called plugin::GetTimeLeft(), I have re-written this plugin along with NatedogEZ to return time from Years downwards (includes months and weeks). The syntax for $client->GetGlobalTime() is $client->GetGlobalTime("qglobal_name", character_id, npc_id, zone_id); NatedogEZ and I did not default character_id, npc_id, and zone_id to 0, so you must specify 0 if you don't want it to search for specific NPCs or zones. Along with this commit comes $client->GetGlobal() which has the exact same syntax, $client->GetGlobal("qglobal_name", character_id, npc_id, zone_id); This will return the value of a quest global based on NPC or Client, as it is for mobs. This will allow you to do such things as check your target's quest global using $client->GetTarget()->GetGlobal(); if you meet the correct conditions. I apologize for rambling.
Here's the plugin, to use it do the following: $client->Message(Color #, plugin::GlobalTime($client->GetGlobalTime("qglobal_name", character_id, npc_id, zone_id)));
Code:
sub GlobalTime {
my $time = $_[0];
my $currentTime = time;
my $difference = ($time - $currentTime);
my ($years, $months, $weeks, $days, $hours, $minutes, $seconds) = 0;
if ($difference <= 0) {
return 0;
}
if ($difference > 31556926) {
$years = int($difference / 31556926);
}
if ($difference > 2628000) {
$months = int($difference / 2628000) % 12;
}
if ($difference > 604800) {
$weeks = int($difference / 604800) % 4;
}
if ($difference > 86400) {
$days = int($difference / 86400) % 7;
}
if ($difference > 3600) {
$hours = int($difference / 3600) % 24;
}
if ($difference > 60) {
$minutes = int($difference / 60) % 60;
}
$seconds = ($difference % 60);
$ys = $years != 1 ? "Years":"Year";
$mos = $months != 1 ? "Months":"Month";
$ws = $weeks != 1 ? "Weeks":"Week";
$ds = $days != 1 ? "Days":"Day";
$hs = $hours != 1 ? "Hours":"Hour";
$ms = $minutes != 1 ? "Minutes":"Minute";
$ss = $seconds != 1 ? "Seconds":"Second";
return "You have $years $ys, $months $mos, $weeks $ws, $days $ds, $hours $hs, $minutes $ms, and $seconds $ss remaining";
}