Index: src/common/mmo.h
===================================================================
--- src/common/mmo.h (revision 22)
+++ src/common/mmo.h (revision 23)
@@ -31,5 +31,5 @@
 #define MAX_FAME 1000000000
 #define MAX_CART 100
-#define MAX_SKILL 1600 // Bumped to 1100 for new quest skills, will need to further increase one day... [DracoRPG]
+#define MAX_SKILL 1600 //1600 now, for necromancer skills overstepping bounds.
 #define GLOBAL_REG_NUM 96
 #define ACCOUNT_REG_NUM 64
Index: src/map/script.c
===================================================================
--- src/map/script.c (revision 1)
+++ src/map/script.c (revision 23)
@@ -329,7 +329,7 @@
 	MF_NOCHAT,
 	MF_NOEXPPENALTY,
-	MF_GUILDLOCK,
-	MF_HOSTILE
+	MF_GUILDLOCK
 };
+
 const char* script_op2name(int op)
 {
@@ -4324,6 +4324,5 @@
 		return 0;
 
-	map_foreachinarea(buildin_areawarp_sub,
-		m,x0,y0,x1,y1,BL_PC,	index,x,y );
+	map_foreachinarea(buildin_areawarp_sub, m,x0,y0,x1,y1,BL_PC, index,x,y);
 	return 0;
 }
@@ -7571,6 +7570,5 @@
 	}
 		
-	map_foreachinmap(buildin_killmonsterall_sub_strip,
-		m,BL_MOB);
+	map_foreachinmap(buildin_killmonsterall_sub_strip,m,BL_MOB);
 	return 0;
 }
@@ -9029,5 +9027,4 @@
 			case MF_PARTYLOCK:		script_pushint(st,map[m].flag.partylock); break;
 			case MF_GUILDLOCK:		script_pushint(st,map[m].flag.guildlock); break;
-			case MF_HOSTILE:		script_pushint(st,map[m].flag.hostile); break;//Sketchy
 		}
 	}
@@ -9094,5 +9091,4 @@
 			case MF_PARTYLOCK:     map[m].flag.partylock=1; break;
 			case MF_GUILDLOCK:     map[m].flag.guildlock=1; break;
-			case MF_HOSTILE:		map[m].flag.hostile=1; break;//Sketchy
 		}
 	}
@@ -9156,5 +9152,4 @@
 			case MF_PARTYLOCK:     map[m].flag.partylock=0; break;
 			case MF_GUILDLOCK:     map[m].flag.guildlock=0; break;
-			case MF_HOSTILE:		map[m].flag.hostile=0; break;//Sketchy
 		}
 	}
@@ -11810,8 +11805,8 @@
 	data = script_getdata(st,3);
 
+	if( script_hasdata(st,4) )
+		class_ = script_getnum(st,4);
 	if( script_hasdata(st,5) )
 		size = script_getnum(st,5);
-	if( script_hasdata(st,4) )
-		class_ = script_getnum(st,4);
 
 	get_val(st, data);
@@ -12150,5 +12145,6 @@
 		flag = script_getnum(st,3);
 	nd = npc_name2id(shopname);
-	if (!nd || nd->bl.type!=BL_NPC || nd->subtype!=SHOP) {
+	if( !nd || nd->bl.type != BL_NPC || (nd->subtype != SHOP && nd->subtype != CASHSHOP) )
+	{
 		ShowError("buildin_callshop: Shop [%s] not found (or NPC is not shop type)\n", shopname);
 		script_pushint(st,0);
@@ -12156,15 +12152,16 @@
 	}
 	
-	switch (flag) {
-		case 1: //Buy window
-			npc_buysellsel(sd,nd->bl.id,0);
-		break;
-		case 2: //Sell window
-			npc_buysellsel(sd,nd->bl.id,1);
-		break;
-		default: //Show menu
-			clif_npcbuysell(sd,nd->bl.id);
-		break;
-	}
+	if( nd->subtype == SHOP )
+	{
+		switch( flag )
+		{
+			case 1: npc_buysellsel(sd,nd->bl.id,0); break; //Buy window
+			case 2: npc_buysellsel(sd,nd->bl.id,1); break; //Sell window
+			default: clif_npcbuysell(sd,nd->bl.id); break; //Show menu
+		}
+	}
+	else
+		clif_cashshop_show(sd, nd);
+
 	sd->npc_shopid = nd->bl.id;
 	script_pushint(st,1);
@@ -13381,47 +13378,4 @@
 }
 
-/// Changes invoking character to alliance [sketchy]
-/// usage: alliance;
-BUILDIN_FUNC(god)
-{
-TBL_PC* sd;
-sd = script_rid2sd(st);
-if( sd == NULL )
-return 0;
-
-sd->state.demon = 0;
-sd->state.god = 1;
-return 0;
-}
-
-/// Changes invoking character to horde [sketchy]
-/// usage: horde;
-BUILDIN_FUNC(demon)
-{
-TBL_PC* sd;
-
-sd = script_rid2sd(st);
-if( sd == NULL )
-return 0;
-
-sd->state.god = 0;
-sd->state.demon = 1;
-return 0;
-}
-
-/// Clears faction [sketchy]
-/// usage: factionclear;
-BUILDIN_FUNC(factionclear)
-{
-TBL_PC* sd;
-
-sd = script_rid2sd(st);
-if( sd == NULL )
-return 0;
-
-sd->state.god = 0;
-sd->state.demon = 0;
-return 0;
-}
 
 // declarations that were supposed to be exported from npc_chat.c
