Browse Source

Added deprecation functionality to script engine (#2064)

This commit adds support to deprecate script commands or constants.

Based on the following two commits by @MishimaHaruna
HerculesWS/Hercules@ce85609
HerculesWS/Hercules@6ae9045
Lemongrass3110 8 năm trước cách đây
mục cha
commit
5923633ad7
4 tập tin đã thay đổi với 475 bổ sung431 xóa
  1. 6 0
      src/config/core.h
  2. 39 5
      src/map/script.c
  3. 1 1
      src/map/script.h
  4. 429 425
      src/map/script_constants.h

+ 6 - 0
src/config/core.h

@@ -82,6 +82,12 @@
 /// This requires PACKETVER 2011-08-17 or newer.
 #define PACKET_OBFUSCATION
 
+/// Comment to disable warnings for deprecated script commands
+#define SCRIPT_COMMAND_DEPRECATION
+
+/// Comment to disable warnings for deprecated script constants
+#define SCRIPT_CONSTANT_DEPRECATION
+
 /**
  * No settings past this point
  **/

+ 39 - 5
src/map/script.c

@@ -168,6 +168,7 @@ static struct str_data_struct {
 	int (*func)(struct script_state *st);
 	int val;
 	int next;
+	bool deprecated;
 } *str_data = NULL;
 static int str_data_size = 0; // size of the data
 static int str_num = LABEL_START; // next id to be assigned
@@ -320,6 +321,7 @@ typedef struct script_function {
 	int (*func)(struct script_state *st);
 	const char *name;
 	const char *arg;
+	const char *deprecated;
 } script_function;
 
 extern script_function buildin_func[];
@@ -992,6 +994,12 @@ const char* parse_callfunc(const char* p, int require_paren, int is_custom)
 		add_scriptl(func);
 		add_scriptc(C_ARG);
 		arg = buildin_func[str_data[func].val].arg;
+#if defined(SCRIPT_COMMAND_DEPRECATION)
+		if( str_data[func].deprecated ){
+			ShowWarning( "Usage of deprecated script function '%s'.\n", get_str(func) );
+			ShowWarning( "This function was deprecated on '%s' and could become unavailable anytime soon.\n", buildin_func[str_data[func].val].deprecated );
+		}
+#endif
 	} else if( str_data[func].type == C_USERFUNC || str_data[func].type == C_USERFUNC_POS ){
 		// script defined function
 		add_scriptl(buildin_callsub_ref);
@@ -1375,6 +1383,13 @@ const char* parse_simpleexpr(const char *p)
 			return pv;
 		}
 
+#if defined(SCRIPT_CONSTANT_DEPRECATION)
+		if( str_data[l].type == C_INT && str_data[l].deprecated ){
+			ShowWarning( "Usage of deprecated constant '%s'.\n", get_str(l) );
+			ShowWarning( "This constant was deprecated and could become unavailable anytime soon.\n" );
+		}
+#endif
+
 		p=skip_word(p);
 		if( *p == '[' ){
 			// array(name[i] => getelementofarray(name,i) )
@@ -2237,6 +2252,7 @@ static void add_buildin_func(void)
 			str_data[n].type = C_FUNC;
 			str_data[n].val = i;
 			str_data[n].func = buildin_func[i].func;
+			str_data[n].deprecated = (buildin_func[i].deprecated != NULL);
 
 			if (!strcmp(buildin_func[i].name, "setr")) buildin_set_ref = n;
 			else if (!strcmp(buildin_func[i].name, "callsub")) buildin_callsub_ref = n;
@@ -2257,11 +2273,18 @@ bool script_get_constant(const char* name, int* value)
 	}
 	value[0] = str_data[n].val;
 
+#if defined(SCRIPT_CONSTANT_DEPRECATION)
+	if( str_data[n].deprecated ){
+		ShowWarning( "Usage of deprecated constant '%s'.\n", name );
+		ShowWarning( "This constant was deprecated and could become unavailable anytime soon.\n" );
+	}
+#endif
+
 	return true;
 }
 
 /// Creates new constant or parameter with given value.
