View Single Post
  #3  
Old 09-12-2008, 01:39 PM
paaco
Discordant
 
Join Date: Jan 2005
Posts: 320
Default

Can't seem to get this to work correctly on a global scale. I have it in eqemu/quests/default.pl

I have confirmed that my test char has the flags to get credits in my quest_globals table.

When I kill mobs, nothing happens at all, any ideas what I overlooked or did wrong? :(

Code:
sub EVENT_KILLED_MERIT {

#Checking if the anti-AE global is defined to stop credits from being earned if it is
  if (!defined($qglobals{anti_ae})) {

#Optional code to randomly spawn a named NPC when the target dies.
my $x = $npc->GetX();
my $y = $npc->GetY();
my $z = $npc->GetZ();
my $named = quest::ChooseRandom(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50);

  if ($named == 50) {
    quest::unique_spawn(quest::ChooseRandom(2700667,2700670,2700673,2700676,2700683,2700685),0,0,$x,$y,$z);
    $named = undef;}

#Checking if the exp_credit global is defined for this character
    if (defined($qglobals{exp_credits})) {
#Making sure the character is not already level 70+
      if ($ulevel <= 49) {
#Adding 1 point/credit to the exp_credits global
        quest::setglobal("exp_credits", $qglobals{exp_credits}+1, 1, "F");

#Checking the character's level range        
        if ($ulevel >= 1 && $ulevel <= 50) {
#Variable to define how many exp_credits are needed to level in this level range.
        my $exp_req = 4;
          if ($qglobals{exp_credits} >= $exp_req) {
            quest::level($ulevel+1);
#subtract the actual exp_credits global points. Note that this has to be 1 more than the exp_req global is set to.
            quest::setglobal("exp_credits", $qglobals{exp_credits}-5, 1, "F");
          }
my $exp_needed = ($exp_req - $qglobals{exp_credits});
$client->Message(5, "You currently need $exp_needed experience credits for your next level.");
        }
#same thing as above, but for the next higher level range
        if ($ulevel >= 10 && $ulevel <= 20) {
        my $exp_req = 10;
          if ($qglobals{exp_credits} >= $exp_req) {
            quest::level($ulevel+1);
            quest::setglobal("exp_credits", $qglobals{exp_credits}-11, 1, "F");
          }
my $exp_needed = ($exp_req - $qglobals{exp_credits});
$client->Message(5, "You currently need $exp_needed experience credits for your next level.");
        }
        if ($ulevel >= 21 && $ulevel <= 35) {
        my $exp_req = 15;
          if ($qglobals{exp_credits} >= $exp_req) {
            quest::level($ulevel+1);
            quest::setglobal("exp_credits", $qglobals{exp_credits}-16, 1, "F");
          }
my $exp_needed = ($exp_req - $qglobals{exp_credits});
$client->Message(5, "You currently need $exp_needed experience credits for your next level.");
        }
        if ($ulevel >= 36 && $ulevel <= 49) {
        my $exp_req = 20;
          if ($qglobals{exp_credits} >= $exp_req) {
            quest::level($ulevel+1);
            quest::setglobal("exp_credits", $qglobals{exp_credits}-21, 1, "F");
          }
my $exp_needed = ($exp_req - $qglobals{exp_credits});
$client->Message(5, "You currently need $exp_needed experience credits for your next level.");
        }

      }
#If the character is level 70+, delete the exp_credit global for them since it is no longer needed.
      if ($ulevel >= 50) {
        quest::delglobal("exp_credits"); 
      }      
      
    }

#Checking if the new_credits global is defined for this character
    if (defined($qglobals{new_credits})) {
#Adding 1 point/credit to the new_credits global
      quest::setglobal("new_credits", $qglobals{new_credits}+1, 1, "F");
#Setting the anti_ae global after all credits are applied.
      quest::setglobal("anti_ae", 1, 1, "S5");
my $total_credits = ($qglobals{new_credits} + 1);
$client->Message(5, "You currently have $total_credits Credits.");
    }
      
  }

}
Reply With Quote