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
This commit is contained in:
Lupus 2004-11-28 21:56:13 +00:00
parent eade9859d8
commit ed81c1addc
2 changed files with 14 additions and 26 deletions

View File

@ -1,9 +1,11 @@
Date Added Date Added
11/28 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] * Fix some file props [MouseJstr]
* Added map_versionscreen(), displayed when --version flag is passed on command-line. [MC Cameri] * 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] * 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) (tested it for 2 weeks! or a big server)
* Added a fix for gettimeofday() for WIN32 [Codemaster] * Added a fix for gettimeofday() for WIN32 [Codemaster]
* skill Updates: * skill Updates:

View File

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