|
@@ -1062,7 +1062,7 @@ int party_exp_share(struct party_data* p, struct block_list* src, unsigned int b
|
|
|
|
|
|
for (i = 0; i < c; i++) {
|
|
|
#ifdef RENEWAL_EXP
|
|
|
- if( !(src && src->type == BL_MOB && ((TBL_MOB*)src)->db->mexp) ) {
|
|
|
+ if( (base_exp_bonus || job_exp_bonus) && !(src && src->type == BL_MOB && ((TBL_MOB*)src)->db->mexp) ) {
|
|
|
TBL_MOB *md = BL_CAST(BL_MOB, src);
|
|
|
int rate = 0;
|
|
|
|
|
@@ -1070,8 +1070,12 @@ int party_exp_share(struct party_data* p, struct block_list* src, unsigned int b
|
|
|
return 0;
|
|
|
|
|
|
rate = pc_level_penalty_mod(md->db->lv - sd[i]->status.base_level, md->db->status.class_, md->db->status.mode, 1);
|
|
|
- base_exp = (unsigned int)cap_value(base_exp_bonus * rate / 100, 1, UINT_MAX);
|
|
|
- job_exp = (unsigned int)cap_value(job_exp_bonus * rate / 100, 1, UINT_MAX);
|
|
|
+ if (rate != 100) {
|
|
|
+ if (base_exp_bonus)
|
|
|
+ base_exp = (unsigned int)cap_value(base_exp_bonus * rate / 100, 1, UINT_MAX);
|
|
|
+ if (job_exp_bonus)
|
|
|
+ job_exp = (unsigned int)cap_value(job_exp_bonus * rate / 100, 1, UINT_MAX);
|
|
|
+ }
|
|
|
}
|
|
|
#endif
|
|
|
|