diff options
author | shennetsind <ind@henn.et> | 2013-06-14 08:56:59 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-06-14 08:56:59 -0300 |
commit | 35dcafcc79892075bfbd5087b44116c6328cc533 (patch) | |
tree | e3f0384980e03ef7baa41ea91dddf4ed4a701962 /src | |
parent | 5a942993dd12ae7d85b1633a58b0dc23f85832c2 (diff) | |
parent | 074b15c84bf9b624eee18ba31587d08d0a94ed49 (diff) | |
download | hercules-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.h | 2 | ||||
-rw-r--r-- | src/map/battle.c | 21 | ||||
-rw-r--r-- | src/map/npc.c | 4 | ||||
-rw-r--r-- | src/map/packets.h | 6 | ||||
-rw-r--r-- | src/map/script.c | 6 | ||||
-rw-r--r-- | src/map/status.c | 2 | ||||
-rw-r--r-- | src/map/unit.c | 3 |
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) ) |