From c19b8831b8134d9e8f000d8d5ee18ebaa2164fea Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 27 Mar 2007 18:38:11 +0000 Subject: - Moved coma to skill_additional_effect, added special_state.bonus_coma to prevent doing comma calculations for every player attack. - Added config "vending_tax" to apply a tax to all vending requests, as it was in kRO Sakray some time ago (requested by Playtester) (items.conf). - Some cleaning of skill_additional_effect - Moved the starting of SC_DANCING from skill_initunitgroup to skill_unitsetting - Moved the checks for player_skill_partner_check and (gm_skilluncond for it) to skill_check_pc_partner - Negative aspd rate bonuses will be handled as aspd add rate since the default non-stackable bonus is useless on penalty bonuses. - Added check to prevent the client from using passive skills. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10082 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/pc.c | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src/map/pc.c') diff --git a/src/map/pc.c b/src/map/pc.c index 4c057d849..41be58b42 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -1534,9 +1534,11 @@ int pc_bonus(struct map_session_data *sd,int type,int val) ShowError("pc_bonus: bonus bAspd is no longer supported!\n"); break; case SP_ASPD_RATE: //Non stackable increase - if(sd->state.lr_flag != 2 && status->aspd_rate > 1000-val*10) - status->aspd_rate = 1000-val*10; - break; + if(val >= 0) { //Let negative ASPD bonuses become AddRate ones. + if(sd->state.lr_flag != 2 && status->aspd_rate > 1000-val*10) + status->aspd_rate = 1000-val*10; + break; + } case SP_ASPD_ADDRATE: //Stackable increase - Made it linear as per rodatazone if(sd->state.lr_flag != 2) sd->aspd_add_rate -= val; @@ -2130,12 +2132,16 @@ int pc_bonus2(struct map_session_data *sd,int type,int type2,int val) ShowError("pc_bonus2: SP_WEAPON_COMA_ELE: Invalid element %d\n", type2); break; } - if(sd->state.lr_flag != 2) - sd->weapon_coma_ele[type2] += val; + if(sd->state.lr_flag == 2) + break; + sd->weapon_coma_ele[type2] += val; + sd->special_state.bonus_coma = 1; break; case SP_WEAPON_COMA_RACE: - if(sd->state.lr_flag != 2) - sd->weapon_coma_race[type2] += val; + if(sd->state.lr_flag == 2) + break; + sd->weapon_coma_race[type2] += val; + sd->special_state.bonus_coma = 1; break; case SP_RANDOM_ATTACK_INCREASE: // [Valaris] if(sd->state.lr_flag !=2){ -- cgit v1.2.3-70-g09d2