Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #1  
Old 02-26-2005, 05:40 AM
mollymillions's Avatar
mollymillions
Hill Giant
 
Join Date: May 2003
Posts: 176
Default Bind Wound

Here is a fix for the Bind Wound skill caps. According to web sources bind wound should heal 0.25 * bind wound skill until bind wound skill = 200 (e.g. 50 hp when bind wound = 200) and 0.4 * bind wound skill when bind wound skill > 200 (e.g. 80 hp when bind wound = 201).


Heres the raw data for the skill caps:
Code:
Skill,,BRD,CLR,DRU,ENC,MAG,MNK,NEC,PAL,RAN,ROG,SHA,SHD,WAR,WIZ,BST,BZR
Bind Wound,Level,1,1,1,1,1,1,1,10,15,1,1,1,5,1,1,1
Bind Wound,Cap 50,150,200,200,100,100,200,100,200,150,176,200,150,175,100,200,200
Bind Wound,Cap 65,200,201,200,100,100,210,100,210,200,210,200,200,210,100,210,210


[font=Arial]
Source/zone/client.cpp: Line 1938
Code:
if (GetSkill(BIND_WOUND) >= 10) {
	 bindhps += GetSkill(BIND_WOUND)*12/100;
}
 
if (bindhps > 30){
	 bindhps = 30;
}

-->
Code:
if (GetSkill(BIND_WOUND) >= 200) {
		bindhps += GetSkill(BIND_WOUND)*0.4;
}
else if (GetSkill(BIND_WOUND) >= 10) {
		bindhps += GetSkill(BIND_WOUND)*0.25;
}



Source/zone/maxskill.h: Line 2075
Code:
	case BIND_WOUND:{
	 r_value = 5 + (level*5);
	 if (level > 50){
		// Check for aa and class
	 }
	 if (r_value > 200)
		r_value = 200;
	 switch (class_) {
		 case ENCHANTER: case ENCHANTERGM:
		 case MAGICIAN: case MAGICIANGM:
		 case NECROMANCER: case NECROMANCERGM:
		 case WIZARD: case WIZARDGM:{
			if ( r_value > 100 )
			 r_value = 100;
		 }
		default: break;
	 }
	 break;
	}

-->
Code:
	case BIND_WOUND:{
	 switch(class_){
		case BARD: case BARDGM:{ 
		 r_value = ((level*5)+5);		 
		 if(level >= 50) {		 
			if(r_value > 210)
				r_value = 210; 
		 if(level < 50)
			if(r_value > 200)
				r_value = 200; 
		 break;
		 }
		break;
		}
		case CLERIC: case CLERICGM:{ 
		 r_value = ((level*5)+5);			
		 if(level >= 50) {		 
			if(r_value > 201)
				r_value = 201; 
		 if(level < 50)
			if(r_value > 200)
				r_value = 200; 
		 break;	 
		 }
		 break;
		}
 
		case DRUID: case DRUIDGM:
		case SHAMAN: case SHAMANGM:{
		 r_value = ((level*5) + 5);
		 if(r_value > 200)
			r_value = 200;			 
		 break;
		}	 
		case MAGICIAN: case MAGICIANGM:
		case ENCHANTER: case ENCHANTERGM:
		case NECROMANCER: case NECROMANCERGM:
		case WIZARD: case WIZARDGM:{
		r_value = ((level*5) + 5);
			if(r_value > 100)
			 r_value = 100;
		break;
		}
		case BEASTLORD: case BEASTLORDGM:
		case BERSERKER: case BERSERKERGM:
		case MONK: case MONKGM: { 
		 r_value = ((level*5)+5);			
		 if(level >= 50) {		 
			if(r_value > 210)
				r_value = 210; 
		 if(level < 50)
			if(r_value > 200)
				r_value = 200; 
		 break;	 
		 }
		 break;
		}
		case PALADIN: case PALADINGM: { 
		if (level > 10)
			r_value = (((level-10)*5)+5);			
			if(level >= 50) {		 
				if(r_value > 210)
					r_value = 210; 
			if(level < 50)
				if(r_value > 200)
					r_value = 200; 
			break;	 
			}
		 break;
		}
		case RANGER: case RANGERGM: { 
		 if (level > 15)
			r_value = (((level-15)*5)+5);			
			if(level >= 50) {		 
				if(r_value > 200)
					r_value = 200; 
			if(level < 50)
				if(r_value > 150)
					r_value = 150;					 
			break;
			}
		 break;
		}
 
		case ROGUE: case ROGUEGM: { 
		 r_value = ((level*5)+5);			
		 if(level >= 50) {		 
			if(r_value > 210)
				r_value = 210; 
		 if(level < 50)
			if(r_value > 176)
				r_value = 176; 
		 break;	 
		 }
		 break;
		}
		case SHADOWKNIGHT: case SHADOWKNIGHTGM: { 
		 r_value = ((level*5)+5);			
		 if(level >= 50)		
			if(r_value > 200)
				r_value = 200; 
		 if(level < 50)
			if(r_value > 150)
				r_value = 150; 
		 break;	 
		}
		case WARRIOR: case WARRIORGM: { 
		 if (level > 5)
			r_value = (((level-5)*5)+5);			 
			if(level >= 50) {		 
				if(r_value > 210)
					r_value = 210; 
			if(level < 50)
				if(r_value > 175)
					r_value = 175;					 
			break;
			}
		break;
		}
 
		default: r_value = 0;
		break;
	 }
	break;
	}
	case SENSE_HEADING:
	case SWIMMING:
	case ALCOHOL_TOLERANCE:
	case BEGGING:{
	 r_value = 5 + (level*5);
	 if (r_value > 200)
		r_value = 200;
	 break;
	}
