summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorL0ne_W0lf <L0ne_W0lf@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-07-11 20:13:22 +0000
committerL0ne_W0lf <L0ne_W0lf@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-07-11 20:13:22 +0000
commit3f04b3aa7a2ff0c7266f53ead689d9ea81ce5ef7 (patch)
tree9c62474a38e66f9d1dee2ab5e59d8e6fc25721d2 /src/map
parent8729e952e08aa1af4e315060208a405b759f1027 (diff)
downloadhercules-3f04b3aa7a2ff0c7266f53ead689d9ea81ce5ef7.tar.gz
hercules-3f04b3aa7a2ff0c7266f53ead689d9ea81ce5ef7.tar.bz2
hercules-3f04b3aa7a2ff0c7266f53ead689d9ea81ce5ef7.tar.xz
hercules-3f04b3aa7a2ff0c7266f53ead689d9ea81ce5ef7.zip
* Added bonus3 bAddClassDropItem, care of Epoque.
- Added several missing items to the item database, updated others. - Raised level 10 Dec. AGI to be level 48, when used by mobs. - Added missing mercenaries to the mercenary DB, and skills. - Added missing monster_chat_db entries for Nydhoggr's Shadow. - Added Brasilis pets to the pet DB, these pets are unhatchable on purpose. - Added additional quests to the quest_db, mostly for RE. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@14901 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r--src/map/map.h2
-rw-r--r--src/map/mob.c3
-rw-r--r--src/map/pc.c8
3 files changed, 9 insertions, 4 deletions
diff --git a/src/map/map.h b/src/map/map.h
index d5614354d..cd2ea9411 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -349,7 +349,7 @@ enum _sp {
SP_SP_GAIN_RACE, SP_SUBRACE2, SP_UNBREAKABLE_SHOES, // 2031-2033
SP_UNSTRIPABLE_WEAPON,SP_UNSTRIPABLE_ARMOR,SP_UNSTRIPABLE_HELM,SP_UNSTRIPABLE_SHIELD, // 2034-2037
SP_INTRAVISION, SP_ADD_MONSTER_DROP_ITEMGROUP, SP_SP_LOSS_RATE, // 2038-2040
- SP_ADD_SKILL_BLOW, SP_SP_VANISH_RATE, SP_MAGIC_SP_GAIN_VALUE, SP_MAGIC_HP_GAIN_VALUE //2041-2044
+ SP_ADD_SKILL_BLOW, SP_SP_VANISH_RATE, SP_MAGIC_SP_GAIN_VALUE, SP_MAGIC_HP_GAIN_VALUE, SP_ADD_CLASS_DROP_ITEM //2041-2045
};
enum _look {
diff --git a/src/map/mob.c b/src/map/mob.c
index 5fb440b4f..f41501638 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2260,7 +2260,8 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type)
for (i = 0; i < ARRAYLENGTH(sd->add_drop) && (sd->add_drop[i].id || sd->add_drop[i].group); i++)
{
if (sd->add_drop[i].race & (1<<status->race) ||
- sd->add_drop[i].race & 1<<(status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS))
+ sd->add_drop[i].race & 1<<(status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS) ||
+ sd->add_drop[i].race == md->class_)
{
//check if the bonus item drop rate should be multiplied with mob level/10 [Lupus]
if(sd->add_drop[i].rate < 0) {
diff --git a/src/map/pc.c b/src/map/pc.c
index 65b89f8b4..e0c5cf394 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1607,8 +1607,8 @@ static int pc_bonus_item_drop(struct s_add_drop *drop, const short max, short id
}
for(i = 0; i < max && (drop[i].id || drop[i].group); i++) {
if(
- (id && drop[i].id == id) ||
- (group && drop[i].group == group)
+ ((id && drop[i].id == id) ||
+ (group && drop[i].group == group)) && race < (1<<RC_MAX)
) {
drop[i].race |= race;
if(drop[i].rate > 0 && rate > 0)
@@ -2853,6 +2853,10 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val)
if(sd->state.lr_flag != 2)
pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, 1<<type3, val);
break;
+ case SP_ADD_CLASS_DROP_ITEM:
+ if(sd->state.lr_flag != 2)
+ pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, type3, val);
+ break;
case SP_AUTOSPELL:
if(sd->state.lr_flag != 2)
{