@@ -13697,5 +13651,5 @@
 	BUILDIN_DEF(getstrlen,"s"), //strlen [Valaris]
 	BUILDIN_DEF(charisalpha,"si"), //isalpha [Valaris]
-	BUILDIN_DEF(setnpcdisplay,"sv?"),
+	BUILDIN_DEF(setnpcdisplay,"sv??"),
 	BUILDIN_DEF(compare,"ss"), // Lordalfa - To bring strstr to scripting Engine.
 	BUILDIN_DEF(getiteminfo,"ii"), //[Lupus] returns Items Buy / sell Price, etc info
@@ -13774,7 +13728,4 @@
 	BUILDIN_DEF(setquestobjective, "iisi"),
 	BUILDIN_DEF(setqueststatus, "ii"),
-	BUILDIN_DEF(god,""), // sets invoking character to alliance [Sketchy]
-	BUILDIN_DEF(demon,""), // sets invoking character to horde [Sketchy]
-	BUILDIN_DEF(factionclear,""), // clears invoking character's factions [Sketchy]
 	BUILDIN_DEF(hasquest, "i"),
 	{NULL,NULL,NULL},
Index: src/map/skill.c
===================================================================
--- src/map/skill.c (revision 22)
+++ src/map/skill.c (revision 23)
@@ -42,5 +42,5 @@
 #define GD_SKILLRANGEMIN 900
 #define GD_SKILLRANGEMAX GD_SKILLRANGEMIN+MAX_GUILDSKILL
-#define HM_SKILLRANGEMIN 1100
+#define HM_SKILLRANGEMIN 1000
 #define HM_SKILLRANGEMAX HM_SKILLRANGEMIN+MAX_HOMUNSKILL
 
Index: src/map/npc.c
===================================================================
--- src/map/npc.c (revision 1)
+++ src/map/npc.c (revision 23)
@@ -783,5 +783,5 @@
 int npc_touch_areanpc2(struct mob_data *md)
 {
-	int i, m = md->bl.m, x = md->bl.x, y = md->bl.y;
+	int i, m = md->bl.m, x = md->bl.x, y = md->bl.y, id;
 	char eventname[NAME_LENGTH*2+3];
 	struct event_data* ev;
@@ -827,5 +827,7 @@
 						break; // No OnTouchNPC Event
 					md->areanpc_id = map[m].npc[i]->bl.id;
+					id = md->bl.id; // Stores Unique ID
 					run_script(ev->nd->u.scr.script, ev->pos, md->bl.id, ev->nd->bl.id);
+					if( map_id2md(id) == NULL ) return 1; // Not Warped, but killed
 					break;
 			}
@@ -2062,14 +2064,14 @@
 	switch(nd->subtype)
 	{
-		case WARP:
-			xs = nd->u.warp.xs;
-			ys = nd->u.warp.ys;
-			break;
-		case SCRIPT:
-			xs = nd->u.scr.xs;
-			ys = nd->u.scr.ys;
-			break;
-                default:
-			return; // Other types doesn't have touch area
+	case WARP:
+		xs = nd->u.warp.xs;
+		ys = nd->u.warp.ys;
+		break;
+	case SCRIPT:
+		xs = nd->u.scr.xs;
+		ys = nd->u.scr.ys;
+		break;
+	default:
+		return; // Other types doesn't have touch area
 	}
 
@@ -2625,6 +2627,4 @@
 	else if (!strcmpi(w3,"guildlock"))
 		map[m].flag.guildlock=state;
-	else if (!strcmpi(w3,"hostile"))
-	map[m].flag.hostile=state;//Sketchy
 	else
 		ShowError("npc_parse_mapflag: unrecognized mapflag '%s' (file '%s', line '%d').\n", w3, filepath, strline(buffer,start-buffer));
@@ -2900,5 +2900,5 @@
 		"\t-'"CL_WHITE"%d"CL_RESET"' Shops\n"
 		"\t-'"CL_WHITE"%d"CL_RESET"' Scripts\n"
-		"\t-'"CL_WHITE"%d"CL_RESET"' Mob sets\n"
+		"\t-'"CL_WHITE"%d"CL_RESET"' Spawn sets\n"
 		"\t-'"CL_WHITE"%d"CL_RESET"' Mobs Cached\n"
 		"\t-'"CL_WHITE"%d"CL_RESET"' Mobs Not Cached\n",
@@ -3011,5 +3011,5 @@
 		"\t-'"CL_WHITE"%d"CL_RESET"' Shops\n"
 		"\t-'"CL_WHITE"%d"CL_RESET"' Scripts\n"
-		"\t-'"CL_WHITE"%d"CL_RESET"' Mob sets\n"
+		"\t-'"CL_WHITE"%d"CL_RESET"' Spawn sets\n"
 		"\t-'"CL_WHITE"%d"CL_RESET"' Mobs Cached\n"
 		"\t-'"CL_WHITE"%d"CL_RESET"' Mobs Not Cached\n",