[font=Arial]
[font=Arial](Also, I am 99% sure that all classes can bind wound up to 70% from level one nowdays, but I am not positive so I haven

Last edited by mollymillions; 02-26-2005 at 10:44 PM..
Reply With Quote
  #2  
Old 02-27-2005, 11:59 AM
fathernitwit
Developer
 
Join Date: Jul 2004
Posts: 773
Default

good work. I stuck this in my code, it'll get in eventually... I just synced up yesterday, so it will prolly be a while.

also, I noticed a flaw in your conditionals:
Code:
		case BARD: case BARDGM:{ 
		 r_value = ((level*5)+5);		 
		 if(level >= 50) {		 
			if(r_value > 210)
				r_value = 210; 
		 if(level < 50)
			if(r_value > 200)
				r_value = 200; 
		 break;
		 }
		break;
		}
has a spare {} floating around which alters the logic, it should be:
Code:
		case BARD: case BARDGM:{
		 r_value = ((level*5)+5);
		 if(level >= 50) {
			if(r_value > 210)
				r_value = 210;
		 } else {
			if(r_value > 200)
				r_value = 200;
		 }
		 break;
		}

resulting in:
Code:
case BIND_WOUND:{
	 switch(class_){
		case BARD: case BARDGM:{
		 r_value = ((level*5)+5);
		 if(level >= 50) {
			if(r_value > 210)
				r_value = 210;
		 } else {
			if(r_value > 200)
				r_value = 200;
		 }
		 break;
		}
		case CLERIC: case CLERICGM:{ 
		 r_value = ((level*5)+5);			
		 if(level >= 50) {
			if(r_value > 201)
				r_value = 201; 
		 } else {
			if(r_value > 200)
				r_value = 200;
		 }
		 break;
		}
 
		case DRUID: case DRUIDGM:
		case SHAMAN: case SHAMANGM:{
		 r_value = ((level*5) + 5);
		 if(r_value > 200)
			r_value = 200;			 
		 break;
		}	 
		case MAGICIAN: case MAGICIANGM:
		case ENCHANTER: case ENCHANTERGM:
		case NECROMANCER: case NECROMANCERGM:
		case WIZARD: case WIZARDGM:{
		  r_value = ((level*5) + 5);
		  if(r_value > 100)
			 r_value = 100;
		break;
		}
		case BEASTLORD: case BEASTLORDGM:
		case BERSERKER: case BERSERKERGM:
		case MONK: case MONKGM: { 
		 r_value = ((level*5)+5);			
		 if(level >= 50) {
			if(r_value > 210)
				r_value = 210; 
		 } else {
			if(r_value > 200)
				r_value = 200;
		 }
		 break;
		}
		case PALADIN: case PALADINGM: { 
		  if (level > 10) {
			r_value = (((level-10)*5)+5);			
			if(level >= 50) {
				if(r_value > 210)
					r_value = 210; 
			} else {
				if(r_value > 200)
					r_value = 200;
			}
		  }
		  break;
		}
		case RANGER: case RANGERGM: { 
		  if (level > 15) {
			r_value = (((level-15)*5)+5);			
			if(level >= 50) {
				if(r_value > 200)
					r_value = 200; 
			} else {
				if(r_value > 150)
					r_value = 150;
			}
		  }
		  break;
		}
 
		case ROGUE: case ROGUEGM: { 
		 r_value = ((level*5)+5);			
		 if(level >= 50) {
			if(r_value > 210)
				r_value = 210; 
		 } else {
			if(r_value > 176)
				r_value = 176;
		 }
		 break;
		}
		case SHADOWKNIGHT: case SHADOWKNIGHTGM: { 
		 r_value = ((level*5)+5);			
		 if(level >= 50) {		
			if(r_value > 200)
				r_value = 200; 
		 } else {
			if(r_value > 150)
				r_value = 150;
		 }
		 break;
		}
		case WARRIOR: case WARRIORGM: { 
		 if (level > 5) {
			r_value = (((level-5)*5)+5);			 
			if(level >= 50) {
				if(r_value > 210)
					r_value = 210; 
			} else {
				if(r_value > 175)
					r_value = 175;
			}
		 }
		 break;
		}
 
		default: r_value = 0;
		break;
	 }
	break;
	}
Reply With Quote
  #3  
Old 02-27-2005, 02:34 PM
mollymillions's Avatar
mollymillions
Hill Giant
 
Join Date: May 2003
Posts: 176
Default

Also

if (GetSkill(BIND_WOUND) >= 200) {


should be

if (GetSkill(BIND_WOUND) > 200) {
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 09:51 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3