summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt8
-rw-r--r--db/Changelog.txt3
-rw-r--r--db/skill_cast_db.txt2
-rw-r--r--src/map/atcommand.c2
-rw-r--r--src/map/clif.c7
-rw-r--r--src/map/map.h8
-rw-r--r--src/map/pc.c5
-rw-r--r--src/map/pc.h9
-rw-r--r--src/map/script.c2
-rw-r--r--src/map/skill.c6
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.