diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-03-27 18:38:11 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-03-27 18:38:11 +0000 |
commit | c19b8831b8134d9e8f000d8d5ee18ebaa2164fea (patch) | |
tree | 6c882ff6ee1fd988ec1f8fd28abf4fee7a0bcd95 /src/map/pc.c | |
parent | 6b7b26291cbcabf23f5a28a684fdfcb317d7b53a (diff) | |
download | hercules-c19b8831b8134d9e8f000d8d5ee18ebaa2164fea.tar.gz hercules-c19b8831b8134d9e8f000d8d5ee18ebaa2164fea.tar.bz2 hercules-c19b8831b8134d9e8f000d8d5ee18ebaa2164fea.tar.xz hercules-c19b8831b8134d9e8f000d8d5ee18ebaa2164fea.zip |
- 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
Diffstat (limited to 'src/map/pc.c')
-rw-r--r-- | src/map/pc.c | 20 |
1 files changed, 13 insertions, 7 deletions
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){ |