Forráskód Böngészése

updated 'setmapflag' script command

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6304 54d463be-8e91-2dee-dedb-b68131a5f0ec
Lupus 19 éve
szülő
commit
b662c487e4
3 módosított fájl, 41 hozzáadás és 16 törlés
  1. 6 0
      Changelog-Trunk.txt
  2. 17 14
      db/const.txt
  3. 18 2
      src/map/script.c

+ 6 - 0
Changelog-Trunk.txt

@@ -2,6 +2,12 @@ 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/04/27
+	* Added 3rd argument to script command 'setmapflag' thx to Jbain [Lupus]
+		setmapflag "prontera.gat",mf_pvp;
+		setmapflag "prontera.gat",mf_jexp,100;
+	  Now you can dinamically increase/decrease EXP rate on set maps
+	  e.g. you can lower EXP on the cmd_fild02 ^_-
 2006/04/26
 	* Updated sql-files/item_db.sql to current. [Skotlex]
 	* Item use interval is set to a default of 100ms now since that should be

+ 17 - 14
db/const.txt

@@ -111,20 +111,23 @@ mf_rain		20
 mf_indoors	21
 mf_nogo		22
 mf_clouds	23
-mf_fireworks	24
-mf_gvg_castle	25
-mf_gvg_dungeon	26
-mf_nightenabled	27
-mf_nobaseexp	28
-mf_nojobexp	29
-mf_nomobloot	30
-mf_nomvploot	31
-mf_noreturn	32
-mf_nowarpto	33
-mf_nonightmaredrop	34
-mf_restricted	35
-mf_nocommand	36
-mf_nodrop	37
+mf_clouds2	24
+mf_fireworks	25
+mf_gvg_castle	26
+mf_gvg_dungeon	27
+mf_nightenabled	28
+mf_nobaseexp	29
+mf_nojobexp	30
+mf_nomobloot	31
+mf_nomvploot	32
+mf_noreturn	33
+mf_nowarpto	34
+mf_nonightmaredrop	35
+mf_restricted	36
+mf_nocommand	37
+mf_nodrop	38
+mf_jexp		39
+mf_bexp		40
 
 cell_wall	1
 cell_water	3

+ 18 - 2
src/map/script.c

@@ -607,7 +607,7 @@ struct {
 	{buildin_detachrid,"detachrid",""},
 	{buildin_isloggedin,"isloggedin","i"},
 	{buildin_setmapflagnosave,"setmapflagnosave","ssii"},
-	{buildin_setmapflag,"setmapflag","si"},
+	{buildin_setmapflag,"setmapflag","si*"},
 	{buildin_removemapflag,"removemapflag","si"},
 	{buildin_pvpon,"pvpon","s"},
 	{buildin_pvpoff,"pvpoff","s"},
@@ -6629,7 +6629,7 @@ enum {  MF_NOMEMO,MF_NOTELEPORT,MF_NOSAVE,MF_NOBRANCH,MF_NOPENALTY,MF_NOZENYPENA
 	MF_NOWARP,MF_FREE,MF_NOICEWALL,MF_SNOW,MF_FOG,MF_SAKURA,MF_LEAVES,MF_RAIN,
 	MF_INDOORS,MF_NOGO,MF_CLOUDS,MF_CLOUDS2,MF_FIREWORKS,MF_GVG_CASTLE,MF_GVG_DUNGEON,MF_NIGHTENABLED,
 	MF_NOBASEEXP, MF_NOJOBEXP, MF_NOMOBLOOT, MF_NOMVPLOOT, MF_NORETURN, MF_NOWARPTO, MF_NIGHTMAREDROP,
-	MF_RESTRICTED, MF_NOCOMMAND, MF_NODROP };
+	MF_RESTRICTED, MF_NOCOMMAND, MF_NODROP, MF_JEXP, MF_BEXP };
 
 int buildin_setmapflagnosave(struct script_state *st)
 {
@@ -6658,9 +6658,13 @@ int buildin_setmapflag(struct script_state *st)
 {
 	int m,i;
 	char *str;
+	char *val;
 
 	str=conv_str(st,& (st->stack->stack_data[st->start+2]));
 	i=conv_num(st,& (st->stack->stack_data[st->start+3]));
+	if(st->end>st->start+4){
+		val=conv_str(st,& (st->stack->stack_data[st->start+4]));
+	}
 	m = map_mapname2mapid(str);
 	if(m >= 0) {
 		switch(i) {
@@ -6775,6 +6779,12 @@ int buildin_setmapflag(struct script_state *st)
 			case MF_NOCOMMAND:
 				map[m].flag.nocommand=1;
 				break;
+			case MF_JEXP:
+				map[m].jexp = (atoi(val) < 0) ? 100 : atoi(val);
+				break;
+			case MF_BEXP:
+				map[m].bexp = (atoi(val) < 0) ? 100 : atoi(val);
+				break;
 		}
 	}
 
@@ -6905,6 +6915,12 @@ int buildin_removemapflag(struct script_state *st)
 			case MF_NOCOMMAND:
 				map[m].flag.nocommand=0;
 				break;
+			case MF_JEXP:
+				map[m].jexp=100;
+				break;
+			case MF_BEXP:
+				map[m].bexp=100;
+				break;
 		}
 	}