summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreathenabot <eathenabot@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-12-23 13:41:11 +0000
committereathenabot <eathenabot@54d463be-8e91-2dee-dedb-b68131a5f0ec>2011-12-23 13:41:11 +0000
commita1054261bf5a6083004b66ffc6cd44271aba1908 (patch)
treee5a6c2df010ca497d01721d3fd0c005b27d3d9d4
parenta4a01f981ecd7f8bda6cddcd1d7b28ed13345cdd (diff)
downloadhercules-a1054261bf5a6083004b66ffc6cd44271aba1908.tar.gz
hercules-a1054261bf5a6083004b66ffc6cd44271aba1908.tar.bz2
hercules-a1054261bf5a6083004b66ffc6cd44271aba1908.tar.xz
hercules-a1054261bf5a6083004b66ffc6cd44271aba1908.zip
* Merged changes up to eAthena 15038.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15225 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/skill.c8
-rw-r--r--src/map/unit.c6
3 files changed, 9 insertions, 8 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 19defb83e..a081b7329 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -1,6 +1,9 @@
Date (YYYY-MM-DD)
Added
+2011-12-22
+ * Fixed guild aura code not checking, whether the map of guild leader and member is the same (since r15037). [Ai4rei]
+ * Merged slightly modified guild aura optimization from rAthena (ra:15084, ra:15086). [Ai4rei]
2011-12-19
* Changes to chat logging code. [Ai4rei]
- Moved log_config.chat checks into log_chat and replaced string chat types with an enumeration.
diff --git a/src/map/skill.c b/src/map/skill.c
index 328dcd322..ebb8f170b 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -2409,12 +2409,10 @@ static int skill_check_unit_range2 (struct block_list *bl, int x, int y, int ski
int skill_guildaura_sub (struct map_session_data* sd, int id, int strvit, int agidex)
{
- nullpo_ret(sd);
-
- if( id == sd->bl.id && battle_config.guild_aura&16 )
- return 0;
+ if(id == sd->bl.id && battle_config.guild_aura&16)
+ return 0; // Do not affect guild leader
- if( sd->sc.data[SC_GUILDAURA] ) {
+ if (sd->sc.data[SC_GUILDAURA]) {
struct status_change_entry *sce = sd->sc.data[SC_GUILDAURA];
if( sce->val3 != strvit || sce->val4 != agidex ) {
sce->val3 = strvit;
diff --git a/src/map/unit.c b/src/map/unit.c
index d36886d7f..c76e9dc23 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -195,11 +195,11 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr_t data
if ((skill = guild_checkskill(g, GD_HAWKEYES)) > 0) agidex |= skill&0xFFFF;
if (strvit || agidex)
{// replaced redundant foreachinrange call with smaller and much more efficient iteration
- for( i = 0; g->max_member > i; i++ )
+ for( i = 0; i < g->max_member; i++ )
{
- if( g->member[i].online && g->member[i].sd && check_distance_bl(&sd->bl, &g->member[i].sd->bl, 2) )
+ if( g->member[i].online && g->member[i].sd && sd->bl.m == g->member[i].sd->bl.m && check_distance_bl(&sd->bl, &g->member[i].sd->bl, 2) )
{// perform the aura on the member as appropriate
- skill_guildaura_sub( g->member[i].sd, sd->bl.id, strvit, agidex );
+ skill_guildaura_sub(g->member[i].sd, sd->bl.id, strvit, agidex);
}
}
}