summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2013-04-02 20:38:36 -0300
committershennetsind <ind@henn.et>2013-04-02 20:38:36 -0300
commit98b26ebbe6b4df336cfccc38821b7a52d5980d01 (patch)
tree7a2bd4150ad36a5e2475a8e63a254b27a6ec72bc /src
parent18e72749f736e05a7a40b25383faa5c9d12f815e (diff)
downloadhercules-98b26ebbe6b4df336cfccc38821b7a52d5980d01.tar.gz
hercules-98b26ebbe6b4df336cfccc38821b7a52d5980d01.tar.bz2
hercules-98b26ebbe6b4df336cfccc38821b7a52d5980d01.tar.xz
hercules-98b26ebbe6b4df336cfccc38821b7a52d5980d01.zip
Introducing New/Official mapflag: invincible_time_inc
Used officially in gvg maps (Implemented under GvG zone) Special Thanks to Muad_Dib! Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src')
-rw-r--r--src/map/clif.c5
-rw-r--r--src/map/map.c2
-rw-r--r--src/map/map.h3
-rw-r--r--src/map/npc.c7
-rw-r--r--src/map/pc.c5
5 files changed, 11 insertions, 11 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 1192fcf8f..588f6a853 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -9197,10 +9197,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
guild_send_memberinfoshort(sd,1);
if(battle_config.pc_invincible_time > 0) {
- if(map_flag_gvg(sd->bl.m))
- pc_setinvincibletimer(sd,battle_config.pc_invincible_time<<1);
- else
- pc_setinvincibletimer(sd,battle_config.pc_invincible_time);
+ pc_setinvincibletimer(sd,battle_config.pc_invincible_time);
}
if( map[sd->bl.m].users++ == 0 && battle_config.dynamic_mobs )
diff --git a/src/map/map.c b/src/map/map.c
index acfdd643b..d6804a150 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -3019,6 +3019,8 @@ void map_flags_init(void) {
map[i].flag.pvp = 1; // make all maps pvp for pk_mode [Valaris]
/* align with 'All' zone */
map[i].zone = &map_zone_all;
+
+ map[i].invincible_time_inc = 0;
}
}
diff --git a/src/map/map.h b/src/map/map.h
index 7af3a184c..148c4ac0f 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -624,6 +624,9 @@ struct map_data {
/* Hercules Local Chat */
struct hChSysCh *channel;
+
+ /* invincible_time_inc mapflag */
+ unsigned int invincible_time_inc;
};
/// Stores information about a remote map (for multi-mapserver setups).
diff --git a/src/map/npc.c b/src/map/npc.c
index fe2e769db..b9bc28eaa 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -3361,11 +3361,6 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char
map[m].flag.sakura=state;
else if (!strcmpi(w3,"leaves"))
map[m].flag.leaves=state;
- /**
- * No longer available, keeping here just in case it's back someday. [Ind]
- **/
- //else if (!strcmpi(w3,"rain"))
- // map[m].flag.rain=state;
else if (!strcmpi(w3,"nightenabled"))
map[m].flag.nightenabled=state;
else if (!strcmpi(w3,"nogo"))
@@ -3463,6 +3458,8 @@ const char* npc_parse_mapflag(char* w1, char* w2, char* w3, char* w4, const char
}
} else if ( !strcmpi(w3,"nomapchannelautojoin") ) {
map[m].flag.chsysnolocalaj = state;
+ } else if ( !strcmpi(w3,"invincible_time_inc") ) {
+ map[m].invincible_time_inc = (state) ? atoi(w4) : 0;
} else
ShowError("npc_parse_mapflag: unrecognized mapflag '%s' (file '%s', line '%d').\n", w3, filepath, strline(buffer,start-buffer));
diff --git a/src/map/pc.c b/src/map/pc.c
index 6fb45bcfe..104e5829f 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -124,10 +124,11 @@ static int pc_invincible_timer(int tid, unsigned int tick, int id, intptr_t data
return 0;
}
-void pc_setinvincibletimer(struct map_session_data* sd, int val)
-{
+void pc_setinvincibletimer(struct map_session_data* sd, int val) {
nullpo_retv(sd);
+ val += map[sd->bl.m].invincible_time_inc;
+
if( sd->invincible_timer != INVALID_TIMER )
delete_timer(sd->invincible_timer,pc_invincible_timer);
sd->invincible_timer = add_timer(gettick()+val,pc_invincible_timer,sd->bl.id,0);