-void script_set_constant(const char* name, int value, bool isparameter)
+void script_set_constant(const char* name, int value, bool isparameter, bool deprecated)
 {
 	int n = add_str(name);
 
@@ -2269,6 +2292,7 @@ void script_set_constant(const char* name, int value, bool isparameter)
 	{// new
 		str_data[n].type = isparameter ? C_PARAM : C_INT;
 		str_data[n].val  = value;
+		str_data[n].deprecated = deprecated;
 	}
 	else if( str_data[n].type == C_PARAM || str_data[n].type == C_INT )
 	{// existing parameter or constant
@@ -2309,11 +2333,11 @@ static void read_constdb(void)
 		if(sscanf(line,"%1023[A-Za-z0-9/_],%1023[A-Za-z0-9/_-],%11d",name,val,&type)>=2 ||
 		   sscanf(line,"%1023[A-Za-z0-9/_] %1023[A-Za-z0-9/_-] %11d",name,val,&type)>=2){
 			entries++;
-			script_set_constant(name, (int)strtol(val, NULL, 0), (bool)type);
+			script_set_constant(name, (int)strtol(val, NULL, 0), (bool)type, false);
 		}
 		else {
 			skipped++;
-			ShowWarning("Skipping line '"CL_WHITE"%d"CL_RESET"', invalide constant definition\n",linenum);
+			ShowWarning("Skipping line '"CL_WHITE"%d"CL_RESET"', invalid constant definition\n",linenum);
 		}
 	}
 	fclose(fp);
@@ -3932,6 +3956,14 @@ int run_func(struct script_state *st)
 	}
 
 	if(str_data[func].func) {
+#if defined(SCRIPT_COMMAND_DEPRECATION)
+		if( buildin_func[str_data[func].val].deprecated ){
+			ShowWarning( "Usage of deprecated script function '%s'.\n", get_str(func) );
+			ShowWarning( "This function was deprecated on '%s' and could become unavailable anytime soon.\n", buildin_func[str_data[func].val].deprecated );
+			script_reportsrc(st);
+		}
+#endif
+
 		if (str_data[func].func(st) == SCRIPT_CMD_FAILURE) //Report error
 			script_reportsrc(st);
 	} else {
@@ -4900,8 +4932,10 @@ void script_reload(void) {
 // buildin functions
 //
 
-#define BUILDIN_DEF(x,args) { buildin_ ## x , #x , args }
-#define BUILDIN_DEF2(x,x2,args) { buildin_ ## x , x2 , args }
+#define BUILDIN_DEF(x,args) { buildin_ ## x , #x , args, NULL }
+#define BUILDIN_DEF2(x,x2,args) { buildin_ ## x , x2 , args, NULL }
+#define BUILDIN_DEF_DEPRECATED(x,args,deprecationdate) { buildin_ ## x , #x , args, deprecationdate }
+#define BUILDIN_DEF2_DEPRECATED(x,x2,args,deprecationdate) { buildin_ ## x , x2 , args, deprecationdate }
 #define BUILDIN_FUNC(x) int buildin_ ## x (struct script_state* st)
 
 /////////////////////////////////////////////////////////////////////

+ 1 - 1
src/map/script.h

@@ -731,7 +731,7 @@ struct DBMap* script_get_userfunc_db(void);
 void script_run_autobonus(const char *autobonus, struct map_session_data *sd, unsigned int pos);
 
 bool script_get_constant(const char* name, int* value);
-void script_set_constant(const char* name, int value, bool isparameter);
+void script_set_constant(const char* name, int value, bool isparameter, bool deprecated);
 void script_hardcoded_constants(void);
 
 void script_cleararray_pc(struct map_session_data* sd, const char* varname, void* value);

+ 429 - 425
src/map/script_constants.h

@@ -4,7 +4,9 @@
 #ifndef _SCRIPT_CONSTANTS_H_
 	#define _SCRIPT_CONSTANTS_H_
 
-	#define export_constant(a) script_set_constant(#a,a,false)
+	#define export_constant(a) script_set_constant(#a,a,false,false)
+	#define export_constant2(a,b) script_set_constant(a,b,false,false)
+	#define export_parameter(a,b) script_set_constant(a,b,true,false)
 
 	/* min and maximum variable value */
 	export_constant(INT_MIN);
@@ -61,7 +63,7 @@
 	export_constant(JOB_WEDDING);
 	export_constant(JOB_SUPER_NOVICE);
 	// For backwards compatability
-	script_set_constant("Job_SuperNovice",JOB_SUPER_NOVICE,false); // TODO: Refactor NPCs to use the new constant
+	export_constant2("Job_SuperNovice",JOB_SUPER_NOVICE); // TODO: Refactor NPCs to use the new constant
 	export_constant(JOB_GUNSLINGER);
 	export_constant(JOB_NINJA);
 	export_constant(JOB_XMAS);
@@ -207,149 +209,149 @@
 	export_constant(JOB_BABY_STAR_GLADIATOR2);
 
 	/* EA jobs */
-	script_set_constant("EAJL_2_1",JOBL_2_1,false);
-	script_set_constant("EAJL_2_2",JOBL_2_2,false);
-	script_set_constant("EAJL_2",JOBL_2,false);
-	script_set_constant("EAJL_UPPER",JOBL_UPPER,false);
-	script_set_constant("EAJL_BABY",JOBL_BABY,false);
-	script_set_constant("EAJL_THIRD",JOBL_THIRD,false);
-
-	script_set_constant("EAJ_BASEMASK",MAPID_BASEMASK,false);
-	script_set_constant("EAJ_UPPERMASK",MAPID_UPPERMASK,false);
-	script_set_constant("EAJ_THIRDMASK",MAPID_THIRDMASK,false);
-
-	script_set_constant("EAJ_NOVICE",MAPID_NOVICE,false);
-	script_set_constant("EAJ_SWORDMAN",MAPID_SWORDMAN,false);
-	script_set_constant("EAJ_MAGE",MAPID_MAGE,false);
-	script_set_constant("EAJ_ARCHER",MAPID_ARCHER,false);
-	script_set_constant("EAJ_ACOLYTE",MAPID_ACOLYTE,false);
-	script_set_constant("EAJ_MERCHANT",MAPID_MERCHANT,false);
-	script_set_constant("EAJ_THIEF",MAPID_THIEF,false);
-	script_set_constant("EAJ_TAEKWON",MAPID_TAEKWON,false);
-	script_set_constant("EAJ_GUNSLINGER",MAPID_GUNSLINGER,false);
-	script_set_constant("EAJ_NINJA",MAPID_NINJA,false);
-	script_set_constant("EAJ_GANGSI",MAPID_GANGSI,false);
-
-	script_set_constant("EAJ_KNIGHT",MAPID_KNIGHT,false);
-	script_set_constant("EAJ_WIZARD",MAPID_WIZARD,false);
-	script_set_constant("EAJ_HUNTER",MAPID_HUNTER,false);
-	script_set_constant("EAJ_PRIEST",MAPID_PRIEST,false);
-	script_set_constant("EAJ_BLACKSMITH",MAPID_BLACKSMITH,false);
-	script_set_constant("EAJ_ASSASSIN",MAPID_ASSASSIN,false);
-	script_set_constant("EAJ_STAR_GLADIATOR",MAPID_STAR_GLADIATOR,false);
-	script_set_constant("EAJ_REBELLION",MAPID_REBELLION,false);
-	script_set_constant("EAJ_KAGEROUOBORO",MAPID_KAGEROUOBORO,false);
-	script_set_constant("EAJ_DEATH_KNIGHT",MAPID_DEATH_KNIGHT,false);
-
-	script_set_constant("EAJ_CRUSADER",MAPID_CRUSADER,false);
-	script_set_constant("EAJ_SAGE",MAPID_SAGE,false);
-	script_set_constant("EAJ_BARDDANCER",MAPID_BARDDANCER,false);
-	script_set_constant("EAJ_MONK",MAPID_MONK,false);
-	script_set_constant("EAJ_ALCHEMIST",MAPID_ALCHEMIST,false);
-	script_set_constant("EAJ_ROGUE",MAPID_ROGUE,false);
-	script_set_constant("EAJ_SOUL_LINKER",MAPID_SOUL_LINKER,false);
-	script_set_constant("EAJ_DARK_COLLECTOR",MAPID_DARK_COLLECTOR,false);
-
-	script_set_constant("EAJ_NOVICE_HIGH",MAPID_NOVICE_HIGH,false);
-	script_set_constant("EAJ_SWORDMAN_HIGH",MAPID_SWORDMAN_HIGH,false);
-	script_set_constant("EAJ_MAGE_HIGH",MAPID_MAGE_HIGH,false);
-	script_set_constant("EAJ_ARCHER_HIGH",MAPID_ARCHER_HIGH,false);
-	script_set_constant("EAJ_ACOLYTE_HIGH",MAPID_ACOLYTE_HIGH,false);
-	script_set_constant("EAJ_MERCHANT_HIGH",MAPID_MERCHANT_HIGH,false);
-	script_set_constant("EAJ_THIEF_HIGH",MAPID_THIEF_HIGH,false);
-
-	script_set_constant("EAJ_LORD_KNIGHT",MAPID_LORD_KNIGHT,false);
-	script_set_constant("EAJ_HIGH_WIZARD",MAPID_HIGH_WIZARD,false);
-	script_set_constant("EAJ_SNIPER",MAPID_SNIPER,false);
-	script_set_constant("EAJ_HIGH_PRIEST",MAPID_HIGH_PRIEST,false);
-	script_set_constant("EAJ_WHITESMITH",MAPID_WHITESMITH,false);
-	script_set_constant("EAJ_ASSASSIN_CROSS",MAPID_ASSASSIN_CROSS,false);
-
-	script_set_constant("EAJ_PALADIN",MAPID_PALADIN,false);
-	script_set_constant("EAJ_PROFESSOR",MAPID_PROFESSOR,false);
-	script_set_constant("EAJ_CLOWNGYPSY",MAPID_CLOWNGYPSY,false);
-	script_set_constant("EAJ_CHAMPION",MAPID_CHAMPION,false);
-	script_set_constant("EAJ_CREATOR",MAPID_CREATOR,false);
-	script_set_constant("EAJ_STALKER",MAPID_STALKER,false);
-
-	script_set_constant("EAJ_BABY",MAPID_BABY,false);
-	script_set_constant("EAJ_BABY_SWORDMAN",MAPID_BABY_SWORDMAN,false);
-	script_set_constant("EAJ_BABY_MAGE",MAPID_BABY_MAGE,false);
-	script_set_constant("EAJ_BABY_ARCHER",MAPID_BABY_ARCHER,false);
-	script_set_constant("EAJ_BABY_ACOLYTE",MAPID_BABY_ACOLYTE,false);
-	script_set_constant("EAJ_BABY_MERCHANT",MAPID_BABY_MERCHANT,false);
-	script_set_constant("EAJ_BABY_THIEF",MAPID_BABY_THIEF,false);
-	script_set_constant("EAJ_BABY_TAEKWON",MAPID_BABY_TAEKWON,false);
-	script_set_constant("EAJ_BABY_GUNSLINGER",MAPID_BABY_GUNSLINGER,false);
-	script_set_constant("EAJ_BABY_NINJA",MAPID_BABY_NINJA,false);
-	script_set_constant("EAJ_BABY_SUMMONER",MAPID_BABY_SUMMONER,false);
-
-	script_set_constant("EAJ_BABY_KNIGHT",MAPID_BABY_KNIGHT,false);
-	script_set_constant("EAJ_BABY_WIZARD",MAPID_BABY_WIZARD,false);
-	script_set_constant("EAJ_BABY_HUNTER",MAPID_BABY_HUNTER,false);
-	script_set_constant("EAJ_BABY_PRIEST",MAPID_BABY_PRIEST,false);
-	script_set_constant("EAJ_BABY_BLACKSMITH",MAPID_BABY_BLACKSMITH,false);
-	script_set_constant("EAJ_BABY_ASSASSIN",MAPID_BABY_ASSASSIN,false);
-	script_set_constant("EAJ_BABY_STAR_GLADIATOR",MAPID_BABY_STAR_GLADIATOR,false);
-	script_set_constant("EAJ_BABY_REBELLION",MAPID_BABY_REBELLION,false);
-	script_set_constant("EAJ_BABY_KAGEROUOBORO",MAPID_BABY_KAGEROUOBORO,false);
-
-	script_set_constant("EAJ_BABY_CRUSADER",MAPID_BABY_CRUSADER,false);
-	script_set_constant("EAJ_BABY_SAGE",MAPID_BABY_SAGE,false);
-	script_set_constant("EAJ_BABY_BARDDANCER",MAPID_BABY_BARDDANCER,false);
-	script_set_constant("EAJ_BABY_MONK",MAPID_BABY_MONK,false);
-	script_set_constant("EAJ_BABY_ALCHEMIST",MAPID_BABY_ALCHEMIST,false);
-	script_set_constant("EAJ_BABY_ROGUE",MAPID_BABY_ROGUE,false);
-	script_set_constant("EAJ_BABY_SOUL_LINKER",MAPID_BABY_SOUL_LINKER,false);
-
-	script_set_constant("EAJ_RUNE_KNIGHT",MAPID_RUNE_KNIGHT,false);
-	script_set_constant("EAJ_WARLOCK",MAPID_WARLOCK,false);
-	script_set_constant("EAJ_RANGER",MAPID_RANGER,false);
-	script_set_constant("EAJ_ARCH_BISHOP",MAPID_ARCH_BISHOP,false);
-	script_set_constant("EAJ_MECHANIC",MAPID_MECHANIC,false);
-	script_set_constant("EAJ_GUILLOTINE_CROSS",MAPID_GUILLOTINE_CROSS,false);
-
-	script_set_constant("EAJ_ROYAL_GUARD",MAPID_ROYAL_GUARD,false);
-	script_set_constant("EAJ_SORCERER",MAPID_SORCERER,false);
-	script_set_constant("EAJ_MINSTRELWANDERER",MAPID_MINSTRELWANDERER,false);
-	script_set_constant("EAJ_SURA",MAPID_SURA,false);
-	script_set_constant("EAJ_GENETIC",MAPID_GENETIC,false);
-	script_set_constant("EAJ_SHADOW_CHASER",MAPID_SHADOW_CHASER,false);
-
-	script_set_constant("EAJ_RUNE_KNIGHT_T",MAPID_RUNE_KNIGHT_T,false);
-	script_set_constant("EAJ_WARLOCK_T",MAPID_WARLOCK_T,false);
-	script_set_constant("EAJ_RANGER_T",MAPID_RANGER_T,false);
-	script_set_constant("EAJ_ARCH_BISHOP_T",MAPID_ARCH_BISHOP_T,false);
-	script_set_constant("EAJ_MECHANIC_T",MAPID_MECHANIC_T,false);
-	script_set_constant("EAJ_GUILLOTINE_CROSS_T",MAPID_GUILLOTINE_CROSS_T,false);
-
-	script_set_constant("EAJ_ROYAL_GUARD_T",MAPID_ROYAL_GUARD_T,false);
-	script_set_constant("EAJ_SORCERER_T",MAPID_SORCERER_T,false);
-	script_set_constant("EAJ_MINSTRELWANDERER_T",MAPID_MINSTRELWANDERER_T,false);
-	script_set_constant("EAJ_SURA_T",MAPID_SURA_T,false);
-	script_set_constant("EAJ_GENETIC_T",MAPID_GENETIC_T,false);
-	script_set_constant("EAJ_SHADOW_CHASER_T",MAPID_SHADOW_CHASER_T,false);
-
-	script_set_constant("EAJ_BABY_RUNE",MAPID_BABY_RUNE,false);
-	script_set_constant("EAJ_BABY_WARLOCK",MAPID_BABY_WARLOCK,false);
-	script_set_constant("EAJ_BABY_RANGER",MAPID_BABY_RANGER,false);
-	script_set_constant("EAJ_BABY_BISHOP",MAPID_BABY_BISHOP,false);
-	script_set_constant("EAJ_BABY_MECHANIC",MAPID_BABY_MECHANIC,false);
-	script_set_constant("EAJ_BABY_CROSS",MAPID_BABY_CROSS,false);
-
-	script_set_constant("EAJ_BABY_GUARD",MAPID_BABY_GUARD,false);
-	script_set_constant("EAJ_BABY_SORCERER",MAPID_BABY_SORCERER,false);
-	script_set_constant("EAJ_BABY_MINSTRELWANDERER",MAPID_BABY_MINSTRELWANDERER,false);
-	script_set_constant("EAJ_BABY_SURA",MAPID_BABY_SURA,false);
-	script_set_constant("EAJ_BABY_GENETIC",MAPID_BABY_GENETIC,false);
-	script_set_constant("EAJ_BABY_CHASER",MAPID_BABY_CHASER,false);
-
-	script_set_constant("EAJ_SUPER_NOVICE",MAPID_SUPER_NOVICE,false);
-	script_set_constant("EAJ_SUPER_BABY",MAPID_SUPER_BABY,false);
-	script_set_constant("EAJ_SUPER_NOVICE_E",MAPID_SUPER_NOVICE_E,false);
-	script_set_constant("EAJ_SUPER_BABY_E",MAPID_SUPER_BABY_E,false);
-
-	script_set_constant("EAJ_SUMMONER",MAPID_SUMMONER,false);
+	export_constant2("EAJL_2_1",JOBL_2_1);
+	export_constant2("EAJL_2_2",JOBL_2_2);
+	export_constant2("EAJL_2",JOBL_2);
+	export_constant2("EAJL_UPPER",JOBL_UPPER);
+	export_constant2("EAJL_BABY",JOBL_BABY);
+	export_constant2("EAJL_THIRD",JOBL_THIRD);
+
+	export_constant2("EAJ_BASEMASK",MAPID_BASEMASK);
+	export_constant2("EAJ_UPPERMASK",MAPID_UPPERMASK);
+	export_constant2("EAJ_THIRDMASK",MAPID_THIRDMASK);
+
+	export_constant2("EAJ_NOVICE",MAPID_NOVICE);
+	export_constant2("EAJ_SWORDMAN",MAPID_SWORDMAN);
+	export_constant2("EAJ_MAGE",MAPID_MAGE);
+	export_constant2("EAJ_ARCHER",MAPID_ARCHER);
+	export_constant2("EAJ_ACOLYTE",MAPID_ACOLYTE);
+	export_constant2("EAJ_MERCHANT",MAPID_MERCHANT);
+	export_constant2("EAJ_THIEF",MAPID_THIEF);
+	export_constant2("EAJ_TAEKWON",MAPID_TAEKWON);
+	export_constant2("EAJ_GUNSLINGER",MAPID_GUNSLINGER);
+	export_constant2("EAJ_NINJA",MAPID_NINJA);
+	export_constant2("EAJ_GANGSI",MAPID_GANGSI);
+
+	export_constant2("EAJ_KNIGHT",MAPID_KNIGHT);
+	export_constant2("EAJ_WIZARD",MAPID_WIZARD);
+	export_constant2("EAJ_HUNTER",MAPID_HUNTER);
+	export_constant2("EAJ_PRIEST",MAPID_PRIEST);
+	export_constant2("EAJ_BLACKSMITH",MAPID_BLACKSMITH);
+	export_constant2("EAJ_ASSASSIN",MAPID_ASSASSIN);
+	export_constant2("EAJ_STAR_GLADIATOR",MAPID_STAR_GLADIATOR);
+	export_constant2("EAJ_REBELLION",MAPID_REBELLION);
+	export_constant2("EAJ_KAGEROUOBORO",MAPID_KAGEROUOBORO);
+	export_constant2("EAJ_DEATH_KNIGHT",MAPID_DEATH_KNIGHT);
+
+	export_constant2("EAJ_CRUSADER",MAPID_CRUSADER);
+	export_constant2("EAJ_SAGE",MAPID_SAGE);
+	export_constant2("EAJ_BARDDANCER",MAPID_BARDDANCER);
+	export_constant2("EAJ_MONK",MAPID_MONK);
+	export_constant2("EAJ_ALCHEMIST",MAPID_ALCHEMIST);
+	export_constant2("EAJ_ROGUE",MAPID_ROGUE);
+	export_constant2("EAJ_SOUL_LINKER",MAPID_SOUL_LINKER);
+	export_constant2("EAJ_DARK_COLLECTOR",MAPID_DARK_COLLECTOR);
+
+	export_constant2("EAJ_NOVICE_HIGH",MAPID_NOVICE_HIGH);
+	export_constant2("EAJ_SWORDMAN_HIGH",MAPID_SWORDMAN_HIGH);
+	export_constant2("EAJ_MAGE_HIGH",MAPID_MAGE_HIGH);
+	export_constant2("EAJ_ARCHER_HIGH",MAPID_ARCHER_HIGH);
+	export_constant2("EAJ_ACOLYTE_HIGH",MAPID_ACOLYTE_HIGH);
+	export_constant2("EAJ_MERCHANT_HIGH",MAPID_MERCHANT_HIGH);
+	export_constant2("EAJ_THIEF_HIGH",MAPID_THIEF_HIGH);
+
+	export_constant2("EAJ_LORD_KNIGHT",MAPID_LORD_KNIGHT);
+	export_constant2("EAJ_HIGH_WIZARD",MAPID_HIGH_WIZARD);
+	export_constant2("EAJ_SNIPER",MAPID_SNIPER);
+	export_constant2("EAJ_HIGH_PRIEST",MAPID_HIGH_PRIEST);
+	export_constant2("EAJ_WHITESMITH",MAPID_WHITESMITH);
+	export_constant2("EAJ_ASSASSIN_CROSS",MAPID_ASSASSIN_CROSS);
+
+	export_constant2("EAJ_PALADIN",MAPID_PALADIN);
+	export_constant2("EAJ_PROFESSOR",MAPID_PROFESSOR);
+	export_constant2("EAJ_CLOWNGYPSY",MAPID_CLOWNGYPSY);
+	export_constant2("EAJ_CHAMPION",MAPID_CHAMPION);
+	export_constant2("EAJ_CREATOR",MAPID_CREATOR);
+	export_constant2("EAJ_STALKER",MAPID_STALKER);
+
+	export_constant2("EAJ_BABY",MAPID_BABY);
+	export_constant2("EAJ_BABY_SWORDMAN",MAPID_BABY_SWORDMAN);
+	export_constant2("EAJ_BABY_MAGE",MAPID_BABY_MAGE);
+	export_constant2("EAJ_BABY_ARCHER",MAPID_BABY_ARCHER);
+	export_constant2("EAJ_BABY_ACOLYTE",MAPID_BABY_ACOLYTE);
+	export_constant2("EAJ_BABY_MERCHANT",MAPID_BABY_MERCHANT);
+	export_constant2("EAJ_BABY_THIEF",MAPID_BABY_THIEF);
+	export_constant2("EAJ_BABY_TAEKWON",MAPID_BABY_TAEKWON);
+	export_constant2("EAJ_BABY_GUNSLINGER",MAPID_BABY_GUNSLINGER);
+	export_constant2("EAJ_BABY_NINJA",MAPID_BABY_NINJA);
+	export_constant2("EAJ_BABY_SUMMONER",MAPID_BABY_SUMMONER);
+
+	export_constant2("EAJ_BABY_KNIGHT",MAPID_BABY_KNIGHT);
+	export_constant2("EAJ_BABY_WIZARD",MAPID_BABY_WIZARD);
+	export_constant2("EAJ_BABY_HUNTER",MAPID_BABY_HUNTER);
+	export_constant2("EAJ_BABY_PRIEST",MAPID_BABY_PRIEST);
+	export_constant2("EAJ_BABY_BLACKSMITH",MAPID_BABY_BLACKSMITH);
+	export_constant2("EAJ_BABY_ASSASSIN",MAPID_BABY_ASSASSIN);
+	export_constant2("EAJ_BABY_STAR_GLADIATOR",MAPID_BABY_STAR_GLADIATOR);
+	export_constant2("EAJ_BABY_REBELLION",MAPID_BABY_REBELLION);
+	export_constant2("EAJ_BABY_KAGEROUOBORO",MAPID_BABY_KAGEROUOBORO);
+
+	export_constant2("EAJ_BABY_CRUSADER",MAPID_BABY_CRUSADER);
+	export_constant2("EAJ_BABY_SAGE",MAPID_BABY_SAGE);
+	export_constant2("EAJ_BABY_BARDDANCER",MAPID_BABY_BARDDANCER);
+	export_constant2("EAJ_BABY_MONK",MAPID_BABY_MONK);
+	export_constant2("EAJ_BABY_ALCHEMIST",MAPID_BABY_ALCHEMIST);
+	export_constant2("EAJ_BABY_ROGUE",MAPID_BABY_ROGUE);
+	export_constant2("EAJ_BABY_SOUL_LINKER",MAPID_BABY_SOUL_LINKER);
+
+	export_constant2("EAJ_RUNE_KNIGHT",MAPID_RUNE_KNIGHT);
+	export_constant2("EAJ_WARLOCK",MAPID_WARLOCK);
+	export_constant2("EAJ_RANGER",MAPID_RANGER);
+	export_constant2("EAJ_ARCH_BISHOP",MAPID_ARCH_BISHOP);
+	export_constant2("EAJ_MECHANIC",MAPID_MECHANIC);
+	export_constant2("EAJ_GUILLOTINE_CROSS",MAPID_GUILLOTINE_CROSS);
+
+	export_constant2("EAJ_ROYAL_GUARD",MAPID_ROYAL_GUARD);
+	export_constant2("EAJ_SORCERER",MAPID_SORCERER);
+	export_constant2("EAJ_MINSTRELWANDERER",MAPID_MINSTRELWANDERER);
+	export_constant2("EAJ_SURA",MAPID_SURA);
+	export_constant2("EAJ_GENETIC",MAPID_GENETIC);
+	export_constant2("EAJ_SHADOW_CHASER",MAPID_SHADOW_CHASER);
+
+	export_constant2("EAJ_RUNE_KNIGHT_T",MAPID_RUNE_KNIGHT_T);
+	export_constant2("EAJ_WARLOCK_T",MAPID_WARLOCK_T);
+	export_constant2("EAJ_RANGER_T",MAPID_RANGER_T);
+	export_constant2("EAJ_ARCH_BISHOP_T",MAPID_ARCH_BISHOP_T);
+	export_constant2("EAJ_MECHANIC_T",MAPID_MECHANIC_T);
+	export_constant2("EAJ_GUILLOTINE_CROSS_T",MAPID_GUILLOTINE_CROSS_T);
+
+	export_constant2("EAJ_ROYAL_GUARD_T",MAPID_ROYAL_GUARD_T);
+	export_constant2("EAJ_SORCERER_T",MAPID_SORCERER_T);
+	export_constant2("EAJ_MINSTRELWANDERER_T",MAPID_MINSTRELWANDERER_T);
+	export_constant2("EAJ_SURA_T",MAPID_SURA_T);
+	export_constant2("EAJ_GENETIC_T",MAPID_GENETIC_T);
+	export_constant2("EAJ_SHADOW_CHASER_T",MAPID_SHADOW_CHASER_T);
+
+	export_constant2("EAJ_BABY_RUNE",MAPID_BABY_RUNE);
+	export_constant2("EAJ_BABY_WARLOCK",MAPID_BABY_WARLOCK);
+	export_constant2("EAJ_BABY_RANGER",MAPID_BABY_RANGER);
+	export_constant2("EAJ_BABY_BISHOP",MAPID_BABY_BISHOP);
+	export_constant2("EAJ_BABY_MECHANIC",MAPID_BABY_MECHANIC);
+	export_constant2("EAJ_BABY_CROSS",MAPID_BABY_CROSS);
+
+	export_constant2("EAJ_BABY_GUARD",MAPID_BABY_GUARD);
+	export_constant2("EAJ_BABY_SORCERER",MAPID_BABY_SORCERER);
+	export_constant2("EAJ_BABY_MINSTRELWANDERER",MAPID_BABY_MINSTRELWANDERER);
+	export_constant2("EAJ_BABY_SURA",MAPID_BABY_SURA);
+	export_constant2("EAJ_BABY_GENETIC",MAPID_BABY_GENETIC);
+	export_constant2("EAJ_BABY_CHASER",MAPID_BABY_CHASER);
+
+	export_constant2("EAJ_SUPER_NOVICE",MAPID_SUPER_NOVICE);
+	export_constant2("EAJ_SUPER_BABY",MAPID_SUPER_BABY);
+	export_constant2("EAJ_SUPER_NOVICE_E",MAPID_SUPER_NOVICE_E);
+	export_constant2("EAJ_SUPER_BABY_E",MAPID_SUPER_BABY_E);
+
+	export_constant2("EAJ_SUMMONER",MAPID_SUMMONER);
 
 	/* sex */
 	export_constant(SEX_FEMALE);
@@ -422,7 +424,7 @@
 	export_constant(MF_RESET);
 	// TODO: Check why it is called differently on source and const
 	//export_constant(MF_CHANNELAUTOJOIN);
-	script_set_constant("mf_nomapchannelautojoin",MF_CHANNELAUTOJOIN,false);
+	export_constant2("mf_nomapchannelautojoin",MF_CHANNELAUTOJOIN);
 	export_constant(MF_NOUSECART);
 	export_constant(MF_NOITEMCONSUMPTION);
 	export_constant(MF_SUMSTARTMIRACLE);
@@ -466,244 +468,244 @@
 	export_constant(CELL_CHKICEWALL);
 
 	/* parameters */
-	script_set_constant("StatusPoint",SP_STATUSPOINT,true);
-	script_set_constant("BaseLevel",SP_BASELEVEL,true);
-	script_set_constant("SkillPoint",SP_SKILLPOINT,true);
-	script_set_constant("Class",SP_CLASS,true);
-	script_set_constant("Upper",SP_UPPER,true);
-	script_set_constant("Zeny",SP_ZENY,true);
-	script_set_constant("Sex",SP_SEX,true);
-	script_set_constant("Weight",SP_WEIGHT,true);
-	script_set_constant("MaxWeight",SP_MAXWEIGHT,true);
-	script_set_constant("JobLevel",SP_JOBLEVEL,true);
-	script_set_constant("BaseExp",SP_BASEEXP,true);
-	script_set_constant("JobExp",SP_JOBEXP,true);
-	script_set_constant("Karma",SP_KARMA,true);
-	script_set_constant("Manner",SP_MANNER,true);
-	script_set_constant("NextBaseExp",SP_NEXTBASEEXP,true);
-	script_set_constant("NextJobExp",SP_NEXTJOBEXP,true);
-	script_set_constant("Hp",SP_HP,true);
-	script_set_constant("MaxHp",SP_MAXHP,true);
-	script_set_constant("Sp",SP_SP,true);
-	script_set_constant("MaxSp",SP_MAXSP,true);
-	script_set_constant("BaseJob",SP_BASEJOB,true);
-	script_set_constant("BaseClass",SP_BASECLASS,true);
-	script_set_constant("killerrid",SP_KILLERRID,true);
-	script_set_constant("killedrid",SP_KILLEDRID,true);
-	script_set_constant("Sitting",SP_SITTING,true);
-	script_set_constant("CharMoves",SP_CHARMOVE,true);
-	script_set_constant("CharRename",SP_CHARRENAME,true);
-	script_set_constant("Font",SP_CHARFONT,true);
-	script_set_constant("BankVault",SP_BANK_VAULT,true);
-	script_set_constant(ROULETTE_BRONZE_VAR,SP_ROULETTE_BRONZE,true);
-	script_set_constant(ROULETTE_SILVER_VAR,SP_ROULETTE_SILVER,true);
-	script_set_constant(ROULETTE_GOLD_VAR,SP_ROULETTE_GOLD,true);
-
-	script_set_constant("bMaxHP",SP_MAXHP,false);
-	script_set_constant("bMaxSP",SP_MAXSP,false);
-	script_set_constant("bStr",SP_STR,false);
-	script_set_constant("bAgi",SP_AGI,false);
-	script_set_constant("bVit",SP_VIT,false);
-	script_set_constant("bInt",SP_INT,false);
-	script_set_constant("bDex",SP_DEX,false);
-	script_set_constant("bLuk",SP_LUK,false);
-	script_set_constant("bAtk",SP_ATK1,false);
-	script_set_constant("bAtk2",SP_ATK2,false);
-	script_set_constant("bDef",SP_DEF1,false);
-	script_set_constant("bDef2",SP_DEF2,false);
-	script_set_constant("bMdef",SP_MDEF1,false);
-	script_set_constant("bMdef2",SP_MDEF2,false);
-	script_set_constant("bHit",SP_HIT,false);
-	script_set_constant("bFlee",SP_FLEE1,false);
-	script_set_constant("bFlee2",SP_FLEE2,false);
-	script_set_constant("bCritical",SP_CRITICAL,false);
-	script_set_constant("bAspd",SP_ASPD,false);
-	script_set_constant("bFame",SP_FAME,false);
-	script_set_constant("bUnbreakable",SP_UNBREAKABLE,false);
-
-	script_set_constant("bAtkRange",SP_ATTACKRANGE,false);
-	script_set_constant("bAtkEle",SP_ATKELE,false);
-	script_set_constant("bDefEle",SP_DEFELE,false);
-	script_set_constant("bCastrate",SP_CASTRATE,false);
-	script_set_constant("bMaxHPrate",SP_MAXHPRATE,false);
-	script_set_constant("bMaxSPrate",SP_MAXSPRATE,false);
-	script_set_constant("bUseSPrate",SP_SPRATE,false);
-	script_set_constant("bAddEle",SP_ADDELE,false);
-	script_set_constant("bAddRace",SP_ADDRACE,false);
-	script_set_constant("bAddSize",SP_ADDSIZE,false);
-	script_set_constant("bSubEle",SP_SUBELE,false);
-	script_set_constant("bSubRace",SP_SUBRACE,false);
-	script_set_constant("bAddEff",SP_ADDEFF,false);
-	script_set_constant("bResEff",SP_RESEFF,false);
-	script_set_constant("bBaseAtk",SP_BASE_ATK,false);
-	script_set_constant("bAspdRate",SP_ASPD_RATE,false);
-	script_set_constant("bHPrecovRate",SP_HP_RECOV_RATE,false);
-	script_set_constant("bSPrecovRate",SP_SP_RECOV_RATE,false);
-	script_set_constant("bSpeedRate",SP_SPEED_RATE,false);
-	script_set_constant("bCriticalDef",SP_CRITICAL_DEF,false);
-	script_set_constant("bNearAtkDef",SP_NEAR_ATK_DEF,false);
-	script_set_constant("bLongAtkDef",SP_LONG_ATK_DEF,false);
-	script_set_constant("bDoubleRate",SP_DOUBLE_RATE,false);
-	script_set_constant("bDoubleAddRate",SP_DOUBLE_ADD_RATE,false);
-	script_set_constant("bSkillHeal",SP_SKILL_HEAL,false);
-	script_set_constant("bMatkRate",SP_MATK_RATE,false);
-	script_set_constant("bWeaponMatkRate",SP_WEAPON_MATK_RATE,false);
-	script_set_constant("bIgnoreDefEle",SP_IGNORE_DEF_ELE,false);
-	script_set_constant("bIgnoreDefRace",SP_IGNORE_DEF_RACE,false);
-	script_set_constant("bAtkRate",SP_ATK_RATE,false);
-	script_set_constant("bWeaponAtkRate",SP_WEAPON_ATK_RATE,false);
-	script_set_constant("bSpeedAddRate",SP_SPEED_ADDRATE,false);
-	script_set_constant("bSPRegenRate",SP_SP_REGEN_RATE,false);
-	script_set_constant("bMagicAtkDef",SP_MAGIC_ATK_DEF,false);
-	script_set_constant("bMiscAtkDef",SP_MISC_ATK_DEF,false);
-	script_set_constant("bIgnoreMdefEle",SP_IGNORE_MDEF_ELE,false);
-	script_set_constant("bIgnoreMdefRace",SP_IGNORE_MDEF_RACE,false);
-	script_set_constant("bMagicAddEle",SP_MAGIC_ADDELE,false);
-	script_set_constant("bMagicAddRace",SP_MAGIC_ADDRACE,false);
-	script_set_constant("bMagicAddSize",SP_MAGIC_ADDSIZE,false);
-	script_set_constant("bPerfectHitRate",SP_PERFECT_HIT_RATE,false);
-	script_set_constant("bPerfectHitAddRate",SP_PERFECT_HIT_ADD_RATE,false);
-	script_set_constant("bCriticalRate",SP_CRITICAL_RATE,false);
-	script_set_constant("bGetZenyNum",SP_GET_ZENY_NUM,false);
-	script_set_constant("bAddGetZenyNum",SP_ADD_GET_ZENY_NUM,false);
-	script_set_constant("bAddDamageClass",SP_ADD_DAMAGE_CLASS,false);
-	script_set_constant("bAddMagicDamageClass",SP_ADD_MAGIC_DAMAGE_CLASS,false);
-	script_set_constant("bAddDefMonster",SP_ADD_DEF_MONSTER,false);
-	script_set_constant("bAddMdefMonster",SP_ADD_MDEF_MONSTER,false);
-	script_set_constant("bAddMonsterDropItem",SP_ADD_MONSTER_DROP_ITEM,false);
-	script_set_constant("bDefRatioAtkEle",SP_DEF_RATIO_ATK_ELE,false);
-	script_set_constant("bDefRatioAtkRace",SP_DEF_RATIO_ATK_RACE,false);
-	script_set_constant("bUnbreakableGarment",SP_UNBREAKABLE_GARMENT,false);
-	script_set_constant("bHitRate",SP_HIT_RATE,false);
-	script_set_constant("bFleeRate",SP_FLEE_RATE,false);
-	script_set_constant("bFlee2Rate",SP_FLEE2_RATE,false);
-	script_set_constant("bDefRate",SP_DEF_RATE,false);
-	script_set_constant("bDef2Rate",SP_DEF2_RATE,false);
-	script_set_constant("bMdefRate",SP_MDEF_RATE,false);
-	script_set_constant("bMdef2Rate",SP_MDEF2_RATE,false);
-	script_set_constant("bSplashRange",SP_SPLASH_RANGE,false);
-	script_set_constant("bSplashAddRange",SP_SPLASH_ADD_RANGE,false);
-	script_set_constant("bAutoSpell",SP_AUTOSPELL,false);
-	script_set_constant("bHPDrainRate",SP_HP_DRAIN_RATE,false);
-	script_set_constant("bSPDrainRate",SP_SP_DRAIN_RATE,false);
-	script_set_constant("bShortWeaponDamageReturn",SP_SHORT_WEAPON_DAMAGE_RETURN,false);
-	script_set_constant("bLongWeaponDamageReturn",SP_LONG_WEAPON_DAMAGE_RETURN,false);
-	script_set_constant("bWeaponComaEle",SP_WEAPON_COMA_ELE,false);
-	script_set_constant("bWeaponComaRace",SP_WEAPON_COMA_RACE,false);
-	script_set_constant("bAddEff2",SP_ADDEFF2,false);
-	script_set_constant("bBreakWeaponRate",SP_BREAK_WEAPON_RATE,false);
-	script_set_constant("bBreakArmorRate",SP_BREAK_ARMOR_RATE,false);
-	script_set_constant("bAddStealRate",SP_ADD_STEAL_RATE,false);
-	script_set_constant("bMagicDamageReturn",SP_MAGIC_DAMAGE_RETURN,false);
-	script_set_constant("bAllStats",SP_ALL_STATS,false);
-	script_set_constant("bAgiVit",SP_AGI_VIT,false);
-	script_set_constant("bAgiDexStr",SP_AGI_DEX_STR,false);
-	script_set_constant("bPerfectHide",SP_PERFECT_HIDE,false);
-	script_set_constant("bNoKnockback",SP_NO_KNOCKBACK,false);
-	script_set_constant("bClassChange",SP_CLASSCHANGE,false);
-	script_set_constant("bHPDrainValue",SP_HP_DRAIN_VALUE,false);
-	script_set_constant("bSPDrainValue",SP_SP_DRAIN_VALUE,false);
-	script_set_constant("bWeaponAtk",SP_WEAPON_ATK,false);
-	script_set_constant("bWeaponDamageRate",SP_WEAPON_DAMAGE_RATE,false);
-	script_set_constant("bDelayrate",SP_DELAYRATE,false);
-	script_set_constant("bHPDrainValueRace",SP_HP_DRAIN_VALUE_RACE,false);
-	script_set_constant("bSPDrainValueRace",SP_SP_DRAIN_VALUE_RACE,false);
-	script_set_constant("bIgnoreMdefRaceRate",SP_IGNORE_MDEF_RACE_RATE,false);
-	script_set_constant("bIgnoreDefRaceRate",SP_IGNORE_DEF_RACE_RATE,false);
-	script_set_constant("bSkillHeal2",SP_SKILL_HEAL2,false);
-	script_set_constant("bAddEffOnSkill",SP_ADDEFF_ONSKILL,false);
-	script_set_constant("bHealPower",SP_ADD_HEAL_RATE,false);
-	script_set_constant("bHealPower2",SP_ADD_HEAL2_RATE,false);
-
-	script_set_constant("bRestartFullRecover",SP_RESTART_FULL_RECOVER,false);
-	script_set_constant("bNoCastCancel",SP_NO_CASTCANCEL,false);
-	script_set_constant("bNoSizeFix",SP_NO_SIZEFIX,false);
-	script_set_constant("bNoMagicDamage",SP_NO_MAGIC_DAMAGE,false);
-	script_set_constant("bNoWeaponDamage",SP_NO_WEAPON_DAMAGE,false);
-	script_set_constant("bNoGemStone",SP_NO_GEMSTONE,false);
-	script_set_constant("bNoCastCancel2",SP_NO_CASTCANCEL2,false);
-	script_set_constant("bNoMiscDamage",SP_NO_MISC_DAMAGE,false);
-	script_set_constant("bUnbreakableWeapon",SP_UNBREAKABLE_WEAPON,false);
-	script_set_constant("bUnbreakableArmor",SP_UNBREAKABLE_ARMOR,false);
-	script_set_constant("bUnbreakableHelm",SP_UNBREAKABLE_HELM,false);
-	script_set_constant("bUnbreakableShield",SP_UNBREAKABLE_SHIELD,false);
-	script_set_constant("bLongAtkRate",SP_LONG_ATK_RATE,false);
-	script_set_constant("bCritAtkRate",SP_CRIT_ATK_RATE,false);
-	script_set_constant("bCriticalAddRace",SP_CRITICAL_ADDRACE,false);
-	script_set_constant("bNoRegen",SP_NO_REGEN,false);
-	script_set_constant("bAddEffWhenHit",SP_ADDEFF_WHENHIT,false);
-	script_set_constant("bAutoSpellWhenHit",SP_AUTOSPELL_WHENHIT,false);
-	script_set_constant("bSkillAtk",SP_SKILL_ATK,false);
-	script_set_constant("bUnstripable",SP_UNSTRIPABLE,false);
-	script_set_constant("bAutoSpellOnSkill",SP_AUTOSPELL_ONSKILL,false);
-	script_set_constant("bSPGainValue",SP_SP_GAIN_VALUE,false);
-	script_set_constant("bHPRegenRate",SP_HP_REGEN_RATE,false);
-	script_set_constant("bHPLossRate",SP_HP_LOSS_RATE,false);
-	script_set_constant("bAddRace2",SP_ADDRACE2,false);
-	script_set_constant("bHPGainValue",SP_HP_GAIN_VALUE,false);
-	script_set_constant("bSubSize",SP_SUBSIZE,false);
-	script_set_constant("bHPDrainValueClass",SP_HP_DRAIN_VALUE_CLASS,false);
-	script_set_constant("bAddItemHealRate",SP_ADD_ITEM_HEAL_RATE,false);
-	script_set_constant("bSPDrainValueClass",SP_SP_DRAIN_VALUE_CLASS,false);
-	script_set_constant("bExpAddRace",SP_EXP_ADDRACE,false);
-	script_set_constant("bSPGainRace",SP_SP_GAIN_RACE,false);
-	script_set_constant("bSubRace2",SP_SUBRACE2,false);
-	script_set_constant("bUnbreakableShoes",SP_UNBREAKABLE_SHOES,false);
-	script_set_constant("bUnstripableWeapon",SP_UNSTRIPABLE_WEAPON,false);
-	script_set_constant("bUnstripableArmor",SP_UNSTRIPABLE_ARMOR,false);
-	script_set_constant("bUnstripableHelm",SP_UNSTRIPABLE_HELM,false);
-	script_set_constant("bUnstripableShield",SP_UNSTRIPABLE_SHIELD,false);
-	script_set_constant("bIntravision",SP_INTRAVISION,false);
-	script_set_constant("bAddMonsterDropItemGroup",SP_ADD_MONSTER_DROP_ITEMGROUP,false);
-	script_set_constant("bSPLossRate",SP_SP_LOSS_RATE,false);
-	script_set_constant("bAddSkillBlow",SP_ADD_SKILL_BLOW,false);
-	script_set_constant("bSPVanishRate",SP_SP_VANISH_RATE,false);
-	script_set_constant("bMagicSPGainValue",SP_MAGIC_SP_GAIN_VALUE,false);
-	script_set_constant("bMagicHPGainValue",SP_MAGIC_HP_GAIN_VALUE,false);
-	script_set_constant("bAddMonsterIdDropItem",SP_ADD_MONSTER_ID_DROP_ITEM,false);
-	script_set_constant("bMatk",SP_EMATK,false);
-	script_set_constant("bComaClass",SP_COMA_CLASS,false);
-	script_set_constant("bComaRace",SP_COMA_RACE,false);
-	script_set_constant("bSkillUseSPrate",SP_SKILL_USE_SP_RATE,false);
-	script_set_constant("bSkillCooldown",SP_SKILL_COOLDOWN,false);
-	script_set_constant("bSkillFixedCast",SP_SKILL_FIXEDCAST,false);
-	script_set_constant("bSkillVariableCast",SP_SKILL_VARIABLECAST,false);
-	script_set_constant("bFixedCastrate",SP_FIXCASTRATE,false);
-	script_set_constant("bVariableCastrate",SP_VARCASTRATE,false);
-	script_set_constant("bSkillUseSP",SP_SKILL_USE_SP,false);
-	script_set_constant("bMagicAtkEle",SP_MAGIC_ATK_ELE,false);
-	script_set_constant("bFixedCast",SP_ADD_FIXEDCAST,false);
-	script_set_constant("bVariableCast",SP_ADD_VARIABLECAST,false);
-	script_set_constant("bSetDefRace",SP_SET_DEF_RACE,false);
-	script_set_constant("bSetMDefRace",SP_SET_MDEF_RACE,false);
-	script_set_constant("bHPVanishRate",SP_HP_VANISH_RATE,false);
-	script_set_constant("bIgnoreDefClass",SP_IGNORE_DEF_CLASS,false);
-	script_set_constant("bDefRatioAtkClass",SP_DEF_RATIO_ATK_CLASS,false);
-	script_set_constant("bAddClass",SP_ADDCLASS,false);
-	script_set_constant("bSubClass",SP_SUBCLASS,false);
-	script_set_constant("bMagicAddClass",SP_MAGIC_ADDCLASS,false);
-	script_set_constant("bWeaponComaClass",SP_WEAPON_COMA_CLASS,false);
-	script_set_constant("bIgnoreMdefClassRate",SP_IGNORE_MDEF_CLASS_RATE,false);
-	script_set_constant("bExpAddClass",SP_EXP_ADDCLASS,false);
-	script_set_constant("bAddClassDropItem",SP_ADD_CLASS_DROP_ITEM,false);
-	script_set_constant("bAddClassDropItemGroup",SP_ADD_CLASS_DROP_ITEMGROUP,false);
-	script_set_constant("bAddMaxWeight",SP_ADDMAXWEIGHT,false);
-	script_set_constant("bAddItemGroupHealRate",SP_ADD_ITEMGROUP_HEAL_RATE,false);
-	script_set_constant("bHPVanishRaceRate",SP_HP_VANISH_RACE_RATE,false);
-	script_set_constant("bSPVanishRaceRate",SP_SP_VANISH_RACE_RATE,false);
-	script_set_constant("bAbsorbDmgMaxHP",SP_ABSORB_DMG_MAXHP,false);
-	script_set_constant("bSubSkill",SP_SUB_SKILL,false);
-	script_set_constant("bSubDefEle",SP_SUBDEF_ELE,false);
-	script_set_constant("bStateNoRecoverRace",SP_STATE_NORECOVER_RACE,false);
-	script_set_constant("bCriticalLong",SP_CRITICAL_RANGEATK,false);
-	script_set_constant("bMagicAddRace2", SP_MAGIC_ADDRACE2, false);
-	script_set_constant("bIgnoreMdefRace2Rate", SP_IGNORE_MDEF_RACE2_RATE, false);
-	script_set_constant("bDropAddRace", SP_DROP_ADDRACE, false);
-	script_set_constant("bDropAddClass", SP_DROP_ADDCLASS, false);
-	script_set_constant("bNoMadoFuel", SP_NO_MADO_FUEL, false);
-	script_set_constant("bIgnoreDefClassRate", SP_IGNORE_DEF_CLASS_RATE, false);
-	script_set_constant("bRegenPercentHP", SP_REGEN_PERCENT_HP, false);
-	script_set_constant("bRegenPercentSP", SP_REGEN_PERCENT_SP, false);
+	export_parameter("StatusPoint",SP_STATUSPOINT);
+	export_parameter("BaseLevel",SP_BASELEVEL);
+	export_parameter("SkillPoint",SP_SKILLPOINT);
+	export_parameter("Class",SP_CLASS);
+	export_parameter("Upper",SP_UPPER);
+	export_parameter("Zeny",SP_ZENY);
+	export_parameter("Sex",SP_SEX);
+	export_parameter("Weight",SP_WEIGHT);
+	export_parameter("MaxWeight",SP_MAXWEIGHT);
+	export_parameter("JobLevel",SP_JOBLEVEL);
+	export_parameter("BaseExp",SP_BASEEXP);
+	export_parameter("JobExp",SP_JOBEXP);
+	export_parameter("Karma",SP_KARMA);
+	export_parameter("Manner",SP_MANNER);
+	export_parameter("NextBaseExp",SP_NEXTBASEEXP);
+	export_parameter("NextJobExp",SP_NEXTJOBEXP);
+	export_parameter("Hp",SP_HP);
+	export_parameter("MaxHp",SP_MAXHP);
+	export_parameter("Sp",SP_SP);
+	export_parameter("MaxSp",SP_MAXSP);
+	export_parameter("BaseJob",SP_BASEJOB);
+	export_parameter("BaseClass",SP_BASECLASS);
+	export_parameter("killerrid",SP_KILLERRID);
+	export_parameter("killedrid",SP_KILLEDRID);
+	export_parameter("Sitting",SP_SITTING);
+	export_parameter("CharMoves",SP_CHARMOVE);
+	export_parameter("CharRename",SP_CHARRENAME);
+	export_parameter("Font",SP_CHARFONT);
+	export_parameter("BankVault",SP_BANK_VAULT);
+	export_parameter(ROULETTE_BRONZE_VAR,SP_ROULETTE_BRONZE);
+	export_parameter(ROULETTE_SILVER_VAR,SP_ROULETTE_SILVER);
+	export_parameter(ROULETTE_GOLD_VAR,SP_ROULETTE_GOLD);
+
+	export_constant2("bMaxHP",SP_MAXHP);
+	export_constant2("bMaxSP",SP_MAXSP);
+	export_constant2("bStr",SP_STR);
+	export_constant2("bAgi",SP_AGI);
+	export_constant2("bVit",SP_VIT);
+	export_constant2("bInt",SP_INT);
+	export_constant2("bDex",SP_DEX);
+	export_constant2("bLuk",SP_LUK);
+	export_constant2("bAtk",SP_ATK1);
+	export_constant2("bAtk2",SP_ATK2);
+	export_constant2("bDef",SP_DEF1);
+	export_constant2("bDef2",SP_DEF2);
+	export_constant2("bMdef",SP_MDEF1);
+	export_constant2("bMdef2",SP_MDEF2);
+	export_constant2("bHit",SP_HIT);
+	export_constant2("bFlee",SP_FLEE1);
+	export_constant2("bFlee2",SP_FLEE2);
+	export_constant2("bCritical",SP_CRITICAL);
+	export_constant2("bAspd",SP_ASPD);
+	export_constant2("bFame",SP_FAME);
+	export_constant2("bUnbreakable",SP_UNBREAKABLE);
+
+	export_constant2("bAtkRange",SP_ATTACKRANGE);
+	export_constant2("bAtkEle",SP_ATKELE);
+	export_constant2("bDefEle",SP_DEFELE);
+	export_constant2("bCastrate",SP_CASTRATE);
+	export_constant2("bMaxHPrate",SP_MAXHPRATE);
+	export_constant2("bMaxSPrate",SP_MAXSPRATE);
+	export_constant2("bUseSPrate",SP_SPRATE);
+	export_constant2("bAddEle",SP_ADDELE);
+	export_constant2("bAddRace",SP_ADDRACE);
+	export_constant2("bAddSize",SP_ADDSIZE);
+	export_constant2("bSubEle",SP_SUBELE);
+	export_constant2("bSubRace",SP_SUBRACE);
+	export_constant2("bAddEff",SP_ADDEFF);
+	export_constant2("bResEff",SP_RESEFF);
+	export_constant2("bBaseAtk",SP_BASE_ATK);
+	export_constant2("bAspdRate",SP_ASPD_RATE);
+	export_constant2("bHPrecovRate",SP_HP_RECOV_RATE);
+	export_constant2("bSPrecovRate",SP_SP_RECOV_RATE);
+	export_constant2("bSpeedRate",SP_SPEED_RATE);
+	export_constant2("bCriticalDef",SP_CRITICAL_DEF);
+	export_constant2("bNearAtkDef",SP_NEAR_ATK_DEF);
+	export_constant2("bLongAtkDef",SP_LONG_ATK_DEF);
+	export_constant2("bDoubleRate",SP_DOUBLE_RATE);
+	export_constant2("bDoubleAddRate",SP_DOUBLE_ADD_RATE);
+	export_constant2("bSkillHeal",SP_SKILL_HEAL);
+	export_constant2("bMatkRate",SP_MATK_RATE);
+	export_constant2("bWeaponMatkRate",SP_WEAPON_MATK_RATE);
+	export_constant2("bIgnoreDefEle",SP_IGNORE_DEF_ELE);
+	export_constant2("bIgnoreDefRace",SP_IGNORE_DEF_RACE);
+	export_constant2("bAtkRate",SP_ATK_RATE);
+	export_constant2("bWeaponAtkRate",SP_WEAPON_ATK_RATE);
+	export_constant2("bSpeedAddRate",SP_SPEED_ADDRATE);
+	export_constant2("bSPRegenRate",SP_SP_REGEN_RATE);
+	export_constant2("bMagicAtkDef",SP_MAGIC_ATK_DEF);
+	export_constant2("bMiscAtkDef",SP_MISC_ATK_DEF);
+	export_constant2("bIgnoreMdefEle",SP_IGNORE_MDEF_ELE);
+	export_constant2("bIgnoreMdefRace",SP_IGNORE_MDEF_RACE);
+	export_constant2("bMagicAddEle",SP_MAGIC_ADDELE);
+	export_constant2("bMagicAddRace",SP_MAGIC_ADDRACE);
+	export_constant2("bMagicAddSize",SP_MAGIC_ADDSIZE);
+	export_constant2("bPerfectHitRate",SP_PERFECT_HIT_RATE);
+	export_constant2("bPerfectHitAddRate",SP_PERFECT_HIT_ADD_RATE);
+	export_constant2("bCriticalRate",SP_CRITICAL_RATE);
+	export_constant2("bGetZenyNum",SP_GET_ZENY_NUM);
+	export_constant2("bAddGetZenyNum",SP_ADD_GET_ZENY_NUM);
+	export_constant2("bAddDamageClass",SP_ADD_DAMAGE_CLASS);
+	export_constant2("bAddMagicDamageClass",SP_ADD_MAGIC_DAMAGE_CLASS);
+	export_constant2("bAddDefMonster",SP_ADD_DEF_MONSTER);
+	export_constant2("bAddMdefMonster",SP_ADD_MDEF_MONSTER);
+	export_constant2("bAddMonsterDropItem",SP_ADD_MONSTER_DROP_ITEM);
+	export_constant2("bDefRatioAtkEle",SP_DEF_RATIO_ATK_ELE);
+	export_constant2("bDefRatioAtkRace",SP_DEF_RATIO_ATK_RACE);
+	export_constant2("bUnbreakableGarment",SP_UNBREAKABLE_GARMENT);
+	export_constant2("bHitRate",SP_HIT_RATE);
+	export_constant2("bFleeRate",SP_FLEE_RATE);
+	export_constant2("bFlee2Rate",SP_FLEE2_RATE);
+	export_constant2("bDefRate",SP_DEF_RATE);
+	export_constant2("bDef2Rate",SP_DEF2_RATE);
+	export_constant2("bMdefRate",SP_MDEF_RATE);
+	export_constant2("bMdef2Rate",SP_MDEF2_RATE);
+	export_constant2("bSplashRange",SP_SPLASH_RANGE);
+	export_constant2("bSplashAddRange",SP_SPLASH_ADD_RANGE);
+	export_constant2("bAutoSpell",SP_AUTOSPELL);
+	export_constant2("bHPDrainRate",SP_HP_DRAIN_RATE);
+	export_constant2("bSPDrainRate",SP_SP_DRAIN_RATE);
+	export_constant2("bShortWeaponDamageReturn",SP_SHORT_WEAPON_DAMAGE_RETURN);
+	export_constant2("bLongWeaponDamageReturn",SP_LONG_WEAPON_DAMAGE_RETURN);
+	export_constant2("bWeaponComaEle",SP_WEAPON_COMA_ELE);
+	export_constant2("bWeaponComaRace",SP_WEAPON_COMA_RACE);
+	export_constant2("bAddEff2",SP_ADDEFF2);
+	export_constant2("bBreakWeaponRate",SP_BREAK_WEAPON_RATE);
+	export_constant2("bBreakArmorRate",SP_BREAK_ARMOR_RATE);
+	export_constant2("bAddStealRate",SP_ADD_STEAL_RATE);
+	export_constant2("bMagicDamageReturn",SP_MAGIC_DAMAGE_RETURN);
+	export_constant2("bAllStats",SP_ALL_STATS);
+	export_constant2("bAgiVit",SP_AGI_VIT);
+	export_constant2("bAgiDexStr",SP_AGI_DEX_STR);
+	export_constant2("bPerfectHide",SP_PERFECT_HIDE);
+	export_constant2("bNoKnockback",SP_NO_KNOCKBACK);
+	export_constant2("bClassChange",SP_CLASSCHANGE);
+	export_constant2("bHPDrainValue",SP_HP_DRAIN_VALUE);
+	export_constant2("bSPDrainValue",SP_SP_DRAIN_VALUE);
+	export_constant2("bWeaponAtk",SP_WEAPON_ATK);
+	export_constant2("bWeaponDamageRate",SP_WEAPON_DAMAGE_RATE);
+	export_constant2("bDelayrate",SP_DELAYRATE);
+	export_constant2("bHPDrainValueRace",SP_HP_DRAIN_VALUE_RACE);
+	export_constant2("bSPDrainValueRace",SP_SP_DRAIN_VALUE_RACE);
+	export_constant2("bIgnoreMdefRaceRate",SP_IGNORE_MDEF_RACE_RATE);
+	export_constant2("bIgnoreDefRaceRate",SP_IGNORE_DEF_RACE_RATE);
+	export_constant2("bSkillHeal2",SP_SKILL_HEAL2);
+	export_constant2("bAddEffOnSkill",SP_ADDEFF_ONSKILL);
+	export_constant2("bHealPower",SP_ADD_HEAL_RATE);
+	export_constant2("bHealPower2",SP_ADD_HEAL2_RATE);
+
+	export_constant2("bRestartFullRecover",SP_RESTART_FULL_RECOVER);
+	export_constant2("bNoCastCancel",SP_NO_CASTCANCEL);
+	export_constant2("bNoSizeFix",SP_NO_SIZEFIX);
+	export_constant2("bNoMagicDamage",SP_NO_MAGIC_DAMAGE);
+	export_constant2("bNoWeaponDamage",SP_NO_WEAPON_DAMAGE);
+	export_constant2("bNoGemStone",SP_NO_GEMSTONE);
+	export_constant2("bNoCastCancel2",SP_NO_CASTCANCEL2);
+	export_constant2("bNoMiscDamage",SP_NO_MISC_DAMAGE);
+	export_constant2("bUnbreakableWeapon",SP_UNBREAKABLE_WEAPON);
+	export_constant2("bUnbreakableArmor",SP_UNBREAKABLE_ARMOR);
+	export_constant2("bUnbreakableHelm",SP_UNBREAKABLE_HELM);
+	export_constant2("bUnbreakableShield",SP_UNBREAKABLE_SHIELD);
+	export_constant2("bLongAtkRate",SP_LONG_ATK_RATE);
+	export_constant2("bCritAtkRate",SP_CRIT_ATK_RATE);
+	export_constant2("bCriticalAddRace",SP_CRITICAL_ADDRACE);
+	export_constant2("bNoRegen",SP_NO_REGEN);
+	export_constant2("bAddEffWhenHit",SP_ADDEFF_WHENHIT);
+	export_constant2("bAutoSpellWhenHit",SP_AUTOSPELL_WHENHIT);
+	export_constant2("bSkillAtk",SP_SKILL_ATK);
+	export_constant2("bUnstripable",SP_UNSTRIPABLE);
+	export_constant2("bAutoSpellOnSkill",SP_AUTOSPELL_ONSKILL);
+	export_constant2("bSPGainValue",SP_SP_GAIN_VALUE);
+	export_constant2("bHPRegenRate",SP_HP_REGEN_RATE);
+	export_constant2("bHPLossRate",SP_HP_LOSS_RATE);
+	export_constant2("bAddRace2",SP_ADDRACE2);
+	export_constant2("bHPGainValue",SP_HP_GAIN_VALUE);
+	export_constant2("bSubSize",SP_SUBSIZE);
+	export_constant2("bHPDrainValueClass",SP_HP_DRAIN_VALUE_CLASS);
+	export_constant2("bAddItemHealRate",SP_ADD_ITEM_HEAL_RATE);
+	export_constant2("bSPDrainValueClass",SP_SP_DRAIN_VALUE_CLASS);
+	export_constant2("bExpAddRace",SP_EXP_ADDRACE);
+	export_constant2("bSPGainRace",SP_SP_GAIN_RACE);
+	export_constant2("bSubRace2",SP_SUBRACE2);
+	export_constant2("bUnbreakableShoes",SP_UNBREAKABLE_SHOES);
+	export_constant2("bUnstripableWeapon",SP_UNSTRIPABLE_WEAPON);
+	export_constant2("bUnstripableArmor",SP_UNSTRIPABLE_ARMOR);
+	export_constant2("bUnstripableHelm",SP_UNSTRIPABLE_HELM);
+	export_constant2("bUnstripableShield",SP_UNSTRIPABLE_SHIELD);
+	export_constant2("bIntravision",SP_INTRAVISION);
+	export_constant2("bAddMonsterDropItemGroup",SP_ADD_MONSTER_DROP_ITEMGROUP);
+	export_constant2("bSPLossRate",SP_SP_LOSS_RATE);
+	export_constant2("bAddSkillBlow",SP_ADD_SKILL_BLOW);
+	export_constant2("bSPVanishRate",SP_SP_VANISH_RATE);
+	export_constant2("bMagicSPGainValue",SP_MAGIC_SP_GAIN_VALUE);
+	export_constant2("bMagicHPGainValue",SP_MAGIC_HP_GAIN_VALUE);
+	export_constant2("bAddMonsterIdDropItem",SP_ADD_MONSTER_ID_DROP_ITEM);
+	export_constant2("bMatk",SP_EMATK);
+	export_constant2("bComaClass",SP_COMA_CLASS);
+	export_constant2("bComaRace",SP_COMA_RACE);
+	export_constant2("bSkillUseSPrate",SP_SKILL_USE_SP_RATE);
+	export_constant2("bSkillCooldown",SP_SKILL_COOLDOWN);
+	export_constant2("bSkillFixedCast",SP_SKILL_FIXEDCAST);
+	export_constant2("bSkillVariableCast",SP_SKILL_VARIABLECAST);
+	export_constant2("bFixedCastrate",SP_FIXCASTRATE);
+	export_constant2("bVariableCastrate",SP_VARCASTRATE);
+	export_constant2("bSkillUseSP",SP_SKILL_USE_SP);
+	export_constant2("bMagicAtkEle",SP_MAGIC_ATK_ELE);
+	export_constant2("bFixedCast",SP_ADD_FIXEDCAST);
+	export_constant2("bVariableCast",SP_ADD_VARIABLECAST);
+	export_constant2("bSetDefRace",SP_SET_DEF_RACE);
+	export_constant2("bSetMDefRace",SP_SET_MDEF_RACE);
+	export_constant2("bHPVanishRate",SP_HP_VANISH_RATE);
+	export_constant2("bIgnoreDefClass",SP_IGNORE_DEF_CLASS);
+	export_constant2("bDefRatioAtkClass",SP_DEF_RATIO_ATK_CLASS);
+	export_constant2("bAddClass",SP_ADDCLASS);
+	export_constant2("bSubClass",SP_SUBCLASS);
+	export_constant2("bMagicAddClass",SP_MAGIC_ADDCLASS);
+	export_constant2("bWeaponComaClass",SP_WEAPON_COMA_CLASS);
+	export_constant2("bIgnoreMdefClassRate",SP_IGNORE_MDEF_CLASS_RATE);
+	export_constant2("bExpAddClass",SP_EXP_ADDCLASS);
+	export_constant2("bAddClassDropItem",SP_ADD_CLASS_DROP_ITEM);
+	export_constant2("bAddClassDropItemGroup",SP_ADD_CLASS_DROP_ITEMGROUP);
+	export_constant2("bAddMaxWeight",SP_ADDMAXWEIGHT);
+	export_constant2("bAddItemGroupHealRate",SP_ADD_ITEMGROUP_HEAL_RATE);
+	export_constant2("bHPVanishRaceRate",SP_HP_VANISH_RACE_RATE);
+	export_constant2("bSPVanishRaceRate",SP_SP_VANISH_RACE_RATE);
+	export_constant2("bAbsorbDmgMaxHP",SP_ABSORB_DMG_MAXHP);
+	export_constant2("bSubSkill",SP_SUB_SKILL);
+	export_constant2("bSubDefEle",SP_SUBDEF_ELE);
+	export_constant2("bStateNoRecoverRace",SP_STATE_NORECOVER_RACE);
+	export_constant2("bCriticalLong",SP_CRITICAL_RANGEATK);
+	export_constant2("bMagicAddRace2", SP_MAGIC_ADDRACE2);
+	export_constant2("bIgnoreMdefRace2Rate", SP_IGNORE_MDEF_RACE2_RATE);
+	export_constant2("bDropAddRace", SP_DROP_ADDRACE);
+	export_constant2("bDropAddClass", SP_DROP_ADDCLASS);
+	export_constant2("bNoMadoFuel", SP_NO_MADO_FUEL);
+	export_constant2("bIgnoreDefClassRate", SP_IGNORE_DEF_CLASS_RATE);
+	export_constant2("bRegenPercentHP", SP_REGEN_PERCENT_HP);
+	export_constant2("bRegenPercentSP", SP_REGEN_PERCENT_SP);
 
 	/* equip indices */
 	export_constant(EQI_HEAD_TOP);
@@ -772,33 +774,33 @@
 	//export_constant(LOOK_FLOOR);
 
 	// For backwards compatability - might be removed in the near future
-	script_set_constant("VAR_HEAD",LOOK_HAIR,false);
-	script_set_constant("VAR_WEAPON",LOOK_WEAPON,false);
-	script_set_constant("VAR_HEAD_TOP",LOOK_HEAD_TOP,false); // This one was actually pointing to LOOK_HEAD_BOTTOM until now, so we might be safe to remove them anyway(since we got no bug report until today)
-	script_set_constant("VAR_HEAD_MID",LOOK_HEAD_MID,false); // This one was actually pointing to LOOK_HEAD_TOP until now, so we might be safe to remove them anyway(since we got no bug report until today)
-	script_set_constant("VAR_HEAD_BOTTOM",LOOK_HEAD_BOTTOM,false);  // This one was actually pointing to LOOK_HEAD_MID until now, so we might be safe to remove them anyway(since we got no bug report until today)
-	script_set_constant("VAR_HEADPALETTE",LOOK_HAIR_COLOR,false);
-	script_set_constant("VAR_BODYPALETTE",LOOK_CLOTHES_COLOR,false);
-	script_set_constant("VAR_SHIELD",LOOK_SHIELD,false);
-	script_set_constant("VAR_SHOES",LOOK_SHOES,false);
+	export_constant2("VAR_HEAD",LOOK_HAIR);
+	export_constant2("VAR_WEAPON",LOOK_WEAPON);
+	export_constant2("VAR_HEAD_TOP",LOOK_HEAD_TOP); // This one was actually pointing to LOOK_HEAD_BOTTOM until now, so we might be safe to remove them anyway(since we got no bug report until today)
+	export_constant2("VAR_HEAD_MID",LOOK_HEAD_MID); // This one was actually pointing to LOOK_HEAD_TOP until now, so we might be safe to remove them anyway(since we got no bug report until today)
+	export_constant2("VAR_HEAD_BOTTOM",LOOK_HEAD_BOTTOM);  // This one was actually pointing to LOOK_HEAD_MID until now, so we might be safe to remove them anyway(since we got no bug report until today)
+	export_constant2("VAR_HEADPALETTE",LOOK_HAIR_COLOR);
+	export_constant2("VAR_BODYPALETTE",LOOK_CLOTHES_COLOR);
+	export_constant2("VAR_SHIELD",LOOK_SHIELD);
+	export_constant2("VAR_SHOES",LOOK_SHOES);
 
 	/* status changes */
-	script_set_constant("Eff_Stone",SC_STONE,false);
-	script_set_constant("Eff_Freeze",SC_FREEZE,false);
-	script_set_constant("Eff_Stun",SC_STUN,false);
-	script_set_constant("Eff_Sleep",SC_SLEEP,false);
-	script_set_constant("Eff_Poison",SC_POISON,false);
-	script_set_constant("Eff_Curse",SC_CURSE,false);
-	script_set_constant("Eff_Silence",SC_SILENCE,false);
-	script_set_constant("Eff_Confusion",SC_CONFUSION,false);
-	script_set_constant("Eff_Blind",SC_BLIND,false);
-	script_set_constant("Eff_Bleeding",SC_BLEEDING,false);
-	script_set_constant("Eff_DPoison",SC_DPOISON,false);
-	script_set_constant("Eff_Fear",SC_FEAR,false);
-	script_set_constant("Eff_Burning",SC_BURNING,false);
-	script_set_constant("Eff_Crystalize",SC_CRYSTALIZE,false);
-
-	script_set_constant("SC_ALL",SC_NONE,false);
+	export_constant2("Eff_Stone",SC_STONE);
+	export_constant2("Eff_Freeze",SC_FREEZE);
+	export_constant2("Eff_Stun",SC_STUN);
+	export_constant2("Eff_Sleep",SC_SLEEP);
+	export_constant2("Eff_Poison",SC_POISON);
+	export_constant2("Eff_Curse",SC_CURSE);
+	export_constant2("Eff_Silence",SC_SILENCE);
+	export_constant2("Eff_Confusion",SC_CONFUSION);
+	export_constant2("Eff_Blind",SC_BLIND);
+	export_constant2("Eff_Bleeding",SC_BLEEDING);
+	export_constant2("Eff_DPoison",SC_DPOISON);
+	export_constant2("Eff_Fear",SC_FEAR);
+	export_constant2("Eff_Burning",SC_BURNING);
+	export_constant2("Eff_Crystalize",SC_CRYSTALIZE);
+
+	export_constant2("SC_ALL",SC_NONE);
 
 	export_constant(SC_NONE);
 	export_constant(SC_STONE);
@@ -2567,10 +2569,10 @@
 	export_constant(CLASS_ALL);
 
 	/* sizes */
-	script_set_constant("Size_Small",SZ_SMALL,false);
-	script_set_constant("Size_Medium",SZ_MEDIUM,false);
-	script_set_constant("Size_Large",SZ_BIG,false);
-	script_set_constant("Size_All",SZ_ALL,false);
+	export_constant2("Size_Small",SZ_SMALL);
+	export_constant2("Size_Medium",SZ_MEDIUM);
+	export_constant2("Size_Large",SZ_BIG);
+	export_constant2("Size_All",SZ_ALL);
 
 	/* ai */
 	export_constant(AI_NONE);
@@ -2599,7 +2601,7 @@
 	export_constant(ATF_MAGIC);
 	export_constant(ATF_MISC);
 	// TODO: Check why this was in const.txt, but not on source side
-	script_set_constant("ATF_SKILL",ATF_MAGIC|ATF_MISC,false);
+	export_constant2("ATF_SKILL",ATF_MAGIC|ATF_MISC);
 
 	/* emoticons */
 	export_constant(E_GASP);
@@ -2824,13 +2826,13 @@
 	export_constant(PETINFO_BLOCKID);
 
 	// For backwards compatability - might be removed in the near future
-	script_set_constant("PET_ID",PETINFO_ID,false);
-	script_set_constant("PET_CLASS",PETINFO_CLASS,false);
-	script_set_constant("PET_NAME",PETINFO_NAME,false);
-	script_set_constant("PET_INTIMATE",PETINFO_INTIMATE,false);
-	script_set_constant("PET_HUNGRY",PETINFO_HUNGRY,false);
-	script_set_constant("PET_RENAMED",PETINFO_RENAMED,false);
-	script_set_constant("PET_LEVEL",PETINFO_LEVEL,false);
+	export_constant2("PET_ID",PETINFO_ID);
+	export_constant2("PET_CLASS",PETINFO_CLASS);
+	export_constant2("PET_NAME",PETINFO_NAME);
+	export_constant2("PET_INTIMATE",PETINFO_INTIMATE);
+	export_constant2("PET_HUNGRY",PETINFO_HUNGRY);
+	export_constant2("PET_RENAMED",PETINFO_RENAMED);
+	export_constant2("PET_LEVEL",PETINFO_LEVEL);
 
 	/* questinfo types */
 	export_constant(QTYPE_QUEST);
@@ -2856,10 +2858,10 @@
 	export_constant(FW_HEAVY);
 
 	/* add skill types */
-	script_set_constant("SKILL_PERM",ADDSKILL_PERMANENT,false);
-	script_set_constant("SKILL_TEMP",ADDSKILL_TEMP,false);
-	script_set_constant("SKILL_TEMPLEVEL",ADDSKILL_TEMP_ADDLEVEL,false);
-	script_set_constant("SKILL_PERM_GRANT",ADDSKILL_PERMANENT_GRANTED,false);
+	export_constant2("SKILL_PERM",ADDSKILL_PERMANENT);
+	export_constant2("SKILL_TEMP",ADDSKILL_TEMP);
+	export_constant2("SKILL_TEMPLEVEL",ADDSKILL_TEMP_ADDLEVEL);
+	export_constant2("SKILL_PERM_GRANT",ADDSKILL_PERMANENT_GRANTED);
 
 	/* bonus script flags */
 	export_constant(BSF_REM_ON_DEAD);
@@ -3781,5 +3783,7 @@
 	export_constant(IG_MERCENARY);
 
 	#undef export_constant
+	#undef export_constant2
+	#undef export_parameter
 
 #endif /* _SCRIPT_CONSTANTS_H_ */