diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-10-28 03:55:01 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-10-28 03:55:01 +0000 |
commit | 64f7f988ec09f2b35ebd1214115dde6b2b0db88a (patch) | |
tree | 0d23489ee0a2c2ac814fe849fce8b9d58675c0e7 /src/map | |
parent | dfab00942f8acf6b8ccb58c359fee026919730a4 (diff) | |
download | hercules-64f7f988ec09f2b35ebd1214115dde6b2b0db88a.tar.gz hercules-64f7f988ec09f2b35ebd1214115dde6b2b0db88a.tar.bz2 hercules-64f7f988ec09f2b35ebd1214115dde6b2b0db88a.tar.xz hercules-64f7f988ec09f2b35ebd1214115dde6b2b0db88a.zip |
- Fixed mob-skill event "skillused" not triggering at all.
- Summoned mobs will only be removed from a map if their master is also removed (dynamic mobs)
- Minor cleanups
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9088 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/atcommand.c | 1 | ||||
-rw-r--r-- | src/map/mob.c | 4 | ||||
-rw-r--r-- | src/map/party.c | 4 | ||||
-rw-r--r-- | src/map/pc.c | 2 |
4 files changed, 5 insertions, 6 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 74229a98a..c644a9468 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -642,7 +642,6 @@ static AtCommandInfo atcommand_info[] = { { AtCommand_HomTalk, "@homtalk", 0, atcommand_homtalk },
{ AtCommand_HomInfo, "@hominfo", 0, atcommand_hominfo },
{ AtCommand_ShowMobs, "@showmobs", 10, atcommand_showmobs }, //KarLaeda
-
// add new commands before this line
{ AtCommand_Unknown, NULL, 1, NULL }
};
diff --git a/src/map/mob.c b/src/map/mob.c index a9ae329d5..61789b7fc 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2472,7 +2472,7 @@ int mob_summonslave(struct mob_data *md2,int *value,int amount,int skill_id) continue; md= mob_spawn_dataset(&data); - md->special_state.cached= battle_config.dynamic_mobs; //[Skotlex] + md->special_state.cached= md2->special_state.cached; //[Skotlex] if(skill_id == NPC_SUMMONSLAVE){ md->master_id=md2->bl.id; md->state.killer = md2->state.killer; @@ -2671,7 +2671,7 @@ int mobskill_use(struct mob_data *md, unsigned int tick, int event) flag = (event == ms[i].cond1); //Avoid entering on defined events to avoid "hyper-active skill use" due to the overflow of calls to this function //in battle. The only exception is MSC_SKILLUSED which explicitly uses the event value to trigger. [Skotlex] - if (!flag && (event == -1 || event == MSC_SKILLUSED)){ + if (!flag && (event == -1 || (event & 0xffff) == MSC_SKILLUSED)){ switch (ms[i].cond1) { case MSC_ALWAYS: diff --git a/src/map/party.c b/src/map/party.c index 0799b5215..ab86797f2 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -743,8 +743,8 @@ int party_exp_share(struct party_data *p,struct block_list *src,unsigned int bas job_exp = job_exp*bonus/100;
}
if (zeny) {
- if (zeny/100 > UINT_MAX/bonus)
- zeny = UINT_MAX;
+ if (zeny/100 > INT_MAX/bonus)
+ zeny = INT_MAX;
else if (zeny > 10000)
zeny = (zeny/100)*bonus;
else
diff --git a/src/map/pc.c b/src/map/pc.c index 663667207..3f9e5eb3d 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -5549,7 +5549,7 @@ int pc_jobchange(struct map_session_data *sd,int job, int upper) if(i != sd->sc.option) pc_setoption(sd, i); - if(sd->hd && merc_is_hom_active(sd->hd) && !pc_checkskill(sd, AM_CALLHOMUN)) + if(merc_is_hom_active(sd->hd) && !pc_checkskill(sd, AM_CALLHOMUN)) merc_hom_vaporize(sd, 0); if(sd->status.manner < 0) |