Anybody know about this?

daim

New member
Messages
130
Points
0
Hi there,

As per photo attached, anyone can explain about this? I already look into mob db but seem no such double exp i set. Why is this happening?

regards.

Bump

enjoy.jpg

 
Last edited by a moderator:
read the mob_dead function in mob.c file

) { //Experience calculation. int bonus = 100; //Bonus on top of your share (common to all attackers). int pnum = 0; if (md->sc.data[SC_RICHMANKIM]) bonus += md->sc.data[SC_RICHMANKIM]->val2; if(sd) { temp = status->get_class(&md->bl); if(sd->sc.data[SC_MIRACLE]) i = 2; //All mobs are Star Targets else ARR_FIND(0, MAX_PC_FEELHATE, i, temp == sd->hate_mob && (battle_config.allow_skill_without_day || pc->sg_info.day_func())); if(i<MAX_PC_FEELHATE && (temp=pc->checkskill(sd,pc->sg_info.bless_id)) > 0) bonus += (i==2?20:10)*temp; } if(battle_config.mobs_level_up && md->level > md->db->lv) // [Valaris] bonus += (md->level-md->db->lv)*battle_config.mobs_level_up_exp_rate; for(i = 0; i < DAMAGELOG_SIZE && md->dmglog.id; i++) { int flag=1,zeny=0; unsigned int base_exp, job_exp; double per; //Your share of the mob's exp if (!tmpsd) continue; if (!battle_config.exp_calc_type && md->tdmg) //jAthena's exp formula based on total damage. per = (double)md->dmglog.dmg/(double)md->tdmg; else { //eAthena's exp formula based on max hp. per = (double)md->dmglog.dmg/(double)mstatus->max_hp; if (per > 2) per = 2; // prevents unlimited exp gain } if (count>1 && battle_config.exp_bonus_attacker) { //Exp bonus per additional attacker. if (count > battle_config.exp_bonus_max_attacker) count = battle_config.exp_bonus_max_attacker; per += per*((count-1)*battle_config.exp_bonus_attacker)/100.; } // change experience for different sized monsters [Valaris] if (battle_config.mob_size_influence) { switch( md->special_state.size ) { case SZ_MEDIUM: per /= 2.; break; case SZ_BIG: per *= 2.; break; } } if( md->dmglog.flag == MDLF_PET ) per *= battle_config.pet_attack_exp_rate/100.; if(battle_config.zeny_from_mobs && md->level) { // zeny calculation moblv + random moblv [Valaris] zeny=(int) ((md->level+rnd()%md->level)*per*bonus/100.); if(md->db->mexp > 0) zeny*=rnd()%0; } if (map->list[m].flag.nobaseexp || !md->db->base_exp) base_exp = 0; else base_exp = (unsigned int)cap_value(md->db->base_exp * per * bonus/100. * map->list[m].bexp/100., 1, UINT_MAX); if (map->list[m].flag.nojobexp || !md->db->job_exp || md->dmglog.flag == MDLF_HOMUN) //Homun earned job-exp is always lost. job_exp = 0; else job_exp = (unsigned int)cap_value(md->db->job_exp * per * bonus/100. * map->list[m].jexp/100., 1, UINT_MAX); if ( (temp = tmpsd->status.party_id) > 0 ) { int j; for( j = 0; j < pnum && pt[j].id != temp; j++ ); //Locate party. if( j == pnum ){ //Possibly add party. pt[pnum].p = party->search(temp); if(pt[pnum].p && pt[pnum].p->party.exp) { pt[pnum].id = temp; pt[pnum].base_exp = base_exp; pt[pnum].job_exp = job_exp; pt[pnum].zeny = zeny; // zeny share [Valaris] pnum++; flag=0; } } else { //Add to total if (pt[j].base_exp > UINT_MAX - base_exp) pt[j].base_exp = UINT_MAX; else pt[j].base_exp += base_exp; if (pt[j].job_exp > UINT_MAX - job_exp) pt[j].job_exp = UINT_MAX; else pt[j].job_exp += job_exp; pt[j].zeny+=zeny; // zeny share [Valaris] flag=0; } } if(base_exp && md->dmglog.flag == MDLF_HOMUN) //tmpsd is null if it has no homunc. homun->gainexp(tmpsd->hd, base_exp); if(flag) { if(base_exp || job_exp) { if( md->dmglog.flag != MDLF_PET || battle_config.pet_attack_exp_to_master ) {#ifdef RENEWAL_EXP int rate = pc->level_penalty_mod(md->level - (tmpsd)->status.base_level, md->status.race, md->status.mode, 1); base_exp = (unsigned int)cap_value(base_exp * rate / 100, 1, UINT_MAX); job_exp = (unsigned int)cap_value(job_exp * rate / 100, 1, UINT_MAX);#endif pc->gainexp(tmpsd, &md->bl, base_exp, job_exp, false); } } if(zeny) // zeny from mobs [Valaris] pc->getzeny(tmpsd, zeny, LOG_TYPE_PICKDROP_MONSTER, NULL); } } for( i = 0; i < pnum; i++ ) //Party share. party->exp_share(pt.p, &md->bl, pt.base_exp,pt.job_exp,pt.zeny); } //End EXP giving.possible no.1you have Mr.Kim a Rich man buff

possible no.2

you are a Star Gladiator, and killed a mob that is under Blessing of Star, Blessing of Moon, Blessing of Sun

possible no.3

your server has "mobs_level_up" enabled, and the monster leveled up, thus increased its exp gain

possible no.4

if you kill steal other player's mob, your exp gain rate is less than normal

possible no.5

your server has "mob_size_influence" enabled, and killing a big size monster gain double exp

possible no.6

that map has bexp or jexp mapflag enabled, thus exp gain increased by mapflags

possible no.7

you joined a party and has party share exp option ON, sure you exp gain is share with party members

possible no.8

you have a pet, and has "pet_attack_exp_to_master" enabled , the mob killed by pets are share with you

nope, no more possible no.9 with default hercules source code

unless you have modified something

 
Last edited by a moderator:
read the mob_dead function in mob.c file

) { //Experience calculation. int bonus = 100; //Bonus on top of your share (common to all attackers). int pnum = 0; if (md->sc.data[SC_RICHMANKIM]) bonus += md->sc.data[SC_RICHMANKIM]->val2; if(sd) { temp = status->get_class(&md->bl); if(sd->sc.data[SC_MIRACLE]) i = 2; //All mobs are Star Targets else ARR_FIND(0, MAX_PC_FEELHATE, i, temp == sd->hate_mob && (battle_config.allow_skill_without_day || pc->sg_info.day_func())); if(i<MAX_PC_FEELHATE && (temp=pc->checkskill(sd,pc->sg_info.bless_id)) > 0) bonus += (i==2?20:10)*temp; } if(battle_config.mobs_level_up && md->level > md->db->lv) // [Valaris] bonus += (md->level-md->db->lv)*battle_config.mobs_level_up_exp_rate; for(i = 0; i < DAMAGELOG_SIZE && md->dmglog.id; i++) { int flag=1,zeny=0; unsigned int base_exp, job_exp; double per; //Your share of the mob's exp if (!tmpsd) continue; if (!battle_config.exp_calc_type && md->tdmg) //jAthena's exp formula based on total damage. per = (double)md->dmglog.dmg/(double)md->tdmg; else { //eAthena's exp formula based on max hp. per = (double)md->dmglog.dmg/(double)mstatus->max_hp; if (per > 2) per = 2; // prevents unlimited exp gain } if (count>1 && battle_config.exp_bonus_attacker) { //Exp bonus per additional attacker. if (count > battle_config.exp_bonus_max_attacker) count = battle_config.exp_bonus_max_attacker; per += per*((count-1)*battle_config.exp_bonus_attacker)/100.; } // change experience for different sized monsters [Valaris] if (battle_config.mob_size_influence) { switch( md->special_state.size ) { case SZ_MEDIUM: per /= 2.; break; case SZ_BIG: per *= 2.; break; } } if( md->dmglog.flag == MDLF_PET ) per *= battle_config.pet_attack_exp_rate/100.; if(battle_config.zeny_from_mobs && md->level) { // zeny calculation moblv + random moblv [Valaris] zeny=(int) ((md->level+rnd()%md->level)*per*bonus/100.); if(md->db->mexp > 0) zeny*=rnd()%0; } if (map->list[m].flag.nobaseexp || !md->db->base_exp) base_exp = 0; else base_exp = (unsigned int)cap_value(md->db->base_exp * per * bonus/100. * map->list[m].bexp/100., 1, UINT_MAX); if (map->list[m].flag.nojobexp || !md->db->job_exp || md->dmglog.flag == MDLF_HOMUN) //Homun earned job-exp is always lost. job_exp = 0; else job_exp = (unsigned int)cap_value(md->db->job_exp * per * bonus/100. * map->list[m].jexp/100., 1, UINT_MAX); if ( (temp = tmpsd->status.party_id) > 0 ) { int j; for( j = 0; j < pnum && pt[j].id != temp; j++ ); //Locate party. if( j == pnum ){ //Possibly add party. pt[pnum].p = party->search(temp); if(pt[pnum].p && pt[pnum].p->party.exp) { pt[pnum].id = temp; pt[pnum].base_exp = base_exp; pt[pnum].job_exp = job_exp; pt[pnum].zeny = zeny; // zeny share [Valaris] pnum++; flag=0; } } else { //Add to total if (pt[j].base_exp > UINT_MAX - base_exp) pt[j].base_exp = UINT_MAX; else pt[j].base_exp += base_exp; if (pt[j].job_exp > UINT_MAX - job_exp) pt[j].job_exp = UINT_MAX; else pt[j].job_exp += job_exp; pt[j].zeny+=zeny; // zeny share [Valaris] flag=0; } } if(base_exp && md->dmglog.flag == MDLF_HOMUN) //tmpsd is null if it has no homunc. homun->gainexp(tmpsd->hd, base_exp); if(flag) { if(base_exp || job_exp) { if( md->dmglog.flag != MDLF_PET || battle_config.pet_attack_exp_to_master ) {#ifdef RENEWAL_EXP int rate = pc->level_penalty_mod(md->level - (tmpsd)->status.base_level, md->status.race, md->status.mode, 1); base_exp = (unsigned int)cap_value(base_exp * rate / 100, 1, UINT_MAX); job_exp = (unsigned int)cap_value(job_exp * rate / 100, 1, UINT_MAX);#endif pc->gainexp(tmpsd, &md->bl, base_exp, job_exp, false); } } if(zeny) // zeny from mobs [Valaris] pc->getzeny(tmpsd, zeny, LOG_TYPE_PICKDROP_MONSTER, NULL); } } for( i = 0; i < pnum; i++ ) //Party share. party->exp_share(pt.p, &md->bl, pt.base_exp,pt.job_exp,pt.zeny); } //End EXP giving.possible no.1you have Mr.Kim a Rich man buff

possible no.2

you are a Star Gladiator, and killed a mob that is under Blessing of Star, Blessing of Moon, Blessing of Sun

possible no.3

your server has "mobs_level_up" enabled, and the monster leveled up, thus increased its exp gain

possible no.4

if you kill steal other player's mob, your exp gain rate is less than normal

possible no.5

your server has "mob_size_influence" enabled, and killing a big size monster gain double exp

possible no.6

that map has bexp or jexp mapflag enabled, thus exp gain increased by mapflags

possible no.7

you joined a party and has party share exp option ON, sure you exp gain is share with party members

possible no.8

you have a pet, and has "pet_attack_exp_rate" enabled , the mob killed by pets are share with you

nope, no more possible no.9 with default hercules source code

unless you have modified something


Thanks Annie!

My server has this features: possible no.3

thank you again!

 
Back
Top