From 10cda8e929a1246bc9b1109d1f726badea74dd14 Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 10 Jul 2006 19:57:47 +0000 Subject: [PATCH] - The on-place function won't be invoked on setting ground skills if the group's tick is greater than the current tick. As Buuyo pointed out, this should fix Sanctuary and Gospel taking effect inmediately instead of after "x" amount of ms as they should. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7601 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 4 ++++ src/map/skill.c | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 0c2aee7fe2..a6a69b7f4c 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/07/10 + * The on-place function won't be invoked on setting ground skills if the + group's tick is greater than the current tick. As Buuyo pointed out, this + should fix Sanctuary and Gospel taking effect inmediately instead of after + "x" amount of ms as they should. [Skotlex] * Added login-char packet 0x2737. Sets all characters offline (login-server side). [Skotlex] * Cleaned up char server "set all offline" implementation to remove only diff --git a/src/map/skill.c b/src/map/skill.c index 7aad7d7e21..b31f8e93f9 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6445,7 +6445,11 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid, group->state.magic_power = (flag&2 || (sc && sc->data[SC_MAGICPOWER].timer != -1)); //Store the magic power flag. [Skotlex] group->state.ammo_consume = (sd && sd->state.arrow_atk); //Store if this skill needs to consume ammo. group->state.song_dance = (unit_flag&(UF_DANCE|UF_SONG)); //Signals if this is a song/dance (does not counts duets) - + + //if tick is greater than current, do not invoke onplace function just yet. [Skotlex] + if (DIFF_TICK(group->tick, gettick()) > 100) + active_flag = 0; + if(skillid==HT_TALKIEBOX || skillid==RG_GRAFFITI){ group->valstr=(char *) aMallocA(MESSAGE_SIZE*sizeof(char));