Explorar o código

Fixed damage formula of Cart revolution: 150% +1% per 80ea
Removed 2x Chance of Equipment Breaking during CRITICAL attacks


git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@406 54d463be-8e91-2dee-dedb-b68131a5f0ec

Lupus %!s(int64=20) %!d(string=hai) anos
pai
achega
ed81c1addc
Modificáronse 2 ficheiros con 14 adicións e 26 borrados
  1. 3 1
      Changelog.txt
  2. 11 25
      src/map/battle.c

+ 3 - 1
Changelog.txt

@@ -1,9 +1,11 @@
 Date	Added
 11/28
+	* Fixed damage formula of Cart revolution: 150% +1% per 80ea [Lupus]
+	* Removed 2x Chance of Equipment Breaking during CRITICAL attacks [Lupus]
 	* Fix some file props [MouseJstr]
 	* Added map_versionscreen(), displayed when --version flag is passed on command-line. [MC Cameri]
 	* Finished map_helpscreen(), displayed when --help flag passed on command-line. [MC Cameri]
-	* Changed Suilds Extention Skill to +6 people per level. [Lupus]
+	* Changed Guilds Extention Skill to +6 people per level. [Lupus]
 	  (tested it for 2 weeks! or a big server)
 	* Added a fix for gettimeofday() for WIN32 [Codemaster]
         * skill Updates:

+ 11 - 25
src/map/battle.c

@@ -1698,7 +1698,7 @@ int battle_addmastery(struct map_session_data *sd,struct block_list *target,int
 		weapon = sd->weapontype2;
 	switch(weapon)
 	{
-		case 0x01:	// 短剣 (Updated By AppleGirl)
+		case 0x01:	// 短剣 Knife
 		case 0x02:	// 1HS
 		{
 			// 剣修練(+4 ~ +40) 片手剣 短剣含む
@@ -1716,16 +1716,6 @@ int battle_addmastery(struct map_session_data *sd,struct block_list *target,int
 			break;
 		}
 		case 0x04:	// 1HL
-		{
-			// 槍修練(+4 ~ +40,+5 ~ +50) 槍
-			if((skill = pc_checkskill(sd,KN_SPEARMASTERY)) > 0) {
-				if(!pc_isriding(sd))
-					damage += (skill * 4);	// ペコに乗ってない
-				else
-					damage += (skill * 5);	// ペコに乗ってる
-			}
-			break;
-		}
 		case 0x05:	// 2HL
 		{
 			// 槍修練(+4 ~ +40,+5 ~ +50) 槍
@@ -1737,13 +1727,7 @@ int battle_addmastery(struct map_session_data *sd,struct block_list *target,int
 			}
 			break;
 		}
-		case 0x06:	// 片手斧
-		{
-			if((skill = pc_checkskill(sd,AM_AXEMASTERY)) > 0) {
-				damage += (skill * 3);
-			}
-			break;
-		}
+		case 0x06: // 片手斧
 		case 0x07: // Axe by Tato
 		{
 			if((skill = pc_checkskill(sd,AM_AXEMASTERY)) > 0) {
@@ -1765,7 +1749,7 @@ int battle_addmastery(struct map_session_data *sd,struct block_list *target,int
 			break;
 		case 0x0b:	// 弓
 			break;
-		case 0x00:	// 素手
+		case 0x00:	// 素手 Bare Hands
 		case 0x0c:	// Knuckles
 		{
 			// 鉄拳(+3 ~ +30) 素手,ナックル
@@ -3241,8 +3225,10 @@ static struct Damage battle_calc_pc_weapon_attack(
 				break;
 			case MC_CARTREVOLUTION:	// カートレボリューション
 				if(sd->cart_max_weight > 0 && sd->cart_weight > 0) {
-					damage = (damage*(150 + pc_checkskill(sd,BS_WEAPONRESEARCH) + (sd->cart_weight*100/sd->cart_max_weight) ) )/100;
-					damage2 = (damage2*(150 + pc_checkskill(sd,BS_WEAPONRESEARCH) + (sd->cart_weight*100/sd->cart_max_weight) ) )/100;
+					damage = ( damage*(150 + sd->cart_weight/80) )/100;	//fixed CARTREV damage [Lupus]
+					damage2 = ( damage2*(150 + sd->cart_weight/80) )/100;
+					//damage = (damage*(150 + pc_checkskill(sd,BS_WEAPONRESEARCH) + (sd->cart_weight*100/sd->cart_max_weight) ) )/100;
+					//damage2 = (damage2*(150 + pc_checkskill(sd,BS_WEAPONRESEARCH) + (sd->cart_weight*100/sd->cart_max_weight) ) )/100;
 				}
 				else {
 					damage = (damage*150)/100;
@@ -3982,8 +3968,8 @@ struct Damage battle_calc_weapon_attack(
 			}
 			if(sd->sc_data[SC_OVERTHRUST].timer!=-1)
 				breakrate+=20*sd->sc_data[SC_OVERTHRUST].val1;
-			if(wd.type==0x0a)
-				breakrate*=2;
+			//if(wd.type==0x0a) //removed! because CRITS don't affect on breaking chance [Lupus]
+			//	breakrate*=2;
 			if(rand()%10000 < breakrate*battle_config.equipment_break_rate/100 || breakrate >= 10000) {
 				if(pc_breakweapon(sd)==1)
 					wd = battle_calc_pc_weapon_attack(src,target,skill_num,skill_lv,wflag);
@@ -3994,8 +3980,8 @@ struct Damage battle_calc_weapon_attack(
 	if (battle_config.equipment_breaking && target->type == BL_PC && (wd.damage > 0 || wd.damage2 > 0)) {
 		int breakrate=1;
 		if(src->type==BL_PC && ((struct map_session_data *)src)->sc_data[SC_MELTDOWN].timer!=-1) breakrate+=70*((struct map_session_data *)src)->sc_data[SC_MELTDOWN].val1;
-		if (wd.type==0x0a)
-			breakrate*=2;
+		//if (wd.type==0x0a) removed! because CRITS don't affect on breaking chance [Lupus]
+		//	breakrate*=2;
 		if (rand()%10000 < breakrate*battle_config.equipment_break_rate/100 || breakrate >= 10000) {
 			pc_breakarmor((struct map_session_data *)target);
 		}