- Added configuration to wheter the monster size would change experience earned, drop rates and the monster status (such as hp, strength etc). Awesome suggestion by Euphy :)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16905 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
f28c2a56f5
commit
2ea2550cad
@ -201,3 +201,10 @@ mob_slave_keep_target: yes
|
|||||||
// Whether or not to spawn the mvp tomb.
|
// Whether or not to spawn the mvp tomb.
|
||||||
// See http://irowiki.org/wiki/MVP#Gravestone
|
// See http://irowiki.org/wiki/MVP#Gravestone
|
||||||
mvp_tomb_enabled: yes
|
mvp_tomb_enabled: yes
|
||||||
|
|
||||||
|
// Whether or not mob size influences on experience earned, drop rates, monster status. (Note 1)
|
||||||
|
// If the monster is big, it will give two times the experience, increase the drop rates by twice
|
||||||
|
// and double all status (hp, str, agi etc). But if the monster is small everything will be divided
|
||||||
|
// by two (experience, drop rates and status).
|
||||||
|
// Default: no
|
||||||
|
mob_size_influence: no
|
||||||
|
@ -5756,6 +5756,7 @@ static const struct _battle_data {
|
|||||||
{ "atcommand_mobinfo_type", &battle_config.atcommand_mobinfo_type, 0, 0, 1 },
|
{ "atcommand_mobinfo_type", &battle_config.atcommand_mobinfo_type, 0, 0, 1 },
|
||||||
{ "homunculus_max_level", &battle_config.hom_max_level, 99, 0, MAX_LEVEL, },
|
{ "homunculus_max_level", &battle_config.hom_max_level, 99, 0, MAX_LEVEL, },
|
||||||
{ "homunculus_S_max_level", &battle_config.hom_S_max_level, 150, 0, MAX_LEVEL, },
|
{ "homunculus_S_max_level", &battle_config.hom_S_max_level, 150, 0, MAX_LEVEL, },
|
||||||
|
{ "mob_size_influence", &battle_config.mob_size_influence, 0, 0, 1, },
|
||||||
};
|
};
|
||||||
#ifndef STATS_OPT_OUT
|
#ifndef STATS_OPT_OUT
|
||||||
/**
|
/**
|
||||||
|
@ -480,6 +480,8 @@ extern struct Battle_Config
|
|||||||
int atcommand_suggestions_enabled;
|
int atcommand_suggestions_enabled;
|
||||||
int min_npc_vending_distance;
|
int min_npc_vending_distance;
|
||||||
int atcommand_mobinfo_type;
|
int atcommand_mobinfo_type;
|
||||||
|
|
||||||
|
int mob_size_influence; // Enable modifications on earned experience, drop rates and monster status depending on monster size. [mkbu95]
|
||||||
} battle_config;
|
} battle_config;
|
||||||
|
|
||||||
void do_init_battle(void);
|
void do_init_battle(void);
|
||||||
|
@ -2216,10 +2216,13 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// change experience for different sized monsters [Valaris]
|
// change experience for different sized monsters [Valaris]
|
||||||
|
if (battle_config.mob_size_influence)
|
||||||
|
{
|
||||||
if (md->special_state.size == SZ_MEDIUM)
|
if (md->special_state.size == SZ_MEDIUM)
|
||||||
per /= 2.;
|
per /= 2.;
|
||||||
else if (md->special_state.size == SZ_BIG)
|
else if (md->special_state.size == SZ_BIG)
|
||||||
per *= 2.;
|
per *= 2.;
|
||||||
|
}
|
||||||
|
|
||||||
if( md->dmglog[i].flag == MDLF_PET )
|
if( md->dmglog[i].flag == MDLF_PET )
|
||||||
per *= battle_config.pet_attack_exp_rate/100.;
|
per *= battle_config.pet_attack_exp_rate/100.;
|
||||||
@ -2334,10 +2337,14 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// change drops depending on monsters size [Valaris]
|
// change drops depending on monsters size [Valaris]
|
||||||
|
if (battle_config.mob_size_influence)
|
||||||
|
{
|
||||||
if (md->special_state.size == SZ_MEDIUM && drop_rate >= 2)
|
if (md->special_state.size == SZ_MEDIUM && drop_rate >= 2)
|
||||||
drop_rate /= 2;
|
drop_rate /= 2;
|
||||||
else if( md->special_state.size == SZ_BIG)
|
else if( md->special_state.size == SZ_BIG)
|
||||||
drop_rate *= 2;
|
drop_rate *= 2;
|
||||||
|
}
|
||||||
|
|
||||||
if (src) {
|
if (src) {
|
||||||
//Drops affected by luk as a fixed increase [Valaris]
|
//Drops affected by luk as a fixed increase [Valaris]
|
||||||
if (battle_config.drops_by_luk)
|
if (battle_config.drops_by_luk)
|
||||||
|
@ -2061,7 +2061,7 @@ int status_calc_mob_(struct mob_data* md, bool first)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (flag&2)
|
if (flag&2 && battle_config.mob_size_influence)
|
||||||
{ // change for sized monsters [Valaris]
|
{ // change for sized monsters [Valaris]
|
||||||
if (md->special_state.size==SZ_MEDIUM) {
|
if (md->special_state.size==SZ_MEDIUM) {
|
||||||
status->max_hp>>=1;
|
status->max_hp>>=1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user