summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-06-14 08:56:59 -0300
committershennetsind <ind@henn.et>2013-06-14 08:56:59 -0300
commit35dcafcc79892075bfbd5087b44116c6328cc533 (patch)
treee3f0384980e03ef7baa41ea91dddf4ed4a701962 /src
parent5a942993dd12ae7d85b1633a58b0dc23f85832c2 (diff)
parent074b15c84bf9b624eee18ba31587d08d0a94ed49 (diff)
downloadhercules-35dcafcc79892075bfbd5087b44116c6328cc533.tar.gz
hercules-35dcafcc79892075bfbd5087b44116c6328cc533.tar.bz2
hercules-35dcafcc79892075bfbd5087b44116c6328cc533.tar.xz
hercules-35dcafcc79892075bfbd5087b44116c6328cc533.zip
Merge branch 'master' of https://github.com/HerculesWS/Hercules
Diffstat (limited to 'src')
-rw-r--r--src/config/const.h2
-rw-r--r--src/map/battle.c21
-rw-r--r--src/map/npc.c4
-rw-r--r--src/map/packets.h6
-rw-r--r--src/map/script.c6
-rw-r--r--src/map/status.c2
-rw-r--r--src/map/unit.c3
7 files changed, 30 insertions, 14 deletions
diff --git a/src/config/const.h b/src/config/const.h
index a37cf696e..f4a2821f8 100644
--- a/src/config/const.h
+++ b/src/config/const.h
@@ -93,9 +93,11 @@
#define MAX_CARTS 5
#endif
/* Client Supports Party Recruit or Party Booking? */
+#ifdef PACKETVER_RE
#if (PACKETVER == 20120410) || (PACKETVER == 20120418)
#define PARTY_RECRUIT
#endif
+#endif
// Renewal variable cast time reduction
#ifdef RENEWAL_CAST
#define VARCAST_REDUCTION(val){ \
diff --git a/src/map/battle.c b/src/map/battle.c
index 1fa35116e..31fe502f6 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -1185,9 +1185,13 @@ int battle_calc_defense(int attack_type, struct block_list *src, struct block_li
**/
defType def1 = status_get_def(target); //Don't use tstatus->def1 due to skill timer reductions.
short def2 = tstatus->def2, vit_def;
-
+#ifdef RENEWAL
def1 = status_calc_def2(target, tsc, def1, false); // equip def(RE)
def2 = status_calc_def(target, tsc, def2, false); // status def(RE)
+#else
+ def1 = status_calc_def(target, tsc, def1, false); // equip def(RE)
+ def2 = status_calc_def2(target, tsc, def2, false); // status def(RE)
+#endif
if( sd ){
i = sd->ignore_def[is_boss(target)?RC_BOSS:RC_NONBOSS];
@@ -1291,10 +1295,13 @@ int battle_calc_defense(int attack_type, struct block_list *src, struct block_li
{
defType mdef = tstatus->mdef;
short mdef2= tstatus->mdef2;
-
+#ifdef RENEWAL
mdef2 = status_calc_mdef(target, tsc, mdef2, false); // status mdef(RE)
mdef = status_calc_mdef2(target, tsc, mdef, false); // equip mde(RE)
-
+#else
+ mdef2 = status_calc_mdef2(target, tsc, mdef2, false); // status mdef(RE)
+ mdef = status_calc_mdef(target, tsc, mdef, false); // equip mde(RE)
+#endif
if( flag&1 )
mdef = 0;
@@ -5134,10 +5141,10 @@ int battle_calc_return_damage(struct block_list* bl, struct block_list *src, int
rdelay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
}
}
- }
- if( sc->data[SC_SHIELDSPELL_DEF] && sc->data[SC_SHIELDSPELL_DEF]->val1 == 2 && !is_boss(src) ){
- NORMALIZE_RDAMAGE(damage * sc->data[SC_SHIELDSPELL_DEF]->val2 / 100);
- rdelay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
+ if( sc->data[SC_SHIELDSPELL_DEF] && sc->data[SC_SHIELDSPELL_DEF]->val1 == 2 && !is_boss(src) ){
+ NORMALIZE_RDAMAGE(damage * sc->data[SC_SHIELDSPELL_DEF]->val2 / 100);
+ rdelay = clif->damage(src, src, iTimer->gettick(), status_get_amotion(src), status_get_dmotion(src), rdamage, 1, 4, 0);
+ }
}
} else {
if (sd && sd->bonus.long_weapon_damage_return){
diff --git a/src/map/npc.c b/src/map/npc.c
index 5e03191e7..f4027096c 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -276,7 +276,7 @@ int npc_rr_secure_timeout_timer(int tid, unsigned int tick, int id, intptr_t dat
clif->scriptclear(sd,sd->npc_id);
sd->npc_idle_timer = INVALID_TIMER;
} else //Create a new instance of ourselves to continue
- sd->npc_idle_timer = add_timer(gettick() + (SECURE_NPCTIMEOUT_INTERVAL*1000),npc_rr_secure_timeout_timer,sd->bl.id,0);
+ sd->npc_idle_timer = iTimer->add_timer(iTimer->gettick() + (SECURE_NPCTIMEOUT_INTERVAL*1000),npc_rr_secure_timeout_timer,sd->bl.id,0);
return 0;
}
#endif
@@ -1245,7 +1245,7 @@ int npc_scriptcont(struct map_session_data* sd, int id, bool closing)
/**
* Update the last NPC iteration
**/
- sd->npc_idle_tick = gettick();
+ sd->npc_idle_tick = iTimer->gettick();
#endif
/**
diff --git a/src/map/packets.h b/src/map/packets.h
index 43b36e033..244f19ed8 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -2025,6 +2025,12 @@ packet(0x020d,-1);
#endif
+#ifndef PACKETVER_RE
+#if PACKETVER >= 20120604
+ packet(0x0861,18,clif->pPartyBookingRegisterReq,2,4,6);
+#endif
+#endif
+
//2012-06-18aRagexeRE
#if PACKETVER >= 20120618
packet(0x0983,29);
diff --git a/src/map/script.c b/src/map/script.c
index 0ef12f74d..60f741d6c 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -3355,7 +3355,7 @@ static void script_detach_state(struct script_state* st, bool dequeue_event)
* We're done with this NPC session, so we cancel the timer (if existent) and move on
**/
if( sd->npc_idle_timer != INVALID_TIMER ) {
- delete_timer(sd->npc_idle_timer,npc_rr_secure_timeout_timer);
+ iTimer->delete_timer(sd->npc_idle_timer,npc_rr_secure_timeout_timer);
sd->npc_idle_timer = INVALID_TIMER;
}
#endif
@@ -3396,8 +3396,8 @@ static void script_attach_state(struct script_state* st)
**/
#ifdef SECURE_NPCTIMEOUT
if( sd->npc_idle_timer == INVALID_TIMER )
- sd->npc_idle_timer = add_timer(gettick() + (SECURE_NPCTIMEOUT_INTERVAL*1000),npc_rr_secure_timeout_timer,sd->bl.id,0);
- sd->npc_idle_tick = gettick();
+ sd->npc_idle_timer = iTimer->add_timer(iTimer->gettick() + (SECURE_NPCTIMEOUT_INTERVAL*1000),npc_rr_secure_timeout_timer,sd->bl.id,0);
+ sd->npc_idle_tick = iTimer->gettick();
#endif
}
}
diff --git a/src/map/status.c b/src/map/status.c
index 096e673c2..8363b8021 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -10916,7 +10916,7 @@ int status_get_matk(struct block_list *bl, int flag){
}
if ((bl->type&BL_HOM && battle_config.hom_setting&0x20) //Hom Min Matk is always the same as Max Matk
- || sc->data[SC_RECOGNIZEDSPELL])
+ || (sc && sc->data[SC_RECOGNIZEDSPELL]))
status->matk_min = status->matk_max;
#ifdef RENEWAL
diff --git a/src/map/unit.c b/src/map/unit.c
index 371a75ac7..7b270adc7 100644
--- a/src/map/unit.c
+++ b/src/map/unit.c
@@ -327,7 +327,8 @@ int unit_walktoxy( struct block_list *bl, short x, short y, int flag)
path_search(&wpd, bl->m, bl->x, bl->y, x, y, flag&1, CELL_CHKNOPASS); // Count walk path cells
#ifdef OFFICIAL_WALKPATH
if( !path_search_long(NULL, bl->m, bl->x, bl->y, x, y, CELL_CHKNOPASS) // Check if there is an obstacle between
- && wpd.path_len > 14 ) // Official number of walkable cells is 14 if and only if there is an obstacle between. [malufett]
+ && (wpd.path_len > 14) // Official number of walkable cells is 14 if and only if there is an obstacle between. [malufett]
+ && (bl->type != BL_NPC) ) // If type is a NPC, please disregard.
return 0;
#endif
if( (battle_config.max_walk_path < wpd.path_len) && (bl->type != BL_NPC) )