View Single Post
  #17  
Old 11-15-2008, 04:46 PM
paaco
Discordant
 
Join Date: Jan 2005
Posts: 320
Default

Just thought I would add on to your quest submission Trev just in case this is useful to someone. In this version the quest works on a global level and matches the con system. I'm sure there are better ways to do this, but meh it works.
Code:
sub EVENT_KILLED_MERIT {
if (($ulevel <= 8)&&($mlevel + 3 >= $ulevel))  {
if (($ulevel = 9)&&($mlevel + 4 >= $ulevel))   { 
if (($ulevel = 10)&&($mlevel + 5 >= $ulevel))  {
if (($ulevel = 11)&&($mlevel + 5 >= $ulevel))  {
if (($ulevel = 12)&&($mlevel + 5 >= $ulevel))  {
if (($ulevel = 13)&&($mlevel + 6 >= $ulevel))  {
if (($ulevel = 14)&&($mlevel + 6 >= $ulevel))  {
if (($ulevel = 15)&&($mlevel + 6 >= $ulevel))  {
if (($ulevel = 16)&&($mlevel + 6 >= $ulevel))  {
if (($ulevel = 17)&&($mlevel + 7 >= $ulevel))  {
if (($ulevel = 18)&&($mlevel + 7 >= $ulevel))  {
if (($ulevel = 19)&&($mlevel + 7 >= $ulevel))  {
if (($ulevel = 20)&&($mlevel + 7 >= $ulevel))  {
if (($ulevel = 21)&&($mlevel + 8 >= $ulevel))  {
if (($ulevel = 22)&&($mlevel + 8 >= $ulevel))  {
if (($ulevel = 23)&&($mlevel + 8 >= $ulevel))  {
if (($ulevel = 24)&&($mlevel + 8 >= $ulevel))  {
if (($ulevel = 25)&&($mlevel + 9 >= $ulevel))  {
if (($ulevel = 26)&&($mlevel + 9 >= $ulevel))  {
if (($ulevel = 27)&&($mlevel + 9 >= $ulevel))  {
if (($ulevel = 28)&&($mlevel + 10 >= $ulevel))  {
if (($ulevel = 29)&&($mlevel + 10 >= $ulevel))  {
if (($ulevel = 30)&&($mlevel + 10 >= $ulevel))  {
if (($ulevel = 31)&&($mlevel + 11 >= $ulevel))  {
if (($ulevel = 32)&&($mlevel + 11 >= $ulevel))  {
if (($ulevel = 33)&&($mlevel + 12 >= $ulevel))  {
if (($ulevel = 34)&&($mlevel + 12 >= $ulevel))  {
if (($ulevel = 35)&&($mlevel + 12 >= $ulevel))  {
if (($ulevel = 36)&&($mlevel + 12 >= $ulevel))  {
if (($ulevel = 37)&&($mlevel + 13 >= $ulevel))  {
if (($ulevel = 38)&&($mlevel + 13 >= $ulevel))  {
if (($ulevel = 39)&&($mlevel + 13 >= $ulevel))  {
if (($ulevel = 40)&&($mlevel + 13 >= $ulevel))  {
if (($ulevel = 41)&&($mlevel + 14 >= $ulevel))  {
if (($ulevel = 42)&&($mlevel + 15 >= $ulevel))  {
if (($ulevel = 43)&&($mlevel + 15 >= $ulevel))  {
if (($ulevel = 44)&&($mlevel + 15 >= $ulevel))  {
if (($ulevel = 45)&&($mlevel + 16 >= $ulevel))  {
if (($ulevel = 46)&&($mlevel + 16 >= $ulevel))  {
if (($ulevel = 47)&&($mlevel + 16 >= $ulevel))  {
if (($ulevel = 48)&&($mlevel + 16 >= $ulevel))  {
if (($ulevel = 49)&&($mlevel + 17 >= $ulevel))  {
if (($ulevel = 50)&&($mlevel + 17 >= $ulevel))  {
}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

#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 50+
      if ($ulevel <= 49) {
#Adding 1 point/credit to the exp_credits global
        quest::setglobal("exp_credits", $qglobals{exp_credits}+1, 5, "F");

#Checking the character's level range        
        if ($ulevel >= 1 && $ulevel <= 5) {
#Variable to define how many exp_credits are needed to level in this level range.
        my $exp_req = 3;
          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}-4, 5, "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 >= 6 && $ulevel <= 15) {
        my $exp_req = 5;
          if ($qglobals{exp_credits} >= $exp_req) {
            quest::level($ulevel+1);
            quest::setglobal("exp_credits", $qglobals{exp_credits}-6, 5, "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 >= 16 && $ulevel <= 30) {
        my $exp_req = 12;
          if ($qglobals{exp_credits} >= $exp_req) {
            quest::level($ulevel+1);
            quest::setglobal("exp_credits", $qglobals{exp_credits}-13, 5, "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 >= 31 && $ulevel <= 50) {
        my $exp_req = 22;
          if ($qglobals{exp_credits} >= $exp_req) {
            quest::level($ulevel+1);
            quest::setglobal("exp_credits", $qglobals{exp_credits}-23, 5, "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}+2, 5, "F");
#Setting the anti_ae global after all credits are applied.
      quest::setglobal("anti_ae", 1, 5, "S5");
my $total_credits = ($qglobals{new_credits} + 1);
$client->Message(5, "You currently have $total_credits Credits.");
    }
      
  }
   
}
}
Reply With Quote