Przeglądaj źródła

- Renamed nopenalty mapflag to noexppenalty. Using nopenalty will turn on/off both noexppenalty and nozenypenalty now.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8915 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 18 lat temu
rodzic
commit
55cf6d9d0f
8 zmienionych plików z 20 dodań i 9 usunięć
  1. 3 0
      Changelog-Trunk.txt
  2. 1 0
      db/const.txt
  3. 1 1
      src/map/atcommand.c
  4. 1 1
      src/map/map.h
  5. 5 1
      src/map/npc.c
  6. 2 2
      src/map/pc.c
  7. 6 3
      src/map/script.c
  8. 1 1
      src/map/skill.c

+ 3 - 0
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]

+ 1 - 0
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

+ 1 - 1
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) {

+ 1 - 1
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;

+ 5 - 1
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;
 	}

+ 2 - 2
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;

+ 6 - 3
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;

+ 1 - 1
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);