summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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
7 files changed, 23 insertions, 16 deletions
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.