summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--db/const.txt1
-rw-r--r--src/map/atcommand.c2
-rw-r--r--src/map/map.h2
-rw-r--r--src/map/npc.c6
-rw-r--r--src/map/pc.c4
-rw-r--r--src/map/script.c9
-rw-r--r--src/map/skill.c2
8 files changed, 20 insertions, 9 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 762e03e8b..be78ef212 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -3,6 +3,9 @@ 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.
+2006/10/02
+ * Renamed nopenalty mapflag to noexppenalty. Using nopenalty will turn
+ on/off both noexppenalty and nozenypenalty now. [Skotlex]
2006/10/01
* Removed the speed adjustment per level of Increase/Decrease Agility
[Skotlex]
diff --git a/db/const.txt b/db/const.txt
index 80171e2ae..b21aff2d4 100644
--- a/db/const.txt
+++ b/db/const.txt
@@ -218,6 +218,7 @@ mf_bexp 40
mf_novending 41
mf_loadevent 42
mf_nochat 43
+mf_noexppenalty 44
cell_wall 1
cell_water 3
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 5c579f05b..7b566ad61 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -5761,7 +5761,7 @@ int atcommand_mapinfo(
strcat(atcmd_output, "NoMemo | ");
clif_displaymessage(fd, atcmd_output);
- sprintf(atcmd_output, "No Penalty: %s | No Zeny Penalty: %s", (map[m_id].flag.nopenalty) ? "On" : "Off", (map[m_id].flag.nozenypenalty) ? "On" : "Off");
+ sprintf(atcmd_output, "No Exp Penalty: %s | No Zeny Penalty: %s", (map[m_id].flag.noexppenalty) ? "On" : "Off", (map[m_id].flag.nozenypenalty) ? "On" : "Off");
clif_displaymessage(fd, atcmd_output);
if (map[m_id].flag.nosave) {
diff --git a/src/map/map.h b/src/map/map.h
index d855f2d53..2448cf767 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -1084,7 +1084,7 @@ struct map_data {
unsigned monster_noteleport : 1;
unsigned nosave : 1;
unsigned nobranch : 1;
- unsigned nopenalty : 1;
+ unsigned noexppenalty : 1;
unsigned pvp : 1;
unsigned pvp_noparty : 1;
unsigned pvp_noguild : 1;
diff --git a/src/map/npc.c b/src/map/npc.c
index fc93207a8..1954b5d7f 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -2384,7 +2384,8 @@ static int npc_parse_mapflag (char *w1, char *w2, char *w3, char *w4)
map[m].flag.nobranch=state;
}
else if (strcmpi(w3,"nopenalty")==0) {
- map[m].flag.nopenalty=state;
+ map[m].flag.noexppenalty=state;
+ map[m].flag.nozenypenalty=state;
}
else if (strcmpi(w3,"pvp")==0) {
map[m].flag.pvp=state;
@@ -2449,6 +2450,9 @@ static int npc_parse_mapflag (char *w1, char *w2, char *w3, char *w4)
map[m].flag.gvg_castle=state;
if (state) map[m].flag.pvp=0;
}
+ else if (strcmpi(w3,"noexppenalty")==0) {
+ map[m].flag.noexppenalty=state;
+ }
else if (strcmpi(w3,"nozenypenalty")==0) {
map[m].flag.nozenypenalty=state;
}
diff --git a/src/map/pc.c b/src/map/pc.c
index cb641b3cf..822581272 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -4822,7 +4822,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
if(sd->status.pet_id > 0 && sd->pd)
{
struct s_pet *pet = &sd->pd->pet;
- if(!map[sd->bl.m].flag.nopenalty){
+ if(!map[sd->bl.m].flag.noexppenalty){
pet->intimate -= sd->pd->petDB->die;
if(pet->intimate < 0)
pet->intimate = 0;
@@ -4970,7 +4970,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src)
// changed penalty options, added death by player if pk_mode [Valaris]
if(battle_config.death_penalty_type && sd->state.snovice_flag != 4
&& (sd->class_&MAPID_UPPERMASK) != MAPID_NOVICE // only novices will receive no penalty
- && !map[sd->bl.m].flag.nopenalty && !map_flag_gvg(sd->bl.m)
+ && !map[sd->bl.m].flag.noexppenalty && !map_flag_gvg(sd->bl.m)
&& sd->sc.data[SC_BABY].timer == -1)
{
unsigned int base_penalty =0;
diff --git a/src/map/script.c b/src/map/script.c
index 72d771e88..09fb80b32 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -205,7 +205,8 @@ enum {
MF_BEXP, //40
MF_NOVENDING,
MF_LOADEVENT,
- MF_NOCHAT
+ MF_NOCHAT,
+ MF_NOEXPPENALTY
};
//Reports on the console the src of an script error.
@@ -8234,7 +8235,8 @@ int buildin_setmapflag(struct script_state *st)
map[m].flag.nobranch=1;
break;
case MF_NOPENALTY:
- map[m].flag.nopenalty=1;
+ map[m].flag.noexppenalty=1;
+ map[m].flag.nozenypenalty=1;
break;
case MF_NOZENYPENALTY:
map[m].flag.nozenypenalty=1;
@@ -8378,7 +8380,8 @@ int buildin_removemapflag(struct script_state *st)
map[m].flag.nobranch=0;
break;
case MF_NOPENALTY:
- map[m].flag.nopenalty=0;
+ map[m].flag.noexppenalty=0;
+ map[m].flag.nozenypenalty=0;
break;
case MF_PVP:
map[m].flag.pvp=0;
diff --git a/src/map/skill.c b/src/map/skill.c
index fd86c929b..c8aeb689f 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3327,7 +3327,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
break;
}
skill_area_temp[0] = 5 - skill_area_temp[0]; // The actual penalty...
- if (skill_area_temp[0] > 0 && !map[src->m].flag.nopenalty) { //Apply penalty
+ if (skill_area_temp[0] > 0 && !map[src->m].flag.noexppenalty) { //Apply penalty
sd->status.base_exp -= pc_nextbaseexp(sd) * skill_area_temp[0] * 2/1000; //0.2% penalty per each.
sd->status.job_exp -= pc_nextjobexp(sd) * skill_area_temp[0] * 2/1000;
clif_updatestatus(sd,SP_BASEEXP);