Jump to content
  • 0
Sign in to follow this  
daim

Anybody know about this?

Question

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

post-90-0-48120800-1450451989_thumb.jpg

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0

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[i] &&				(battle_config.allow_skill_without_day || pc->sg_info[i].day_func()));			if(i<MAX_PC_FEELHATE && (temp=pc->checkskill(sd,pc->sg_info[i].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[i].id; i++) {		int flag=1,zeny=0;		unsigned int base_exp, job_exp;		double per; //Your share of the mob's exp		if (!tmpsd[i]) continue;		if (!battle_config.exp_calc_type && md->tdmg)			//jAthena's exp formula based on total damage.			per = (double)md->dmglog[i].dmg/(double)md->tdmg;		else {			//eAthena's exp formula based on max hp.			per = (double)md->dmglog[i].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[i].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[i].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[i]->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[i].flag == MDLF_HOMUN) //tmpsd[i] is null if it has no homunc.			homun->gainexp(tmpsd[i]->hd, base_exp);		if(flag) {			if(base_exp || job_exp) {				if( md->dmglog[i].flag != MDLF_PET || battle_config.pet_attack_exp_to_master ) {#ifdef RENEWAL_EXP					int rate = pc->level_penalty_mod(md->level - (tmpsd[i])->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[i], &md->bl, base_exp, job_exp, false);				}			}			if(zeny) // zeny from mobs [Valaris]				pc->getzeny(tmpsd[i], zeny, LOG_TYPE_PICKDROP_MONSTER, NULL);		}	}	for( i = 0; i < pnum; i++ ) //Party share.		party->exp_share(pt[i].p, &md->bl, pt[i].base_exp,pt[i].job_exp,pt[i].zeny);	} //End EXP giving.
possible no.1

you 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

Edited by AnnieRuru

Share this post


Link to post
Share on other sites
  • 0

 

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[i] &&				(battle_config.allow_skill_without_day || pc->sg_info[i].day_func()));			if(i<MAX_PC_FEELHATE && (temp=pc->checkskill(sd,pc->sg_info[i].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[i].id; i++) {		int flag=1,zeny=0;		unsigned int base_exp, job_exp;		double per; //Your share of the mob's exp		if (!tmpsd[i]) continue;		if (!battle_config.exp_calc_type && md->tdmg)			//jAthena's exp formula based on total damage.			per = (double)md->dmglog[i].dmg/(double)md->tdmg;		else {			//eAthena's exp formula based on max hp.			per = (double)md->dmglog[i].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[i].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[i].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[i]->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[i].flag == MDLF_HOMUN) //tmpsd[i] is null if it has no homunc.			homun->gainexp(tmpsd[i]->hd, base_exp);		if(flag) {			if(base_exp || job_exp) {				if( md->dmglog[i].flag != MDLF_PET || battle_config.pet_attack_exp_to_master ) {#ifdef RENEWAL_EXP					int rate = pc->level_penalty_mod(md->level - (tmpsd[i])->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[i], &md->bl, base_exp, job_exp, false);				}			}			if(zeny) // zeny from mobs [Valaris]				pc->getzeny(tmpsd[i], zeny, LOG_TYPE_PICKDROP_MONSTER, NULL);		}	}	for( i = 0; i < pnum; i++ ) //Party share.		party->exp_share(pt[i].p, &md->bl, pt[i].base_exp,pt[i].job_exp,pt[i].zeny);	} //End EXP giving.
possible no.1

you 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!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.