From aae1026c0336f9bd280ac0d5cc8d523004adad21 Mon Sep 17 00:00:00 2001 From: skotlex Date: Wed, 9 Jan 2008 16:08:57 +0000 Subject: - corrected duration of sphere mines to be 30 secs regardless of skill level - Corrected duel_count/duel_list (you DON'T place variables in a .h file! That is what 'extern' is for) - Script command warpportal now places a warp in its initial state (as if a real warp portal was casted) - Updated dispell to also not remove the following effects: Hindsight, Inc Hit/Atk Rate (NPC_POWERUP), Nen, TK stances and tumble, warm and speedup1 (the other speed potion) - Chase-walking characters can now loot. - Hiding characters can't drop items now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12036 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 8 ++++++++ db/Changelog.txt | 3 +++ db/skill_cast_db.txt | 2 +- src/map/atcommand.c | 2 -- src/map/clif.c | 7 +++---- src/map/map.h | 8 -------- src/map/pc.c | 5 +++++ src/map/pc.h | 9 +++++++++ src/map/script.c | 2 +- src/map/skill.c | 6 +++++- 10 files changed, 35 insertions(+), 17 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 9000eafff..bd71f0330 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,14 @@ 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. +2008/01/09 + * Script command warpportal now places a warp in its initial state (as if a + real warp portal was casted). + * Updated dispell to also not remove the following effects: Hindsight, Inc + Hit/Atk Rate (NPC_POWERUP), Nen, TK stances and tumble, warm and speedup1 + (the other speed potion). + * Chase-walking characters can now loot. + * Hiding characters can't drop items now. [Skotlex] 2008/01/08 * Added missing session auth checks to charserver. [ultramage] Packets from non-authed clients will now be discarded. diff --git a/db/Changelog.txt b/db/Changelog.txt index d543ef134..8a156de2e 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -37,6 +37,9 @@ 2376 General's_Plate_Mail Increases heal recovery effectiveness on you by 10% ======================= +01/09 + * Corrected duration of sphere mines to be 30 secs regardless of skill + level. [Skotlex] 12/28 * Updated MVP drops to 11.2 [Playtester] - also increased speed of Lord of the Death diff --git a/db/skill_cast_db.txt b/db/skill_cast_db.txt index b6bc45361..d451ca3c6 100644 --- a/db/skill_cast_db.txt +++ b/db/skill_cast_db.txt @@ -369,7 +369,7 @@ //-- AM_CANNIBALIZE 232,2000,500,0,300000:240000:180000:120000:60000,0 //-- AM_SPHEREMINE -233,2000,500,0,40000:50000:60000:70000:80000,0 +233,2000,500,0,30000,0 //-- AM_CP_WEAPON 234,2000,0,0,120000:240000:360000:480000:600000,0 //-- AM_CP_SHIELD diff --git a/src/map/atcommand.c b/src/map/atcommand.c index b9ec2c72c..07dc0d3a4 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -8548,8 +8548,6 @@ int atcommand_config_read(const char* cfgName) void do_init_atcommand() { users_db = uidb_alloc(DB_OPT_BASE); - duel_count = 0; - memset(&duel_list[0], 0, sizeof(duel_list)); add_timer_func_list(atshowmobs_timer, "atshowmobs_timer"); return; } diff --git a/src/map/clif.c b/src/map/clif.c index bb1b6f964..b74f4f582 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -8566,11 +8566,9 @@ void clif_parse_TakeItem(int fd, struct map_session_data *sd) if (pc_cant_act(sd)) break; - //Disable cloaking/chasewalking characters from looting [Skotlex] - if(pc_iscloaking(sd) || pc_ischasewalk(sd)) - break; - if(sd->sc.count && ( + sd->sc.data[SC_HIDING] || + sd->sc.data[SC_CLOAKING] || sd->sc.data[SC_TRICKDEAD] || sd->sc.data[SC_BLADESTOP] || (sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM)) @@ -8601,6 +8599,7 @@ void clif_parse_DropItem(int fd, struct map_session_data *sd) break; if (sd->sc.count && ( + sd->sc.data[SC_HIDING] || sd->sc.data[SC_AUTOCOUNTER] || sd->sc.data[SC_BLADESTOP] || (sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM) diff --git a/src/map/map.h b/src/map/map.h index 2eaf4c2c1..266572680 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -794,14 +794,6 @@ struct map_session_data { } mail; }; -struct { - int members_count; - int invites_count; - int max_players_limit; -} duel_list[MAX_DUEL]; - -int duel_count; - struct npc_timerevent_list { int timer,pos; }; diff --git a/src/map/pc.c b/src/map/pc.c index f16f57336..6d59c1897 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -66,6 +66,9 @@ static int GM_num = 0; #define MOTD_LINE_SIZE 128 char motd_text[MOTD_LINE_SIZE][256]; // Message of the day buffer [Valaris] +struct duel duel_list[MAX_DUEL]; +int duel_count = 0; + //Links related info to the sd->hate_mob[]/sd->feel_map[] entries const struct sg_data sg_info[3] = { { SG_SUN_ANGER, SG_SUN_BLESS, SG_SUN_COMFORT, "PC_FEEL_SUN", "PC_HATE_MOB_SUN", is_day_of_sun }, @@ -7552,6 +7555,8 @@ int do_init_pc(void) pc_readdb(); pc_read_motd(); // Read MOTD [Valaris] + memset(&duel_list[0], 0, sizeof(duel_list)); + add_timer_func_list(pc_invincible_timer, "pc_invincible_timer"); add_timer_func_list(pc_eventtimer, "pc_eventtimer"); add_timer_func_list(pc_calc_pvprank_timer, "pc_calc_pvprank_timer"); diff --git a/src/map/pc.h b/src/map/pc.h index 85f0d7ee0..d179ec770 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -98,6 +98,15 @@ enum { EQI_MAX } equip_index_enum; +struct duel { + int members_count; + int invites_count; + int max_players_limit; +}; + +extern struct duel duel_list[MAX_DUEL]; +extern int duel_count; + #define pc_setdead(sd) ( (sd)->state.dead_sit = (sd)->vd.dead_sit = 1 ) #define pc_setsit(sd) ( (sd)->state.dead_sit = (sd)->vd.dead_sit = 2 ) #define pc_isdead(sd) ( (sd)->state.dead_sit == 1 ) diff --git a/src/map/script.c b/src/map/script.c index ffd40aa68..a56135dd8 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -12941,7 +12941,7 @@ BUILDIN_FUNC(warpportal) if( mapindex == 0 ) return 0;// map not found - group = skill_unitsetting(bl, AL_WARP, 4, spx, spy, 1); + group = skill_unitsetting(bl, AL_WARP, 4, spx, spy, 0); if( group == NULL ) return 0;// failed group->val2 = (tpx<<16) | tpy; diff --git a/src/map/skill.c b/src/map/skill.c index b5f28ba27..c948b0e7c 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4188,7 +4188,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case SC_SMA: case SC_SPEEDUP0: case SC_NOCHAT: case SC_ANKLE: case SC_SPIDERWEB: case SC_JAILED: case SC_ITEMBOOST: case SC_EXPBOOST: case SC_LIFEINSURANCE: - case SC_BOSSMAPINFO: case SC_PNEUMA: + case SC_BOSSMAPINFO: case SC_PNEUMA: case SC_AUTOSPELL: + case SC_INCHITRATE: case SC_INCATKRATE: case SC_NEN: + case SC_READYSTORM: case SC_READYDOWN: case SC_READYTURN: + case SC_READYCOUNTER:case SC_DODGE: case SC_WARM: + case SC_SPEEDUP1: continue; } if(i==SC_BERSERK) tsc->data[i]->val2=0; //Mark a dispelled berserk to avoid setting hp to 100 by setting hp penalty to 0. -- cgit v1.2.3-70-g09d2