View Single Post
  #7  
Old 01-03-2010, 03:01 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

I haven't tested this script yet, so there may be some issues with it, but it should be pretty close to being functional for what you are wanting. This should clean up your script considerably and make it easier to read and edit as needed. It should also make it considerably easier for you to add more classes to it. If this works correctly, it should mean you can adjust it with less chance of breaking something in the script and then having a hard time figuring out which of the hundreds of lines is the problem

Code:
sub EVENT_LEVEL_UP {

	# Scribe spells up to their current level.
	quest::scribespells($ulevel);

	# Set all skills to 400.  Should only need to do this 1 time, so do it when they reach level 2.
	if ($ulevel == 2) {
		quest::setallskill(400);
	}

	# Create an Array of Item Rewards for each possible level.
	%Warrior = (
	2 => 5157,		# Item Name Note
	3 => 32150,		# Item Name Note
	4 => 31084,		# Item Name Note
	5 => 31085,		# Item Name Note
	6 => 31086,		# Item Name Note
	7 => 31087,		# Item Name Note
	8 => 31087,		# Item Name Note
	9 => 31088,		# Item Name Note
	10 => 31089,	# Item Name Note
	11 => 31090,	# Item Name Note
	12 => 17403,	# Item Name Note
	13 => 17403,	# Item Name Note
	14 => 17403,	# Item Name Note
	15 => 17403,	# Item Name Note
	16 => 1727,		# Item Name Note
	17 => 27200,	# Item Name Note
	18 => 28284,	# Item Name Note
	19 => 32334,	# Item Name Note
	20 => 68239,	# Item Name Note
	21 => 51268,	# Item Name Note
	22 => 7398,		# Item Name Note
	23 => 7945,		# Item Name Note
	24 => 1620,		# Item Name Note
	25 => 25077,	# Item Name Note
	26 => 6415,		# Item Name Note
	27 => 4318,		# Item Name Note
	28 => 24736,	# Item Name Note
	29 => 6417,		# Item Name Note
	30 => 25294,	# Item Name Note
	31 => 6428,		# Item Name Note
	32 => 31759,	# Item Name Note
	33 => 9205,		# Item Name Note
	34 => 2747,		# Item Name Note
	35 => 30377,	# Item Name Note
	36 => 8210,		# Item Name Note
	37 => 1745,		# Item Name Note
	38 => 51261,	# Item Name Note
	39 => 31307,	# Item Name Note
	40 => 27126,	# Item Name Note
	41 => 27258,	# Item Name Note
	42 => 7524,		# Item Name Note
	43 => 7850,		# Item Name Note
	44 => 25561,	# Item Name Note
	45 => 89255,	# Item Name Note
	46 => 87070,	# Item Name Note
	47 => 87071,	# Item Name Note
	48 => 87072,	# Item Name Note
	49 => 87072,	# Item Name Note
	50 => 87073,	# Item Name Note
	51 => 87074,	# Item Name Note
	52 => 87075,	# Item Name Note
	53 => 87076,	# Item Name Note
	54 => 25022,	# Item Name Note
	55 => 14679,	# Item Name Note
	56 => 14679,	# Item Name Note
	57 => 14703,	# Item Name Note
	58 => 25210,	# Item Name Note
	59 => 17869,	# Item Name Note
	60 => 109210,	# Item Name Note
	61 => 10909,	# Item Name Note
	62 => 86705,	# Item Name Note
	63 => 86671,	# Item Name Note
	64 => 86685,	# Item Name Note
	65 => 60321,	# Item Name Note
	);

	# Create the Necromancer Level Rewards Array.
	%Necromancer = (
	2 => 31069,		# Item Name Note
	3 => 31068,		# Item Name Note
	4 => 31067,		# Item Name Note
	5 => 31066,		# Item Name Note
	6 => 31066,		# Item Name Note
	7 => 31065,		# Item Name Note
	8 => 31064,		# Item Name Note
	9 => 31063,		# Item Name Note
	10 => 5316,		# Item Name Note
	11 => 13401,	# Item Name Note
	12 => 29115,	# Item Name Note
	13 => 17403,	# Item Name Note
	14 => 55299,	# Item Name Note
	15 => 55298,	# Item Name Note
	16 => 14742,	# Item Name Note
	17 => 25294,	# Item Name Note
	18 => 31759,	# Item Name Note
	19 => 1742,		# Item Name Note
	20 => 25555,	# Item Name Note
	21 => 68239,	# Item Name Note
	22 => 31355,	# Item Name Note
	23 => 68282,	# Item Name Note
	24 => 29615,	# Item Name Note
	25 => 24039,	# Item Name Note
	26 => 20548,	# Item Name Note
	27 => 24001,	# Item Name Note
	28 => 86904,	# Item Name Note
	29 => 90036,	# Item Name Note
	30 => 63053,	# Item Name Note
	31 => 9946,		# Item Name Note
	32 => 11305,	# Item Name Note
	33 => 11305,	# Item Name Note
	34 => 13622,	# Item Name Note
	35 => 15785,	# Item Name Note
	36 => 19023,	# Item Name Note
	37 => 20430,	# Item Name Note
	38 => 28947,	# Item Name Note
	39 => 43397,	# Item Name Note
	40 => 7771,		# Item Name Note
	41 => 24782,	# Item Name Note
	42 => 62206,	# Item Name Note
	43 => 9960,		# Item Name Note
	44 => 43434,	# Item Name Note
	45 => 40293,	# Item Name Note
	46 => 65524,	# Item Name Note
	47 => 55221,	# Item Name Note
	48 => 62197,	# Item Name Note
	49 => 70227,	# Item Name Note
	50 => 69203,	# Item Name Note
	51 => 69864,	# Item Name Note
	52 => 26009,	# Item Name Note
	53 => 7363,		# Item Name Note
	54 => 10875,	# Item Name Note
	55 => 43437,	# Item Name Note
	56 => 71429,	# Item Name Note
	57 => 71558,	# Item Name Note
	58 => 71341,	# Item Name Note
	59 => 87075,	# Item Name Note
	60 => 20544,	# Item Name Note
	61 => 86694,	# Item Name Note
	62 => 86794,	# Item Name Note
	63 => 86714,	# Item Name Note
	64 => 86734,	# Item Name Note
	65 => 62581,	# Item Name Note
	);

	# If they are over level 2 and match one of the classes that has reward arrays created for them, summon their reward.
	if ($ulevel >= 2 && ($class eq "Warrior" || $class eq "Necromancer")){

		my $rewarditemid = 0;

		# Generate the Item ID from the Class Arrays above
		if ($class eq "Warrior") {	
			$rewarditemid = $Warrior{$ulevel};
		}
		elsif ($class eq "Necromancer") {
			$rewarditemid = $Necromancer{$ulevel};
		}
		else {
			# Do Nothing
		}

		# Summon the appropriate Item ID
		quest::summonitem($rewarditemid);

		# Note, the following client message line is for testing purposes only, so you can see if the correct Item ID is being generated from the Arrays.
		# You can comment this line out or delete itonce you have verified that the script is functioning properly.
		$client->Message(15,"You should have been rewarded with the $class level $ulevel item with ID $rewarditemid.");
	}

	# Divide the character level by 5
	my $LevelDivided = $ulevel / 5;
	# Convert that output to an integer without decimals
	my $LevelDividedInt = int($LevelDivided);

	# If the divided level equals the integer version, then we know their current level is a multiple of 5
	if ($LevelDivided == $LevelDividedInt) { 
		if(!defined($qglobals{$class.$ulevel})) {
			quest::setglobal($class.$ulevel,$name,1,"F");
			quest::shout2("$name has obtained the servers first level $ulevel $class!");
		}
	}

}

sub EVENT_ENTERZONE {

	if(!defined($qglobals{Wayfarer}) && $ulevel >= 15) {
		$client->Message(15,"A mysterious voice whispers to you, 'If you can feel me in your thoughts, know this -- 
something is changing in the world and I reckon you should be a part of it. I do not know much, 
but I do know that in every home city and the wilds there are agents of an organization called the 
Wayfarers Brotherhood. They are looking for recruits . . . If you can hear this message, you are 
one of the chosen. Rush to your home city, or search the West Karanas and Rathe Mountains for 
a contact if you have been exiled from your home for your deeds, and find out more. Adventure awaits you, my friend.'");
	}
	
}
Let me know if that doesn't work for ya.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!

Last edited by trevius; 01-03-2010 at 03:54 AM..
Reply With Quote