summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-10-28 03:55:01 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-10-28 03:55:01 +0000
commit64f7f988ec09f2b35ebd1214115dde6b2b0db88a (patch)
tree0d23489ee0a2c2ac814fe849fce8b9d58675c0e7 /src/map
parentdfab00942f8acf6b8ccb58c359fee026919730a4 (diff)
downloadhercules-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.c1
-rw-r--r--src/map/mob.c4
-rw-r--r--src/map/party.c4
-rw-r--r--src/map/pc.c2
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)