* Slight cleanup of item-based walk speed bonuses
- removed bSpeed bonus code (was just disabled until now) - changed speed_rate to use base value 0% instead of 100% git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12915 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
263261d9f6
commit
0c9d9f5a48
@ -3,6 +3,10 @@ Date Added
|
||||
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
|
||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||
|
||||
2008/07/06
|
||||
* Slight cleanup of item-based walk speed bonuses [ultramage]
|
||||
- removed bSpeed bonus code (was just disabled until now)
|
||||
- changed speed_rate to use base value 0% instead of 100%
|
||||
2008/07/05
|
||||
* Moved the mob killmonster flag to a more appropriate area. (bugreport:1795) [SketchyPhoenix]
|
||||
2008/07/04
|
||||
|
@ -53,7 +53,6 @@ bonus bFlee,n; Flee + n
|
||||
bonus bFleeRate,n; Flee + n%
|
||||
bonus bFlee2,n; Perfect Dodge + n
|
||||
bonus bFlee2Rate,n; Perfect Dodge + n%
|
||||
bonus bSpeed,n; Moving speed + n
|
||||
bonus bSpeedRate,n; Moving speed + n% (only the highest among all is applied)
|
||||
bonus bSpeedAddRate,n; Moving speed + n%
|
||||
bonus bAspd,n; Attack speed + n
|
||||
|
@ -289,7 +289,7 @@ enum _sp {
|
||||
SP_MAGIC_ADDELE,SP_MAGIC_ADDRACE,SP_MAGIC_ADDSIZE, // 1035-1037
|
||||
SP_PERFECT_HIT_RATE,SP_PERFECT_HIT_ADD_RATE,SP_CRITICAL_RATE,SP_GET_ZENY_NUM,SP_ADD_GET_ZENY_NUM, // 1038-1042
|
||||
SP_ADD_DAMAGE_CLASS,SP_ADD_MAGIC_DAMAGE_CLASS,SP_ADD_DEF_CLASS,SP_ADD_MDEF_CLASS, // 1043-1046
|
||||
SP_ADD_MONSTER_DROP_ITEM,SP_DEF_RATIO_ATK_ELE,SP_DEF_RATIO_ATK_RACE,SP_ADD_SPEED, // 1047-1050
|
||||
SP_ADD_MONSTER_DROP_ITEM,SP_DEF_RATIO_ATK_ELE,SP_DEF_RATIO_ATK_RACE,SP_FREE3, // 1047-1050
|
||||
SP_HIT_RATE,SP_FLEE_RATE,SP_FLEE2_RATE,SP_DEF_RATE,SP_DEF2_RATE,SP_MDEF_RATE,SP_MDEF2_RATE, // 1051-1057
|
||||
SP_SPLASH_RANGE,SP_SPLASH_ADD_RANGE,SP_AUTOSPELL,SP_HP_DRAIN_RATE,SP_SP_DRAIN_RATE, // 1058-1062
|
||||
SP_SHORT_WEAPON_DAMAGE_RETURN,SP_LONG_WEAPON_DAMAGE_RETURN,SP_WEAPON_COMA_ELE,SP_WEAPON_COMA_RACE, // 1063-1066
|
||||
@ -316,6 +316,7 @@ enum _sp {
|
||||
//Before adding new bonuses, reuse the currently free slots:
|
||||
//2020 (SP_FREE) (previously SP_ADD_DAMAGE_BY_CLASS)
|
||||
//2033 (SP_FREE2) (previously SP_ADDEFF_WHENHIT_SHORT)
|
||||
//1050 (SP_FREE3) (previously SP_ADD_SPEED)
|
||||
};
|
||||
|
||||
enum _look {
|
||||
|
10
src/map/pc.c
10
src/map/pc.c
@ -1654,15 +1654,9 @@ int pc_bonus(struct map_session_data *sd,int type,int val)
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SP_ADD_SPEED: //Raw increase
|
||||
if(sd->state.lr_flag != 2) {
|
||||
bonus = status->speed - val;
|
||||
status->speed = cap_value(bonus, 0, USHRT_MAX);
|
||||
}
|
||||
break;
|
||||
case SP_SPEED_RATE: //Non stackable increase
|
||||
if(sd->state.lr_flag != 2 && sd->speed_rate > 100-val)
|
||||
sd->speed_rate = 100-val;
|
||||
if(sd->state.lr_flag != 2)
|
||||
sd->speed_rate = min(sd->speed_rate, -val);
|
||||
break;
|
||||
case SP_SPEED_ADDRATE: //Stackable increase
|
||||
if(sd->state.lr_flag != 2)
|
||||
|
@ -247,7 +247,7 @@ struct map_session_data {
|
||||
int break_weapon_rate,break_armor_rate;
|
||||
int crit_atk_rate;
|
||||
int classchange; // [Valaris]
|
||||
int speed_add_rate, aspd_add;
|
||||
int speed_rate, speed_add_rate, aspd_add;
|
||||
unsigned int setitem_hash, setitem_hash2; //Split in 2 because shift operations only work on int ranges. [Skotlex]
|
||||
|
||||
short splash_range, splash_add_range;
|
||||
@ -263,7 +263,7 @@ struct map_session_data {
|
||||
|
||||
int castrate,delayrate,hprate,sprate,dsprate;
|
||||
int atk_rate;
|
||||
int speed_rate,hprecov_rate,sprecov_rate;
|
||||
int hprecov_rate,sprecov_rate;
|
||||
int matk_rate;
|
||||
int critical_rate,hit_rate,flee_rate,flee2_rate,def_rate,def2_rate,mdef_rate,mdef2_rate;
|
||||
|
||||
|
@ -1643,7 +1643,6 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
||||
sd->castrate=100;
|
||||
sd->delayrate=100;
|
||||
sd->dsprate=100;
|
||||
sd->speed_rate = 100;
|
||||
sd->hprecov_rate = 100;
|
||||
sd->sprecov_rate = 100;
|
||||
sd->atk_rate = sd->matk_rate = 100;
|
||||
@ -1757,6 +1756,7 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
||||
+ sizeof(sd->break_armor_rate)
|
||||
+ sizeof(sd->crit_atk_rate)
|
||||
+ sizeof(sd->classchange)
|
||||
+ sizeof(sd->speed_rate)
|
||||
+ sizeof(sd->speed_add_rate)
|
||||
+ sizeof(sd->aspd_add)
|
||||
+ sizeof(sd->setitem_hash)
|
||||
@ -1939,8 +1939,6 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
||||
sd->double_rate += sd->double_add_rate;
|
||||
sd->perfect_hit += sd->perfect_hit_add;
|
||||
sd->splash_range += sd->splash_add_range;
|
||||
if(sd->speed_add_rate)
|
||||
sd->speed_rate += sd->speed_add_rate;
|
||||
|
||||
// Damage modifiers from weapon type
|
||||
sd->right_weapon.atkmods[0] = atkmods[0][sd->weapontype1];
|
||||
@ -2194,10 +2192,8 @@ int status_calc_pc(struct map_session_data* sd,int first)
|
||||
|
||||
// ----- WALKING SPEED CALCULATION -----
|
||||
|
||||
if(sd->speed_rate < 0)
|
||||
sd->speed_rate = 0;
|
||||
if(sd->speed_rate != 100)
|
||||
status->speed = status->speed*sd->speed_rate/100;
|
||||
sd->speed_rate += sd->speed_add_rate;
|
||||
status->speed += status->speed * sd->speed_rate/100;
|
||||
|
||||
// Relative modifiers from passive skills
|
||||
if((sd->class_&MAPID_UPPERMASK) == MAPID_ASSASSIN && (skill=pc_checkskill(sd,TF_MISS))>0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user