Thread: more php help
View Single Post
  #3  
Old 07-16-2008, 11:30 PM
spider661
Discordant
 
Join Date: Oct 2005
Location: michigain
Posts: 260
Default

well it seems the hp caculation is not working.. its fine on low lvl chars and such but when i loaded up a monk lvl 75 with 760 aa's it is like 1k off anyone know y? do monks get a hp bonus at higher lvls or something? im checking for all the aas that give hp im pritty sure.. here is my hp code.

Code:
$hp = MaxHP($class, $level, $sta, $itemHP);

function LevelFactor($class, $level){
	$multiplier = 0;
	$mlevel=$level;
	switch($class)
	{
		case '1':{
			if ($mlevel < 20)
				$multiplier = 220;
			else if ($mlevel < 30)
				$multiplier = 230;
			else if ($mlevel < 40)
				$multiplier = 250;
			else if ($mlevel < 53)
				$multiplier = 270;
			else if ($mlevel < 57)
				$multiplier = 280;
			else if ($mlevel < 60)
				$multiplier = 290;
			else if ($mlevel < 70)
				$multiplier = 300;
			else 
				$multiplier = 311;
			break;
		}
		case '6':
		case '2':
		case '10':{
			if ($mlevel < 70)
				$multiplier = 150;
			else
				$multiplier = 157;
			break;
		}
		case '16':
		case '3':
		case '5':{
			if ($mlevel < 35)
				$multiplier = 210;
			else if ($mlevel < 45)
				$multiplier = 220;
			else if ($mlevel < 51)
				$multiplier = 230;
			else if ($mlevel < 56)
				$multiplier = 240;
			else if ($mlevel < 60)
				$multiplier = 250;
			else if ($mlevel < 68)
				$multiplier = 260;
			else
				$multiplier = 270;
			break;
		}
		case '7':
		case '8':
		case '9':
		case '15':{
			if ($mlevel < 51)
				$multiplier = 180;
			else if ($mlevel < 58)
				$multiplier = 190;
			else if ($mlevel < 70)
				$multiplier = 200;
			else
				$multiplier = 210;
			break;
		}
		case '4':{
			if ($mlevel < 58)
				$multiplier = 200;
			else if ($mlevel < 70)
				$multiplier = 210;
			else
				$multiplier = 220;
			break;
		}
		case '13':
		case '12':
		case '11':
		case '14':{
			if ($mlevel < 70)
				$multiplier = 120;
			else
				$multiplier = 127;
			break;
		}
		default:{
			if ($mlevel < 35)
				$multiplier = 210;
			else if ($mlevel < 45)
				$multiplier = 220;
			else if ($mlevel < 51)
				$multiplier = 230;
			else if ($mlevel < 56)
				$multiplier = 240;
			else if ($mlevel < 60)
				$multiplier = 250;
			else
				$multiplier = 260;
			break;
		}
	}
	return $multiplier;
}

function CalcBaseHP($class, $level, $sta)
{
	$lm=LevelFactor($class, $level);
	$Post255;
	if(($sta-255)/2 > 0)
		$Post255 = ($sta-255)/2;
	else
		$Post255 = 0;
		
	$base_hp = (5)+($level*$lm/10) + ((($sta-$Post255)*$level*$lm/3000));
	return $base_hp;
}


function MaxHP($class, $level, $sta, $itemHP) {
	$nd = 10000;
	$max_hp = (CalcBaseHP($class, $level, $sta) + $itemHP);

	//The AA desc clearly says it only applies to base hp..
	//but the actual effect sent on live causes the client
	//to apply it to (basehp + itemhp).. I will oblige to the client's whims over
	//the aa description
	switch($Profile["aa_array"][107]) {
	case 1:
		$nd += 200;
		break;
	case 2:
		$nd += 500;
		break;
	case 3:
		$nd += 1000;
		break;
	}
	
	if($Profile["aa_array"][279])
	{
		$nd += 200;
	}
	$nd += 150*$Profile["aa_array"][423];
	
	if($level == 75)
	{
	$max_hp = $max_hp-1;
	}
	$max_hp = floor($max_hp * $nd / 10000);		
	
	return $max_hp;
}
Reply With Quote