|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Quests::Custom Custom Quests here |

09-15-2008, 12:33 AM
|
Discordant
|
|
Join Date: Jan 2005
Posts: 320
|
|
One more question, and I'm sorry to keep bugging you, but I really do appreciate you helping out. Is there any way to make mobs only within 7 levels give points? Since this is global, it would be way too easy to lvl on my server at like 40 killing in qeynos hills haha.
|

09-15-2008, 04:13 AM
|
 |
Developer
|
|
Join Date: Aug 2006
Location: USA
Posts: 5,946
|
|
You would just need to compare the mob level to the userlevel. So, something like this at the top of the script right below the EVENT_MERIT line should work:
Code:
if($mlevel + 7 >= $ulevel) {
or if you wanted to restrict it to 7 levels higher and lower, you could use this:
Code:
if(($mlevel + 7 >= $ulevel)&&($mlevel - 7 >= $ulevel)) {
Then, of course, you would need to add an extra bracket "}" at the end of the script to encompass the whole EVENT_MERIT section.
|

09-15-2008, 11:59 AM
|
Discordant
|
|
Join Date: Jan 2005
Posts: 320
|
|
Thanks again Trev, I'll try to leave ya alone for a while now ;p
|

09-19-2008, 07:03 AM
|
Fire Beetle
|
|
Join Date: Jul 2006
Posts: 11
|
|
Is there a way to make this work for player kills? I mean, killing players in PVP and having a script that gives them the points as a reward?
|
 |
|
 |

10-21-2008, 01:15 AM
|
Discordant
|
|
Join Date: Jan 2005
Posts: 320
|
|
Since people have been testing my server I have had a few reports of this quest taking points and not giving the item. Every time I test it I get the item though. Anyone see something wrong with this? :(
Code:
sub EVENT_SAY {
if($text =~ /Hail/i) {
if (!defined($qglobals{new_credits})) {
#This tells the player to hail the NPC that sets the credit globals on their character if they haven't already
quest::say ("Nice to meet you, $name. You should speak with the God of War"); }
if (defined($qglobals{new_credits})) {
quest::say ("I can enhance your Starter [armor] if you have enough [credits] for it."); }
}
if($text =~ /credits/i && defined($qglobals{new_credits})) {
quest::say ("To enhance your armor, you must turn in the Starter piece that you wish to enhance, and you must also have enough credits to afford the labor [costs]."); }
if($text =~ /costs/i && defined($qglobals{new_credits})) {
quest::say ("Enhancing Chest and Leg armor pieces costs 35 credits each. Other armor costs 25 credits each. Weapons are 50 each and I can currently do Pierceing, a shield, 1hb, 2hb, 1hs, and Bows"); }
if($text =~ /armor/i && defined($qglobals{new_credits})) {
quest::say ("I can Enhance your starter armor for you. Just hand me the old piece if you have enough credits."); }
}
sub EVENT_ITEM {
#This is the hash of item turn ins and upgrade rewards with comments as to what each is.
my %armor = (
2683 => 3482, #Chain_Boots
2672 => 3479, #Chain_Bracer
2668 => 3397, #Chain_Coif
2673 => 3480, #Chain_Gauntlets
2670 => 3442, #Chain_Vambraces
2826 => 3537, #Cloth_Boots
2810 => 3540, #Cloth_Bracer
2807 => 3582, #Cloth_Cap
2812 => 3539, #Cloth_Gloves
2809 => 3541, #Cloth_Sleeves
2730 => 3625, #Leather_Boots
2687 => 3486, #Leather_Bracer
4212 => 25439, #Starter_Boots
4210 => 25437, #Starter_Gauntlets
4209 => 25436, #Starter_Braces
4208 => 25435, #Starter_Vambraces
4207 => 71234, #Starter_Belt
4206 => 89803, #Starter_Cloak
4201 => 25433, #Starter_Helm
4202 => 89900, #Starter_Mask
4203 => 34132, #Starter_Neck
4205 => 83353, #Starter_Shoulder
);
#Separate hash item turn ins and rewards to allow for separate credit prices
my %chestlegs = (
4204 => 25434, #Starter_Breastplate
4211 => 25438, #Starter_Greaves
68232 => 34142, #Starter_Robe
2820 => 3538, #Cloth_Leggings
2685 => 3484, #Leather_Breastplate
2718 => 3491, #Leather_Leggings
42040 => 3616, #Plate_Breastplate
2666 => 3232, #Plate_Greaves
);
my %weapons = (
70646 => 62258, #Starter_1hb
6652 => 27054, #Starter_2hb
11940 => 11938, #Starter_1hs
2820 => 3538, #Starter_2hs
2595 => 2689, #Starter_Piercing
5758 => 45137, #Starter_Bow
6730 => 6806, #Starter_Shield
2666 => 3232, #Starter_caster
);
#Verify that the character has enough credits for the turn in.
if ($qglobals{new_credits} >= 25) {
#Sort the hash
for my $armor (sort keys %armor) {
if(defined($armor)) {
#Check the item turn in is correct and in the hash
if (plugin::check_handin(\%itemcount, $armor => 1)) {
#Check to make sure that there is a reward defined for the turn in
if(defined($armor{$armor})) {
quest::emote("recognizes your efforts and fashions an upgrade for your armor piece" );
quest::say("Thank you, $name, here is your enhanced armor piece!");
quest::exp(45000);
#Subtract the amount of credits for the upgrade purchase
quest::setglobal("new_credits", $qglobals{new_credits} - 25, 1, "F");
#Reward the player with the upgrade reward.
quest::summonitem($armor{$armor});
#Send a message with the character's new credit total after the purchase
my $total_credits = ($qglobals{new_credits} - 25);
$client->Message(5, "You have spent 25 Credits and now have $total_credits remaining credits.");
}
}
#This is supposed to return items if the wrong one is turned in, but it just eats incorrect items.
#This is the only part of all credit quests that doesn't work properly yet as it should.
# else {
# plugin::return_items(\%itemcount);
# quest::say ("I have no use for this item, $name.");
# }
}
}
}
#This repeats the process above accept for the items of a higher credit cost
if ($qglobals{new_credits} >= 35) {
for my $chestlegs (sort keys %chestlegs) {
if(defined($chestlegs)) {
if (plugin::check_handin(\%itemcount, $chestlegs => 1)) {
if(defined($chestlegs{$chestlegs})) {
quest::emote("recognizes your efforts and enhances your armor piece" );
quest::say("Thank you, $name, here is your upgraded armor piece!");
quest::setglobal("new_credits", $qglobals{new_credits} - 35, 1, "F");
quest::summonitem($chestlegs{$chestlegs});
my $total_credits = ($qglobals{new_credits} - 30);
$client->Message(5, "You have spent 35 Credits and now have $total_credits remaining credits.");
}
}
# else {
# plugin::return_items(\%itemcount);
# quest::say ("I have no use for this item, $name.");
# }
}
}
}
#This repeats the process above accept for the items of a higher credit cost
if ($qglobals{new_credits} >= 50) {
for my $weapons (sort keys %weapons) {
if(defined($weapons)) {
if (plugin::check_handin(\%itemcount, $weapons => 1)) {
if(defined($weapons{$weapons})) {
quest::emote("recognizes your efforts and enhances your weapon" );
quest::say("Thank you, $name, here is your enhanced weapon!");
quest::setglobal("new_credits", $qglobals{new_credits} - 50, 1, "F");
quest::summonitem($weapons{$weapons});
my $total_credits = ($qglobals{new_credits} - 50);
$client->Message(5, "You have spent 50 Credits and now have $total_credits remaining credits.");
}
}
# else {
# plugin::return_items(\%itemcount);
# quest::say ("I have no use for this item, $name.");
# }
}
}
}
#This returns the items if the character does not have enough credits to make the purchase
else {
plugin::return_items(\%itemcount);
# quest::say ("You don't have enough credits for that, sorry.");
}
}
|
 |
|
 |
 |
|
 |

11-15-2008, 04:46 PM
|
Discordant
|
|
Join Date: Jan 2005
Posts: 320
|
|
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.");
}
}
}
}
|
 |
|
 |

11-15-2008, 05:33 PM
|
Discordant
|
|
Join Date: Jan 2005
Posts: 320
|
|
ok I lied, seems like the first if statement works, anyone over that level gets no xp...what did I do wrong?
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 11:39 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |