From 64f7f988ec09f2b35ebd1214115dde6b2b0db88a Mon Sep 17 00:00:00 2001 From: skotlex Date: Sat, 28 Oct 2006 03:55:01 +0000 Subject: - 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 --- Changelog-Trunk.txt | 4 ++++ src/map/atcommand.c | 1 - src/map/mob.c | 4 ++-- src/map/party.c | 4 ++-- src/map/pc.c | 2 +- 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index fb70efb7f..e5016800c 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,10 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2006/10/27 + * Fixed mob-skill event "skillused" not triggering at all. [Skotlex] + * Summoned mobs will only be removed from a map if their master is also + removed (dynamic mobs) [Skotlex] 2006/10/26 * Updated sql files [Playtester] * Experimental tweak to npc_parse_function - Overwrite existing functions. [Lance] 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) -- cgit v1.2.3-70-g09d2