Index: /charserv-sql.bat
===================================================================
--- /charserv-sql.bat (revision 1)
+++ /charserv-sql.bat (revision 1)
@@ -0,0 +1,9 @@
+@echo off
+rem Writen by Jbain
+:end
+char-server_sql.exe
+echo .
+echo .
+echo Char server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
+PING -n 15 127.0.0.1 >nul
+goto end
Index: /mapserv-sql.bat
===================================================================
--- /mapserv-sql.bat (revision 1)
+++ /mapserv-sql.bat (revision 1)
@@ -0,0 +1,9 @@
+@echo off
+rem Writen by Jbain
+:end
+map-server_sql.exe
+echo .
+echo .
+echo Map server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
+PING -n 15 127.0.0.1 >nul
+goto end
Index: /charserv.bat
===================================================================
--- /charserv.bat (revision 1)
+++ /charserv.bat (revision 1)
@@ -0,0 +1,9 @@
+@echo off
+rem Writen by Jbain
+:end
+char-server.exe
+echo .
+echo .
+echo Char server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
+PING -n 15 127.0.0.1 >nul
+goto end
Index: /mapserv.bat
===================================================================
--- /mapserv.bat (revision 1)
+++ /mapserv.bat (revision 1)
@@ -0,0 +1,9 @@
+@echo off
+rem Writen by Jbain
+:end
+map-server.exe
+echo .
+echo .
+echo Map server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
+PING -n 15 127.0.0.1 >nul
+goto end
Index: /logserv-sql.bat
===================================================================
--- /logserv-sql.bat (revision 1)
+++ /logserv-sql.bat (revision 1)
@@ -0,0 +1,9 @@
+@echo off
+rem Writen by Jbain
+:end
+login-server_sql.exe
+echo .
+echo .
+echo Login server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
+PING -n 15 127.0.0.1 >nul
+goto end
Index: /login-server.sh
===================================================================
--- /login-server.sh (revision 1)
+++ /login-server.sh (revision 1)
@@ -0,0 +1,16 @@
+#/bin/sh
+#Hi my naem is Kirt and I liek anime
+
+ulimit -Sc unlimited
+
+while [ 2 ] ; do
+if [ -f .stopserver2 ] ; then
+echo server marked down >> servlog.txt
+else
+echo restarting server at time at `date +"%m-%d-%H:%M-%S"`>> startlog.txt
+./login-server
+fi
+
+sleep 5
+
+done
Index: /conf/motd.txt
===================================================================
--- /conf/motd.txt (revision 4)
+++ /conf/motd.txt (revision 1)
@@ -1,2 +1,2 @@
-This is the alpha testing phase of Black Magic. Please refer to project-ruin.com for any information.
-If you should encounter a problem please report it on the forum.
+// Internal default is limited to 128 lines.  If you need more, you will need to modify the MOTD_LINE_SIZE definition in pc.c
+Welcome to eAthena SVN Version! Enjoy! Please report any bugs you find.
Index: /db/item_db.txt
===================================================================
--- /db/item_db.txt (revision 21)
+++ /db/item_db.txt (revision 1)
@@ -618,5 +618,5 @@
 1269,Inverse_Scale,Inverse Scale,4,,10,1500,140,,1,0,0x00001000,2,2,34,4,55,1,16,{ bonus bAtkEle,Ele_Holy; bonus3 bAutoSpell,"NPC_DRAGONFEAR",1,30; },{},{}
 1270,Drill_Katar,Drill Katar,4,,10,1400,110,,1,1,0x00001000,2,2,34,4,55,1,16,{ bonus bHit,30; bonus3 bAutoSpell,"ST_FULLSTRIP",1,150; },{},{}
-1271,Blood_Tears,Blood Tears,4,,10,1700,120,,1,2,0x00001000,2,2,34,4,55,1,16,{ if(getrefine() >= 9){ bonus3 bAutoSpell,"NPC_WIDEBLEEDING",2,30; } else bonus3 bAutoSpell,"NPC_WIDEBLEEDING",1,30; },{},{}
+1271,Blood_Tears,Blood Tears,4,,10,1700,120,,1,2,0x00001000,2,2,34,4,55,1,16,{ if(getrefine() >= 9){ bonus3 bAutoSpell,665,2,30; } else bonus3 bAutoSpell,"NPC_WIDEBLEEDING",1,30; },{},{}
 1272,Scratcher,Scratcher,4,,10,0,120,,1,0,0x00001000,7,2,34,1,1,0,16,{ bonus2 bAddRace,RC_Boss,50; bonus2 bAddRace,RC_NonBoss,50; },{},{}
 1273,Bloody_Roar_C,Refined Bloody Roar,4,,0,0,148,,1,0,0x00001000,7,2,34,4,1,0,16,{ bonus bIgnoreDefRace,RC_DemiHuman; bonus bFlee,-160; bonus bFlee2,-160; },{},{}
Index: /db/job_db1.txt
===================================================================
--- /db/job_db1.txt (revision 21)
+++ /db/job_db1.txt (revision 1)
@@ -56,10 +56,4 @@
 // Ninja
 25,	26000,80   ,  0  ,515  ,400  ,500  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 750 ,2000
-// Adept
-30,    24000,40   ,500  ,500  ,400  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600  ,600  ,600  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
-// Necromancer
-31,    24000,70   ,500  ,600  ,400  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600  ,600  ,600  ,2000 ,2000 ,2000 ,2000 ,600  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
-// Warlock
-32,    26000,65   ,500  ,600  ,400  ,500  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600  ,2000 ,2000 ,2000 ,2000 ,550  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
 // Novice High
 4001,	20000,0    ,500  ,100  ,500  ,650  ,700  ,2000 ,2000 ,2000 ,800  ,2000 ,700  ,700  ,650  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 650
Index: /db/job_db2.txt
===================================================================
--- /db/job_db2.txt (revision 21)
+++ /db/job_db2.txt (revision 1)
@@ -64,13 +64,4 @@
 // Ninja
 25,2,2,0,0,0,0,0,0,0,5,2,0,0,0,0,0,0,0,0,4,2,5,0,0,0,0,0,0,4,6,2,5,0,0,0,0,0,0,0,6,2,4,5,0,0,0,0,0,0,4,2,6,5,0,0,0,0,0,1,3,2,4,5,6,0,0,0,0,0,0
-// Adept
-30,0,6,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,6,0,0,0,2,0,0,0,1,0,0,0,3,0,0,4,0,0,5,0,6,0
-2,0,1,0,3,0,4,5,0,1,6
-// Necromancer
-31,6,0,6,1,0,2,3,4,4,6,1,0,0,3,5,0,1,0,0,5,6,4,0,0,5,0,1,0,2,0,6,5,0,3,1,3,2,0,6
-0,0,4,4,0,3,0,0,2,0,6
-// Warlock
-32,6,0,6,1,0,2,3,4,4,6,1,0,0,3,5,0,1,0,0,5,6,4,0,0,5,0,1,0,2,0,6,5,0,3,1,3,2,0,6
-0,0,4,4,0,3,0,0,2,0,6
 // Novice High
 4001,0,0,0,0,0,0,0,0,0,0
Index: /db/skill_cast_db.txt
===================================================================
--- /db/skill_cast_db.txt (revision 21)
+++ /db/skill_cast_db.txt (revision 1)
@@ -1051,83 +1051,2 @@
 10013,5000,0,0,0,300000
 //==========================================
-// SkillID,CastingTime,AfterCastActDelay,AfterCastWalkDelay,Duration1,Duration2
-//===== Custom Jobs Skills ==============
-// Adept
-//-- AD_PWBLIND
-700,1000,1000,0,20000:30000:40000:50000:60000,0
-//-- AD_PWFEAR
-701,1000,1000,0,20000:30000:40000:50000:60000,0
-//-- AD_DARKHEAL
-702,0,3000,0,0,0
-//-- AD_LUST
-704,0,5000,0,1000,0
-//-- AD_FAMILIAR
-708,0,3000,0,9000000,0
-
-// Necromancer
-//-- NC_DEATHHAND
-712,0,3000,0,0,0
-//-- NC_GHOULTOUCH
-713,0,1000,0,0,10000:20000:30000:40000:50000
-//-- NC_SKELETON
-714,1000,1000,0,600000,0
-//-- NC_ZOMBIE
-715,2000,2000,0,600000,0
-//-- NC_ARCHER
-716,2000,2000,0,600000,0
-//-- NC_MUMMY
-717,3000,3000,0,600000,0
-//-- NC_GHOST
-718,4000,4000,0,600000,0
-//-- NC_SHADOW
-719,5000,5000,0,600000,0
-//-- NC_WRAITH
-720,6000,6000,0,600000,0
-//-- NC_REQUIEN
-721,3000,2000,0,5000:10000:15000:20000:25000:30000:35000:40000:45000:50000,0
-//-- NC_DARKMOON
-722,3000,1000,0,5000:10000:15000:20000:25000:30000:35000:40000:45000:50000,0
-//-- NC_PWSUFFER
-723,3000,3000,0,0,3000
-//-- NC_DECREPIFY
-724,3000,1000,0,10000:20000:30000:40000:50000,0
-//-- NC_DRAINLIFE
-725,1000,3000,0,0,0
-//-- NC_DEATHPACT
-726,3000,3000,0,1000,0
-
-//-- ALL_ATFIELD
-731,0,6000000,0,0,0
-
-// Warlock
-//-- WL_CURSETONGUES
-732,0,1000,0,10000:20000:30000:40000:50000,0
-//-- WL_CURSEDOOM
-733,0,1000,0,60000,0
-//-- WL_CURSEEXHAUST
-734,0,1000,0,15000:30000:45000:60000:75000,0
-//-- WL_CURSEWEAKNESS
-735,0,1000,0,30000:40000:50000:60000:70000,0
-//-- WL_SEARING
-736,0,1000,0,0,12000
-//-- WL_HELLFIRE
-737,1000,1000,0,0,0
-//-- WL_CONFLAGRATE
-738,3000,10000,0,0,0
-//-- WL_IMMOLATE
-739,0,3000,0,0,15000
-//-- WL_SHADOWBOLT
-740,500:1000:1500:2000:2500:3000:3500:4000:4500:5000,1000:1100:1200:1300:1400:15
-0:1600:1700:1800:1900,0,0,0
-//-- WL_SHADOWBURN
-741,3000,3000,0,2000,0
-//-- WL_HOWLOFPAIN
-742,3000,3000,0,5000:10000:15000:20000:25000,0
-//-- WL_HOWLOFTERROR
-744,3000,3000,0,5000:10000:15000:20000:25000,0
-//-- WL_PWAGONY
-745,3000,3000,0,0,3000
-//-- WL_OVERWHELMING
-746,0,5000,0,1000,0
-//-- WL_DRAINSOUL
-748,0,3000,0,0,0
Index: /db/skill_require_db.txt
===================================================================
--- /db/skill_require_db.txt (revision 21)
+++ /db/skill_require_db.txt (revision 1)
@@ -488,66 +488,2 @@
 8014,0,0,40,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HVAN_CHAOTIC
 8016,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0	//HVAN_EXPLOSION
-// Custom Skills
-700,0,0,9:13:17:21:25,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-//AD_PWBLIND
-701,0,0,14:18:22:26:30,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //AD_PWFEAR
-702,0,0,14:18:22:26:30:34:38:42:46:50,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,
-,0,0,0,0,0,0,0,0 //AD_DARKHEAL
-704,0,0,15:20:25:30:35,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //AD_LUST
-708,0,0,10,50,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //AD_FAMILIAR
-
-712,0,0,25:40:55:70:85,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //NC_DEATHHAND
-713,0,0,10:15:20:25:30,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //NC_GHOULTOUCH
-714,0,0,6:7:8:9:10,-5,0,0,99,0,0,none,0,932,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_SKELETON
-715,0,0,7:9:11:13:15,-10,0,0,99,0,0,none,0,957,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ZOMBIE
-716,0,0,7:9:11:13:15,-10,0,0,99,0,0,none,0,932,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_ARCHER
-717,0,0,9:13:17:21:25,-15,0,0,99,0,0,none,0,930,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_MUMMY
-718,0,0,13:21:29:37:45,-20,0,0,99,0,0,none,0,1059,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_GHOST
-719,0,0,20:30:40:50:60,-25,0,0,99,0,0,none,0,7220,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_SHADOW
-720,0,0,27:39:51:63:75,-30,0,0,99,0,0,none,0,958,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_WRAITH
-721,0,0,10:14:18:22:26,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //NC_REQUIEM
-722,0,0,20:24:28:32:36,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //NC_DARKMOON
-723,0,0,26:32:38:44:50,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //NC_PWSUFFER
-724,0,0,26:32:38:44:50,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //NC_DECREPIFY
-725,0,0,10:15:20:25,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_DRAINLIFE
-726,0,0,100,0,0,0,99,0,0,none,0,12020,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //NC_DEATHPACT
-
-731,0,0,100,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //ALL_ATFIELD
-
-732,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //WL_CURSETONGUES#Curse of Tongues#
-733,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //WL_CURSEDOOM#Curse of Doom#
-734,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //WL_CURSEEXHAUST#Curse of Exhaustion#
-735,0,0,50:60:70:80:90,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //WL_CURSEWEAKNESS#Curse of Weakness#
-736,0,0,12:15:18:21:24:27:30:33:36:39,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,
-,0,0,0,0,0,0,0,0 //WL_SEARING
-737,0,0,30:40:50:60:70:80:90:100:110:120,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0
-0,0,0,0,0,0,0,0,0,0 //WL_HELLFIRE
-738,0,0,30:37:44:51:58:65:72:79:86:93,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,
-,0,0,0,0,0,0,0,0 //WL_CONFLAGRATE
-739,0,0,20:24:28:32:36:40:44:48:52:56,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,
-,0,0,0,0,0,0,0,0 //WL_IMMOLATE
-740,0,0,23:26:29:32:35:38:41:44:47:50,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,
-,0,0,0,0,0,0,0,0 //WL_SHADOWBOLT#Shadow Bolt#
-741,0,0,20:40:60:80:100,0,0,0,99,0,0,none,0,15020,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-,0,0,0 //WL_SHADOWBURN#Shadow Burn#
-742,0,0,20:30:40:50:60,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //WL_HOWLOFPAIN#Howl of Pain#
-744,0,0,40:50:60:70:80,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //WL_HOWLOFTERROR#Howl of Terror#
-745,0,0,26:32:38:44:50,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-0 //WL_PWAGONY#Power Word: Agony#
-746,0,0,5:10:15:20:25:30:35:40:45:50,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0
-0,0,0,0,0,0,0,0 //WL_OVERWHELMING#Overwhelming Evil#
-748,0,0,1:2:3:4:5,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WL_DRAINSOUL#Drain Soul#
Index: /db/skill_db.txt
===================================================================
--- /db/skill_db.txt (revision 21)
+++ /db/skill_db.txt (revision 1)
@@ -711,53 +711,2 @@
 10013,0,0,4,0,0x3,0,1,0,yes,0,0x10,0,none,0,     GD_EMERGENCYCALL,Urgent Call
 10014,0,0,0,0,0,0,1,0,no,0,0x10,0,none,0,        GD_DEVELOPMENT,Permanent Development
-// Custom Jobs Skills
-// Adept Skills
-700,5,6,1,0,0x1,0,5,1,yes,0,0,0,magic,0, AD_PWBLIND,Power Word: Blind
-701,5,6,1,0,0x1,0,5,1,yes,0,0,0,magic,0, AD_PWFEAR,Power Word: Fear
-702,5,6,16,7,0x21,0,10,1,yes,0,0,0,magic,0, AD_DARKHEAL,Dark Heal
-703,0,0,0,0,0,0,1,0,no,0,0x1,0,none,0, AD_BLOODPACT,Blood Pact
-704,0,6,4,0,0x1,0,5,1,no,0,0,0,weapon,0, AD_LUST,Blood Lust
-705,0,0,0,0,0,0,10,0,no,0,0,0,none,0, AD_FERVOR,Unholy Fervor
-706,0,0,0,0,0,0,10,0,no,0,0,0,none,0, AD_PROFANE,Profane Soul
-707,0,0,0,0,0,0,10,0,no,0,0,0,none,0, AD_DARKFAITH,Dark Faith
-708,4,6,2,0,0x1,0,5,1,no,0,0,1,none,0, AD_FAMILIAR,Summon Familiar
-709,0,0,0,0,0,0,10,0,no,0,0,0,none,0, AD_SUMMONS,Improve Summons
-// Necromancer Skills
-710,0,0,0,0,0,0,1,0,no,0,0x1,0,none,0, NC_PHYLACTERY,Phylactery
-711,0,0,0,0,0,0,10,0,no,0,0,0,none,0, NC_UNDEAD,Undead Mastery
-712,-1,6,1,7,0,0,5,1,no,0,0,0,weapon,0, NC_DEATHHAND,Death Hand
-713,-1,6,1,7,0,0,5,1,no,0,0,0,weapon,0, NC_GHOULTOUCH,Ghoul Touch
-714,4,6,2,0,0x1,0,5,1,no,0,0,5,magic,0, NC_SKELETON,Raise Skeleton
-715,4,6,2,0,0x1,0,5,1,no,0,0,5,magic,0, NC_ZOMBIE,Raise Zombie
-716,4,6,2,0,0x1,0,5,1,no,0,0,5,magic,0, NC_ARCHER,Raise Archer Skeleton
-717,4,6,2,0,0x1,0,5,1,no,0,0,4,magic,0, NC_MUMMY,Raise Mummy
-718,4,6,2,0,0x1,0,5,1,no,0,0,3,magic,0, NC_GHOST,Raise Ghost
-719,4,6,2,0,0x1,0,5,1,no,0,0,2,magic,0, NC_SHADOW,Raise Shadow
-720,4,6,2,0,0x1,0,5,1,no,0,0,1,magic,0, NC_WRAITH,Raise Wraith
-721,0,6,4,0,0x3,-1,10,1,no,0,0,0,misc,0, NC_REQUIEM,Requiem
-722,0,6,4,0,0x3,-1,10,1,no,0,0,0,misc,0, NC_DARKMOON,Dark Moon
-723,9,8,1,7,0,0,5,1,yes,0,0,0,magic,0, NC_PWSUFFER,Power Word: Suffer
-724,9,6,1,0,0x1,0,5,1,yes,0,0,0,magic,0, NC_DECREPIFY,Decrepify
-725,9,6,1,7,0,0,5,1,yes,0,0,0,magic,0, NC_DRAINLIFE,Drain Life
-726,9,6,16,9,0x1,0,4,1,yes,0,0,0,magic,0, NC_DEATHPACT,Death Pact
-// GM Skill AT-Field
-731,1,6,4,0,1,0,10,0,no,0,0x1,0,none,0, ALL_ATFIELD,AT_Field
-// Warlock Skills
-732,9,6,1,0,0x1,0,5,0,yes,0,0,0,magic,0, WL_CURSETONGUES,Curse of Tongues
-733,9,6,1,7,0x1,0,5,1,yes,0,0,0,magic,0, WL_CURSEDOOM,Curse of Doom
-734,9,6,1,0,0x1,0,5,0,yes,0,0,0,magic,0, WL_CURSEEXHAUST,Curse of Exhaustion
-735,9,6,1,0,0x1,0,5,0,yes,0,0,0,magic,0, WL_CURSEWEAKNESS,Curse of Weakness
-736,8,8,1,3,0,0,10,-2,yes,0,0,0,magic,0, WL_SEARING,Searing Pain
-737,8,8,2,3,0,0,10,-5,yes,0,0,0,magic,1, WL_HELLFIRE,Hellfire
-738,8,8,1,3,0,0,10,-3,yes,0,0,0,magic,0, WL_CONFLAGRATE,Conflagrate
-739,8,8,1,3,0,0,10,-2,yes,0,0,0,magic,0, WL_IMMOLATE,Immolate
-740,8,8,1,7,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0, WL_SHADOWBOLT,Shadow Bolt
-741,8,8,1,3,0,0,5,-3,yes,0,0,0,magic,0, WL_SHADOWBURN,Shadow Burn
-742,0,6,4,0,0x3,-1,5,0,no,0,0,0,magic,0, WL_HOWLOFPAIN,Howl of Pain
-743,0,0,0,0,0,0,10,0,no,0,0,0,none,0, WL_DEMONOLOGY,Demonology
-744,0,6,4,0,0x3,-1,5,0,no,0,0,0,magic,0, WL_HOWLOFTERROR,Howl of Terror
-745,9,8,1,7,0,0,5,1,yes,0,0,0,magic,0, WL_PWAGONY,Power Word: Agony
-746,0,6,4,0,0x1,0,10,1,no,0,0,0,magic,0, WL_OVERWHELMING,Overwhelming Evil
-747,0,0,0,0,0,0,10,1,no,0,0,0,none,0, WL_SOULSTEAL,Soul Steal
-748,5,6,1,0,0x1,0,5,1,yes,0,0,0,magic,0, WL_DRAINSOUL,Drain Soul
-749,0,0,0,0,0,0,10,0,no,0,0,0,none,0, WL_CORRUPTION,Touch of Corruption
Index: /db/exp.txt
===================================================================
--- /db/exp.txt (revision 12)
+++ /db/exp.txt (revision 1)
@@ -2,5 +2,5 @@
 //Max Level,Class list,Type (0 - Base Exp; 1 - Job Exp),Exp for Lv 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98
 //Base - Normal and Baby Jobs
-99,0:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:23:24:25:26:30:31:32:4023:4024:4025:4026:4027:4028:4029:4030:4031:4032:4033:4034:4035:4036:4037:4038:4039:4040:4041:4042:4043:4044:4045:4046:4047:4048:4049,0,9,16,25,36,77,112,153,200,253,320,385,490,585,700,830,970,1120,1260,1420,1620,1860,1990,2240,2504,2950,3426,3934,4474,6889,7995,9174,10425,11748,13967,15775,17678,19677,21773,30543,34212,38065,42102,46323,53026,58419,64041,69892,75973,102468,115254,128692,142784,157528,178184,196300,215198,234879,255341,330188,365914,403224,442116,482590,536948,585191,635278,687211,740988,925400,1473746,1594058,1718928,1848355,1982340,2230113,2386162,2547417,2713878,3206160,3681024,4022472,4377024,4744680,5125440,5767272,6204000,6655464,7121664,7602600,9738720,11649960,13643520,18339300,23836800,35658000,48687000,58135000,99999999
+99,0:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:23:24:25:26:4023:4024:4025:4026:4027:4028:4029:4030:4031:4032:4033:4034:4035:4036:4037:4038:4039:4040:4041:4042:4043:4044:4045:4046:4047:4048:4049,0,9,16,25,36,77,112,153,200,253,320,385,490,585,700,830,970,1120,1260,1420,1620,1860,1990,2240,2504,2950,3426,3934,4474,6889,7995,9174,10425,11748,13967,15775,17678,19677,21773,30543,34212,38065,42102,46323,53026,58419,64041,69892,75973,102468,115254,128692,142784,157528,178184,196300,215198,234879,255341,330188,365914,403224,442116,482590,536948,585191,635278,687211,740988,925400,1473746,1594058,1718928,1848355,1982340,2230113,2386162,2547417,2713878,3206160,3681024,4022472,4377024,4744680,5125440,5767272,6204000,6655464,7121664,7602600,9738720,11649960,13643520,18339300,23836800,35658000,48687000,58135000,99999999
 //Base - Adv Jobs
 99,4001:4002:4003:4004:4005:4006:4007:4008:4009:4010:4011:4012:4013:4014:4015:4016:4017:4018:4019:4020:4021:4022,0,10,18,28,40,85,123,168,220,278,400,481,613,731,875,1038,1213,1400,1575,1775,2268,2604,2786,3136,3506,4130,4796,5508,6264,9645,12392,14220,16159,18209,21649,24451,27401,30499,33748,47342,58160,64711,71573,78749,90144,99312,108870,118816,129154,174196,213220,238080,264150,291427,329640,363155,398116,434526,472381,610848,731828,806448,884232,965180,1073896,1170382,1270556,1374422,1481976,1850800,3389616,3666333,3953534,4251217,4559382,5129260,5488173,5859059,6241919,7374168,9570662,10458427,11380262,12336168,13326144,14994907,16130400,17304200,18516326,19766760,29216160,34949880,40930560,55017900,71510400,106974000,146061000,174405000,343210000
@@ -8,7 +8,7 @@
 10,0:4023,1,10,18,28,40,91,151,205,268,340
 //Job - 1st Classes
-50,1:2:3:4:5:6:26:30:4024:4025:4026:4027:4028:4029:4046,1,30,43,58,76,116,180,220,272,336,520,604,699,802,948,1125,1668,1937,2226,3040,3988,5564,6272,7021,9114,11473,15290,16891,18570,23229,28359,36478,39716,43088,52417,62495,78160,84175,90404,107611,125915,153941,191781,204351,248352,286212,386371,409795,482092,509596
+50,1:2:3:4:5:6:26:4024:4025:4026:4027:4028:4029:4046,1,30,43,58,76,116,180,220,272,336,520,604,699,802,948,1125,1668,1937,2226,3040,3988,5564,6272,7021,9114,11473,15290,16891,18570,23229,28359,36478,39716,43088,52417,62495,78160,84175,90404,107611,125915,153941,191781,204351,248352,286212,386371,409795,482092,509596
 //Job - 2nd Classes
-50,7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:31:32:4030:4031:4032:4033:4034:4035:4036:4037:4038:4039:4040:4041:4042:4043:4044:4049,1,144,184,284,348,603,887,1096,1598,2540,3676,4290,4946,6679,9492,12770,14344,16005,20642,27434,35108,38577,42206,52708,66971,82688,89544,96669,117821,144921,174201,186677,199584,238617,286366,337147,358435,380376,447685,526989,610246,644736,793535,921810,1106758,1260955,1487304,1557657,1990632,2083386
+50,7:8:9:10:11:12:13:14:15:16:17:18:19:20:21:4030:4031:4032:4033:4034:4035:4036:4037:4038:4039:4040:4041:4042:4043:4044:4049,1,144,184,284,348,603,887,1096,1598,2540,3676,4290,4946,6679,9492,12770,14344,16005,20642,27434,35108,38577,42206,52708,66971,82688,89544,96669,117821,144921,174201,186677,199584,238617,286366,337147,358435,380376,447685,526989,610246,644736,793535,921810,1106758,1260955,1487304,1557657,1990632,2083386
 //Job - Super Novice
 99,23:4045,1,30,43,58,76,116,180,220,272,336,520,604,699,802,948,1125,1668,1937,2226,3040,3988,5564,6272,7021,9114,11473,15290,16891,18570,23229,28359,36478,39716,43088,52417,62495,78160,84175,90404,107611,125915,153941,191781,204351,248352,286212,386371,409795,482092,509596,982092,992092,1002092,1012092,1022092,1032092,1042092,1052092,1062092,1072092,1082092,1092092,1102092,1112092,1122092,1132092,1142092,1152092,1162092,1172092,1182092,1192092,1202092,1212092,1222092,1232092,1242092,1252092,1262092,1272092,1282092,1292092,1302092,1312092,1322092,1332092,1342092,1352092,1362092,1372092,1382092,1392092,1402092,1412092,1422092,1432092,1442092,1452092,1462092
Index: /db/skill_tree.txt
===================================================================
--- /db/skill_tree.txt (revision 21)
+++ /db/skill_tree.txt (revision 1)
@@ -2253,90 +2253,2 @@
 4049,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
 4049,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Enlarge Weight Limit R#
-// Adept
-30,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
-30,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
-30,30,10,0,0,0,0,0,0,0,0,0,0 //AL_DECAGI#Decrease AGI#
-30,700,5,707,5,0,0,0,0,0,0,0,0 //AD_PWBLIND#Power Word: Blind#
-30,701,5,30,5,706,10,0,0,0,0,0,0 //AD_PWFEAR#Power Word: Fear#
-30,702,10,707,1,0,0,0,0,0,0,0,0 //AD_DARKHEAL#Dark Heal#
-30,703,1,0,0,0,0,0,0,0,0,0,0 //AD_BLOODPACT#Blood Pact#
-30,704,5,703,1,705,5,0,0,0,0,0,0 //AD_LUST#Blood Lust#
-30,705,10,706,3,0,0,0,0,0,0,0,0 //AD_FERVOR#Unholy Fervor#
-30,706,10,707,3,0,0,0,0,0,0,0,0 //AD_PROFANE#Profane Soul#
-30,707,10,0,0,0,0,0,0,0,0,0,0 //AD_DARKFAITH#Dark Faith#
-30,708,1,0,0,0,0,0,0,0,0,0,0 //AD_FAMILIAR#Summon Familiar#
-30,709,10,708,1,0,0,0,0,0,0,0,0 //AD_SUMMONS#Improve Summons#
-30,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
-//30,758,1,0,0,0,0,0,0,0,0,0,0 //TD_SCRIBESCROLLC#Scribe Scroll - Dark#
-30,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
-30,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Enlarge Weight Limit R#
-// Necromancer
-31,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
-31,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
-31,30,10,0,0,0,0,0,0,0,0,0,0 //AL_DECAGI#Decrease AGI#
-31,700,5,707,5,0,0,0,0,0,0,0,0 //AD_PWBLIND#Power Word: Blind#
-31,701,5,30,5,706,10,0,0,0,0,0,0 //AD_PWFEAR#Power Word: Fear#
-31,702,10,707,1,0,0,0,0,0,0,0,0 //AD_DARKHEAL#Dark Heal#
-31,703,1,0,0,0,0,0,0,0,0,0,0 //AD_BLOODPACT#Blood Pact#
-31,704,5,703,1,705,5,0,0,0,0,0,0 //AD_LUST#Blood Lust#
-31,705,10,706,3,0,0,0,0,0,0,0,0 //AD_FERVOR#Unholy Fervor#
-31,706,10,707,3,0,0,0,0,0,0,0,0 //AD_PROFANE#Profane Soul#
-31,707,10,0,0,0,0,0,0,0,0,0,0 //AD_DARKFAITH#Dark Faith#
-31,708,1,0,0,0,0,0,0,0,0,0,0 //AD_FAMILIAR#Summon Familiar#
-31,709,10,708,1,0,0,0,0,0,0,0,0 //AD_SUMMONS#Improve Summons#
-31,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
-31,710,1,0,0,0,0,0,0,0,0,0,0 //NC_PHYLACTERY#Phylactery#
-31,711,10,714,5,721,1,0,0,0,0,0,0 //NC_UNDEAD#Undead Mastery#
-31,712,5,711,5,713,5,0,0,0,0,0,0 //NC_DEATHHAND#Death Hand#
-31,713,5,0,0,0,0,0,0,0,0,0,0,0 //NC_GHOULTOUCH#Ghoul Touch#
-31,714,5,708,1,0,0,0,0,0,0,0,0 //NC_SKELETON#Raise Skeleton#
-31,715,5,714,3,0,0,0,0,0,0,0,0 //NC_ZOMBIE#Raise Zombie#
-31,716,5,714,3,0,0,0,0,0,0,0,0 //NC_ARCHER#Raise Archer Skeleton#
-31,717,5,715,1,716,1,0,0,0,0,0,0 //NC_MUMMY#Raise Mummy#
-31,718,5,717,3,0,0,0,0,0,0,0,0 //NC_GHOST#Raise Ghost#
-31,719,5,718,3,0,0,0,0,0,0,0,0 //NC_SHADOW#Raise Shadow#
-31,720,5,719,3,0,0,0,0,0,0,0,0 //NC_WRAITH#Raise Wraith#
-31,721,10,713,1,0,0,0,0,0,0,0,0 //NC_REQUIEM#Requiem#
-31,722,10,713,3,700,3,0,0,0,0,0,0 //NC_DARKMOON#Dark Moon#
-31,723,5,712,3,0,0,0,0,0,0,0,0 //NC_PWSUFFER#Power Word: Suffer#
-31,724,5,722,1,30,1,0,0,0,0,0,0 //NC_DECREPIFY#Decrepify#
-31,725,5,724,3,702,5,0,0,0,0,0,0 //NC_DRAINLIFE#Drain Life#
-31,726,5,725,3,720,1,712,1,703,1,0,0 //NC_DEATHPACT#Death Pact#
-//31,758,1,0,0,0,0,0,0,0,0,0,0 //TD_SCRIBESCROLLC#Scribe Scroll - Dark#
-31,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
-31,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Enlarge Weight Limit R#
-// Warlock
-32,1,9,0,0,0,0,0,0,0,0,0,0 //NV_BASIC#Basic Skill#
-32,142,1,0,0,0,0,0,0,0,0,0,0 //NV_FIRSTAID#First Aid#
-32,30,10,0,0,0,0,0,0,0,0,0,0 //AL_DECAGI#Decrease AGI#
-32,700,5,707,5,0,0,0,0,0,0,0,0 //AD_PWBLIND#Power Word: Blind#
-32,701,5,30,5,706,10,0,0,0,0,0,0 //AD_PWFEAR#Power Word: Fear#
-32,702,10,707,1,0,0,0,0,0,0,0,0 //AD_DARKHEAL#Dark Heal#
-32,703,1,0,0,0,0,0,0,0,0,0,0 //AD_BLOODPACT#Blood Pact#
-32,704,5,703,1,705,5,0,0,0,0,0,0 //AD_LUST#Blood Lust#
-32,705,10,706,3,0,0,0,0,0,0,0,0 //AD_FERVOR#Unholy Fervor#
-32,706,10,707,3,0,0,0,0,0,0,0,0 //AD_PROFANE#Profane Soul#
-32,707,10,0,0,0,0,0,0,0,0,0,0 //AD_DARKFAITH#Dark Faith#
-32,708,1,0,0,0,0,0,0,0,0,0,0 //AD_FAMILIAR#Summon Familiar#
-32,709,10,708,1,0,0,0,0,0,0,0,0 //AD_SUMMONS#Improve Summons#
-32,732,5,735,2,0,0,0,0,0,0,0,0 //WL_CURSETONGUES#Curse of Tongues#
-32,733,5,732,5,734,5,746,5,0,0,0,0 //WL_CURSEDOOM#Curse of Doom#
-32,734,5,735,3,0,0,0,0,0,0,0,0 //WL_CURSEEXHAUST#Curse of Exhaustion#
-32,735,5,30,2,0,0,0,0,0,0,0,0 //WL_CURSEWEAKNESS#Curse of Weakness#
-32,736,10,0,0,0,0,0,0,0,0,0,0 //WL_SEARING#Searing Pain#
-32,737,10,736,7,739,3,743,2,0,0,0,0 //WL_HELLFIRE#Hellfire#
-32,738,10,739,5,0,0,0,0,0,0,0,0 //WL_CONFLAGRATE#Conflagrate#
-32,739,10,736,5,0,0,0,0,0,0,0,0 //WL_IMMOLATE#Immolate#
-32,740,10,702,1,743,1,0,0,0,0,0,0 //WL_SHADOWBOLT#Shadow Bolt#
-32,741,5,740,5,739,1,0,0,0,0,0,0 //WL_SHADOWBURN#Shadow Burn#
-32,742,5,748,1,0,0,0,0,0,0,0,0 //WL_HOWLOFPAIN#Howl of Pain#
-32,743,10,0,0,0,0,0,0,0,0,0,0 //WL_DEMONOLOGY#Demonology#
-32,744,5,742,3,701,3,0,0,0,0,0,0 //WL_HOWLOFTERROR#Howl of Terror#
-32,745,5,740,3,749,1,0,0,0,0,0,0 //WL_PWAGONY#Power Word: Agony#
-32,746,10,703,1,748,2,0,0,0,0,0,0 //WL_OVERWHELMING#Overwhelming Evil#
-32,747,10,743,3,0,0,0,0,0,0,0,0 //WL_SOULSTEAL#Soul Steal#
-32,748,5,747,5,749,2,0,0,0,0,0,0 //WL_DRAINSOUL#Drain Soul#
-32,749,10,747,2,743,4,0,0,0,0,0,0 //WL_CORRUPTION#Touch of Corruption#
-//32,758,1,0,0,0,0,0,0,0,0,0,0 //TD_SCRIBESCROLLC#Scribe Scroll - Dark#
-32,410,1,0,0,0,0,0,0,0,0,0,0 //WE_CALLBABY#Call Baby#
-32,681,1,0,0,0,0,0,0,0,0,0,0 //ALL_INCCARRY#Enlarge Weight Limit R#
Index: /db/mob_db2.txt
===================================================================
--- /db/mob_db2.txt (revision 12)
+++ /db/mob_db2.txt (revision 1)
@@ -32,137 +32,2 @@
 //1843,SIDE_WINDER_,Snake Lord's Minon,Snake Lord's Minon,43,4929,0,1996,993,1,240,320,5,10,38,43,40,15,115,20,10,12,1,2,25,0x3095,200,1576,576,576,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,7,0,0,0,0,0,0,0,0,0,0,0,0
 //1844,G_ISIS_,Snake Lord's Minon,Snake Lord's Minon,47,7003,0,3709,1550,1,423,507,10,35,38,65,43,50,66,15,10,12,2,6,27,0x3195,200,1384,768,336,0,0,0,0,0,0,0,0,7915,1000,7916,100,7720,30,12715,8,0,0,0,0,0,0,0,0,0,0,0,0
-
-// Custom Familiars Adept Class
-3100,FAMILIAR_01,Familiar,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27
-14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3101,FAMILIAR_02,Snake,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,14
-69,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3102,FAMILIAR_03,Deviruchi,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,2
-,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3103,FAMILIAR_04,Scorpion,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27
-14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3104,FAMILIAR_05,Tarou,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,14
-69,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3105,FAMILIAR_06,Quve,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,144
-9,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3106,FAMILIAR_07,Beholder,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27
-14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3107,FAMILIAR_08,Beetle King,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,14469,150,1276,576,3
-4,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3108,FAMILIAR_09,Breeze,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,1
-469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3109,FAMILIAR_10,Pest,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,144
-9,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3110,FAMILIAR_11,Argiope,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,
-4469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3111,FAMILIAR_12,Horong,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,1
-469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3112,FAMILIAR_13,Fire Imp,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,14469,150,1276,576,38
-,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3113,FAMILIAR_14,Plasma Y,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,14469,150,1276,576,384,
-,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3114,FAMILIAR_15,Rideword,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27
-14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3115,FAMILIAR_16,Drainliar,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,2
-,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3116,FAMILIAR_17,Explosion,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,2
-,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3117,FAMILIAR_18,Anacondaq,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,2
-,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3118,FAMILIAR_19,Sidewinder,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,
-7,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3119,FAMILIAR_20,Mini Demon,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,14469,150,1276,576,
-84,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3120,FAMILIAR_21,Diabolic,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27
-14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3121,FAMILIAR_22,Gig,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,1446
-,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3122,FAMILIAR_23,Cramp,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,14
-69,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3123,FAMILIAR_24,Ancient Worm,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,14469,150,1276,576,3
-4,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3124,FAMILIAR_25,Plasma,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,1
-469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3125,FAMILIAR_26,Plasma,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,1
-469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3126,FAMILIAR_27,Plasma,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,1
-469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3127,FAMILIAR_28,Plasma,Familiar,1,10,0,1,1,2,1,1,1,1,1,1,1,1,1,1,10,12,0,6,27,1
-469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-
-
-// IDs 3115 a 3200 livres (75)
-// Necro Summons
-3201,NECRO_SKELETON_01,Skeleton,Skeleton,5,50,0,1,1,2,20,26,1,1,1,15,5,1,15,10,1
-,12,1,1,27,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3202,NECRO_SKELETON_02,Skeleton,Skeleton,8,90,0,1,1,2,40,47,3,3,1,20,8,4,17,12,1
-,12,1,1,27,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3203,NECRO_SKELETON_03,Skeleton,Skeleton,10,150,0,1,1,2,60,68,5,5,1,25,10,7,19,1
-,10,12,1,1,27,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3204,NECRO_SKELETON_04,Skeleton,Skeleton,12,190,0,1,1,2,80,89,7,7,1,30,12,10,22,
-6,10,12,1,1,27,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3205,NECRO_SKELETON_05,Skeleton,Skeleton,15,250,0,1,1,2,100,110,8,8,1,35,15,15,2
-,18,10,12,1,1,27,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,
-,
-3206,NECRO_ARCHER_01,Archer Skeleton,Archer Skeleton,15,300,0,1,1,8,50,61,1,1,1,20,15,1,30,13,10,12,1,1,27,14469,150,1476,57
-,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3207,NECRO_ARCHER_02,Archer Skeleton,Archer Skeleton,18,400,0,1,1,8,70,83,2,2,1,25,18,4,40,16,10,12,1,1,27,14469,150,1476,57
-,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3208,NECRO_ARCHER_03,Archer Skeleton,Archer Skeleton,20,500,0,1,1,8,90,105,3,3,1,35,20,7,50,19,10,12,1,1,27,14469,150,1476,5
-6,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3209,NECRO_ARCHER_04,Archer Skeleton,Archer Skeleton,22,600,0,1,1,8,110,127,4,4,1,40,22,10,60,22,10,12,1,1,27,14469,150,1476
-576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3210,NECRO_ARCHER_05,Archer Skeleton,Archer Skeleton,25,700,0,1,1,8,130,149,5,5,1,45,25,15,70,25,10,12,1,1,27,14469,150,1476
-576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3211,NECRO_ZOMBIE_01,Zombie,Zombie,15,600,0,1,1,2,50,60,3,3,1,1,20,1,20,1,10,12,
-,1,27,14469,250,1376,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3212,NECRO_ZOMBIE_02,Zombie,Zombie,18,800,0,1,1,2,60,70,6,6,1,1,30,1,25,1,10,12,
-,1,27,14469,250,1376,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3213,NECRO_ZOMBIE_03,Zombie,Zombie,20,1000,0,1,1,2,70,80,9,9,1,1,40,1,30,1,10,12
-1,1,27,14469,250,1376,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3214,NECRO_ZOMBIE_04,Zombie,Zombie,22,1200,0,1,1,2,90,100,12,12,1,1,50,1,35,1,10
-12,1,1,27,14469,250,1376,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3215,NECRO_ZOMBIE_05,Zombie,Zombie,25,1400,0,1,1,2,110,130,15,15,1,1,60,1,40,1,1
-,12,1,1,27,14469,250,1376,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3216,NECRO_MUMMY_01,Mummy,Mummy,25,500,0,1,1,2,80,100,2,2,1,30,10,4,20,25,10,12,
-,1,27,14469,100,800,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3217,NECRO_MUMMY_02,Mummy,Mummy,28,650,0,1,1,2,100,120,4,4,1,40,20,8,30,30,10,12
-1,1,27,14469,100,800,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3218,NECRO_MUMMY_03,Mummy,Mummy,30,950,0,1,1,2,120,140,6,8,1,50,30,12,40,35,10,1
-,1,1,27,14469,100,800,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3219,NECRO_MUMMY_04,Mummy,Mummy,32,1100,0,1,1,2,150,170,8,8,1,60,40,16,50,40,10,
-2,1,1,27,14469,100,800,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3220,NECRO_MUMMY_05,Mummy,Mummy,35,1250,0,1,1,2,180,200,10,10,1,70,50,20,60,45,1
-,12,1,1,27,14469,100,800,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3221,NECRO_GHOST_01,Ghost,Ghost,35,700,0,1,1,2,120,150,3,3,1,20,25,10,30,10,10,1
-,1,1,28,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3222,NECRO_GHOST_02,Ghost,Ghost,38,900,0,1,1,2,150,180,6,6,1,30,30,15,40,20,10,1
-,1,1,28,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3223,NECRO_GHOST_03,Ghost,Ghost,40,1100,0,1,1,2,180,210,9,9,1,40,35,20,50,30,10,
-2,1,1,28,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3224,NECRO_GHOST_04,Ghost,Ghost,42,1300,0,1,1,2,220,250,12,12,1,50,40,25,60,40,1
-,12,1,1,28,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3225,NECRO_GHOST_05,Ghost,Ghost,45,1500,0,1,1,2,270,300,15,15,1,60,50,30,70,50,1
-,12,1,1,28,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3226,NECRO_SHADOW_01,Shadow,Shadow,45,1500,0,1,1,2,150,200,4,8,1,35,20,30,45,30,
-0,12,1,1,47,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3227,NECRO_SHADOW_02,Shadow,Shadow,48,1800,0,1,1,2,200,250,8,16,1,50,40,30,60,40
-10,12,1,1,47,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3228,NECRO_SHADOW_03,Shadow,Shadow,50,2100,0,1,1,2,250,300,12,24,1,65,50,40,75,5
-,10,12,1,1,47,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3229,NECRO_SHADOW_04,Shadow,Shadow,52,2400,0,1,1,2,350,400,16,32,1,80,60,50,90,6
-,10,12,1,1,47,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3230,NECRO_SHADOW_05,Shadow,Shadow,55,2800,0,1,1,2,450,500,20,40,1,100,70,60,110
-70,10,12,1,1,47,14469,150,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0
-
-3231,NECRO_WRAITH_01,Wraith,Wraith,55,2000,0,1,1,2,300,400,5,5,1,50,50,20,50,20,
-0,12,2,1,27,14469,300,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3232,NECRO_WRAITH_02,Wraith,Wraith,58,4000,0,1,1,2,400,500,10,10,1,60,60,25,70,3
-,10,12,2,1,27,14469,300,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3233,NECRO_WRAITH_03,Wraith,Wraith,60,6000,0,1,1,2,500,600,15,15,1,70,70,30,90,4
-,10,12,2,1,27,14469,300,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3234,NECRO_WRAITH_04,Wraith,Wraith,62,8000,0,1,1,2,700,800,20,20,1,80,80,35,110,
-0,10,12,2,1,27,14469,300,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-3235,NECRO_WRAITH_05,Wraith,Wraith,65,10000,0,1,1,2,900,1000,25,25,1,90,100,40,1
-0,60,10,12,2,1,27,14469,300,1276,576,384,0,0,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,,0,
-0,
Index: /db/skill_unit_db.txt
===================================================================
--- /db/skill_unit_db.txt (revision 12)
+++ /db/skill_unit_db.txt (revision 1)
@@ -96,3 +96,2 @@
 538,0xbb,    ,  1:1:1:2:2:2:3:3:3:4,0,-1,all,0x010	//NJ_SUITON
 670,0xc7,    ,  1, 4:7:10:13:16:19:22:25:28:31,1000,all,0x008	//NPC_EVILLAND
-737,0x86,    ,  0, 3,3000,enemy, 0x000    //WL_HELLFIRE
Index: /db/const.txt
===================================================================
--- /db/const.txt (revision 21)
+++ /db/const.txt (revision 1)
@@ -27,7 +27,4 @@
 Job_Ninja	25
 Job_Xmas	26
-Job_Adept	30
-Job_Necro	31
-Job_Warlock	32
 
 Job_Novice_High	4001
Index: /mob_familiar.txt
===================================================================
--- /db/mob_familiar.txt (revision 23)
+++  (revision )
@@ -1,32 +1,0 @@
-// Monster Database
-//
-// Structure of Database:
-// MobID,DummyName,Rate
-3100,Familiar,1000000
-3101,Snake,1000000
-3102,Deviruchi,800000
-3103,Scorpion,1000000
-3104,Tarou,1000000
-3105,Quve,1000000
-3106,Beholder,500000
-3107,Beetle King,1000000
-3108,Breeze,500000
-3109,Pest,1000000
-3110,Argiope,800000
-3111,Horong,1000000
-3112,Fire Imp,800000
-3113,Plasma Y,200000
-3114,Rideword,800000
-3115,Drainliar,500000
-3116,Explosion,250000
-3117,Anacondaq,500000
-3118,Sidewinder,250000
-3119,Mini Demon,500000
-3120,Diabolic,250000
-3121,Gig,500000
-3122,Cramp,500000
-3123,Ancient Worm,100000
-3124,Plasma,200000
-3125,Plasma,200000
-3126,Plasma,200000
-3127,Plasma,200000
Index: /logserv.bat
===================================================================
--- /logserv.bat (revision 1)
+++ /logserv.bat (revision 1)
@@ -0,0 +1,9 @@
+@echo off
+rem Writen by Jbain
+:end
+login-server.exe
+echo .
+echo .
+echo Login server crashed! restarting in 15 seconds! press ctl+C to cancel restart!
+PING -n 15 127.0.0.1 >nul
+goto end
Index: /src/common/mmo.h
===================================================================
--- /src/common/mmo.h (revision 24)
+++ /src/common/mmo.h (revision 1)
@@ -526,7 +526,4 @@
 	JOB_XMAS,
 	JOB_SUMMER,
-    JOB_ADEPT = 30, // [Brain] 
-    JOB_NECROMANCER, // [Brain]
-    JOB_WARLOCK, // Warlock [Brain]
 	JOB_MAX_BASIC,
 
Index: /src/map/atcommand.c
===================================================================
--- /src/map/atcommand.c (revision 24)
+++ /src/map/atcommand.c (revision 1)
@@ -1213,11 +1213,15 @@
 		if (sd->disguise)
 			status_set_viewdata(&sd->bl, sd->disguise);
-		else
-			status_set_viewdata(&sd->bl, sd->status.class_);
-		clif_displaymessage(fd, msg_txt(10)); // Invisible: Off
+  else
+            clif_specialeffect(&sd->bl, 587, 1); // [Temperis]
+            clif_specialeffect(&sd->bl, 589, 1); // [Temperis]
+            status_set_viewdata(&sd->bl, sd->status.class_);
+        clif_displaymessage(fd, msg_txt(10)); // Invisible: Off
 	} else {
-		sd->sc.option |= OPTION_INVISIBLE;
-		sd->vd.class_ = INVISIBLE_CLASS;
-		clif_displaymessage(fd, msg_txt(11)); // Invisible: On
+        clif_specialeffect(&sd->bl, 587, 1); // [Temperis]
+        clif_specialeffect(&sd->bl, 589, 1); // [Temperis]
+        sd->sc.option |= OPTION_INVISIBLE;
+        sd->vd.class_ = INVISIBLE_CLASS;
+        clif_displaymessage(fd, msg_txt(11)); // Invisible: On
 	}
 	clif_changeoption(&sd->bl);
@@ -1265,8 +1269,4 @@
 			{ "gunner",	24 },
 			{ "ninja",	25 },
-			{ "adept",	30 },//New job classes [Brainstorm]
-			{ "necromancer",	31 },
-			{ "necro",	31 },
-			{ "warlock",	32 },
 			{ "high novice",	4001 },
 			{ "swordsman high",	4002 },
@@ -4372,4 +4372,6 @@
 	if (map[m_id].flag.guildlock)
 		strcat(atcmd_output, "GuildLock | ");
+	if (map[m_id].flag.hostile)
+	strcat(atcmd_output, "Hostile | ");
 	clif_displaymessage(fd, atcmd_output);
 
@@ -7814,17 +7816,5 @@
 	return 0;
 }
-//@showsummon [Brainstorm]
-int atcommand_showsummon(const int fd, struct map_session_data* sd, const char* command, const char* message)
-{
-	if (sd->state.showsummon) {
-		sd->state.showsummon = 0;
-		clif_displaymessage(fd, "Summon Stats will not be shown.");
-		return 0;
-	}
-
-	sd->state.showsummon = 1;
-	clif_displaymessage(fd, "Summon Stats is now shown.");
-	return 0;
-}
+
 /*==========================================
  * Barricade Build
@@ -8294,4 +8284,48 @@
 }
 
+/*==========================================
+* @alliance by SketchyPhoenix
+*------------------------------------------*/
+int atcommand_god(const int fd, struct map_session_data* sd, const char* command, const char* message)
+{
+nullpo_retr(-1, sd);
+
+if(sd->state.demon) {
+clif_displaymessage(fd, "You're tainted, you cannot change your ways.");
+return 0;
+}
+
+sd->state.god = !sd->state.god;
+
+if(sd->state.god)
+clif_displaymessage(fd, "You have joined the holy union.");
+else {
+clif_displaymessage(fd, "You have become tainted.");
+map_foreachinrange(atcommand_stopattack,&sd->bl, AREA_SIZE, BL_CHAR, sd->bl.id);
+}
+return 0;
+}
+
+/*==========================================
+* @horde by SketchyPhoenix
+*------------------------------------------*/
+int atcommand_demon(const int fd, struct map_session_data* sd, const char* command, const char* message)
+{
+nullpo_retr(-1, sd);
+
+if(sd->state.god) {
+clif_displaymessage(fd, "You are of the light, darkness cannot consume you.");
+return 0;
+}
+sd->state.demon = !sd->state.demon;
+
+if(sd->state.demon)
+clif_displaymessage(fd, "Your sould is consumed by the darkness, you've gained demonic power.");
+else {
+clif_displaymessage(fd, "You have repented, the darkness has left your soul.");
+map_foreachinrange(atcommand_stopattack,&sd->bl, AREA_SIZE, BL_CHAR, sd->bl.id);
+}
+return 0;
+}
 /*==========================================
  * atcommand_info[] structure definition
@@ -8589,6 +8623,6 @@
 	{ "barricade",         60,     atcommand_barricade },
 	{ "killbarricade",     60,     atcommand_barricade_destroy },
-	//Vanaheim Commands
-	{ "showsummon",         0, atcommand_showsummon}, //Brainstorm
+	{ "god",				60,		atcommand_god },
+	{ "demon",				60,		atcommand_demon },
 };
 
Index: /src/map/itemdb.c
===================================================================
--- /src/map/itemdb.c (revision 24)
+++ /src/map/itemdb.c (revision 1)
@@ -242,12 +242,4 @@
 	if (jobmask & 1<<JOB_NINJA)
 		bclass[0] |= 1<<MAPID_NINJA;
-//why does it have job masks as 26 27 28? wasnt it 29 30 31 or something?
-	//Custom Classes
-	if (jobmask & 1<<26) // Adept [Brain]
-		bclass[0] |= 1<<MAPID_ADEPT;
-	if (jobmask & 1<<27) // Necromancer [Brain]
-		bclass[1] |= 1<<MAPID_ADEPT;
-	if (jobmask & 1<<28) // Warlock [Brain]
-		bclass[2] |= 1<<MAPID_ADEPT;
 }
 
Index: /src/map/script.c
===================================================================
--- /src/map/script.c (revision 24)
+++ /src/map/script.c (revision 1)
@@ -329,7 +329,7 @@
 	MF_NOCHAT,
 	MF_NOEXPPENALTY,
-	MF_GUILDLOCK
+	MF_GUILDLOCK,
+	MF_HOSTILE
 };
-
 const char* script_op2name(int op)
 {
@@ -4324,5 +4324,6 @@
 		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;
 }
@@ -7486,5 +7487,5 @@
 	int allflag=va_arg(ap,int);
 
-	md->state.npc_killmonster = 1;
+	md->npc_killmonster = 1;
 	
 	if(!allflag){
@@ -7495,5 +7496,5 @@
 			status_kill(bl);
 	}
-	md->state.npc_killmonster = 0;
+	md->npc_killmonster = 0;
 	return 0;
 }
@@ -7570,5 +7571,6 @@
 	}
 		
-	map_foreachinmap(buildin_killmonsterall_sub_strip,m,BL_MOB);
+	map_foreachinmap(buildin_killmonsterall_sub_strip,
+		m,BL_MOB);
 	return 0;
 }
@@ -9027,4 +9029,5 @@
 			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
 		}
 	}
@@ -9091,4 +9094,5 @@
 			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
 		}
 	}
@@ -9152,4 +9156,5 @@
 			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
 		}
 	}
@@ -11805,8 +11810,8 @@
 	data = script_getdata(st,3);
 
+	if( script_hasdata(st,5) )
+		size = script_getnum(st,5);
 	if( script_hasdata(st,4) )
 		class_ = script_getnum(st,4);
-	if( script_hasdata(st,5) )
-		size = script_getnum(st,5);
 
 	get_val(st, data);
@@ -12145,6 +12150,5 @@
 		flag = script_getnum(st,3);
 	nd = npc_name2id(shopname);
-	if( !nd || nd->bl.type != BL_NPC || (nd->subtype != SHOP && nd->subtype != CASHSHOP) )
-	{
+	if (!nd || nd->bl.type!=BL_NPC || nd->subtype!=SHOP) {
 		ShowError("buildin_callshop: Shop [%s] not found (or NPC is not shop type)\n", shopname);
 		script_pushint(st,0);
@@ -12152,16 +12156,15 @@
 	}
 	
-	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);
-
+	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;
+	}
 	sd->npc_shopid = nd->bl.id;
 	script_pushint(st,1);
@@ -13378,4 +13381,47 @@
 }
 
+/// 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
@@ -13651,5 +13697,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
@@ -13728,4 +13774,7 @@
 	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/battle.c
===================================================================
--- /src/map/battle.c (revision 24)
+++ /src/map/battle.c (revision 1)
@@ -138,5 +138,5 @@
 }
 
-// _??[WÌx
+// _E?[WÌx
 struct delay_damage {
 	struct block_list *src;
@@ -265,5 +265,5 @@
 
 /*==========================================
- * _??[W?Å?IvZ
+ * _E?[W?Å?IvZ
  *------------------------------------------*/
 int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,int div_,int skill_num,int skill_lv,int flag)
@@ -370,28 +370,4 @@
 				if (--(sce->val3) <= 0) //We make it work like Safety Wall, even though it only blocks 1 time.
 					status_change_end(bl, SC_KAUPE, -1);
-			return 0;
-		}
-		
-		//Display red flashing aura effect of Adept Blood Lust [Brain]
-		if(sc->data[SC_LUST] && damage > 0){
-			clif_specialeffect(bl, 548, AREA);
-			if(rand()%100 < 10) clif_specialeffect(bl, 455, AREA); //Red Lightnings, 1/10 attacks will show to prevent spam
-		};
-		//Display blue flashing aura effect of Warlock Overwhelming Evil [Brain]
-		if(sc->data[SC_OVERWHELMING] && damage > 0)
-			clif_specialeffect(bl, 73, AREA);
- //AT Field is Irrelevant, I believe.
-		// AT-Field [Brainstorm]
-		if(sc->data[SC_ATFIELD] &&
-			rand()%100 < sc->data[SC_ATFIELD]->val2)
-		{	//Blocks all skills.
-			clif_specialeffect(bl, 438, AREA);
-			//Shouldn't end until Breaker's non-weapon part connects.
-			if (skill_num == ASC_BREAKER ||
-				skill_num == LK_SPIRALPIERCE ||
-				skill_num == CG_ARROWVULCAN ||
-				skill_num == SN_SHARPSHOOTING)
-				if (--sc->data[SC_ATFIELD]->val3 <= 0) //We make it work like Safety Wall
-				status_change_end(bl, SC_ATFIELD, -1);
 			return 0;
 		}
@@ -627,5 +603,5 @@
 
 /*==========================================
- * ?Cû_??[W
+ * ?Cû_E?[W
  *------------------------------------------*/
 int battle_addmastery(struct map_session_data *sd,struct block_list *target,int dmg,int type)
@@ -639,6 +615,5 @@
 
 	if((skill = pc_checkskill(sd,AL_DEMONBANE)) > 0 &&
-		target->type == BL_MOB && //This bonus doesnt work against players.
-		(battle_check_undead(status->race,status->def_ele) || status->race==RC_DEMON) )
+		(status->race==RC_UNDEAD || status->race==RC_DEMON) )
 		damage += (skill*(int)(3+(sd->status.base_level+1)*0.05));	// submitted by orn
 		//damage += (skill * 3);
@@ -649,8 +624,4 @@
 			damage += sd->status.str;
 	}
-//AMIDOINITRITE?! V seems okay.	
-	//Warlock Touch of Corruption (Mage-Monster Killer passive skill) [Brainstorm]
-	if((skill = pc_checkskill(sd,WL_CORRUPTION)) > 0 && target->type==BL_MOB )
-		damage += (skill * (status->int_/10));
 
 	if(type == 0)
@@ -1328,7 +1299,4 @@
 			switch( skill_num )
 			{
-				case NC_DEATHHAND: // Necro Death Hand [Brain]
-					skillratio += -25+25*skill_lv; //I wonder if it will accept that?
-					break;
 				case SM_BASH:
 					skillratio += 30*skill_lv;
@@ -1746,5 +1714,5 @@
 				vit_def = def2/2 + (vit_def>0?rand()%vit_def:0);
 				
-				if((battle_check_undead(sstatus->race,sstatus->def_ele) || sstatus->race==RC_DEMON) && //This bonus already doesnt work vs players
+				if((sstatus->race==RC_UNDEAD || sstatus->race==RC_DEMON) &&
 					src->type == BL_MOB && (skill=pc_checkskill(tsd,AL_DP)) > 0)
 					vit_def += skill*(int)(3 +(tsd->status.base_level+1)*0.04);   // submitted by orn
@@ -2219,7 +2187,5 @@
 		{	//Calc base damage according to skill
 			case AL_HEAL:
-			case PR_BENEDICTIO: //Accidentally deleted the :, replaced it. No difference, so dont worry about this.
-			case AD_DARKHEAL: // Adept Dark Heal
-			//Is this a good place for dark heal, i wonder? Seems fine though.
+			case PR_BENEDICTIO:
 				ad.damage = skill_calc_heal(src, target, skill_lv)/2;
 				break;
@@ -2340,32 +2306,4 @@
 						skillratio += 100 +100*skill_lv +100*(skill_lv/2);
 						break;
-						
-//NOTE: All the skills below here did NOT work before, may have been a stupid mistake but this is for reference.
-					case NC_DRAINLIFE: // Necro Drain Life [Brain]
-						skillratio += 25*skill_lv;
-						break;
-					case WL_HELLFIRE: // Warlock Hellfire [Brain]
-						skillratio += 25*skill_lv;
-						break;
-					case WL_SHADOWBURN: // Warlock Shadow Burn [Brain]
-						skillratio += 20*skill_lv;
-						break;
-					case WL_CURSEDOOM: // Warlock Curse of Doom [Brain]
-						skillratio += 400 + 300*skill_lv; //max 20*matk dmg after 60 seconds
-						break;
-					case WL_SEARING: // Warlock Searing Pain [Brain]
-						if(status_get_sc(target)->data[SC_SEARING])
-							skillratio = 10*pc_checkskill(sd,WL_SEARING);//10% * skilllv
-						break; //Else 100% Matk
-					case WL_IMMOLATE: // Warlock Immolate [Brain]
-						if(status_get_sc(target)->data[SC_IMMOLATE])
-							skillratio += 10*pc_checkskill(sd,WL_SEARING);//100% +10 * searing lv
-						else skillratio += -20 + 20*skill_lv;// Else 80% + 20% * skill lv
-						break;
-					case WL_CONFLAGRATE: // Warlock Conflagrate [Brain]
-						skillratio += 100 + 60*skill_lv + //damage bonus from other fire skills
-							10*pc_checkskill(sd,WL_SEARING) + 10*pc_checkskill(sd,WL_IMMOLATE);
-						break;
-
 				}
 
@@ -2438,12 +2376,5 @@
 		if (!(nk&NK_NO_ELEFIX))
 			ad.damage=battle_attr_fix(src, target, ad.damage, s_ele, tstatus->def_ele, tstatus->ele_lv);
-//Take this into account for errors. It looks out of place/outdated but I will not look further into it until I know.
-		if(skill_num == WL_SHADOWBURN) { // Warlock Shadow Burn [Brain]
-			// This is where we calculate the secondary damage
-			if(ad.damage<1) ad.damage=1;
-			struct Damage md = battle_calc_misc_attack(src,target,skill_num,skill_lv, mflag);
-			if(md.damage<1) md.damage=1;
-			ad.damage += md.damage;
-		}
+
 		if (sd && !(nk&NK_NO_CARDFIX_ATK)) {
 			short t_class = status_get_class(target);
@@ -2511,5 +2442,5 @@
 
 /*==========================================
- * »ÌŒ_??[WvZ
+ * »ÌŒ_E?[WvZ
  *------------------------------------------*/
 struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list *target,int skill_num,int skill_lv,int mflag)
@@ -2645,16 +2576,5 @@
 	case NPC_EVILLAND:
 		md.damage = (skill_lv>6)?666:skill_lv*100;
-//Why the hell is this supposed to be above the break?
-	case WL_SHADOWBURN: // Warlock ShadowBurn dark element damage [Brain]
-		s_ele = ELE_DARK;
-		md.damage = ((300 + 20*skill_lv)/100)*((sstatus->int_*(rand()%300+500))/100); //Fixed between min and max matk for now
 		break;
-		
-// Wouldn't this work better?
-
-/*	case WL_SHADOWBURN: // Warlock ShadowBurn dark element damage [Brain]
-		s_ele = ELE_DARK;
-		md.damage = ((300 + 20*skill_lv)/100)*((sstatus->int_*(rand()%300+500))/100); //Fixed between min and max matk for now
-break;*/
 	}
 
@@ -2750,5 +2670,5 @@
 }
 /*==========================================
- * _??[WvZê??p
+ * _E?[WvZê?E?p
  *------------------------------------------*/
 struct Damage battle_calc_attack(int attack_type,struct block_list *bl,struct block_list *target,int skill_num,int skill_lv,int count)
@@ -2843,20 +2763,4 @@
 	if (sd->sp_vanish_rate && rand()%1000 < sd->sp_vanish_rate)
 		status_percent_damage(&sd->bl, tbl, 0, (unsigned char)sd->sp_vanish_per, false);
-//I don't know about this. But it looks like it fits fine
-	// Adept Blood Pact drains 5% damage per hit [FlavioJS/Brain]
-	if( pc_checkskill(sd, AD_BLOODPACT) > 0 )
-		thp += battle_calc_drain(rdamage,1000,5);
-
-	// Warlock Soul Steal drains 1%*skilllv damage per hit [Brain]
-	if( pc_checkskill(sd, WL_SOULSTEAL) > 0 )
-		tsp += battle_calc_drain(rdamage,1000,pc_checkskill(sd,WL_SOULSTEAL));
-	// Warlock Touch of Corruption burns 1%*skilllv damage as SP per hit [Brain]
-	if( pc_checkskill(sd, WL_CORRUPTION) > 0 ) {// This is the opener, whoops lol.
-		int corrupt_sp;
-		corrupt_sp = battle_calc_drain(rdamage,1000,pc_checkskill(sd,WL_CORRUPTION));
-		if(status_damage(NULL, tbl, 0, corrupt_sp, 0, 3))
-			rhp += corrupt_sp;//If SP damage was caused, increase HP damage too
-	}// Where does this bracket open?
-
 	if (!thp && !tsp) return;
 
@@ -2868,5 +2772,5 @@
 
 /*==========================================
- * Ê?í?U??ÜÆß
+ * Ê?EU?E?ÜÆß
  *------------------------------------------*/
 enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* target, unsigned int tick, int flag)
@@ -3082,17 +2986,5 @@
 	return wd.dmg_lv;
 }
-//new battle check code, i speculate it. But it looks like it just calls other races and elements into one big one.
-int battle_check_living(int race,int element)// Living creature check [Brain]
-{
-	if(element == ELE_UNDEAD || race == RC_UNDEAD // Undead element and race check
-		|| race == RC_DEMON			// Demon race check
-		|| race == RC_FORMLESS			// Formless race check
-		|| element == ELE_GHOST){		// Ghost element check
-		return 0;
-	}
-	else {
-	return 1;
-	}
-}
+
 int battle_check_undead(int race,int element)
 {
@@ -3241,4 +3133,15 @@
 				strip_enemy = 0;
 			}
+			// Sketchy - begin
+		if (sd->state.god && t_bl != s_bl && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->state.demon && map[m].flag.hostile) {
+		state |= BCT_ENEMY;
+		strip_enemy = 0;
+		}
+
+		if (sd->state.demon && t_bl != s_bl && s_bl->type == BL_PC && ((TBL_PC*)s_bl)->state.god && map[m].flag.hostile) {
+		state |= BCT_ENEMY;
+		strip_enemy = 0;
+		}
+		// Sketchy -end
 			break;
 		}
@@ -3809,10 +3712,5 @@
 	{ "auction_feeperhour",                 &battle_config.auction_feeperhour,              12000,  0,      INT_MAX,        },
 	{ "auction_maximumprice",               &battle_config.auction_maximumprice,            500000000, 0,   MAX_ZENY,       },
-//battle conf declarations, does this mean we add new lines to battle.conf?
-	//Vanaheim battle settings [Brainstorm]
-	{ "necro_retaliation",                  &battle_config.necro_retaliation,               1,      0,      1,              },
-	{ "disp_summon_stats",                  &battle_config.disp_summon_stats,               0,      0,      1,              },
 	{ "gm_viewequip_min_lv",                &battle_config.gm_viewequip_min_lv,             0,      0,      99,             },
-	{ "homunculus_auto_vapor",              &battle_config.homunculus_auto_vapor,           0,      0,      1,              },
 };
 
Index: /src/map/skill.c
===================================================================
--- /src/map/skill.c (revision 24)
+++ /src/map/skill.c (revision 1)
@@ -42,5 +42,5 @@
 #define GD_SKILLRANGEMIN 900
 #define GD_SKILLRANGEMAX GD_SKILLRANGEMIN+MAX_GUILDSKILL
-#define HM_SKILLRANGEMIN 1100 //I know for a fact this will cause authok problems where it is, but perhaps it's changed now.
+#define HM_SKILLRANGEMIN 800
 #define HM_SKILLRANGEMAX HM_SKILLRANGEMIN+MAX_HOMUNSKILL
 
@@ -610,6 +610,5 @@
 	case CR_GRANDCROSS:
 	case NPC_GRANDDARKNESS:
-		//Chance to cause blind status vs demon and undead element, but not against players
-		if(!dstsd && (battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race == RC_DEMON))
+		if(tstatus->race == RC_UNDEAD || tstatus->race == RC_DEMON)
 			sc_start(bl,SC_BLIND,100,skilllv,skill_get_time2(skillid,skilllv));
 		break;
@@ -822,28 +821,4 @@
 		sc_start(bl,SC_CRITICALWOUND,100,skilllv,skill_get_time2(skillid,skilllv));
 		break;
-//This has weird Structure compared to the other stuff here.
-	case NC_GHOULTOUCH:	//Necro Ghoul Touch [Brain]
-		if (battle_check_living(tstatus->race, tstatus->def_ele)) //Check if target is a living creature before proceed
-			sc_start(bl,SC_POISON,10000,skilllv,skill_get_time2(skillid,skilllv));
-		break;
-	case NC_PWSUFFER:	//Necro Power Word: Suffer [Brain]
-	case WL_PWAGONY:	//Warlock Power Word: Agony [Brain]
-		if (battle_check_living(tstatus->race, tstatus->def_ele)) //Check if target is a living creature before proceed
-			sc_start(bl,skillid==NC_PWSUFFER?SC_SUFFER:SC_AGONY,1000,skilllv,skill_get_time2(skillid,skilllv));
-		break;
-	case WL_SEARING:	//Warlock Searing Pain [Brain]
-		//The DoT is only initiated if target isnt burning already.
-		if(!tsc->data[SC_SEARING] && !tsc->data[SC_IMMOLATE])
-			sc_start(bl,SC_SEARING,10000,skilllv,skill_get_time2(skillid,skilllv));
-		break;
-	case WL_IMMOLATE:	//Warlock Immolate [Brain]
-		//The DoT is only initiated if target isnt in immolate, but must be in searing pain status
-		if(tsc->data[SC_SEARING] && !tsc->data[SC_IMMOLATE])
-			sc_start(bl,SC_IMMOLATE,10000,skilllv,skill_get_time2(skillid,skilllv));
-		break;
-	case WL_SHADOWBURN:	//Warlock Shadow Burn [Brain]
-		sc_start(bl,SC_STUN,10000,skilllv,skill_get_time(skillid,skilllv));
-		break;
-
 	}
 
@@ -1042,15 +1017,4 @@
 		clif_skill_nodamage(src,bl,HW_SOULDRAIN,rate,1);
 		status_heal(src, 0, status_get_lv(bl)*(95+15*rate)/100, 2);
-	}
-//was hard to pinpoint this place.
-	// Warlock Soul Steal [Brain]
-	if(sd && skillid && attack_type&BF_MAGIC && status_isdead(bl) 
-		&& !(skill_get_inf(skillid)&(INF_GROUND_SKILL|INF_SELF_SKILL))
-		&& (rate=pc_checkskill(sd,WL_SOULSTEAL))>0){// Wont work with area/ground spells (hellfire)
-		if (pc_issit(sd)) pc_setstand(sd);
-		clif_skill_nodamage(src,bl,WL_SOULSTEAL,rate,1);
-		clif_specialeffect(src, 253, AREA); // Absorb Mana effect on caster
-		status_heal(src, 0, status_get_lv(bl)*(90+10*rate)/100, 2);
-		if(rand()%100 < rate) skill_additem(src,src,15020,1); //Chance to "steal" the target soul
 	}
 
@@ -1510,6 +1474,7 @@
 	damage = dmg.damage + dmg.damage2;
 	
-	if( (skillid == AL_INCAGI || skillid == AL_BLESSING) && tsd->sc.data[SC_CHANGEUNDEAD] )
-		damage = 1;
+	if (skillid == AL_INCAGI || skillid == AL_BLESSING)
+		if (tsd->sc.data[SC_CHANGEUNDEAD])
+			damage = 1;
 
 	if (damage > 0 && dmg.flag&BF_WEAPON && src != bl && src == dsrc &&
@@ -1800,11 +1765,9 @@
 	if(battle_check_target(src,bl,flag) > 0)
 	{
-		// several splash skills need this initial dummy packet to display correctly
-		if (flag&SD_PREAMBLE && skill_area_temp[2] == 0)
-			clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
-
-		if (flag&(SD_SPLASH|SD_PREAMBLE))
+		if (flag&(SD_SPLASH|SD_PREAMBLE)) {
+			if (flag&SD_PREAMBLE && !skill_area_temp[2])
+				clif_skill_damage(src,bl,tick, status_get_amotion(src), 0, -30000, 1, skill_id, skill_lv, 6);
 			skill_area_temp[2]++;
-
+		}
 		return func(src,bl,skill_id,skill_lv,tick,flag);
 	}
@@ -2145,37 +2108,4 @@
 								sc->data[SC_SPIRIT]->val3 = 0; //Clear bounced spell check.
 						}
-					}
-					break;
-//Could be confusing to find the right place.
-				case NC_PWSUFFER: //Necro Power Word: Suffer [Brain]
-					if (!status_isdead(target) && status_get_sc(target)->data[SC_SUFFER]){
-						skill_attack(BF_MAGIC,src,src,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION|SD_LEVEL);
-						clif_specialeffect(target, 180, AREA); //Shadow Hit Effect on target
-						if (skl->type>1 && !status_isdead(target))
-							skill_addtimerskill(src,tick+3000,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag|SD_ANIMATION);
-					}
-					break;
-				case WL_SEARING: //Warlock Searing Pain [Brain]
-					if (!status_isdead(target) && status_get_sc(target)->data[SC_SEARING]){
-						skill_attack(BF_MAGIC,src,target,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION|SD_LEVEL);
-						clif_specialeffect(target, 49, AREA); //Fire Hit Effect on target
-						if (skl->type>1 && !status_isdead(target))
-							skill_addtimerskill(src,tick+3000,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag|SD_ANIMATION);
-					}
-					break;
-				case WL_IMMOLATE: //Warlock Immolate [Brain]
-					if (!status_isdead(target) && status_get_sc(target)->data[SC_IMMOLATE]){
-						skill_attack(BF_MAGIC,src,target,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION|SD_LEVEL);
-						clif_specialeffect(target, 97, AREA); //Firepillar Hit Effect on target
-						if (skl->type>1 && !status_isdead(target))
-							skill_addtimerskill(src,tick+3000,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag|SD_ANIMATION);
-					}
-					break;
-				case WL_PWAGONY: //Warlock Power Word: Agony [Brain]
-					if (!status_isdead(target) && status_get_sc(target)->data[SC_AGONY]){
-						skill_attack(BF_MAGIC,src,target,target,skl->skill_id,skl->skill_lv,tick,skl->flag|SD_ANIMATION|SD_LEVEL);
-						clif_specialeffect(target, 587, AREA); //Big Purple Flame Effect on target
-						if (skl->type>1 && !status_isdead(target))
-							skill_addtimerskill(src,tick+3000,target->id,0,0,skl->skill_id,skl->skill_lv,skl->type-1,skl->flag|SD_ANIMATION);
 					}
 					break;
@@ -2394,23 +2324,4 @@
 		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
 		break;
-		
-//... something doesn't fit about this. Seriously.
-	case NC_GHOULTOUCH:	//Necro Ghoul Touch [Brain]
-		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
-		clif_specialeffect(bl, 124, AREA); //Venom Dust Effect on target
-		break;
-	case NC_DEATHHAND: 	//Necro Death Hand [Brain]
-		skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag|SD_LEVEL);//Hide skill yell
-		clif_specialeffect(bl, 65, AREA); //Power absorb Effect on target
-		if (battle_check_living(tstatus->race, tstatus->def_ele)){ //Check if target is a living creature before proceed
-			int chance = (10+(skilllv*2)+(status_get_luk(src)-status_get_luk(bl))/5); 
-			//10% chance + 2% per skilllv + (caster luk - target luk)/5 %
-				if (rand()%100 < chance) {
-					clif_skill_nodamage(src,bl,skillid,-1,flag|SD_LEVEL);//Hide skill yell
-					status_percent_damage(src, bl, 100, 0, true); //Instant kill our target
-				} else clif_skill_fail(sd,skillid,0,0);
-		}
-		break;
-
 
 	case LK_JOINTBEAT: // decide the ailment first (affects attack damage and effect)
@@ -2748,81 +2659,4 @@
 		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
 		break;
-//another thing in a weird place.
-	case AD_DARKHEAL: // Adept Dark Heal [Brain]
-		clif_specialeffect(bl, 656, AREA); //Blinking Green Sprite Effect on target
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); //Exception because we must add the effect manually =/
-		break;
-	case NC_PWSUFFER: //Necro Power Word: Suffer [Brain]
-		if(battle_check_living(tstatus->race,tstatus->def_ele)){
-			skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-			clif_specialeffect(bl, 180, AREA); //Shadow hit Effect on target
-			clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-			//If target is on suffering status already, just cause damage, no extra DoT
-			if(!status_get_sc(bl)->data[SC_SUFFER])
-				skill_addtimerskill(src,tick+3000,bl->id,0,0,skillid,skilllv,skilllv,flag);
-		}
-		else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case NC_DRAINLIFE: // Necromancer Drain Life [Brain]
-		{
-			int heal = skill_attack(BF_MAGIC, src, src, bl, skillid, skilllv, tick, flag)/2;
-			if (heal > 0 && (battle_check_living(tstatus->race,tstatus->def_ele))){
-				clif_skill_nodamage(NULL, src, AL_HEAL, heal, 1);
-				status_heal(src, heal, 0, 0);
-			}
-		}
-		clif_specialeffect(bl, 180, AREA); //Shadow hit Effect on target
-		clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-		break;
-	case WL_SHADOWBOLT: // Warlock Shadowbolt [Brain]
-		clif_specialeffect(bl, 180, AREA); //Shadow hit Effect on target
-		clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag); //Again, the effect...cursed effects...
-		break;
-	case WL_SHADOWBURN: // Warlock Shadow Burn [Brain]
-		clif_specialeffect(bl, 180, AREA); //Shadow hit Effect on target
-		clif_specialeffect(bl, 32, AREA); //Flame Engulf Effect on target
-		clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-		break;
-	case WL_SEARING: // Warlock Searing Pain [Brain]
-		clif_specialeffect(bl, 406, AREA); //Fire on Head Effect on target
-		clif_specialeffect(src, 55, AREA); //Red Cast Effect on caster
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-		//if target is on searing status already, just cause damage, no extra DoT
-		if(!status_get_sc(bl)->data[SC_SEARING])
-			skill_addtimerskill(src,tick+3000,bl->id,0,0,skillid,skilllv,4,flag);
-		break;
-	case WL_CONFLAGRATE: // Warlock Conflagrate [Brain]
-		if(status_get_sc(bl)->data[SC_IMMOLATE]) { // Can only be casted if target is immolating status
-			clif_specialeffect(bl, 183, AREA); //Explosion Effect on target
-			clif_specialeffect(src, 55, AREA); //Red Cast Effect on caster
-			skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-			status_change_end(bl,SC_IMMOLATE,-1); //End Immolating status
-		} else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case WL_IMMOLATE: // Warlock Immolate [Brain]
-		clif_specialeffect(bl, 635, AREA); //Dragon Fire Effect on target
-		clif_specialeffect(src, 55, AREA); //Red Cast Effect on caster
-		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-		//If Target is on searing pain status, will change immolating status instead
-		if(!status_get_sc(bl)->data[SC_IMMOLATE])
-			skill_addtimerskill(src,tick+3000,bl->id,0,0,skillid,skilllv,5,flag);
-		break;
-	case WL_CURSEDOOM: // Warlock Curse of Doom [Brain]
-		clif_specialeffect(bl, 183, AREA); //Explosion Effect on target
-		skill_attack(BF_MAGIC,src,bl,bl,skillid,skilllv,tick,flag|SD_ANIMATION);
-		break;
-	case WL_PWAGONY: // Warlock Power Word: Agony [Brain]
-		if(battle_check_living(tstatus->race,tstatus->def_ele)){
-			skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
-			clif_specialeffect(bl, 587, AREA); //Big Purple Flame Effect on target
-			clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-			//If target is on Agonizing status already, just cause damage, no extra DoT
-			if(!status_get_sc(bl)->data[SC_AGONY])
-				skill_addtimerskill(src,tick+3000,bl->id,0,0,skillid,skilllv,skilllv,flag);
-		}
-		else clif_skill_fail(sd,skillid,0,0);
-		break;
 
 	case NPC_MAGICALATTACK:
@@ -3031,7 +2865,5 @@
 		return 1;
 
-	// Added DEATHPACT [Brain]
-	//if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO)
-	if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO && skillid != NC_DEATHPACT)
+	if(src!=bl && status_isdead(bl) && skillid != ALL_RESURRECTION && skillid != PR_REDEMPTIO)
 		return 1;
 
@@ -3059,19 +2891,4 @@
 			}
 			break;
-//right place?
-		case AD_DARKHEAL:	// Adept Dark Heal [Brain]
-			// Only player casted spells can be offensive (copyed from AL_HEAL code above)
-			if (sd && (battle_check_living(tstatus->race,tstatus->def_ele)) //Check if target is a living creature
-				&& !pc_checkskill(dstsd,NC_PHYLACTERY) //Or he doesnt have Phylactery (non-perma undead)
-				&& !status_get_sc(bl)->data[SC_OVERWHELMING]) { //Or Overwhelming Evil is off (most cases)
-				if (battle_check_target(src, bl, BCT_ENEMY) < 1) {
-				  	//Offensive heal does not works on non-enemies.
-					clif_skill_fail(sd,skillid,0,0);
-					return 0;
-				}
-				return skill_castend_damage_id(src, bl, skillid, skilllv, tick, flag);
-			}
-			break;
-
 		case NPC_SMOKING: //Since it is a self skill, this one ends here rather than in damage_id. [Skotlex]
 			return skill_castend_damage_id (src, bl, skillid, skilllv, tick, flag);
@@ -3103,11 +2920,4 @@
 			if (status_isimmune(bl) || (dstmd && dstmd->class_ == MOBID_EMPERIUM))
 				heal=0;
-//To not allow heal for joo
-			// Profane Soul reduces the healed recieved by 3% per skilllv [Brain]
-			if(dstsd) {
-				heal = heal * (100 - pc_checkskill(dstsd,AD_PROFANE)*3)/100;
-				//Wont heal even if he got elemental armors [Brain]
-				if(pc_checkskill(dstsd,NC_PHYLACTERY)) heal = skilllv;
-			}
 			if (sd) {
 				if ((i = pc_skillheal_bonus(sd, skillid)))
@@ -3145,22 +2955,4 @@
 		}
 		break;
-	case AD_DARKHEAL: // Adept Dark Heal [Brain]
-		{
-			int heal = skill_calc_heal(src, bl, skilllv);
-			if (status_isimmune(bl) || (dstmd && dstmd->class_ == MOBID_EMPERIUM))
-				heal=0;
-			if(battle_check_undead(tstatus->race,tstatus->def_ele) || tstatus->race==RC_UNDEAD // Check if our target is undead or demon
-				|| tstatus->race==RC_DEMON || pc_checkskill(dstsd,NC_PHYLACTERY)//Or has a phylactery
-				|| status_get_sc(bl)->data[SC_OVERWHELMING]) { //Or is on OverWhelm status, checking again...
-				clif_skill_nodamage(src, bl, skillid, heal, 1);
-				clif_skill_nodamage(NULL, bl, AL_HEAL, heal, 1); //Subtle way to show heal numbers AND effect =D
-				status_heal(bl, heal, 0, 0);
-			} else {
-				clif_skill_nodamage(src, bl, skillid, 0, 1);
-				clif_skill_nodamage(NULL, bl, AL_HEAL, 0, 1);
-			}
-		clif_specialeffect(bl, 656, AREA); //Blinking Green Sprite Effect on target
-		}
-		break;
 
 	case PR_REDEMPTIO:
@@ -3196,5 +2988,4 @@
 		
 	case ALL_RESURRECTION:
- 	case NC_DEATHPACT: // Necro Death Pact [Brain] (Seems fine)
 		if(sd && map_flag_gvg(bl->m))
 		{	//No reviving in WoE grounds!
@@ -3214,6 +3005,4 @@
 			case 3: per=50; break;
 			case 4: per=80; break;
-			case 5: per=100; break; //Added a 5th level because NC_DEATHPACT got 5 lvs [Brain]
-//above seems ok
 			}
 			if(dstsd && dstsd->special_state.restart_full_recover) 
@@ -3222,11 +3011,4 @@
 			{
 				clif_skill_nodamage(src,bl,ALL_RESURRECTION,skilllv,1); //Both Redemptio and Res show this skill-animation.
-//Seriously, how is this right? It just doesnt look right but i may be ignoring something.
-				if(skillid==NC_DEATHPACT) { // Necro Death Pact [Brain]
-					clif_skill_nodamage(src, bl, skillid, skilllv, 
-						sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-					break;
-				}
-
 				if(sd && dstsd && battle_config.resurrection_exp > 0) 
 				{
@@ -3247,94 +3029,4 @@
 		}
 		break;
-//Huge lump of code here.
-	case AD_PWBLIND: // Adept Power Word: Blind [Brain]
-		if(!tsc->data[type]) {
-			clif_skill_nodamage(src, bl, skillid, skilllv,1);
-			if(sc_start(bl, type,(30 + skilllv * 10 + (status_get_lv(src) - sstatus->int_)/5),
-				skilllv, skill_get_time(skillid,skilllv))) 
-			{
-				if(dstmd) mob_unlocktarget(dstmd,tick);  //Removes current target
-				clif_specialeffect(bl, 379, AREA); //379.Soul Drain (2nd Part)
-				break;
-			}
-		} else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case AD_PWFEAR: // Adept Power Word: Fear [Brain]
-		if(!tsc->data[type]) {
-			clif_skill_nodamage(src, bl, skillid, skilllv,1);
-			if(dstsd)
-				type = SC_CONFUSION; //Players cant be affected by SC_FEAR
-			if(sc_start(bl, type, (30 + skilllv * 10), skilllv, skill_get_time(skillid,skilllv)))
-			{
-				clif_specialeffect(bl, 372, AREA); //372.Death
-				unit_escape(bl, bl, 30);
-			}
-		} else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case WL_HOWLOFPAIN: // Warlock Howl of Pain [Brain]
-		//These must be here first or else the code wont execute them.
-		clif_specialeffect(src, 670, AREA); // Monster skill SCREAM effect on caster (no sound)
-		clif_soundeffectall(bl, "wraith_die.wav", 0, AREA); //Wraith Laugh Sound
-		if (flag & 1) {
-			//Check if target is a living creature AND a valid enemy
-			if (battle_check_target(src, bl, BCT_ENEMY) && battle_check_living(tstatus->race,tstatus->def_ele))
-			{
-				if(sc_start(bl,type,10+skilllv*10,skilllv,skill_get_time(skillid,skilllv)))
-				{
-					if(dstmd) //PROVOKE Effect on mobs
-						mob_target(dstmd,src,skill_get_range2(src,skillid,skilllv));
-					// Breaks Frozen and Sleep status
-					if(tsc && tsc->count){
-						if(tsc->data[SC_FREEZE])
-							status_change_end(bl,SC_FREEZE,-1);
-						if(tsc->data[SC_SLEEP])
-							status_change_end(bl,SC_SLEEP,-1);
-					}
-					clif_emotion(bl,6); //anger emote on target
-					break;
-				} else { //What will happen if the status fail:
-					{
-						if (sd) //If is a player
-							clif_skill_fail(sd,skillid,0,0);
-						map_freeblock_unlock(); //Else is a mob
-						return 0;
-					}
-					unit_skillcastcancel(bl, 2); //In any case, will cancel casting
-				}
-			}
-		} else {
-			map_foreachinrange(skill_area_sub, src,
-				skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, flag|BCT_ENEMY|1,
-				skill_castend_nodamage_id);
-			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-			map_freeblock_unlock();
-			return 1;
-		}
-		break;
-	case WL_HOWLOFTERROR: // Warlock Howl of Terror [Brain]
-		if (flag & 1) {
-			int rate;
-			//Check if target is a living creature AND a valid enemy
-			if (battle_check_target(src, bl, BCT_ENEMY)
-				&& battle_check_living(tstatus->race,tstatus->def_ele)) {
-				rate = 10 + skilllv*5 + pc_checkskill(sd,AD_PWFEAR)*3;
-				if(dstsd) { 
-					rate -= 10; // 10% less chance on players
-					type = SC_CONFUSION; //Players cant be affected by SC_FEAR
-				}
-				if(sc_start(bl,type,rate,skilllv,skill_get_time(skillid,skilllv)))
-					clif_specialeffect(bl, 372, AREA); //Same as PW: Fear
-			}
-		} else {
-			map_foreachinrange(skill_area_sub, src,
-				skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, flag|BCT_ENEMY|1,
-				skill_castend_nodamage_id);
-			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-		}
-		clif_specialeffect(src, 668, AREA); // Monster skill SCREAM effect on caster (with sound)
-		break;
-// Would be easy to screw up in that.
 
 	case AL_DECAGI:
@@ -3352,69 +3044,4 @@
 				src, skillid, skilllv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
 			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-		}
-		break;
-//another huge lump
-	case NC_DARKMOON: //Necro Dark Moon [Brain]
-		if (flag&1) {
-			//Check my enemies
-			if (battle_check_target(src, bl, BCT_ENEMY) &&
-				battle_check_living(tstatus->race,tstatus->def_ele))
-			{
-				if(sc_start(bl,SC_BLIND,50,skilllv,skill_get_time(skillid,skilllv)))
-					clif_specialeffect(bl, 580, AREA); //Box of Rain effect on target
-			}
-			else { //Now my Party members
-				if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) {
-					clif_skill_nodamage(bl,bl,skillid,skilllv,
-					sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-					clif_specialeffect(bl, 521, AREA); //Red Flashing Aura Sprite effect on target
-				} else if (sd) {
-					party_foreachsamemap(skill_area_sub, sd,skill_get_splash(skillid, skilllv),
-						src,skillid,skilllv,tick, flag|BCT_ALL|1,skill_castend_nodamage_id);
-				}
-			}
-		} else {
-			map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, flag|BCT_ALL|1, skill_castend_nodamage_id);
-			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-		}
-		clif_specialeffect(src, 407, AREA); //Soul Change Effect on caster
-		clif_soundeffectall(bl, "se_wolf1.wav", 0, AREA); //Wolf Howl Sound
-		break;
-	case NC_REQUIEM: //Necro Requiem [Brain]
-		if (flag&1) {
-			//Check my enemies
-			if (battle_check_target(src, bl, BCT_ENEMY) &&
-					battle_check_living(tstatus->race,tstatus->def_ele))
-			{
-				if(sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)))
-					clif_specialeffect(bl, 578, AREA); //Box of Curse effect on target
-			}
-			else { //Now my Party members
-				if (sd == NULL || sd->status.party_id == 0 || (flag & 1)) {
-					clif_skill_nodamage(bl,bl,skillid,skilllv,
-					sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-					clif_specialeffect(bl, 572, AREA); //Warmth Soul effect on target
-				} else if (sd) {
-					party_foreachsamemap(skill_area_sub, sd,skill_get_splash(skillid, skilllv),
-						src,skillid,skilllv,tick, flag|BCT_ALL|1,skill_castend_nodamage_id);
-				}
-			}
-		} else {
-			map_foreachinrange(skill_area_sub, src, skill_get_splash(skillid, skilllv), BL_CHAR,
-				src, skillid, skilllv, tick, flag|BCT_ALL|1, skill_castend_nodamage_id);
-			clif_skill_nodamage(src, bl, skillid, skilllv, 1);
-		}
-		int rnds = rand()%3;
-		switch(rnds) {
-			case 1:
-				clif_soundeffectall(bl, "chant1.wav", 0, AREA); //Chanting Sound
-				break;
-			case 2:
-				clif_soundeffectall(bl, "chant2.wav", 0, AREA); //Chanting Sound
-				break;
-			case 3:
-				clif_soundeffectall(bl, "chant3.wav", 0, AREA); //Chanting Sound
-				break;
 		}
 		break;
@@ -3721,57 +3348,7 @@
 	case NPC_DEFENDER:
 	case NPC_MAGICMIRROR:
-	case ALL_ATFIELD:	//AT Field [Brain] ( still dont think this belongs.)
 		clif_skill_nodamage(src,bl,skillid,skilllv,
 			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
 		break;
-//ANOTHER large lump but it really doesnt feel like it fits here.
-	case AD_LUST:	// Adept Blood Lust [Brain]
-		clif_specialeffect(src, 220, AREA); //Berserk Pot effect
-		clif_specialeffect(src, 455, AREA); //Red Lightnings
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-	case NC_DECREPIFY: //Necro Decrepify [Brain]
-		if(battle_check_living(tstatus->race,tstatus->def_ele)){
-			clif_specialeffect(bl, 403, AREA); //Mind Breaker Effect on target
-			clif_specialeffect(src, 454, AREA); //Black Cast Effect on caster
-			clif_skill_nodamage(src,bl,skillid,skilllv,
-				sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		}
-		else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case WL_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain]
-		clif_specialeffect(bl, 656, AREA); //Blinking Green Sprite effect on target
-		clif_specialeffect(src, 59, AREA); //Purple Cast Effect on caster
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-	case WL_CURSEEXHAUST: // Warlock Curse of Exhaustion [Brain]
-		clif_specialeffect(bl, 135, AREA); //Ice Breaking effect on target
-		clif_specialeffect(src, 59, AREA); //Purple Cast Effect on caster
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-	case WL_CURSETONGUES: // Warlock Curse of Tongues [Brain]
-		clif_specialeffect(bl, 72, AREA); //Spinning Lights effect on target
-		clif_specialeffect(src, 59, AREA); //Purple Cast Effect on caster
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-	case WL_CURSEDOOM: // Warlock Curse of Doom (temp) [Brain]
-		if(!tsc->data[type]) {
-			clif_specialeffect(bl, 196, AREA); //Small Curse Reaper effect on target
-			clif_specialeffect(src, 59, AREA); //Purple Cast Effect on caster
-			clif_skill_nodamage(src,bl,skillid,skilllv,
-				sc_start4(bl,type,100,
-					skilllv,skillid,src->id,skill_get_time(skillid,skilllv),1000));
-		} else clif_skill_fail(sd,skillid,0,0);
-		break;
-	case WL_OVERWHELMING: // Warlock Overwhelming Evil [Brain]
-		clif_specialeffect(src, 348, AREA); //1000 Blades Trespassing effect on caster
-		clif_skill_nodamage(src,bl,skillid,skilllv,
-			sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
-		break;
-
 	case MG_SIGHT:
 	case AL_RUWACH:
@@ -3988,28 +3565,4 @@
 		}
 		if (i) status_heal(src, 0, i, 3);
-		clif_skill_nodamage(src,bl,skillid,skilllv,i?1:0);
-		break;
-//this feels more like it fits.
-	case WL_DRAINSOUL: // Warlock Drain Soul [Brain]
-		i = 0;
-		if (dstsd && (sd == dstsd || map_flag_vs(src->m)))
-		{	//check if target is a player and we are in versus map
-			i = tstatus->max_sp * skilllv/100;//i = SkillLv% of player Max SP
-			if(dstsd->spiritball && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) {
-				i += dstsd->spiritball * 5;//will drain Monk Spirits and regain 5 SP per Spirit
-				pc_delspiritball(dstsd,dstsd->spiritball,0);
-			}
-		} else if (dstmd && !(tstatus->mode&MD_BOSS) && battle_check_living(tstatus->race,tstatus->def_ele))
-		{	// check if target is a monster and not a Boss
-			i = dstmd->level/5 * skilllv;//i = mob level/5 * Skill Lvl
-			mob_target(dstmd,src,0);//This will turn the mob agressive against the caster
-		}
-		if(i < skilllv) i = skilllv; //Minimum 1 sp per skill lvl
-		if (i) {
-			clif_specialeffect(src, 253, AREA); //Absorb Mana effect on caster
-			clif_specialeffect(bl, 52, AREA); //Lightning Hit effect on target
-			status_heal(src, 0, i, 3); //caster drains sp
-			status_zap(bl, 0, i*skilllv); //target lost sp equal to 1*SkillLv the amount drained
-		}
 		clif_skill_nodamage(src,bl,skillid,skilllv,i?1:0);
 		break;
@@ -5687,6 +5240,5 @@
 	}
 
-	if(ud->skillid != SA_CASTCANCEL )
-	{// otherwise handled in unit_skillcastcancel()
+	if(ud->skillid != SA_CASTCANCEL ) {
 		if( ud->skilltimer != tid ) {
 			ShowError("skill_castend_id: Timer mismatch %d!=%d!\n", ud->skilltimer, tid);
@@ -5694,12 +5246,7 @@
 			return 0;
 		}
-
-		if( sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 )
-		{// restore original walk speed
-			ud->skilltimer = -1;
-			status_calc_bl(&sd->bl, SCB_SPEED);
-		}
-
-		ud->skilltimer = -1;
+		if( sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST))
+			status_freecast_switch(sd);
+		ud->skilltimer=-1;
 	}
 
@@ -5925,11 +5472,8 @@
 	}
 
-	if( sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 )
-	{// restore original walk speed
-		ud->skilltimer=-1;
-		status_calc_bl(&sd->bl, SCB_SPEED);
-	}
+	if(sd && ud->skilltimer != -1 && pc_checkskill(sd,SA_FREECAST))
+		status_freecast_switch(sd);
+
 	ud->skilltimer=-1;
-
 	do {
 		if(status_isdead(src))
@@ -6091,11 +5635,5 @@
 			src->m, x-i, y-i, x+i,y+i,BL_SKILL);
 		break;
-//the code changed alot and jumped around.
-	case WL_HELLFIRE: // Warlock Hellfire [Brain]
-		//clif_specialeffect(sd, 92, AREA); //Meteor Effect on caster, cant set on ground
-		clif_skill_poseffect(src,WZ_METEOR,skilllv,x,y,tick); //Meteor Effect
-		clif_skill_nodamage(src, src, skillid, 0, 1); //Lalala, just to show the skill yell correctly
-		clif_specialeffect(src, 55, AREA); //Red Cast Effect on caster
-		// Continue reading because skill_unitsetting is bellow
+
 	case MG_SAFETYWALL:
 	case MG_FIREWALL:	
@@ -6256,121 +5794,7 @@
 				md->deletetimer = add_timer (gettick() + skill_get_time(skillid,skilllv), mob_timer_delete, md->bl.id, 0);
 				mob_spawn (md); //Now it is ready for spawning.
-//Does this really belong here?
-				// @showsummon command implementation [Brainstorm]
-				if(sd->state.showsummon){
-					char output[256];
-					sprintf(output,
-						"[Summon] HP : %d | STR : %d DEX : %d VIT : %d INT : %d AGI : %d LUK : %d",
-						md->status.max_hp,md->status.str,md->status.dex,md->status.vit,md->status.int_,md->status.agi,md->status.luk);
-					clif_disp_onlyself(sd,output,strlen(output));
-					sprintf(output,
-						"[%s] ATK : %d~%d | DEF: %d+%d MDEF: %d+%d | HIT: %d FLEE: %d",
-						md->name,md->status.rhw.atk,md->status.rhw.atk2,md->status.def,md->status.def2,md->status.mdef,md->status.mdef2,md->status.hit,md->status.flee);
-					clif_disp_onlyself(sd,output,strlen(output));
-				}
-
-			}
-		}
-		break;
-		
-//HUGE lump of code!
-//Some of the code repeats itself, Unless it just recites it for other classes it may be a problem
-	case AD_FAMILIAR: // Adept Summon Familiar [Brain]
-		if( sd )
-		{
-			int id;
-			int mob_class;
-			struct mob_data* md;
-
-			mob_class = pc_readglobalreg(sd, "ADEPT_FAMILIAR");
-			if( mob_class == 0 )
-			{
-				mob_class = mob_get_random_id(4, 0x1, 0);
-				pc_setglobalreg(sd, "ADEPT_FAMILIAR", mob_class);
-			}
-			id = mob_once_spawn(sd,src->m,src->x,src->y,"--en--",mob_class,1,"");
-			md = (struct mob_data *)map_id2bl(id);
-			if( md != NULL )
-			{
-				md->master_id = sd->bl.id;
-				md->special_state.ai = 1;
-				md->status.mode = md->status.mode|MD_AGGRESSIVE;
-				status_calc_mob(md,0); //Recalc their stats based on passive bonus
-				md->status.hp = md->status.max_hp; //Must be here or the code wont update it
-				// @showsummon command implementation [Brainstorm]
-				if(sd->state.showsummon){
-					char output[256];
-					sprintf(output,
-						"[Summon] HP : %d | STR : %d DEX : %d VIT : %d INT : %d AGI : %d LUK : %d",
-						md->status.max_hp,md->status.str,md->status.dex,md->status.vit,md->status.int_,md->status.agi,md->status.luk);
-					clif_disp_onlyself(sd,output,strlen(output));
-					sprintf(output,
-						"[%s] ATK : %d~%d | DEF: %d+%d MDEF: %d+%d | HIT: %d FLEE: %d",
-						md->name,md->status.rhw.atk,md->status.rhw.atk2,md->status.def,md->status.def2,md->status.mdef,md->status.mdef2,md->status.hit,md->status.flee);
-					clif_disp_onlyself(sd,output,strlen(output));
-				}
-				md->deletetimer = add_timer(gettick() + skill_get_time(skillid,skilllv), mob_timer_delete, id, 0);
-			}
-		}
-		break;
-	case NC_SKELETON: // Raise Skeleton [Brain]
-	case NC_ARCHER: // Raise Archer Skeleton
-	case NC_ZOMBIE: // Raise Zombie
-	case NC_MUMMY: // Raise Mummy
-	case NC_GHOST: // Raise Ghost
-	case NC_SHADOW: // Raise Shadow
-	case NC_WRAITH: // Raise Wraith
-		if( sd )
-		{
-			static const int mob_skeleton[5]={ 3201, 3202, 3203, 3204, 3205 }; // Skeleton, Orc Skeleton, Soldier Skeleton, Pirate Skeleton, Skeleton General
-			static const int mob_archer[5]={ 3206, 3207, 3208, 3209, 3210 }; // Archer Skeleton, Firelock Soldier
-			static const int mob_zombie[5]={ 3211, 3212, 3213, 3214, 3215 }; // Zombie, Ghoul, Zombie Master
-			static const int mob_mummy[5]={ 3216, 3217, 3218, 3219, 3220 }; // Mummy, Ancient Mummy
-			static const int mob_ghost[5]={ 3221, 3222, 3223, 3224, 3225 }; // Whisper, Nightmare, Nightmare Terror
-			static const int mob_shadow[5]={ 3226, 3227, 3228, 3229, 3230 }; // Injustice, Raydric, Dullahan
-			static const int mob_wraith[5]={ 3231, 3232, 3233, 3234, 3235 }; // Wraith, Wraith Dead
-			int id;
-			int mob_class;
-			struct mob_data *md;
-
-			switch( skillid )
-			{
-				case NC_SKELETON: mob_class = mob_skeleton[skilllv-1]; break;
-				case NC_ARCHER:   mob_class = mob_archer[skilllv-1]; break;
-				case NC_ZOMBIE:   mob_class = mob_zombie[skilllv-1]; break;
-				case NC_MUMMY:    mob_class = mob_mummy[skilllv-1]; break;
-				case NC_GHOST:    mob_class = mob_ghost[skilllv-1]; break;
-				case NC_SHADOW:   mob_class = mob_shadow[skilllv-1]; break;
-				case NC_WRAITH:   mob_class = mob_wraith[skilllv-1]; break;
-				default:
-					mob_class = 1002; // poring
-					ShowDebug("skill_castend_pos2: undefined skill #%d used to raise mobs, defaulting to poring\n");
-					break;
-			}
-			id = mob_once_spawn(sd,src->m,src->x,src->y,"--ja--",mob_class,1,"");
-			if((md=(struct mob_data *)map_id2bl(id)))
-			{
-				md->master_id=sd->bl.id;
-				md->special_state.ai=1;
-				md->status.mode=md->db->status.mode|MD_AGGRESSIVE;
-				status_calc_mob(md,0); //Recalc their stats based on passive bonus
-				md->status.hp = md->status.max_hp; //Must be here or the code wont update it
-//I bet this should NOT be here -- Critical
-				if(sd->state.showsummon){
-					char output[256];
-					sprintf(output,
-						"[Summon] HP : %d | STR : %d DEX : %d VIT : %d INT : %d AGI : %d LUK : %d",
-						md->status.max_hp,md->status.str,md->status.dex,md->status.vit,md->status.int_,md->status.agi,md->status.luk);
-					clif_disp_onlyself(sd,output,strlen(output));
-					sprintf(output,
-						"[%s] ATK : %d~%d | DEF: %d+%d MDEF: %d+%d | HIT: %d FLEE: %d",
-						md->name,md->status.rhw.atk,md->status.rhw.atk2,md->status.def,md->status.def2,md->status.mdef,md->status.mdef2,md->status.hit,md->status.flee);
-					clif_disp_onlyself(sd,output,strlen(output));
-				}
-				md->deletetimer = add_timer(gettick() + skill_get_time(skillid,skilllv), mob_timer_delete, id, 0);
-			}
-		}
-		break;
-
+			}
+		}
+		break;
 
 	// Slim Pitcher [Celest]
@@ -6785,8 +6209,5 @@
 	switch(skillid)
 	{
-//seems good.
-	case WL_HELLFIRE: // Warlock Hellfire [Brain]
-		if(map_flag_vs(src->m)) target = BCT_ALL;
-		break;
+
 	case MG_SAFETYWALL:
 		val2=skilllv+1;
@@ -7386,11 +6807,4 @@
 				if (status_isimmune(bl))
 					heal = 0;	/* é»éè²ã«ãŒãïŒããŒã«éïŒïŒ */
-//Okay?
-				// Profane Soul reduces the healed recieved by 3% per skilllv [Brain]
-				if(tsd) {
-					heal = heal * (100 - pc_checkskill(tsd,AD_PROFANE)*3)/100;
-					//Wont heal even if he got elemental armors [Brain]
-					if(pc_checkskill(tsd,NC_PHYLACTERY)) heal = sg->skill_lv;
-				}
 				clif_skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1);
 				status_heal(bl, heal, 0, 0);
@@ -7403,6 +6817,5 @@
 
 		case UNT_EVILLAND:
-			//Will heal demon and undead element monsters, but not players.
-			if (bl->type != BL_PC && !battle_check_undead(tstatus->race, tstatus->def_ele) && tstatus->race!=RC_DEMON)
+			if (tstatus->race!=RC_UNDEAD && tstatus->race!=RC_DEMON)
 			{	//Damage enemies
 				if(battle_check_target(&src->bl,bl,BCT_ENEMY)>0)
@@ -8451,52 +7864,4 @@
 		}
 		break;
-//Weird to me.
-	case AD_FAMILIAR: //Adept Familiar [Flavio]
-		{
-			short familiar[1] ={ pc_readglobalreg(sd, "ADEPT_FAMILIAR") };
-			int maxcount = skill_get_maxcount(skill,lv);
-			int count = 0;
-			count = mob_countslave_class(&sd->bl, 1, familiar );
-			if( count >= maxcount )
-			{
-				clif_skill_fail(sd,skill,0,0);
-				return 0;
-			}
-		}
-		break;
-	case NC_SKELETON: // Raise Skeleton [Brain]
-	case NC_ARCHER: // Raise Archer Skeleton
-	case NC_ZOMBIE: // Raise Zombie
-	case NC_MUMMY: // Raise Mummy
-	case NC_GHOST: // Raise Ghost
-	case NC_SHADOW: // Raise Shadow
-	case NC_WRAITH: // Raise Wraith
-		{// corrigido o limite de spawns [Flavio]
-			short summon1[5]={ 3201, 3202, 3203, 3204, 3205 }; // Skeleton, Orc Skeleton, Soldier Skeleton, Pirate Skeleton, Skeleton General
-			short summon2[5]={ 3206, 3207, 3208, 3209, 3210 }; // Archer Skeleton, Firelock Soldier
-			short summon3[5]={ 3211, 3212, 3213, 3214, 3215 }; // Zombie, Ghoul, Zombie Master
-			short summon4[5]={ 3216, 3217, 3218, 3219, 3220 }; // Mummy, Ancient Mummy
-			short summon5[5]={ 3221, 3222, 3223, 3224, 3225 }; // Whisper, Nightmare, Nightmare Terror
-			short summon6[5]={ 3226, 3227, 3228, 3229, 3230 }; // Injustice, Raydric, Dullahan
-			short summon7[5]={ 3231, 3232, 3233, 3234, 3235 }; // Wraith, Wraith Dead
-			int maxcount = skill_get_maxcount(skill,lv);
-			int count = 0;
-			switch( skill )
-			{
-			case NC_SKELETON: count = mob_countslave_class(&sd->bl, 5, summon1); break;
-			case NC_ARCHER: count = mob_countslave_class(&sd->bl, 5, summon2); break;
-			case NC_ZOMBIE: count = mob_countslave_class(&sd->bl, 5, summon3); break;
-			case NC_MUMMY: count = mob_countslave_class(&sd->bl, 5, summon4); break;
-			case NC_GHOST: count = mob_countslave_class(&sd->bl, 5, summon5); break;
-			case NC_SHADOW: count = mob_countslave_class(&sd->bl, 5, summon6); break;
-			case NC_WRAITH: count = mob_countslave_class(&sd->bl, 5, summon7); break;
-			}
-			if( count >= maxcount )
-			{
-				clif_skill_fail(sd,skill,0,0);
-				return 0;
-			}
-		}
-		break;
 	case WZ_FIREPILLAR: // celest
 		if (lv <= 5)	// no gems required at level 1-5
@@ -8930,12 +8295,4 @@
 			time -= time * sc->data[SC_SUFFRAGIUM]->val2 / 100;
 			status_change_end(bl, SC_SUFFRAGIUM, -1);
-		}
-//Curse skills...
-		if (sc->data[SC_DECREPIFY]) // Necro Decrepify [Brain]
-			if(sc->data[SC_DECREPIFY]->val2>=3)
-				time += time * 25/100; //+25% cast time
-		if (sc->data[SC_CURSETONGUES]) { //Warlock Curse of Tongues [Brain]
-			time += time * sc->data[SC_CURSETONGUES]->val2 / 100;
-			status_change_end(bl, SC_CURSETONGUES, -1);
 		}
 		if (sc->data[SC_MEMORIZE]) {
@@ -10766,20 +10123,28 @@
 			case AM_TWILIGHT2:
 			case AM_TWILIGHT3:
-				make_per = pc_checkskill(sd,AM_LEARNINGPOTION)*50
+				make_per = pc_checkskill(sd,AM_LEARNINGPOTION)*100
 					+ pc_checkskill(sd,AM_PHARMACY)*300 + sd->status.job_level*20
-					+ (status->int_/2)*10 + status->dex*10+status->luk*10;
-				if(merc_is_hom_active(sd->hd)) {//Player got a homun
-					int skill;
-					if((skill=merc_hom_checkskill(sd->hd,HVAN_INSTRUCT)) > 0) //His homun is a vanil with instruction change
-						make_per += skill*100; //+1% bonus per level
-				}
+					+ status->int_*5 + status->dex*10+status->luk*10;
 				switch(nameid){
 					case 501: // Red Potion
 					case 503: // Yellow Potion
 					case 504: // White Potion
-						make_per += (1+rand()%100)*10 + 2000;
+					case 605: // Anodyne
+					case 606: // Aloevera
+						make_per += 2000;
 						break;
-					case 970: // Alcohol
-						make_per += (1+rand()%100)*10 + 1000;
+					case 505: // Blue Potion
+						make_per -= 500;
+						break;
+					case 545: // Condensed Red Potion
+					case 546: // Condensed Yellow Potion
+					case 547: // Condensed White Potion
+						make_per -= 1000;
+					    break;
+				 	case 970: // Alcohol
+						make_per += 1000;
+						break;
+					case 7139: // Glistening Coat
+						make_per -= 1000;
 						break;
 					case 7135: // Bottle Grenade
@@ -10787,18 +10152,4 @@
 					case 7137: // Plant Bottle
 					case 7138: // Marine Sphere Bottle
-						make_per += (1+rand()%100)*10;
-						break;
-					case 546: // Condensed Yellow Potion
-						make_per -= (1+rand()%50)*10;
-						break;
-					case 547: // Condensed White Potion
-					case 7139: // Glistening Coat
-						make_per -= (1+rand()%100)*10;
-					    break;
-					//Common items, recieve no bonus or penalty, listed just because they are commonly produced
-					case 505: // Blue Potion
-					case 545: // Condensed Red Potion
-					case 605: // Anodyne
-					case 606: // Aloevera
 					default:
 						break;
@@ -10838,5 +10189,5 @@
 // - Baby Class Penalty = 80% (from adult's chance) ----//
 	if (sd->class_&JOBL_BABY) //if it's a Baby Class
-		make_per = (make_per * 70) / 100; //Baby penalty is 30%
+		make_per = (make_per * 80) / 100; //Lupus
 
 	if(make_per < 1) make_per = 1;
@@ -11740,40 +11091,2 @@
 	return 0;
 }
-//Why is this after the cleanup code?
-int skill_additem(struct block_list* src, struct block_list *bl, int itemid, int amount)// ITEM GIVER [Brain]
-{
-	struct map_session_data *sd = NULL, *tsd = NULL;
-
-	nullpo_retr(1, src);
-	nullpo_retr(1, bl);	
-
-	if (src->m != bl->m)
-		return 1;
-	if (bl->prev == NULL)
-		return 1;
-	if (src->type == BL_PC)
-		sd = (struct map_session_data *)src;
-	if (bl->type == BL_PC)
-		tsd = (struct map_session_data *)bl;
-	if (status_isdead(bl))
-		return 1;
-
-	int eflag;
-	struct item item_tmp;
-	struct block_list tbl;
-	
-	memset(&item_tmp,0,sizeof(item_tmp));
-	memset(&tbl,0,sizeof(tbl));
-
-	item_tmp.nameid = itemid;
-	item_tmp.identify = 1;
-	tbl.id = 0;
-
-	clif_takeitem(&sd->bl,&tbl);
-	eflag = pc_additem(sd,&item_tmp,amount);
-	if(eflag) {
-		clif_additem(sd,0,0,eflag);
-		map_addflooritem(&item_tmp,amount,sd->bl.m,sd->bl.x,sd->bl.y,0,0,0,0);
-	}
-	return 0;
-}
Index: /src/map/unit.c
===================================================================
--- /src/map/unit.c (revision 24)
+++ /src/map/unit.c (revision 1)
@@ -374,6 +374,4 @@
 	if (sc && sc->data[SC_CONFUSION]) //Randomize the target position
 		map_random_dir(bl, &ud->to_x, &ud->to_y);
-	if (sc && sc->data[SC_FEAR]) //Flee from my target [Brainstorm]
-		unit_escape(bl, tbl, 15);
 
 	if(ud->walktimer != -1) {
@@ -1089,6 +1087,6 @@
 	if(casttime > 0) {
 		ud->skilltimer = add_timer( tick+casttime, skill_castend_id, src->id, 0 );
-		if( sd && pc_checkskill(sd,SA_FREECAST) > 0 )
-			status_calc_bl(&sd->bl, SCB_SPEED);
+		if(sd && pc_checkskill(sd,SA_FREECAST))
+			status_freecast_switch(sd);
 		else
 			unit_stop_walking(src,1);
@@ -1190,6 +1188,6 @@
 	if(casttime > 0) {
 		ud->skilltimer = add_timer( tick+casttime, skill_castend_pos, src->id, 0 );
-		if( sd && pc_checkskill(sd,SA_FREECAST) > 0 )
-			status_calc_bl(&sd->bl, SCB_SPEED);
+		if(sd && pc_checkskill(sd,SA_FREECAST))
+			status_freecast_switch(sd);
 		else
 			unit_stop_walking(src,1);
@@ -1523,6 +1521,8 @@
 	}
 	
-	ud->canact_tick = tick;
-
+	ud->canact_tick=tick;
+	if(sd && pc_checkskill(sd,SA_FREECAST))
+		status_freecast_switch(sd);
+	
 	if(type&1 && sd)
 		skill = sd->skillid_old;
@@ -1536,12 +1536,8 @@
 	if(ret<0)
 		ShowError("delete timer error : skillid : %d\n",ret);
+	
+	if(bl->type==BL_MOB) ((TBL_MOB*)bl)->skillidx  = -1;
 
 	ud->skilltimer = -1;
-
-	if( sd && pc_checkskill(sd,SA_FREECAST) > 0 )
-		status_calc_bl(&sd->bl, SCB_SPEED);
-
-	if(bl->type==BL_MOB) ((TBL_MOB*)bl)->skillidx  = -1;
-
 	clif_skillcastcancel(bl);
 	return 1;
Index: /src/map/npc.c
===================================================================
--- /src/map/npc.c (revision 23)
+++ /src/map/npc.c (revision 1)
@@ -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, id;
+	int i, m = md->bl.m, x = md->bl.x, y = md->bl.y;
 	char eventname[NAME_LENGTH*2+3];
 	struct event_data* ev;
@@ -827,7 +827,5 @@
 						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;
 			}
@@ -2064,14 +2062,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
 	}
 
@@ -2627,4 +2625,6 @@
 	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"' Spawn sets\n"
+		"\t-'"CL_WHITE"%d"CL_RESET"' Mob 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"' Spawn sets\n"
+		"\t-'"CL_WHITE"%d"CL_RESET"' Mob sets\n"
 		"\t-'"CL_WHITE"%d"CL_RESET"' Mobs Cached\n"
 		"\t-'"CL_WHITE"%d"CL_RESET"' Mobs Not Cached\n",
Index: /src/map/battle.h
===================================================================
--- /src/map/battle.h (revision 24)
+++ /src/map/battle.h (revision 1)
@@ -88,6 +88,4 @@
 
 int battle_check_undead(int race,int element);
-// seems fine.
-int battle_check_living(int race,int element);	//Living Creature Check [Brain]
 int battle_check_target(struct block_list *src, struct block_list *target,int flag);
 bool battle_check_range(struct block_list *src,struct block_list *bl,int range);
@@ -454,10 +452,5 @@
 	int auction_feeperhour;
 	int auction_maximumprice;
-//Declares the conf reader should check for these
-	//Vanaheim battle settings [Brainstorm]
-	int necro_retaliation; //Battle flag to force monsters to attack adept/necro/warlock summons [Brain]
-	int disp_summon_stats; //Battle Flag to show summoned monster stats [Brain]
 	int gm_viewequip_min_lv;
-	int homunculus_auto_vapor; //Keep Homunculus from Vaporizing when master dies. [L0ne_W0lf]
 } battle_config;
 
Index: /src/map/status.c
===================================================================
--- /src/map/status.c (revision 24)
+++ /src/map/status.c (revision 1)
@@ -130,6 +130,4 @@
 	set_sc( NPC_SILENCEATTACK , SC_SILENCE   , SI_BLANK    , SCB_NONE );
 	set_sc( DC_WINKCHARM      , SC_CONFUSION , SI_BLANK    , SCB_NONE );
-	//the visual effect is HALLUCINATION?!
-	set_sc( AD_PWFEAR         , SC_FEAR      , SI_HALLUCINATION , SCB_SPEED ); //Fear Status by [Brainstorm]
 	set_sc( NPC_BLINDATTACK   , SC_BLIND     , SI_BLANK    , SCB_HIT|SCB_FLEE );
 	set_sc( LK_HEADCRUSH      , SC_BLEEDING  , SI_BLEEDING , SCB_REGEN );
@@ -409,31 +407,4 @@
 	set_sc( GD_BATTLEORDER       , SC_BATTLEORDERS    , SI_BLANK           , SCB_STR|SCB_INT|SCB_DEX );
 	set_sc( GD_REGENERATION      , SC_REGENERATION    , SI_BLANK           , SCB_REGEN );
-	//Are we sure about this?
-	// Custom Jobs Skills [Brain]
-	add_sc( AD_PWBLIND           , SC_BLIND);
-	add_sc( AD_PWFEAR            , SC_FEAR);
-	set_sc( AD_LUST              , SC_LUST            , SI_JOINTBEAT       , SCB_ASPD|SCB_BATK|SCB_WATK|SCB_REGEN); 
-	set_sc( NC_DECREPIFY         , SC_DECREPIFY       , SI_BLEEDING        , SCB_SPEED|SCB_BATK|SCB_WATK|SCB_DEF2|SCB_MDEF2);
-	set_sc( NC_DARKMOON          , SC_DARKMOON        , SI_MOON_COMFORT    , SCB_FLEE|SCB_HIT);
-	add_sc( NC_DARKMOON          , SC_BLIND);
-	set_sc( NC_REQUIEM           , SC_REQUIEM         , SI_KAIZEL          , SCB_BATK|SCB_WATK);
-	add_sc( NC_GHOULTOUCH        , SC_POISON);
-	set_sc( NC_PWSUFFER          , SC_SUFFER          , SI_BLANK           , SCB_DEF|SCB_DEF2);
-	set_sc( NC_DEATHPACT         , SC_DEATHPACT       , SI_BIOMOBTRICKDEAD , SCB_DEF_ELE|SCB_REGEN);
-	
-	set_sc( WL_SEARING           , SC_SEARING         , SI_BLANK           , SCB_NONE);
-	set_sc( WL_IMMOLATE          , SC_IMMOLATE        , SI_BLANK           , SCB_NONE);
-	add_sc( WL_SHADOWBURN        , SC_STUN);
-	set_sc( WL_PWAGONY           , SC_AGONY           , SI_BLANK           , SCB_MDEF|SCB_MDEF2);
-	set_sc( WL_CURSETONGUES      , SC_CURSETONGUES    , SI_SLOWCAST        , SCB_NONE);
-	set_sc( WL_CURSEDOOM         , SC_DOOM            , SI_BLANK           , SCB_NONE);
-	set_sc( WL_CURSEWEAKNESS     , SC_CURSEWEAKNESS   , SI_STRIPWEAPON     , SCB_BATK|SCB_WATK);
-	set_sc( WL_CURSEEXHAUST      , SC_CURSEEXHAUST    , SI_CRITICALWOUND   , SCB_DEF|SCB_MDEF);
-	add_sc( WL_HOWLOFTERROR      , SC_FEAR);
-	set_sc( WL_HOWLOFPAIN        , SC_PROVOKE         , SI_PROVOKE         , SCB_DEF|SCB_DEF2|SCB_BATK|SCB_WATK);
-	set_sc( WL_OVERWHELMING      , SC_OVERWHELMING    , SI_ENERGYCOAT      , SCB_DEF|SCB_MDEF|SCB_MATK|SCB_REGEN|SCB_DEF_ELE);
-//WTF IS THIS DOING HERE AT ALL?!	
-	set_sc( ALL_ATFIELD          , SC_ATFIELD         , SI_UTSUSEMI        ,SCB_NONE);
-
 
 	// Storing the target job rather than simply SC_SPIRIT simplifies code later on.
@@ -675,8 +646,4 @@
 			status_change_end(target,SC_WINKCHARM,-1);
 			status_change_end(target,SC_CONFUSION,-1);
-/*+			if (sc->data[SC_FEAR]) //Fear Status by [Brainstorm]
-+				status_change_end(target, SC_FEAR, -1);*/
-//Modifying the above...
-            status_change_end(target,SC_FEAR,-1);
 			status_change_end(target,SC_TRICKDEAD,-1);
 			status_change_end(target,SC_HIDING,-1);
@@ -690,7 +657,4 @@
 					status_change_end(target, SC_ENDURE, -1);
 			}
-			//May also work here... MAYBE
-//			if (sc->data[SC_FEAR]) //Fear Status by [Brainstorm]
-//				status_change_end(target, SC_FEAR, -1);
 			if ((sce=sc->data[SC_GRAVITATION]) && sce->val3 == BCT_SELF)
 			{
@@ -1230,4 +1194,6 @@
 }
 
+void status_calc_bl(struct block_list *bl, unsigned long flag);
+
 // Basic ASPD value
 int status_base_amotion_pc(struct map_session_data* sd, struct status_data* status)
@@ -1374,7 +1340,5 @@
 	if (md->master_id && md->special_state.ai>1)
 		flag|=16;
-// a flag o_O
-	if (md->master_id && md->special_state.ai)
-		flag|=32; //Adept/Necro/Warlock Summon Stats Bonus [Brainstorm]
+
 	if (!flag)
 	{ //No special status required.
@@ -1493,67 +1457,5 @@
 		status->aspd_rate -= 100*md->guardian_data->guardup_lv;
 	}
-//Gentlemen, prepare to error your ass off! =O Unless I fixed that thing wayyyy up thar ^
-	//Summon Bonus from Skills [Brainstorm]
-	if(flag&32)
-	{
-		mbl = map_id2bl(md->master_id); //WTF?! Your mom! It's there you liar compiling bastard!
-		if(mbl)
-		{
-			struct unit_data *ud = unit_bl2ud(mbl);
-			//Remove special AI when this is used by regular mobs.
-			if (mbl->type == BL_MOB && !((TBL_MOB*)mbl)->special_state.ai)
-				md->special_state.ai = 0;
-			
-			int master_lv = status_get_lv(mbl);
-			int skill_mastery = pc_checkskill((TBL_PC*)mbl,AD_SUMMONS);
-			int undead_mastery = pc_checkskill((TBL_PC*)mbl,NC_UNDEAD);
-	
-			if (ud->skillid == AD_FAMILIAR)
-			{
-				status->max_hp += (skill_mastery*10) + (master_lv*10);
-				status->str += (master_lv) + (skill_mastery);
-				status->dex += (master_lv) + (skill_mastery);
-				status->agi += (master_lv) + (skill_mastery);
-				status->int_ += (master_lv) + (skill_mastery);
-				status->vit += (master_lv) + (skill_mastery);
-				status->luk += (master_lv) + (skill_mastery);
-				status->rhw.atk += (skill_mastery*3)
-					+ (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));
-				status->rhw.atk2 += (skill_mastery*3)
-					+ (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));
-				status->speed -= skill_mastery;
-				status->def += (master_lv)/10 + (skill_mastery);
-				status->mdef += (master_lv)/10 + (skill_mastery);
-				//These are not automatically recalculated
-				status->hit += (master_lv*2) + (skill_mastery);
-				status->flee += (master_lv*2) + (skill_mastery);
-				status->def2 += (master_lv) + (skill_mastery);
-				status->mdef2 += (master_lv) + (skill_mastery);
-			}	
-			else if(status->race==RC_UNDEAD)
-			{
-				status->max_hp += (undead_mastery*10) + (master_lv*2);
-				status->str += (undead_mastery*3) + (skill_mastery);
-				status->dex += (undead_mastery*3) + (skill_mastery);
-				status->agi += (undead_mastery*3) + (skill_mastery);
-				status->int_ += (undead_mastery*3) + (skill_mastery);
-				status->vit += (undead_mastery*3) + (skill_mastery);
-				status->luk += (undead_mastery*3) + (skill_mastery);
-				status->rhw.atk += (undead_mastery*3) + (skill_mastery*3)
-					+ (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));
-				status->rhw.atk2 += (undead_mastery*3) + (skill_mastery*3)
-					+ (status->str+((status->str/10)*(status->str/10))+(status->dex/5)+(status->luk/10));
-				status->speed -= undead_mastery;
-				status->def += undead_mastery;
-				status->mdef += undead_mastery;
-				//These are not automatically recalculated
-				status->hit += (undead_mastery*3) + (skill_mastery);
-				status->flee += (undead_mastery*3) + (skill_mastery);
-				status->def2 += (undead_mastery*3) + (skill_mastery);
-				status->mdef2 += (undead_mastery*3) + (skill_mastery);
-			}
-		}
-		else ShowError("status_calc_mob: Monster summoned without a master at %s\n", map[md->bl.m].name);
-	}
+
 	//Initial battle status
 	if (!first)
@@ -1744,4 +1646,5 @@
 	sd->delayrate=100;
 	sd->dsprate=100;
+	sd->speed_rate = 100;
 	sd->hprecov_rate = 100;
 	sd->sprecov_rate = 100;
@@ -1802,8 +1705,5 @@
 	status->aspd_rate = 1000;
 	status->ele_lv = 1;
-//	status->race = RC_DEMIHUMAN;
-	status->race = RC_DEMIHUMAN;// This define players default race to DEMIHUMAN [Brain]
-	if(pc_checkskill(sd,NC_PHYLACTERY)>0) status->def_ele = ELE_UNDEAD; //Phylactery turns you UNDEAD 1 instead of NEUTRAL
-
+	status->race = RC_DEMIHUMAN;
 
 	//zero up structures...
@@ -1860,5 +1760,4 @@
 		+ sizeof(sd->crit_atk_rate)
 		+ sizeof(sd->classchange)
-		+ sizeof(sd->speed_rate)
 		+ sizeof(sd->speed_add_rate)
 		+ sizeof(sd->aspd_add)
@@ -2043,4 +1942,6 @@
 	sd->perfect_hit += sd->perfect_hit_add;
 	sd->splash_range += sd->splash_add_range;
+	if(sd->speed_add_rate)	
+		sd->speed_rate += sd->speed_add_rate;
 
 	// Damage modifiers from weapon type
@@ -2094,6 +1995,4 @@
 	if((skill=pc_checkskill(sd,AC_OWL))>0)
 		status->dex += skill;
-	if((skill=pc_checkskill(sd,WL_DEMONOLOGY))>0) //Warlock Demonology [Brain]
-		status->str += skill/2; //+1 str per 2 skill points
 
 	// Bonuses from cards and equipment as well as base stat, remember to avoid overflows.
@@ -2133,6 +2032,4 @@
 	if((skill=pc_checkskill(sd,CR_TRUST))>0)
 		status->max_hp += skill*200;
-	if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain]
-		status->max_hp += status->max_hp * (skill*3)/100;
 
 	// Apply relative modifiers from equipment
@@ -2164,6 +2061,5 @@
 	if((skill=pc_checkskill(sd,HW_SOULDRAIN))>0)
 		status->max_sp += status->max_sp * 2*skill/100;
-	if((skill=pc_checkskill(sd,AD_PROFANE))>0) // Adept Profane Soul [Brain]
-		status->max_sp += sd->status.max_sp * (skill*3)/100;
+
 	// Apply relative modifiers from equipment
 	if(sd->sprate < 0)
@@ -2258,7 +2154,4 @@
 		}
 	}
-	//right place?
-	if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain]
-		status->hit += skill*2;
 
 // ----- FLEE CALCULATION -----
@@ -2269,6 +2162,4 @@
 	if((skill=pc_checkskill(sd,MO_DODGE))>0)
 		status->flee += (skill*3)>>1;
-	if((skill=pc_checkskill(sd,AD_FERVOR))>0) // Adept Unholy Fevor [Brain]
-		status->flee += skill*2;
 
 // ----- EQUIPMENT-DEF CALCULATION -----
@@ -2297,9 +2188,4 @@
 		status->mdef = cap_value(i, CHAR_MIN, CHAR_MAX);
 	}
-	//AMIDOINITRITE?
-	// Absolute modifiers from passive skills
-	if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain]
-		status->mdef += 1*skill;
-
 
 	if (!battle_config.magic_defense_type && status->mdef > battle_config.max_def)
@@ -2311,6 +2197,8 @@
 // ----- WALKING SPEED CALCULATION -----
 
-	sd->speed_rate += sd->speed_add_rate;
-	status->speed += status->speed * sd->speed_rate/100;
+	if(sd->speed_rate < 0)
+		sd->speed_rate = 0;
+	if(sd->speed_rate != 100)
+		status->speed = status->speed*sd->speed_rate/100;
 
 	// Relative modifiers from passive skills
@@ -2406,18 +2294,4 @@
 		sd->subrace[RC_DRAGON]+=skill;
 	}
-// Racial slurs =O
-	if((skill=pc_checkskill(sd,AD_DARKFAITH))>0) // Adept Dark Faith [Brain]
-		sd->subele[ELE_DARK] += skill*5;
-	if((skill=pc_checkskill(sd,WL_DEMONOLOGY))>0 ){ //Warlock Demonology [Brain]
-		skill = skill*5;
-		sd->right_weapon.addrace[RC_DEMON]+=skill;
-		sd->magic_addrace[RC_DEMON]+=skill;
-		sd->subrace[RC_DEMON]+=skill;
-	}
-	if((pc_checkskill(sd,NC_PHYLACTERY))>0){ // Necro Phylactery [Brain]
-		sd->subele[ELE_NEUTRAL] += 10;	//And increases neutral resistance by 10%
-	}
-
-
 
 	if(sc->count){
@@ -2443,6 +2317,4 @@
 			sd->subrace[RC_DEMON] += sc->data[SC_PROVIDENCE]->val2;
 		}
-		if(sd->sc.data[SC_DEATHPACT]) //Necro Death Pact [Brain]
-			sd->subele[ELE_NEUTRAL] += sd->sc.data[SC_DEATHPACT]->val2;
 		if(sc->data[SC_ARMOR_ELEMENT])
 		{	//This status change should grant card-type elemental resist.
@@ -2766,7 +2638,4 @@
 		|| sc->data[SC_TRICKDEAD]
 		|| sc->data[SC_BLEEDING]
-		|| sc->data[SC_LUST]		// Adept Blood Lust, stops hp regen [Brain]
-		|| sc->data[SC_DEATHPACT]	// Necro Death Pact
-
 	)	//No regen
 		regen->flag = 0;
@@ -2777,6 +2646,4 @@
 		|| (sc->data[SC_EXPLOSIONSPIRITS]
 			&& (!sc->data[SC_SPIRIT] || sc->data[SC_SPIRIT]->val2 != SL_MONK))
-		|| sc->data[SC_OVERWHELMING]	// Warlock Overwhelming Evil, stops sp regen [Brain]
-
 	)	//No natural SP regen
 		regen->flag &=~RGN_SP;
@@ -2875,6 +2742,15 @@
 		if(status->speed < battle_config.max_walk_speed)
 			status->speed = battle_config.max_walk_speed;
-	}
-
+
+		if ((skill=pc_checkskill(sd,SA_FREECAST))>0) {
+			//Store casting walk speed for quick restoration. [Skotlex]
+			sd->prev_speed = status->speed * (175-5*skill)/100;
+			if(sd->ud.skilltimer != -1) { //Swap speed.
+				skill = status->speed;
+				status->speed = sd->prev_speed;
+				sd->prev_speed = skill;
+			}
+		}
+	}
 	if(flag&(SCB_ASPD|SCB_AGI|SCB_DEX)) {
 		flag|=SCB_ASPD;
@@ -2888,5 +2764,16 @@
 
 		status->amotion = cap_value(skill,battle_config.max_aspd,2000);
+
 		status->adelay = 2*status->amotion;
+		if ((skill=pc_checkskill(sd,SA_FREECAST))>0) {
+			//Store casting adelay for quick restoration. [Skotlex]
+			sd->prev_adelay = status->adelay*(150-5*skill)/100;
+			if(sd->ud.skilltimer != -1) { //Swap adelay.
+				skill = status->adelay;
+				status->adelay = sd->prev_adelay;
+				sd->prev_adelay = skill;
+			}
+		}
+
 	}
 
@@ -3527,11 +3414,4 @@
 	if(sc->data[SC_MADNESSCANCEL])
 		batk += 100;
-	if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
-		batk += batk * sc->data[SC_LUST]->val2/100;
-	if(sc->data[SC_CURSEWEAKNESS]) // Warlock Curse of Weakness [Brain]
-		batk -= batk * sc->data[SC_CURSEWEAKNESS]->val2/100;
-	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
-		if(sc->data[SC_DECREPIFY]->val2>=2)
-			batk -= batk * 25/100;
 	return (unsigned short)cap_value(batk,0,USHRT_MAX);
 }
@@ -3568,5 +3448,5 @@
 		}
 	}
-	if(sc->data[SC_BLOODLUST])//WTF?!
+	if(sc->data[SC_BLOODLUST])
 		watk += watk * sc->data[SC_BLOODLUST]->val2/100;
 	if(sc->data[SC_FLEET])
@@ -3576,17 +3456,4 @@
 	if(sc->data[SC_STRIPWEAPON])
 		watk -= watk * sc->data[SC_STRIPWEAPON]->val2/100;
-	if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
-		watk += watk * sc->data[SC_LUST]->val2/100;
-	if(sc->data[SC_REQUIEM]){	//Necro Requiem [Brain]
-		if(sc->data[SC_REQUIEM]->val2)
-			watk += sc->data[SC_REQUIEM]->val2*10;
-		if(sc->data[SC_REQUIEM]->val3)
-			watk -= sc->data[SC_REQUIEM]->val3*10;
-	}//????
-	if(sc->data[SC_CURSEWEAKNESS]) // Warlock Curse of Weakness [Brain]
-		watk -= watk * sc->data[SC_CURSEWEAKNESS]->val2/100;
-	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
-		if(sc->data[SC_DECREPIFY]->val2>=2)
-			watk -= watk * 25/100;
 
 	return (unsigned short)cap_value(watk,0,USHRT_MAX);
@@ -3608,6 +3475,4 @@
 	if(sc->data[SC_INCMATKRATE])
 		matk += matk * sc->data[SC_INCMATKRATE]->val1/100;
-	if(sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
-		matk += matk * sc->data[SC_OVERWHELMING]->val2/100;
 
 	return (unsigned short)cap_value(matk,0,USHRT_MAX);
@@ -3657,10 +3522,4 @@
 	if(sc->data[SC_INCREASING])
 		hit += 20; // RockmanEXE; changed based on updated [Reddozen]
-	if(sc->data[SC_DARKMOON]){	//Necro Dark Moon [Brain]
-		if(sc->data[SC_DARKMOON]->val2)
-			hit += sc->data[SC_DARKMOON]->val2;
-		if(sc->data[SC_DARKMOON]->val3)
-			hit -= sc->data[SC_DARKMOON]->val3;
-	}
 	
 	return (short)cap_value(hit,1,SHRT_MAX);
@@ -3703,10 +3562,4 @@
 	if(sc->data[SC_SPEED])
 		flee += 10 + sc->data[SC_SPEED]->val1 * 10 ;
-	if(sc->data[SC_DARKMOON]){	//Necro Dark Moon [Brain]
-		if(sc->data[SC_DARKMOON]->val2)
-			flee += sc->data[SC_DARKMOON]->val2;
-		if(sc->data[SC_DARKMOON]->val3)
-			flee -= sc->data[SC_DARKMOON]->val3;
-	}
 
 	return (short)cap_value(flee,1,SHRT_MAX);
@@ -3767,11 +3620,4 @@
 	if (sc->data[SC_FLING])
 		def -= def * (sc->data[SC_FLING]->val2)/100;
-	if(sc->data[SC_SUFFER])	// Necro Power Word: Suffer [Brain]
-		def <<=1; // -25% def
-	if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain]
-		def -= sc->data[SC_CURSEEXHAUST]->val2;
-	if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
- 		def += sc->data[SC_OVERWHELMING]->val1;
-
 
 	return (signed char)cap_value(def,CHAR_MIN,CHAR_MAX);
@@ -3808,10 +3654,4 @@
 	if(sc->data[SC_FLING])
 		def2 -= def2 * (sc->data[SC_FLING]->val3)/100;
-	if(sc->data[SC_SUFFER])	// Necro Power Word: Suffer [Brain]
-		def2 -= def2 * 25/100; // -25% def
-	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
-		if(sc->data[SC_DECREPIFY]->val2>=4)
-			def2 -= def2 * 25/100;
-
 
 	return (short)cap_value(def2,1,SHRT_MAX);
@@ -3841,10 +3681,4 @@
 	if(sc->data[SC_CONCENTRATION])
 		mdef += 1; //Skill info says it adds a fixed 1 Mdef point.
-	if(sc->data[SC_AGONY])	 // Warlock Power Word: Agony [Brain]
-		mdef -= 25*mdef/100; // -25% mdef
-	if (sc->data[SC_CURSEEXHAUST]) // Warlock Curse of Exhaustion [Brain]
-		mdef -= sc->data[SC_CURSEEXHAUST]->val2;
-	if (sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
-		mdef += sc->data[SC_OVERWHELMING]->val1;
 
 	return (signed char)cap_value(mdef,CHAR_MIN,CHAR_MAX);
@@ -3860,10 +3694,4 @@
 	if(sc->data[SC_MINDBREAKER])
 		mdef2 -= mdef2 * sc->data[SC_MINDBREAKER]->val3/100;
-	if(sc->data[SC_AGONY])	 // Warlock Power Word: Agony [Brain]
-		mdef2 -= mdef2 * 25/100; // -25% mdef
-	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
-		if(sc->data[SC_DECREPIFY]->val2>=5)
-			mdef2 -= mdef2 * 25/100;
-
 
 	return (short)cap_value(mdef2,1,SHRT_MAX);
@@ -3872,12 +3700,7 @@
 static unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed)
 {
-	TBL_PC* sd = BL_CAST(BL_PC, bl);
-
 	//Default speed coming in means there's no speed_rate adjustments. 
 	int new_speed = speed;
 	bool default_speed = (speed == DEFAULT_WALK_SPEED);
-
-	if( sd && sd->ud.skilltimer != -1 && pc_checkskill(sd,SA_FREECAST) > 0 )
-		speed = speed * (175 - 5 * pc_checkskill(sd,SA_FREECAST))/100;
 
 	if(!sc || !sc->count)
@@ -3924,7 +3747,4 @@
 			else if(sc->data[SC_WINDWALK])
 				new_speed -= new_speed * sc->data[SC_WINDWALK]->val3/100;
-			else if(sc->data[SC_FEAR]) //Fear Status by [Brainstorm]
-				new_speed -= new_speed * 25/100;
-
 		}
 
@@ -3970,6 +3790,4 @@
 	if(sc->data[SC_SLOWDOWN])
 		speed = speed * 100/75;
-	if(sc->data[SC_DECREPIFY]) // Necromancer Decrepify [Brain]
-		speed = speed * 100/75; //-25% walkspeed
 	
 	return (short)cap_value(speed,10,USHRT_MAX);
@@ -4042,7 +3860,4 @@
 		else if(sc->data[SC_MADNESSCANCEL])
 			aspd_rate -= 200;
-		else if(sc->data[SC_LUST]) // Adept Blood Lust [Brain]
-			aspd_rate -= sc->data[SC_LUST]->val2*10;
-
 	}
 
@@ -4138,8 +3953,4 @@
 	if(sc->data[SC_ELEMENTALCHANGE])
 		return sc->data[SC_ELEMENTALCHANGE]->val2;
-	if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain]
-		return ELE_UNDEAD;
-	if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
-		return ELE_DARK;
 	return (unsigned char)cap_value(element,0,UCHAR_MAX);
 }
@@ -4160,9 +3971,4 @@
 	if(sc->data[SC_ELEMENTALCHANGE])
 		return sc->data[SC_ELEMENTALCHANGE]->val1;
-	if( sc->data[SC_DEATHPACT]) // Necro Death Pact [Brain]
-		return 1;
-	if( sc->data[SC_OVERWHELMING]) // Warlock Overwhelming Evil [Brain]
-		return 1;
-
 
 	return (unsigned char)cap_value(lv,1,4);
@@ -4208,4 +4014,28 @@
 	}
 	return cap_value(mode,0,USHRT_MAX);
+}
+
+/*==========================================
+ * Quick swap of adelay/speed when starting ending SA_FREECAST
+ *------------------------------------------*/
+void status_freecast_switch(struct map_session_data *sd)
+{
+	struct status_data *status;
+	unsigned short b_speed,tmp;
+
+	status = &sd->battle_status;
+
+	b_speed = status->speed;
+
+	tmp = status->speed;
+	status->speed = sd->prev_speed;
+	sd->prev_speed = tmp;
+
+	tmp = status->adelay;
+	status->adelay = sd->prev_adelay;
+	sd->prev_adelay = tmp;
+
+	if(b_speed != status->speed)
+		clif_updatestatus(sd,SP_SPEED);
 }
 
@@ -4878,5 +4708,4 @@
 	case SC_CARTBOOST:
 	case SC_ASSNCROS:
-	case SC_LUST: // Adept Blood Lust [Brain]
 		if (sc->data[SC_QUAGMIRE])
 			return 0;
@@ -4982,5 +4811,5 @@
 		 switch (type) {
 			case SC_BLESSING:
-			  if (!undead_flag && status->race!=RC_DEMON)
+			  if (status->race!=RC_UNDEAD && status->race!=RC_DEMON)
 				  break;
 			case SC_QUAGMIRE:
@@ -4996,14 +4825,4 @@
 			case SC_RICHMANKIM:
 			case SC_ROKISWEIL:
- //Not sure if its the right place.
-			//New status [Brainstorm]
-			case SC_FEAR:
-			case SC_DECREPIFY:
-			case SC_DARKMOON:
-			case SC_REQUIEM:
-			case SC_CURSETONGUES:
-			case SC_CURSEWEAKNESS:
-			case SC_CURSEEXHAUST:
-//SC Fogwall Must have been added after he did this?
 			case SC_FOGWALL:
 				return 0;
@@ -5017,51 +4836,10 @@
 		//TO-DO Blessing and Agi up should do 1 damage against players on Undead Status, even on PvM
 		//but cannot be plagiarized (this requires aegis investigation on packets and official behavior) [Brainstorm]
-		if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC) {
+		if (status->race!=RC_UNDEAD && status->race!=RC_DEMON) {
 			if (sc->data[SC_CURSE])
 				status_change_end(bl,SC_CURSE,-1);
 			if (sc->data[SC_STONE] && sc->opt1 == OPT1_STONE)
 				status_change_end(bl,SC_STONE,-1);
-//hell of a time finding this
-			// Warlock Curses are canceled by blessing [Brain]
-			if (sc->data[SC_CURSEWEAKNESS])
-				status_change_end(bl,SC_CURSEWEAKNESS,-1);
-			if (sc->data[SC_CURSETONGUES])
-				status_change_end(bl,SC_CURSETONGUES,-1);
-			if (sc->data[SC_CURSEEXHAUST])
-				status_change_end(bl,SC_CURSEEXHAUST,-1);
-			if (sc->data[SC_DOOM]) // This skill would be way funnier if we could igore this concept, no?
-				status_change_end(bl,SC_DOOM,-1);//But then people would abuse on WoEs
-		}
-		break;
-	case SC_CURSEWEAKNESS: // Warlock Curse of Weakness removes Impositio Manus [Brain]
-		if (sc->data[SC_IMPOSITIO])
-			status_change_end(bl,SC_IMPOSITIO,-1);
-		if (sc->data[SC_BLESSING]) //The opposite is also valid, curses cancel blessing [Brain]
-			status_change_end(bl,SC_BLESSING,-1);
-		break;
-	case SC_CURSETONGUES: // Warlock Curse of Tongues removes Suffragium [Brain]
-		if (sc->data[SC_SUFFRAGIUM])
-			status_change_end(bl,SC_SUFFRAGIUM,-1);
-		if (sc->data[SC_BLESSING])
-			status_change_end(bl,SC_BLESSING,-1);
-		break;
-	case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion removes angelus [Brain]
-		if (sc->data[SC_ANGELUS])
-			status_change_end(bl,SC_ANGELUS,-1);
-	case SC_DOOM:
-		if (sc->data[SC_BLESSING])
-			status_change_end(bl,SC_BLESSING,-1);
-		break;
-	case SC_IMPOSITIO: // Impositio Manus removes Curse of Weakness [Brain]
-		if (sc->data[SC_CURSEWEAKNESS])
-			status_change_end(bl,SC_CURSEWEAKNESS,-1);
-		break;
-	case SC_SUFFRAGIUM: // Suffragium removes Curse of Tongues [Brain]
-		if (sc->data[SC_CURSETONGUES])
-			status_change_end(bl,SC_CURSETONGUES,-1);
-		break;
-	case SC_ANGELUS: // Angelus removes Curse of Exhaustion [Brain]
-		if (sc->data[SC_CURSEEXHAUST])
-			status_change_end(bl,SC_CURSEEXHAUST,-1);
+		}
 		break;
 	case SC_INCREASEAGI:
@@ -5083,9 +4861,5 @@
 		status_change_end(bl,SC_TWOHANDQUICKEN,-1);
 		status_change_end(bl,SC_ONEHAND,-1);
-// may need tinkering
-		if(sc->data[SC_LUST])	// Adept Blood Lust [Brain]
-			status_change_end(bl,SC_LUST,-1);
-		break;
-//may be in the wrong place.
+		break;
 	case SC_ONEHAND:
 	  	//Removes the Aspd potion effect, as reported by Vicious. [Skotlex]
@@ -5153,12 +4927,5 @@
 		status_change_end(bl,SC_INCREASEAGI,-1);
 		break;
-//Code has changed since this
-	case SC_FREEZE: //Frozen status ends immolating AND searing status [Brain]
-		if(sc->data[SC_IMMOLATE])
-			status_change_end(bl,SC_IMMOLATE,-1);
-	case SC_IMMOLATE: // Warlock Immolate [Brain]
-		if(sc->data[SC_SEARING]) //Immolating status ends searing status
-			status_change_end(bl,SC_SEARING,-1);
-		break;
+		
 	}
 
@@ -5183,6 +4950,4 @@
 			case SC_SILENCE:
 			case SC_CONFUSION:
-   //Should Edit depending on the one that will work for the modified ver.
-			case SC_FEAR: //Fear Status by [Brainstorm]
 			case SC_BLIND:
 			case SC_BLEEDING:
@@ -5493,8 +5258,4 @@
 		case SC_CONFUSION:
 			clif_emotion(bl,1);
-			break;
-		case SC_FEAR: //Fear Status by [Brainstorm]
-			clif_emotion(bl,16); // e_wah
-			if(sd) tick /= 2;
 			break;
 		case SC_BLEEDING:
@@ -5874,14 +5635,5 @@
 			}
 			break;
-			
-//WHAT RELEVENCE DOES THIS HAVE AT ALL DAMNIT?!
-		case SC_ATFIELD: // AT-Field [Brainstorm]
-			val2 = 100; // 100% Block chance
-			val3 = 100; // Dodge 100 attacks total.
-			val4 = tick/1000;
-			tick = 1000;
-			break;
-			
-			
+
 		case SC_COMBO:
 		{
@@ -5926,25 +5678,9 @@
 			break;
 		case SC_BLESSING:
-			if ((!undead_flag && status->race!=RC_DEMON) || bl->type == BL_PC)
+			if (status->race!=RC_UNDEAD && status->race!=RC_DEMON)
 				val2 = val1;
 			else
 				val2 = 0; //0 -> Half stat.
 			break;
-		case SC_REQUIEM: //Necro Requiem and Dark Moon [Brain]
-		case SC_DARKMOON:
-			if (undead_flag || status->race==RC_UNDEAD || status->race==RC_DEMON)
-				val2 = val1; //Demon and Undead get buffed
-			else if(status->race==RC_FORMLESS || status->def_ele==ELE_GHOST || bl->type == BL_PC)
-			{
-				val1 = 0; //No status change for Formless and Ghosts, and non-undead players
-				tick = 0; //Cancel status to not show requiem icon without a reason
-			}
-			else
-				val3 = val1; //Everything else (living) get negative status (requiem only)
-			break;
-		case SC_DECREPIFY: //Necro Decrepify [Brain]
-			val2 = val1;
-		break;
-
 		case SC_TRICKDEAD:
 			if (vd) vd->dead_sit = 1;
@@ -5987,13 +5723,4 @@
 			val2 = 5*val1; //watk increase
 			break;
-		case SC_CURSEWEAKNESS: // Warlock Curse of Weakness [Brain]
-			val2 = 5*val1; //batk/watk decrease
-			break;
-		case SC_CURSEEXHAUST: // Warlock Curse of Exhaustion [Brain]
-			val2 = 2*val1; //def/mdef decrease
-			break;
-		case SC_CURSETONGUES: // Warlock Curse of Tongues [Brain]
-			val2 = 10*val1; //casttime increase
-			break;
 		case SC_MELTDOWN:
 			val2 = 100*val1; //Chance to break weapon
@@ -6050,16 +5777,4 @@
 			val2 = 30*val1; //Aspd change
 			val3 = 5+5*val1; //bAtk/wAtk rate change
-			break;
-		case SC_LUST: // Adept Blood Lust [Brain]
-			val2 = 5+3*val1; //Aspd/bAtk/wAtk change
-			val3 = tick>0?tick:1000; //Interval at which HP is drained.
-			break;
-		case SC_DEATHPACT: // Necro Death Pact [Brain]
-			val2 = 5*val1; //Neutral property resistance
-			val3 = tick>0?tick:10000; //Interval at which HP is drained.
-			break;
-		case SC_OVERWHELMING: // Warlock Overwhelming Evil [Brain]
-			val2 = 2*val1; //matk bonus
-			val3 = tick>0?tick:1000; //Interval at which SP is drained.
 			break;
 		case SC_MINDBREAKER:
@@ -6246,7 +5961,4 @@
 				unit_skillcastcancel(bl, 0);
 		break;
-		case SC_FEAR: //Fear Status by [Brainstorm]
-			unit_stop_attack(bl);
-		break;
 	}
 
@@ -6683,5 +6395,5 @@
 				clif_status_change(bl,SI_MOONLIT,0);
 
-			status_change_end(bl,SC_LONGING,-1);
+			status_change_end(bl,SC_LONGING,-1);				
 			break;
 		case SC_NOCHAT:
@@ -6694,7 +6406,5 @@
 			}
 			break;
-		case SC_SPLASHER:
-//Why is Doom here?
-		case SC_DOOM: // Warlock Curse of Doom [Brain]	
+		case SC_SPLASHER:	
 			{
 				struct block_list *src=map_id2bl(sce->val3);
@@ -7064,19 +6774,4 @@
 		sc_timer_next(sce->val2+tick, status_change_timer, bl->id, data);
 		return 0;
-	case SC_LUST:	// Adept Blood Lust [Brain]
-		if(!status_charge(bl, status->max_hp/100, 0))
-			break; //Not enough HP to continue.
-		sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);
-		return 0;
-	case SC_DEATHPACT:	// Necro Death Pact [Brain]
-		 // Drains 1 HP every second (status wont kill, but dying will cancel it)
-		status_charge(bl, 1, 0);
-		sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);
-		return 0;
-	case SC_OVERWHELMING:	// Warlock Overwhelming Evil [Brain]
-		if(!status_charge(bl, 0, status->max_sp/100))
-			break; //Not enough SP to continue.
-		sc_timer_next(sce->val3+tick, status_change_timer, bl->id, data);
-		return 0; 
 
 	case SC_CHASEWALK:
@@ -7313,10 +7008,4 @@
 		}
 		break;
-	case SC_DOOM: // Warlock Curse of Doom [Brain]
-		if((sce->val4 -= 500) > 0) {
-			sc_timer_next(500 + tick, status_change_timer, bl->id, data);
-			return 0;
-		}
-		break;
 
 	case SC_MARIONETTE:
@@ -7486,5 +7175,4 @@
 			case SC_WATKFOOD:
 			case SC_MATKFOOD:
-			case SC_DOOM: // Warlock Curse of Doom [Brain]
 				continue;
 				
Index: /src/map/skill.h
===================================================================
--- /src/map/skill.h (revision 24)
+++ /src/map/skill.h (revision 1)
@@ -956,76 +956,4 @@
 
 	ALL_INCCARRY = 681,
-	
-//most skills are irrelevant, will block comment them out.
-/*+	GM_SANDMAN = 688,
-+	CASH_BLESSING,
-+	CASH_INCAGI,
-+	CASH_ASSUMPTIO,
-+	ALL_CATCRY,*/
-//Up there is irrelevant.
- 
-	AD_PWBLIND = 700,	// Custom Skills [Brainstorm]
-	AD_PWFEAR,
-	AD_DARKHEAL,
-	AD_BLOODPACT,
-	AD_LUST,
-	AD_FERVOR,
-	AD_PROFANE,
-	AD_DARKFAITH,
-	AD_FAMILIAR,
-	AD_SUMMONS,
-
-	NC_PHYLACTERY, //710
-	NC_UNDEAD,
-	NC_DEATHHAND,
-	NC_GHOULTOUCH,
-	NC_SKELETON,
-	NC_ZOMBIE,
-	NC_ARCHER,
-	NC_MUMMY,
-	NC_GHOST,
-	NC_SHADOW,
-	NC_WRAITH,
-	NC_REQUIEM,
-	NC_DARKMOON,
-	NC_PWSUFFER,
-	NC_DECREPIFY,
-	NC_DRAINLIFE,
-	NC_DEATHPACT,
-//Still no idea why that is there.
-	ALL_ATFIELD, //GM SKILL
-
-	WL_CURSETONGUES =732, //732
-	WL_CURSEDOOM,
-	WL_CURSEEXHAUST,
-	WL_CURSEWEAKNESS,
-	WL_SEARING,
-	WL_HELLFIRE,
-	WL_CONFLAGRATE,
-	WL_IMMOLATE,
-	WL_SHADOWBOLT,
-	WL_SHADOWBURN,
-	WL_HOWLOFPAIN,
-	WL_DEMONOLOGY,
-	WL_HOWLOFTERROR,
-	WL_PWAGONY,
-	WL_OVERWHELMING,
-	WL_SOULSTEAL,
-	WL_DRAINSOUL,
-	WL_CORRUPTION, //749
-
-//Irrelevant
-/*+	TD_FISHING = 750,
-+	TD_MINING,
-+	TD_HERBALISM,
-+	TD_LEATHERWORK,
-+	TD_TAILORING,
-+	TD_BLACKSMITHING,
-+	TD_SCRIBESCROLLA,
-+	TD_SCRIBESCROLLB,
-+	TD_SCRIBESCROLLC,
-+	TD_SHIELD,
-+	TD_WOODCUTTING,*/
-// STOP! Cant use 800 (homun skills) NOR 900 (guild skills)
 
 	KN_CHARGEATK = 1001,
Index: /src/map/status.h
===================================================================
--- /src/map/status.h (revision 24)
+++ /src/map/status.h (revision 1)
@@ -296,20 +296,4 @@
 	SC_SPREGEN,
 	SC_WALKSPEED,
-	SC_DECREPIFY, // New status [brain]
-	SC_LUST,
-	SC_DARKMOON,
-	SC_REQUIEM,
-	SC_DEATHPACT,
-	SC_ATFIELD,
-	SC_SUFFER,
-	SC_SEARING,
-	SC_IMMOLATE,
-	SC_AGONY,
-	SC_CURSETONGUES,
-	SC_DOOM,
-	SC_CURSEWEAKNESS,
-	SC_CURSEEXHAUST,
-	SC_OVERWHELMING,
-	SC_FEAR,
 	SC_MAX, //Automatically updated max, used in for's to check we are within bounds.
 } sc_type;
@@ -466,5 +450,5 @@
 	SI_BOSSMAPINFO		= 253,
 	//SI_TURTLEGENERAL	= 260, //All mobs display as Turtle General
-	SI_BIOMOBTRICKDEAD	= 263, //Bio Mob effect on you and SI_TRICKDEAD
+	//SI_BIOMOBTRICKDEAD	= 263, //Bio Mob effect on you and SI_TRICKDEAD
 	//SI_BLURRY		= 264, //For short time blurry screen and get Gloria icon
 	//SI_FOODSTR		= 271, //Same as 241
@@ -823,4 +807,5 @@
 void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, struct status_change *sc);
 
+void status_freecast_switch(struct map_session_data *sd);
 int status_getrefinebonus(int lv,int type);
 int status_check_skilluse(struct block_list *src, struct block_list *target, int skill_num, int flag); // [Skotlex]
Index: /src/map/pc.c
===================================================================
--- /src/map/pc.c (revision 24)
+++ /src/map/pc.c (revision 1)
@@ -754,10 +754,4 @@
 	if (battle_config.disp_zeny)
 		sd->state.showzeny = 1;
-//Checks the battleflags to see if player has selected to see summon's stats.
-//I see nothing wrong here.
-	//Vanaheim settings [Brainstorm]
-	if (battle_config.disp_summon_stats) // Battle Flag to Show Summoned Monster Stats [Brain]
-		sd->state.showsummon = 1;
-
 	
 	if (!(battle_config.display_skill_fail&2))
@@ -1661,7 +1655,13 @@
 		}
 		break;
+	case SP_ADD_SPEED:	//Raw increase
+		if(sd->state.lr_flag != 2) {
+			bonus = status->speed - val;
+			status->speed = cap_value(bonus, 0, USHRT_MAX);
+		}
+		break;
 	case SP_SPEED_RATE:	//Non stackable increase
-		if(sd->state.lr_flag != 2)
-			sd->speed_rate = min(sd->speed_rate, -val);
+		if(sd->state.lr_flag != 2 && sd->speed_rate > 100-val)
+			sd->speed_rate = 100-val;
 		break;
 	case SP_SPEED_ADDRATE:	//Stackable increase
@@ -3887,14 +3887,4 @@
 			class_ = MAPID_SUMMER;
 			break;
-//This is where your errors begin.
-		case JOB_NECROMANCER: // Necromancer [Brain]
-			class_ |= JOBL_2_1;
-			class_ |= MAPID_ADEPT;
-			break;	
-		case JOB_WARLOCK: // Warlock [Brain]
-			class_ |= JOBL_2_2;
-		case JOB_ADEPT: // Adept [Brain]
-			class_ |= MAPID_ADEPT;
-			break;
 		default:
 			return -1;
@@ -3920,6 +3910,4 @@
 		case MAPID_XMAS:            return JOB_XMAS;
 		case MAPID_SUMMER:          return JOB_SUMMER;
-		// double check this too.
-		case MAPID_ADEPT:			return JOB_ADEPT; // Adept [Brain]
 	//2_1 classes
 		case MAPID_SUPER_NOVICE:    return JOB_SUPER_NOVICE;
@@ -3931,6 +3919,4 @@
 		case MAPID_ASSASSIN:        return JOB_ASSASSIN;
 		case MAPID_STAR_GLADIATOR:  return JOB_STAR_GLADIATOR;
-		//and this
-		case MAPID_NECROMANCER:		return JOB_NECROMANCER; // Necromancer [Brain]
 	//2_2 classes
 		case MAPID_CRUSADER:        return JOB_CRUSADER;
@@ -3941,6 +3927,4 @@
 		case MAPID_ROGUE:           return JOB_ROGUE;
 		case MAPID_SOUL_LINKER:     return JOB_SOUL_LINKER;
-		//this too
-		case MAPID_WARLOCK:			return JOB_WARLOCK; // Warlock [Brain]
 	//1-1: advanced
 		case MAPID_NOVICE_HIGH:     return JOB_NOVICE_HIGH;
@@ -4119,12 +4103,4 @@
 	case JOB_NINJA:
 		return msg_txt(620);
-//message display for job change?
-	case JOB_ADEPT: // Adept [Brain]
-		return msg_txt(1000);//have to add these to the msg_txt in the conf?
-	case JOB_NECROMANCER: // Necromancer [Brain]
-		return msg_txt(1001);
-	case JOB_WARLOCK: // Warlock [Flavio]
-		return msg_txt(1002);
-
 	
 	default:
@@ -4983,5 +4959,5 @@
 	}
 
-	if(sd->status.hom_id > 0 && battle_config.homunculus_auto_vapor)	//orn
+	if(sd->status.hom_id > 0)	//orn
 		merc_hom_vaporize(sd, 0);
 
Index: /src/map/pc.h
===================================================================
--- /src/map/pc.h (revision 24)
+++ /src/map/pc.h (revision 1)
@@ -114,8 +114,6 @@
 		unsigned short autolootid; // [Zephyrus]
 		unsigned noks : 3; // [Zeph Kill Steal Protection]
-		//Aside from a Space it's fine, but white space has no effect so it's fine.
-		//Vanaheim settings [Brainstorm]
-		unsigned showsummon : 1; //Show summoned monster stats [Brainstorm]
-
+		unsigned god :1; //[Sketchy]
+		unsigned demon :1; //[Sketchy]
 		bool changemap;
 		struct guild *gmaster_flag;
@@ -146,4 +144,5 @@
 	int fd;
 	unsigned short mapindex;
+	unsigned short prev_speed,prev_adelay;
 	unsigned char head_dir; //0: Look forward. 1: Look right, 2: Look left.
 	unsigned int client_tick;
@@ -252,5 +251,5 @@
 	int crit_atk_rate;
 	int classchange; // [Valaris]
-	int speed_rate, speed_add_rate, aspd_add;
+	int speed_add_rate, aspd_add;
 	unsigned int setitem_hash, setitem_hash2; //Split in 2 because shift operations only work on int ranges. [Skotlex]
 	
@@ -268,5 +267,5 @@
 	int castrate,delayrate,hprate,sprate,dsprate;
 	int atk_rate;
-	int hprecov_rate,sprecov_rate;
+	int speed_rate,hprecov_rate,sprecov_rate;
 	int matk_rate;
 	int critical_rate,hit_rate,flee_rate,flee2_rate,def_rate,def2_rate,mdef_rate,mdef2_rate;
Index: /src/map/mob.c
===================================================================
--- /src/map/mob.c (revision 24)
+++ /src/map/mob.c (revision 1)
@@ -245,6 +245,4 @@
  * 1: poring list
  * 2: bloody branch list
- * 3: mob_pouch list
- * 4: familiar list // familiar by FlavioJS [Brain]
  * flag:
  * &1: Apply the summon success chance found in the list (otherwise get any monster from the db)
@@ -548,10 +546,6 @@
 	barricade->amount = 0;
 	barricade->killable = killable;
-	
-	// A protection just in case setting a walkable - non shootable
-	if( (barricade->walkable = walkable) == true )
-		barricade->shootable = true;
-	else
-		barricade->shootable = shootable;
+	barricade->shootable = shootable;
+	barricade->walkable = walkable;
 	
 	for( i = 0; i < count; i++ )
@@ -574,9 +568,6 @@
 		}
 
-		if( !barricade->walkable )
-		{
-			map_setcell(m, x1, y1, CELL_WALKABLE, false);
-			map_setcell(m, x1, y1, CELL_SHOOTABLE, barricade->shootable);
-		}
+		if( !barricade->walkable ) map_setcell(m, x1, y1, CELL_WALKABLE, false);
+		map_setcell(m, x1, y1, CELL_SHOOTABLE, barricade->shootable);
 
 		clif_changemapcell(0, m, x1, y1, map_getcell(barricade->m, x1, y1, CELL_GETTYPE), ALL_SAMEMAP);
@@ -633,9 +624,6 @@
 		mob_barricade_nextxy(barricade->x, barricade->y, barricade->dir, i, &x1, &y1);
 
-		if( !barricade->shootable )
-			map_setcell(barricade->m, x1, y1, CELL_SHOOTABLE, true);
-		if( !barricade->walkable )
-			map_setcell(barricade->m, x1, y1, CELL_WALKABLE, true);
-
+		if( !barricade->walkable ) map_setcell(barricade->m, x1, y1, CELL_WALKABLE, true);
+		map_setcell(barricade->m, x1, y1, CELL_SHOOTABLE, !barricade->shootable);
 		clif_changemapcell(0, barricade->m, x1, y1, map_getcell(barricade->m, x1, y1, CELL_GETTYPE), ALL_SAMEMAP);
 	}
@@ -698,9 +686,6 @@
 			mob_barricade_nextxy(barricade->x, barricade->y, barricade->dir, i, &x1, &y1);
 
-			if( !barricade->shootable )
-				map_setcell(barricade->m, x1, y1, CELL_SHOOTABLE, true);
-			if( !barricade->walkable )
-				map_setcell(barricade->m, x1, y1, CELL_WALKABLE, true);
-
+			if( !barricade->walkable ) map_setcell(barricade->m, x1, y1, CELL_WALKABLE, true);
+			map_setcell(barricade->m, x1, y1, CELL_SHOOTABLE, !barricade->shootable);
 			clif_changemapcell(0, barricade->m, x1, y1, map_getcell(barricade->m, x1, y1, CELL_GETTYPE), ALL_SAMEMAP);
 		}
@@ -2027,12 +2012,5 @@
 		//Let players decide whether to retaliate versus the master or the mob. [Skotlex]
 		if (md2->master_id && battle_config.retaliate_to_master)
-//this is odd... does that mean if you have a pet out it will get attecked instead of you?
-		{
-			//necro_retaliation config (same as above, but only works for adept/necro/warlock summons) [Brainstorm]
-			if(!battle_config.necro_retaliation && (md2->class_ >= 3100 && md2->class_ <= 3235))
-				md->attacked_id = src->id;
-			else md->attacked_id = md2->master_id; //All normal summons
-		}
-
+			md->attacked_id = md2->master_id;
 		else
 			md->attacked_id = src->id;
@@ -2555,5 +2533,5 @@
 		mob_script_callback(md, src, CALLBACK_DEAD);
 	else
-	if(md->npc_event[0] && !md->state.npc_killmonster)
+	if(md->npc_event[0] && !md->npc_killmonster)
 	{
 		md->status.hp = 0; //So that npc_event invoked functions KNOW that I am dead.
@@ -2834,40 +2812,4 @@
 	return map_foreachinmap(mob_countslave_sub, bl->m, BL_MOB,bl->id);
 }
-
-//Weird structure, is this in the right place?
-/// Count slaves with a certain master and class. by FlavioJS [Brain]
-static int mob_countslave_class_sub(struct block_list* bl, va_list ap)
-{
-	int id;
-	int count;
-	short* classes;
-	TBL_MOB* md;
-
-	id = va_arg(ap, int);
-	count = va_arg(ap, int);
-	classes = va_arg(ap, short*);
-	md = (TBL_MOB*)bl;
-	
-	if( md->master_id == id )
-	{// has the correct master
-		int i;
-		for( i = 0; i < count; ++i )
-		{
-			if( md->class_ == classes[i] )
-				return 1;
-		}
-	}
-	return 0;
-}
-
-/// Returns the number of slaves of the specified classes. by FlavioJS [Brain]
-/// @param bl Master
-/// @param count Number of classes
-/// @param classes Array of classes
-int mob_countslave_class(struct block_list* bl, int count, short* classes)
-{
-	return map_foreachinmap(mob_countslave_class_sub, bl->m, BL_MOB, bl->id, count, classes);
-}
-
 
 /*==========================================
@@ -4032,7 +3974,5 @@
 		"mob_poring.txt",
 		"mob_boss.txt",
-		"mob_pouch.txt",
-		"mob_familiar.txt" // familiar By FlavioJS [Brain]
-		};//mob_familiar.txt make sure the name is right.
+		"mob_pouch.txt"};
 
 	memset(&summon, 0, sizeof(summon));
Index: /src/map/clif.c
===================================================================
--- /src/map/clif.c (revision 24)
+++ /src/map/clif.c (revision 1)
@@ -7062,7 +7062,7 @@
 	clif_weather_check(sd);
 	if( pc_issit(sd) )
-		clif_sitting(&sd->bl); // FIXME: just send to self, not area
+		clif_sitting(&sd->bl);
 	if( pc_isdead(sd) ) //When you refresh, resend the death packet.
-		clif_clearunit_single(sd->bl.id,1,sd->fd);
+		clif_clearunit_area(&sd->bl,1);
 
 #ifndef TXT_ONLY
Index: /src/map/map.h
===================================================================
--- /src/map/map.h (revision 24)
+++ /src/map/map.h (revision 1)
@@ -77,6 +77,4 @@
 	MAPID_XMAS,
 	MAPID_SUMMER,
-	//Bit masking is used here?
-	MAPID_ADEPT = 0x0E,	// Adept [Brain]
 //2_1 classes
 	MAPID_SUPER_NOVICE = JOBL_2_1|0x0,
@@ -88,6 +86,4 @@
 	MAPID_ASSASSIN,
 	MAPID_STAR_GLADIATOR,
-	//and here and down there
-	MAPID_NECROMANCER = JOBL_2_1|0x0E,	// Necromancer [Brain]
 //2_2 classes
 	MAPID_CRUSADER = JOBL_2_2|0x1,
@@ -98,6 +94,4 @@
 	MAPID_ROGUE,
 	MAPID_SOUL_LINKER,
-	//see. why are the bitmasks like this? Xray thing?
-	MAPID_WARLOCK = JOBL_2_2|0x0E, // Warlock [Flavio]
 //1-1, advanced
 	MAPID_NOVICE_HIGH = JOBL_UPPER|0x0,
@@ -296,5 +290,5 @@
 	SP_PERFECT_HIT_RATE,SP_PERFECT_HIT_ADD_RATE,SP_CRITICAL_RATE,SP_GET_ZENY_NUM,SP_ADD_GET_ZENY_NUM, // 1038-1042
 	SP_ADD_DAMAGE_CLASS,SP_ADD_MAGIC_DAMAGE_CLASS,SP_ADD_DEF_CLASS,SP_ADD_MDEF_CLASS, // 1043-1046
-	SP_ADD_MONSTER_DROP_ITEM,SP_DEF_RATIO_ATK_ELE,SP_DEF_RATIO_ATK_RACE,SP_FREE3, // 1047-1050
+	SP_ADD_MONSTER_DROP_ITEM,SP_DEF_RATIO_ATK_ELE,SP_DEF_RATIO_ATK_RACE,SP_ADD_SPEED, // 1047-1050
 	SP_HIT_RATE,SP_FLEE_RATE,SP_FLEE2_RATE,SP_DEF_RATE,SP_DEF2_RATE,SP_MDEF_RATE,SP_MDEF2_RATE, // 1051-1057
 	SP_SPLASH_RANGE,SP_SPLASH_ADD_RANGE,SP_AUTOSPELL,SP_HP_DRAIN_RATE,SP_SP_DRAIN_RATE, // 1058-1062
@@ -323,5 +317,4 @@
 	//2020 (SP_FREE) (previously SP_ADD_DAMAGE_BY_CLASS)
 	//2033 (SP_FREE2) (previously SP_ADDEFF_WHENHIT_SHORT)
-	//1050 (SP_FREE3) (previously SP_ADD_SPEED)
 };
 
@@ -461,4 +454,5 @@
 		unsigned partylock :1;
 		unsigned guildlock :1;
+		unsigned hostile : 1; //Sketchy
 	} flag;
 	struct point save;
Index: /src/map/mail.c
===================================================================
--- /src/map/mail.c (revision 24)
+++ /src/map/mail.c (revision 1)
@@ -56,10 +56,6 @@
 
 	if (flag && sd->mail.zeny > 0)
-	{  //Zeny send
-		if(log_config.zeny)
-			log_zeny(sd, "E", sd, -sd->mail.zeny);
+		sd->status.zeny -= sd->mail.zeny;
 
-		sd->status.zeny -= sd->mail.zeny;
-	}
 	sd->mail.zeny = 0;
 	clif_updatestatus(sd, SP_ZENY);
@@ -151,9 +147,5 @@
 
 	if( zeny > 0 )
-	{  //Zeny recieve
-		if(log_config.zeny)
-			log_zeny(sd, "E", sd, zeny);
 		pc_getzeny(sd, zeny);
-	}
 }
 
@@ -175,16 +167,8 @@
 	nullpo_retv(msg);
 
-	// Item  recieve (due to failure)
-	if(log_config.enable_logs&0x2000)
-		log_pick_pc(sd, "E", msg->item.nameid, msg->item.amount, &msg->item);
-
 	pc_additem(sd, &msg->item, msg->item.amount);
 	
 	if( msg->zeny > 0 )
 	{
-		//Zeny recieve (due to failure)
-		if(log_config.zeny)
-			log_zeny(sd, "E", sd, msg->zeny);
-
 		sd->status.zeny += msg->zeny;
 		clif_updatestatus(sd, SP_ZENY);
Index: /src/map/clif.h
===================================================================
--- /src/map/clif.h (revision 24)
+++ /src/map/clif.h (revision 1)
@@ -176,4 +176,5 @@
 void clif_divorced(struct map_session_data* sd, const char* name);
 //void clif_callpartner(struct map_session_data *sd);
+void clif_adopt_process(struct map_session_data *sd);
 void clif_soundeffect(struct map_session_data* sd, struct block_list* bl, const char* name, int type);
 int clif_soundeffectall(struct block_list* bl, const char *name, int type, enum send_target coverage);
Index: /src/map/mob.h
===================================================================
--- /src/map/mob.h (revision 24)
+++ /src/map/mob.h (revision 1)
@@ -12,11 +12,11 @@
 
 
-#define MAX_RANDOMMONSTER 5 //seems okay. just makes it so you can hold 5 summons at once.
-#define MAX_MOB_RACE_DB 6 //should this be changed though? I assume since undead was only expanded it's fine but it may fix something later.
+#define MAX_RANDOMMONSTER 4
+#define MAX_MOB_RACE_DB 6
 
 // Change this to increase the table size in your mob_db to accomodate a larger mob database.
 // Be sure to note that IDs 4001 to 4048 are reserved for advanced/baby/expanded classes.
 // Notice that the last 1000 entries are used for player clones, so always set this to desired value +1000
-#define MAX_MOB_DB 7000 //7000 should work fine.
+#define MAX_MOB_DB 3000
 
 //The number of drops all mobs have and the max drop-slot that the steal skill will attempt to steal from.
@@ -113,5 +113,4 @@
 		unsigned char attacked_count; //For rude attacked.
 		int provoke_flag; // Celest
-		unsigned npc_killmonster: 1; //for new killmonster behavior
 	} state;
 	struct guardian_data* guardian_data; 
@@ -143,4 +142,5 @@
 	unsigned int skilldelay[MAX_MOBSKILL];
 	char npc_event[50];
+	int npc_killmonster; //for new killmonster behavior
 };
 
@@ -270,7 +270,4 @@
 int mob_countslave(struct block_list *bl);
 int mob_convertslave(struct mob_data *md);
-// I really don't see the point in this...
-int mob_countslave_class(struct block_list* bl, int count, short* classes); // By FlavioJS [Brain]
-
 
 int mob_is_clone(int class_);
Index: /src/map/chrif.c
===================================================================
--- /src/map/chrif.c (revision 24)
+++ /src/map/chrif.c (revision 1)
@@ -18,5 +18,4 @@
 #include "pc.h"
 #include "pet.h"
-#include "skill.h"
 #include "status.h"
 #include "mercenary.h"
@@ -912,7 +911,7 @@
 	{
 		sd->status.child = 0;
-		sd->status.skill[WE_CALLBABY].id = 0;
-		sd->status.skill[WE_CALLBABY].lv = 0;
-		sd->status.skill[WE_CALLBABY].flag = 0;
+		sd->status.skill[410].id = 0;
+		sd->status.skill[410].lv = 0;
+		sd->status.skill[410].flag = 0;
 		clif_skillinfoblock(sd);
 	}
@@ -921,7 +920,7 @@
 	{
 		sd->status.child = 0;
-		sd->status.skill[WE_CALLBABY].id = 0;
-		sd->status.skill[WE_CALLBABY].lv = 0;
-		sd->status.skill[WE_CALLBABY].flag = 0;
+		sd->status.skill[410].id = 0;
+		sd->status.skill[410].lv = 0;
+		sd->status.skill[410].flag = 0;
 		clif_skillinfoblock(sd);
 	}
Index: /char-server.sh
===================================================================
--- /char-server.sh (revision 1)
+++ /char-server.sh (revision 1)
@@ -0,0 +1,16 @@
+#/bin/sh
+#Hi my naem is Kirt and I liek anime
+
+ulimit -Sc unlimited
+
+while [ 3 ] ; do
+if [ -f .stopserver3 ] ; then
+echo server marked down >> servlog.txt
+else
+echo restarting server at time at `date +"%m-%d-%H:%M-%S"`>> startlog.txt
+./char-server
+fi
+
+sleep 5
+
+done
Index: /map-server.sh
===================================================================
--- /map-server.sh (revision 1)
+++ /map-server.sh (revision 1)
@@ -0,0 +1,16 @@
+#/bin/sh
+#Hi my naem is Kirt and I liek anime
+
+ulimit -Sc unlimited
+
+while [ 1 ] ; do
+if [ -f .stopserver ] ; then
+echo server marked down >> servlog.txt
+else
+echo restarting server at time at `date +"%m-%d-%H:%M-%S"`>> startlog.txt
+./map-server
+fi
+
+sleep 5
+
+done
Index: /runserver-sql.bat
===================================================================
--- /runserver-sql.bat (revision 1)
+++ /runserver-sql.bat (revision 1)
@@ -0,0 +1,8 @@
+@echo off
+rem This is and auto-restart script for the eAthena Ragnarok Online Server Emulator.
+rem It will also keep the map server OPEN after it crashes to that errors may be
+rem more easily identified
+rem Writen by Jbain
+start cmd /k logserv-sql.bat
+start cmd /k charserv-sql.bat
+start cmd /k mapserv-sql.bat
Index: /runserver.bat
===================================================================
--- /runserver.bat (revision 1)
+++ /runserver.bat (revision 1)
@@ -0,0 +1,75 @@
+@echo off
+
+rem ----- Configuration -----
+	rem Defines the server type (txt or sql).
+	set SERVER_TYPE=txt
+	rem Defines how long to wait before restarting (in seconds).
+	set SLEEP_TIME=15
+	rem Defines whether to run all servers in one window (yes or no).
+	set SINGLE_WINDOW=no
+rem ----- ------------- -----
+
+:L_Init
+	set this=%0
+	if %SERVER_TYPE% == txt set suffix=
+	if %SERVER_TYPE% == sql set suffix=_sql
+	if %SINGLE_WINDOW% == yes set wndswitch=/B
+
+:L_Main
+	set command=%1
+	if "%command%" == "" goto L_DefaultAction
+	
+	if %command% == exec goto L_ExecServerExe
+	if %command% == start goto L_StartServerExe
+	if %command% == stop goto L_StopServerExe
+	if %command% == restart echo "TODO"
+	goto L_EOF
+
+:L_DefaultAction
+:L_StartServer
+	call %this% start login-server%suffix%.exe
+	call %this% start char-server%suffix%.exe
+	call %this% start map-server%suffix%.exe
+	goto L_EOF
+
+:L_StopServer
+	call %this% stop login-server%suffix%.exe
+	call %this% stop char-server%suffix%.exe
+	call %this% stop map-server%suffix%.exe
+	goto L_EOF
+
+:L_StartServerExe
+	set filename=%2
+	if "%filename%" == "" goto L_StartServer
+	if exist %filename% goto L_HaveExe
+	echo Cannot start '%filename%' because the file is missing!
+	goto L_EOF
+
+	:L_HaveExe
+	echo Starting %filename%...
+	start "%filename%" %wndswitch% %this% exec %filename%
+	goto L_EOF
+
+:L_StopServerExe
+	set filename=%2
+	if "%filename%" == "" goto L_StopServer
+	if exist %windir%\system32\taskkill.exe goto L_HaveTaskKill
+	echo The 'stop' command is not available on your system.
+	exit
+
+	:L_HaveTaskKill
+	rem CAUTION! This will kill all processes called %filename%.
+	echo Stopping '%filename%'...
+	taskkill /F /FI "WINDOWTITLE eq %filename% - %this%   exec %filename%"
+	taskkill /F /IM "%filename%"
+	goto L_EOF
+
+:L_ExecServerExe
+	%filename%
+	echo .
+	echo .
+	echo Server exited, restarting in %SLEEP_TIME% seconds! Press CTRL+C to abort!
+	ping.exe -n %SLEEP_TIME% 127.0.0.1 > nul
+	goto L_ExecServerExe
+
+:L_EOF
Index: /eAthena-8.sln
===================================================================
--- /eAthena-8.sln (revision 1)
+++ /eAthena-8.sln (revision 1)
@@ -0,0 +1,139 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_txt", "vcproj-8\map-server_txt.vcproj", "{D356871D-58E1-450B-967A-E1E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_txt", "vcproj-8\login-server_txt.vcproj", "{D356871D-58E1-450B-967A-E2E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server_txt", "vcproj-8\char-server_txt.vcproj", "{D356871D-58E1-450B-967A-E3E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server_sql", "vcproj-8\char-server_sql.vcproj", "{D356871D-58E1-450B-967A-E4E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_sql", "vcproj-8\login-server_sql.vcproj", "{D356871D-58E1-450B-967A-E5E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_sql", "vcproj-8\map-server_sql.vcproj", "{D356871D-58E1-450B-967A-E6E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-8\mapcache.vcproj", "{D356871D-58E1-450B-967A-E7E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ladmin", "vcproj-8\ladmin.vcproj", "{D356871D-58E1-450B-967A-E8E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-login", "vcproj-8\txt-converter-login.vcproj", "{D356871D-58E1-450B-967A-E9E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-char", "vcproj-8\txt-converter-char.vcproj", "{D356871D-58E1-450B-967A-EAE9646175AF}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug-sql|Win32 = Debug-sql|Win32
+		Debug-txt|Win32 = Debug-txt|Win32
+		Release|Win32 = Release|Win32
+		Release-sql|Win32 = Release-sql|Win32
+		Release-txt|Win32 = Release-txt|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Index: /eAthena-9.sln
===================================================================
--- /eAthena-9.sln (revision 1)
+++ /eAthena-9.sln (revision 1)
@@ -0,0 +1,136 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_txt", "vcproj-9\map-server_txt.vcproj", "{D356871D-58E1-450B-967A-E1E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_txt", "vcproj-9\login-server_txt.vcproj", "{D356871D-58E1-450B-967A-E2E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server_txt", "vcproj-9\char-server_txt.vcproj", "{D356871D-58E1-450B-967A-E3E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server_sql", "vcproj-9\char-server_sql.vcproj", "{D356871D-58E1-450B-967A-E4E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_sql", "vcproj-9\login-server_sql.vcproj", "{D356871D-58E1-450B-967A-E5E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_sql", "vcproj-9\map-server_sql.vcproj", "{D356871D-58E1-450B-967A-E6E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-9\mapcache.vcproj", "{D356871D-58E1-450B-967A-E7E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ladmin", "vcproj-9\ladmin.vcproj", "{D356871D-58E1-450B-967A-E8E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-login", "vcproj-9\txt-converter-login.vcproj", "{D356871D-58E1-450B-967A-E9E9646175AF}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-char", "vcproj-9\txt-converter-char.vcproj", "{D356871D-58E1-450B-967A-EAE9646175AF}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Debug-sql|Win32 = Debug-sql|Win32
+		Debug-txt|Win32 = Debug-txt|Win32
+		Release|Win32 = Release|Win32
+		Release-sql|Win32 = Release-sql|Win32
+		Release-txt|Win32 = Release-txt|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release|Win32.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
Index: /notice.txt
===================================================================
--- /notice.txt (revision 2)
+++ /notice.txt (revision 1)
@@ -1,5 +1,12 @@
 //Notice\\
 
-This is ALPHA...
+This branch, "Trunk", might not be stable due to bugs and whatsoever. 
+It is highly recommended, if you have any doubts on using this svn version,
+it is best if you use an eAthena Official Version or use the Stable branch.
 
-It's bug ridden and full of trecherous doom-traps.
+on another note, if you found a bug, it is best if you report it on the eAthena 
+forums as http://eathena.ws/ . If you have made yourself a fix for 
+that piece of faulty/buggy code, why not post it up and we'll add it to the svn.
+who knows, you might be an aspiring dev.
+
+eA Dev Team
Index: /eAthena-7.1.sln
===================================================================
--- /eAthena-7.1.sln (revision 1)
+++ /eAthena-7.1.sln (revision 1)
@@ -0,0 +1,69 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_txt", "vcproj-7.1\map-server_txt.vcproj", "{D356871D-58E1-450B-967A-E1E9646175AF}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_txt", "vcproj-7.1\login-server_txt.vcproj", "{D356871D-58E1-450B-967A-E2E9646175AF}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server_txt", "vcproj-7.1\char-server_txt.vcproj", "{D356871D-58E1-450B-967A-E3E9646175AF}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server_sql", "vcproj-7.1\char-server_sql.vcproj", "{D356871D-58E1-450B-967A-E4E9646175AF}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_sql", "vcproj-7.1\login-server_sql.vcproj", "{D356871D-58E1-450B-967A-E5E9646175AF}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_sql", "vcproj-7.1\map-server_sql.vcproj", "{D356871D-58E1-450B-967A-E6E9646175AF}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-7.1\mapcache.vcproj", "{CB8556B8-9673-42FD-B2F6-3826534E64E2}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E1E9646175AF}.Release.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E2E9646175AF}.Release.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E3E9646175AF}.Release.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E4E9646175AF}.Release.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E5E9646175AF}.Release.Build.0 = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug.ActiveCfg = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug.Build.0 = Debug|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release.ActiveCfg = Release|Win32
+		{D356871D-58E1-450B-967A-E6E9646175AF}.Release.Build.0 = Release|Win32
+		{CB8556B8-9673-42FD-B2F6-3826534E64E2}.Debug.ActiveCfg = Debug|Win32
+		{CB8556B8-9673-42FD-B2F6-3826534E64E2}.Debug.Build.0 = Debug|Win32
+		{CB8556B8-9673-42FD-B2F6-3826534E64E2}.Release.ActiveCfg = Release|Win32
+		{CB8556B8-9673-42FD-B2F6-3826534E64E2}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
Index: /eAthena-6.dsw
===================================================================
--- /eAthena-6.dsw (revision 1)
+++ /eAthena-6.dsw (revision 1)
@@ -0,0 +1,89 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "login_txt"=".\vcproj-6\login-server_txt.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "login_sql"=".\vcproj-6\login-server_sql.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "char_txt"=".\vcproj-6\char-server_txt.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "char_sql"=".\vcproj-6\char-server_sql.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "map_txt"=".\vcproj-6\map-server_txt.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Project: "map_sql"=".\vcproj-6\map-server_sql.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
Index: /vcproj-9/login-server_sql/Release/mt.dep
===================================================================
--- /vcproj-9/login-server_sql/Release/mt.dep (revision 13)
+++ /vcproj-9/login-server_sql/Release/mt.dep (revision 1)
@@ -1,1 +1,1 @@
-Manifest resource last updated at 23:33:32.01 on 06/30/2008 Mon 
+Manifest resource last updated at 19:28:49.12 on 06/27/2008 Fri 
Index: /vcproj-9/login-server_sql/Release/BuildLog.htm
===================================================================
--- /vcproj-9/login-server_sql/Release/BuildLog.htm (revision 13)
+++ /vcproj-9/login-server_sql/Release/BuildLog.htm (revision 1)
@@ -11,5 +11,38 @@
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Command Lines
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\login-server_sql\Release\RSP00000629641224.rsp" with contents
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\RSP00000715443700.rsp" with contents
+[
+/O2 /Ob2 /Oi /Ot /Oy /GT /GL /I &quot;..\src\common&quot; /I &quot;..\src\zlib&quot; /I &quot;..\src\mysql&quot; /D &quot;WIN32&quot; /D &quot;_WIN32&quot; /D &quot;__WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot; /D &quot;_CRT_NONSTDC_NO_DEPRECATE&quot; /D &quot;FD_SETSIZE=4096&quot; /D &quot;DB_MANUAL_CAST_TO_UNION&quot; /D &quot;_VC80_UPGRADE=0x0710&quot; /D &quot;_MBCS&quot; /GF /FD /EHsc /MT /Fo&quot;login-server_sql\Release\\&quot; /Fd&quot;login-server_sql\Release\vc90.pdb&quot; /W3 /c /Zi /TC /wd4100 /wd4800 &quot;..\src\common\utils.c&quot;
+
+&quot;..\src\common\timer.c&quot;
+
+&quot;..\src\common\strlib.c&quot;
+
+&quot;..\src\common\sql.c&quot;
+
+&quot;..\src\common\socket.c&quot;
+
+&quot;..\src\common\showmsg.c&quot;
+
+&quot;..\src\common\plugins.c&quot;
+
+&quot;..\src\common\nullpo.c&quot;
+
+&quot;..\src\common\md5calc.c&quot;
+
+&quot;..\src\common\malloc.c&quot;
+
+&quot;..\src\common\lock.c&quot;
+
+&quot;..\src\common\ers.c&quot;
+
+&quot;..\src\common\db.c&quot;
+
+&quot;..\src\common\core.c&quot;
+
+&quot;..\src\login_sql\login.c&quot;
+]
+Creating command line "cl.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\RSP00000715443700.rsp" /nologo /errorReport:prompt"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\RSP00000815443700.rsp" with contents
 [
 /OUT:&quot;..\login-server_sql.exe&quot; /INCREMENTAL:NO /LIBPATH:&quot;..\lib&quot; /MANIFEST /MANIFESTFILE:&quot;login-server_sql\Release\login-server_sql.exe.intermediate.manifest&quot; /MANIFESTUAC:&quot;level='asInvoker' uiAccess='false'&quot; /NODEFAULTLIB /DEBUG /PDB:&quot;..\login-server_sql.pdb&quot; /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE:NO /MACHINE:X86 libcmt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
@@ -45,6 +78,6 @@
 &quot;.\login-server_sql\Release\utils.obj&quot;
 ]
-Creating command line "link.exe @"f:\Sourcecode\Black Magic\vcproj-9\login-server_sql\Release\RSP00000629641224.rsp" /NOLOGO /ERRORREPORT:PROMPT"
-Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\login-server_sql\Release\RSP00000929641224.rsp" with contents
+Creating command line "link.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\RSP00000815443700.rsp" /NOLOGO /ERRORREPORT:PROMPT"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\RSP00000915443700.rsp" with contents
 [
 /outputresource:&quot;..\login-server_sql.exe;#1&quot; /manifest
@@ -52,13 +85,29 @@
 &quot;.\login-server_sql\Release\login-server_sql.exe.intermediate.manifest&quot;
 ]
-Creating command line "mt.exe @"f:\Sourcecode\Black Magic\vcproj-9\login-server_sql\Release\RSP00000929641224.rsp" /nologo"
-Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\login-server_sql\Release\BAT00000A29641224.bat" with contents
+Creating command line "mt.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\RSP00000915443700.rsp" /nologo"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\BAT00000A15443700.bat" with contents
 [
 @echo Manifest resource last updated at %TIME% on %DATE% &gt; &quot;.\login-server_sql\Release\mt.dep&quot;
 ]
-Creating command line """f:\Sourcecode\Black Magic\vcproj-9\login-server_sql\Release\BAT00000A29641224.bat"""
+Creating command line """f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\BAT00000A15443700.bat"""
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Output Window
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Linking...
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Compiling...
+utils.c
+timer.c
+strlib.c
+sql.c
+socket.c
+showmsg.c
+plugins.c
+nullpo.c
+md5calc.c
+malloc.c
+lock.c
+ers.c
+db.c
+core.c
+login.c
+Linking...
 Generating code
 Finished generating code
@@ -66,5 +115,5 @@
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Results
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Build log was saved at "file://f:\Sourcecode\Black Magic\vcproj-9\login-server_sql\Release\BuildLog.htm"
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Build log was saved at "file://f:\Sourcecode\eAthena\Base\vcproj-9\login-server_sql\Release\BuildLog.htm"
 login-server_sql - 0 error(s), 0 warning(s)
 </pre></table><table   width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
Index: /vcproj-9/char-server_sql/Release/mt.dep
===================================================================
--- /vcproj-9/char-server_sql/Release/mt.dep (revision 13)
+++ /vcproj-9/char-server_sql/Release/mt.dep (revision 1)
@@ -1,1 +1,1 @@
-Manifest resource last updated at 23:33:35.07 on 06/30/2008 Mon 
+Manifest resource last updated at 19:29:03.53 on 06/27/2008 Fri 
Index: /vcproj-9/char-server_sql/Release/BuildLog.htm
===================================================================
--- /vcproj-9/char-server_sql/Release/BuildLog.htm (revision 13)
+++ /vcproj-9/char-server_sql/Release/BuildLog.htm (revision 1)
@@ -11,5 +11,56 @@
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Command Lines
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\char-server_sql\Release\RSP00000829641280.rsp" with contents
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\RSP00000B15442104.rsp" with contents
+[
+/O2 /Ob2 /Oi /Ot /Oy /GT /GL /I &quot;..\src\common&quot; /I &quot;..\src\zlib&quot; /I &quot;..\src\mysql&quot; /D &quot;WIN32&quot; /D &quot;_WIN32&quot; /D &quot;__WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot; /D &quot;_CRT_NONSTDC_NO_DEPRECATE&quot; /D &quot;FD_SETSIZE=4096&quot; /D &quot;DB_MANUAL_CAST_TO_UNION&quot; /D &quot;_VC80_UPGRADE=0x0710&quot; /D &quot;_MBCS&quot; /GF /FD /EHsc /MT /Fo&quot;char-server_sql\Release\\&quot; /Fd&quot;char-server_sql\Release\vc90.pdb&quot; /W3 /c /Zi /TC /wd4800 &quot;..\src\char_sql\inter.c&quot;
+
+&quot;..\src\char_sql\int_storage.c&quot;
+
+&quot;..\src\char_sql\int_quest.c&quot;
+
+&quot;..\src\char_sql\int_pet.c&quot;
+
+&quot;..\src\char_sql\int_party.c&quot;
+
+&quot;..\src\char_sql\int_mail.c&quot;
+
+&quot;..\src\char_sql\int_homun.c&quot;
+
+&quot;..\src\char_sql\int_guild.c&quot;
+
+&quot;..\src\char_sql\int_auction.c&quot;
+
+&quot;..\src\char_sql\char.c&quot;
+
+&quot;..\src\common\utils.c&quot;
+
+&quot;..\src\common\timer.c&quot;
+
+&quot;..\src\common\strlib.c&quot;
+
+&quot;..\src\common\sql.c&quot;
+
+&quot;..\src\common\socket.c&quot;
+
+&quot;..\src\common\showmsg.c&quot;
+
+&quot;..\src\common\plugins.c&quot;
+
+&quot;..\src\common\nullpo.c&quot;
+
+&quot;..\src\common\mapindex.c&quot;
+
+&quot;..\src\common\malloc.c&quot;
+
+&quot;..\src\common\lock.c&quot;
+
+&quot;..\src\common\ers.c&quot;
+
+&quot;..\src\common\db.c&quot;
+
+&quot;..\src\common\core.c&quot;
+]
+Creating command line "cl.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\RSP00000B15442104.rsp" /nologo /errorReport:prompt"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\RSP00000C15442104.rsp" with contents
 [
 /OUT:&quot;..\char-server_sql.exe&quot; /INCREMENTAL:NO /LIBPATH:&quot;..\lib&quot; /MANIFEST /MANIFESTFILE:&quot;char-server_sql\Release\char-server_sql.exe.intermediate.manifest&quot; /MANIFESTUAC:&quot;level='asInvoker' uiAccess='false'&quot; /NODEFAULTLIB /DEBUG /PDB:&quot;..\char-server_sql.pdb&quot; /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE:NO /MACHINE:X86 libcmt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
@@ -63,6 +114,6 @@
 &quot;.\char-server_sql\Release\inter.obj&quot;
 ]
-Creating command line "link.exe @"f:\Sourcecode\Black Magic\vcproj-9\char-server_sql\Release\RSP00000829641280.rsp" /NOLOGO /ERRORREPORT:PROMPT"
-Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\char-server_sql\Release\RSP00000B29641280.rsp" with contents
+Creating command line "link.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\RSP00000C15442104.rsp" /NOLOGO /ERRORREPORT:PROMPT"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\RSP00000D15442104.rsp" with contents
 [
 /outputresource:&quot;..\char-server_sql.exe;#1&quot; /manifest
@@ -70,13 +121,39 @@
 &quot;.\char-server_sql\Release\char-server_sql.exe.intermediate.manifest&quot;
 ]
-Creating command line "mt.exe @"f:\Sourcecode\Black Magic\vcproj-9\char-server_sql\Release\RSP00000B29641280.rsp" /nologo"
-Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\char-server_sql\Release\BAT00000C29641280.bat" with contents
+Creating command line "mt.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\RSP00000D15442104.rsp" /nologo"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\BAT00000E15442104.bat" with contents
 [
 @echo Manifest resource last updated at %TIME% on %DATE% &gt; &quot;.\char-server_sql\Release\mt.dep&quot;
 ]
-Creating command line """f:\Sourcecode\Black Magic\vcproj-9\char-server_sql\Release\BAT00000C29641280.bat"""
+Creating command line """f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\BAT00000E15442104.bat"""
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Output Window
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Linking...
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Compiling...
+inter.c
+int_storage.c
+int_quest.c
+int_pet.c
+int_party.c
+int_mail.c
+int_homun.c
+int_guild.c
+int_auction.c
+char.c
+utils.c
+timer.c
+strlib.c
+sql.c
+socket.c
+showmsg.c
+plugins.c
+nullpo.c
+mapindex.c
+malloc.c
+Compiling...
+lock.c
+ers.c
+db.c
+core.c
+Linking...
 Generating code
 Finished generating code
@@ -84,5 +161,5 @@
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Results
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Build log was saved at "file://f:\Sourcecode\Black Magic\vcproj-9\char-server_sql\Release\BuildLog.htm"
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Build log was saved at "file://f:\Sourcecode\eAthena\Base\vcproj-9\char-server_sql\Release\BuildLog.htm"
 char-server_sql - 0 error(s), 0 warning(s)
 </pre></table><table   width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
Index: /vcproj-9/map-server_sql/Release/BuildLog.htm
===================================================================
--- /vcproj-9/map-server_sql/Release/BuildLog.htm (revision 16)
+++ /vcproj-9/map-server_sql/Release/BuildLog.htm (revision 1)
@@ -11,137 +11,128 @@
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Command Lines
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\map-server_sql\Release\RSP00000131883092.rsp" with contents
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\RSP0000019641184.rsp" with contents
 [
-/O2 /Ob2 /Oi /Ot /Oy /GT /GL /I &quot;..\src\common&quot; /I &quot;..\src\zlib&quot; /I &quot;..\src\mysql&quot; /D &quot;WIN32&quot; /D &quot;_WIN32&quot; /D &quot;__WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;PCRE_SUPPORT&quot; /D &quot;MAPREGSQL&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot; /D &quot;_CRT_NONSTDC_NO_DEPRECATE&quot; /D &quot;FD_SETSIZE=4096&quot; /D &quot;DB_MANUAL_CAST_TO_UNION&quot; /D &quot;_VC80_UPGRADE=0x0710&quot; /D &quot;_MBCS&quot; /GF /FD /EHsc /MT /Fo&quot;map-server_sql\Release\\&quot; /Fd&quot;map-server_sql\Release\vc90.pdb&quot; /W3 /c /Zi /TC /wd4018 /wd4100 /wd4800 &quot;..\src\map\unit.c&quot;
+/O2 /Ob2 /Oi /Ot /Oy /GT /GL /I &quot;..\src\common&quot; /I &quot;..\src\zlib&quot; /I &quot;..\src\mysql&quot; /D &quot;WIN32&quot; /D &quot;_WIN32&quot; /D &quot;__WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;PCRE_SUPPORT&quot; /D &quot;MAPREGSQL&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot; /D &quot;_CRT_NONSTDC_NO_DEPRECATE&quot; /D &quot;FD_SETSIZE=4096&quot; /D &quot;DB_MANUAL_CAST_TO_UNION&quot; /D &quot;_VC80_UPGRADE=0x0710&quot; /D &quot;_MBCS&quot; /GF /FD /EHsc /MT /Fo&quot;map-server_sql\Release\\&quot; /Fd&quot;map-server_sql\Release\vc90.pdb&quot; /W3 /c /Zi /TC /wd4018 /wd4100 /wd4800 &quot;..\src\map\script.c&quot;
+]
+Creating command line "cl.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\RSP0000019641184.rsp" /nologo /errorReport:prompt"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\RSP0000029641184.rsp" with contents
+[
+/OUT:&quot;..\map-server_sql.exe&quot; /INCREMENTAL:NO /LIBPATH:&quot;..\lib&quot; /MANIFEST /MANIFESTFILE:&quot;map-server_sql\Release\map-server_sql.exe.intermediate.manifest&quot; /MANIFESTUAC:&quot;level='asInvoker' uiAccess='false'&quot; /NODEFAULTLIB /DEBUG /PDB:&quot;..\map-server_sql.pdb&quot; /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE:NO /MACHINE:X86 libcmt.lib oldnames.lib ws2_32.lib libmysql.lib zdll.lib pcre.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
 
-&quot;..\src\map\status.c&quot;
+&quot;.\map-server_sql\Release\core.obj&quot;
 
-&quot;..\src\map\skill.c&quot;
+&quot;.\map-server_sql\Release\db.obj&quot;
 
-&quot;..\src\map\pc.c&quot;
+&quot;.\map-server_sql\Release\ers.obj&quot;
 
-&quot;..\src\map\mob.c&quot;
+&quot;.\map-server_sql\Release\grfio.obj&quot;
 
-&quot;..\src\map\battle.c&quot;
+&quot;.\map-server_sql\Release\lock.obj&quot;
+
+&quot;.\map-server_sql\Release\malloc.obj&quot;
+
+&quot;.\map-server_sql\Release\mapindex.obj&quot;
+
+&quot;.\map-server_sql\Release\nullpo.obj&quot;
+
+&quot;.\map-server_sql\Release\plugins.obj&quot;
+
+&quot;.\map-server_sql\Release\showmsg.obj&quot;
+
+&quot;.\map-server_sql\Release\socket.obj&quot;
+
+&quot;.\map-server_sql\Release\sql.obj&quot;
+
+&quot;.\map-server_sql\Release\strlib.obj&quot;
+
+&quot;.\map-server_sql\Release\timer.obj&quot;
+
+&quot;.\map-server_sql\Release\utils.obj&quot;
+
+&quot;.\map-server_sql\Release\atcommand.obj&quot;
+
+&quot;.\map-server_sql\Release\battle.obj&quot;
+
+&quot;.\map-server_sql\Release\charcommand.obj&quot;
+
+&quot;.\map-server_sql\Release\chat.obj&quot;
+
+&quot;.\map-server_sql\Release\chrif.obj&quot;
+
+&quot;.\map-server_sql\Release\clif.obj&quot;
+
+&quot;.\map-server_sql\Release\date.obj&quot;
+
+&quot;.\map-server_sql\Release\guild.obj&quot;
+
+&quot;.\map-server_sql\Release\intif.obj&quot;
+
+&quot;.\map-server_sql\Release\irc.obj&quot;
+
+&quot;.\map-server_sql\Release\itemdb.obj&quot;
+
+&quot;.\map-server_sql\Release\log.obj&quot;
+
+&quot;.\map-server_sql\Release\mail.obj&quot;
+
+&quot;.\map-server_sql\Release\map.obj&quot;
+
+&quot;.\map-server_sql\Release\mercenary.obj&quot;
+
+&quot;.\map-server_sql\Release\mob.obj&quot;
+
+&quot;.\map-server_sql\Release\npc.obj&quot;
+
+&quot;.\map-server_sql\Release\npc_chat.obj&quot;
+
+&quot;.\map-server_sql\Release\party.obj&quot;
+
+&quot;.\map-server_sql\Release\path.obj&quot;
+
+&quot;.\map-server_sql\Release\pc.obj&quot;
+
+&quot;.\map-server_sql\Release\pet.obj&quot;
+
+&quot;.\map-server_sql\Release\quest.obj&quot;
+
+&quot;.\map-server_sql\Release\script.obj&quot;
+
+&quot;.\map-server_sql\Release\skill.obj&quot;
+
+&quot;.\map-server_sql\Release\status.obj&quot;
+
+&quot;.\map-server_sql\Release\storage.obj&quot;
+
+&quot;.\map-server_sql\Release\trade.obj&quot;
+
+&quot;.\map-server_sql\Release\unit.obj&quot;
+
+&quot;.\map-server_sql\Release\vending.obj&quot;
 ]
-Creating command line "cl.exe @"f:\Sourcecode\Black Magic\vcproj-9\map-server_sql\Release\RSP00000131883092.rsp" /nologo /errorReport:prompt"
+Creating command line "link.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\RSP0000029641184.rsp" /NOLOGO /ERRORREPORT:PROMPT"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\RSP0000039641184.rsp" with contents
+[
+/outputresource:&quot;..\map-server_sql.exe;#1&quot; /manifest
+
+&quot;.\map-server_sql\Release\map-server_sql.exe.intermediate.manifest&quot;
+]
+Creating command line "mt.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\RSP0000039641184.rsp" /nologo"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\BAT0000049641184.bat" with contents
+[
+@echo Manifest resource last updated at %TIME% on %DATE% &gt; &quot;.\map-server_sql\Release\mt.dep&quot;
+]
+Creating command line """f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\BAT0000049641184.bat"""
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Output Window
 </font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Compiling...
-unit.c
-..\src\map\unit.c(310) : error C2065: 'tbl' : undeclared identifier
-..\src\map\unit.c(310) : warning C4047: 'function' : 'block_list *' differs in levels of indirection from 'int'
-..\src\map\unit.c(310) : warning C4024: 'unit_escape' : different types for formal and actual parameter 2
-status.c
-..\src\map\status.c(1507) : error C2143: syntax error : missing ';' before 'type'
-..\src\map\status.c(1508) : error C2143: syntax error : missing ';' before 'type'
-..\src\map\status.c(1509) : error C2143: syntax error : missing ';' before 'type'
-..\src\map\status.c(1513) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1513) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1514) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1514) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1515) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1515) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1516) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1516) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1517) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1517) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1518) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1518) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1519) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1519) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1520) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1522) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1524) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1525) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1525) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1526) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1526) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1528) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1528) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1529) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1529) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1530) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1530) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1531) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1531) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1535) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1535) : error C2065: 'master_lv' : undeclared identifier
-..\src\map\status.c(1536) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1536) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1537) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1537) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1538) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1538) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1539) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1539) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1540) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1540) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1541) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1541) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1542) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1542) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1544) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1544) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1546) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1547) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1548) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1550) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1550) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1551) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1551) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1552) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1552) : error C2065: 'skill_mastery' : undeclared identifier
-..\src\map\status.c(1553) : error C2065: 'undead_mastery' : undeclared identifier
-..\src\map\status.c(1553) : error C2065: 'skill_mastery' : undeclared identifier
-skill.c
-..\src\map\skill.c(3425) : error C2143: syntax error : missing ';' before 'type'
-..\src\map\skill.c(3426) : error C2065: 'rnds' : undeclared identifier
-..\src\map\skill.c(11779) : error C2143: syntax error : missing ';' before 'type'
-..\src\map\skill.c(11780) : error C2143: syntax error : missing ';' before 'type'
-..\src\map\skill.c(11781) : error C2143: syntax error : missing ';' before 'type'
-..\src\map\skill.c(11783) : error C2065: 'item_tmp' : undeclared identifier
-..\src\map\skill.c(11783) : error C2065: 'item_tmp' : undeclared identifier
-..\src\map\skill.c(11784) : error C2065: 'tbl' : undeclared identifier
-..\src\map\skill.c(11784) : error C2065: 'tbl' : undeclared identifier
-..\src\map\skill.c(11786) : error C2065: 'item_tmp' : undeclared identifier
-..\src\map\skill.c(11786) : error C2224: left of '.nameid' must have struct/union type
-..\src\map\skill.c(11787) : error C2065: 'item_tmp' : undeclared identifier
-..\src\map\skill.c(11787) : error C2224: left of '.identify' must have struct/union type
-..\src\map\skill.c(11788) : error C2065: 'tbl' : undeclared identifier
-..\src\map\skill.c(11788) : error C2224: left of '.id' must have struct/union type
-..\src\map\skill.c(11790) : error C2065: 'tbl' : undeclared identifier
-..\src\map\skill.c(11790) : warning C4133: 'function' : incompatible types - from 'int *' to 'block_list *'
-..\src\map\skill.c(11791) : error C2065: 'eflag' : undeclared identifier
-..\src\map\skill.c(11791) : error C2065: 'item_tmp' : undeclared identifier
-..\src\map\skill.c(11791) : warning C4133: 'function' : incompatible types - from 'int *' to 'item *'
-..\src\map\skill.c(11792) : error C2065: 'eflag' : undeclared identifier
-..\src\map\skill.c(11793) : error C2065: 'eflag' : undeclared identifier
-..\src\map\skill.c(11794) : error C2065: 'item_tmp' : undeclared identifier
-..\src\map\skill.c(11794) : warning C4133: 'function' : incompatible types - from 'int *' to 'item *'
-pc.c
-..\src\map\pc.c(3894) : error C2059: syntax error : 'case'
-mob.c
-..\src\map\mob.c(2027) : error C2181: illegal else without matching if
-battle.c
-..\src\map\battle.c(1616) : error C2065: 'MS_BASH' : undeclared identifier
-..\src\map\battle.c(1616) : error C2051: case expression not constant
-..\src\map\battle.c(1619) : error C2065: 'MER_CRASH' : undeclared identifier
-..\src\map\battle.c(1619) : error C2051: case expression not constant
-..\src\map\battle.c(2458) : error C2143: syntax error : missing ';' before 'type'
-..\src\map\battle.c(2459) : error C2065: 'md' : undeclared identifier
-..\src\map\battle.c(2459) : error C2224: left of '.damage' must have struct/union type
-..\src\map\battle.c(2459) : error C2065: 'md' : undeclared identifier
-..\src\map\battle.c(2459) : error C2224: left of '.damage' must have struct/union type
-..\src\map\battle.c(2460) : error C2065: 'md' : undeclared identifier
-..\src\map\battle.c(2460) : error C2224: left of '.damage' must have struct/union type
-..\src\map\battle.c(3839) : warning C4047: 'initializing' : 'int' differs in levels of indirection from 'char [20]'
-..\src\map\battle.c(3839) : error C2078: too many initializers
-..\src\map\battle.c(3840) : error C2059: syntax error : ';'
-..\src\map\battle.c(3845) : fatal error C1903: unable to recover from previous error(s); stopping compilation
+script.c
+Linking...
+Generating code
+Finished generating code
+Embedding manifest...
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Results
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Build log was saved at "file://f:\Sourcecode\Black Magic\vcproj-9\map-server_sql\Release\BuildLog.htm"
-map-server_sql - 99 error(s), 6 warning(s)
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Build log was saved at "file://f:\Sourcecode\eAthena\Base\vcproj-9\map-server_sql\Release\BuildLog.htm"
+map-server_sql - 0 error(s), 0 warning(s)
 </pre></table><table   width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
 </font></table></body></html>
Index: /vcproj-9/mapcache/Release/mt.dep
===================================================================
--- /vcproj-9/mapcache/Release/mt.dep (revision 13)
+++ /vcproj-9/mapcache/Release/mt.dep (revision 1)
@@ -1,1 +1,1 @@
-Manifest resource last updated at 23:33:28.89 on 06/30/2008 Mon 
+Manifest resource last updated at 19:28:40.73 on 06/27/2008 Fri 
Index: /vcproj-9/mapcache/Release/BuildLog.htm
===================================================================
--- /vcproj-9/mapcache/Release/BuildLog.htm (revision 13)
+++ /vcproj-9/mapcache/Release/BuildLog.htm (revision 1)
@@ -11,5 +11,12 @@
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Command Lines
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\mapcache\Release\RSP00000329643504.rsp" with contents
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\RSP0000021544476.rsp" with contents
+[
+/O2 /Ob2 /Oi /Ot /Oy /GT /GL /I &quot;..\src\common&quot; /I &quot;..\src\zlib&quot; /D &quot;WIN32&quot; /D &quot;_WIN32&quot; /D &quot;__WIN32&quot; /D &quot;NDEBUG&quot; /D &quot;_CRT_SECURE_NO_DEPRECATE&quot; /D &quot;_CRT_NONSTDC_NO_DEPRECATE&quot; /D &quot;_MBCS&quot; /GF /FD /EHsc /MT /Fo&quot;mapcache\Release\\&quot; /Fd&quot;mapcache\Release\vc90.pdb&quot; /W3 /c /Zi /TC &quot;..\src\tool\mapcache.c&quot;
+
+&quot;..\src\tool\grfio.c&quot;
+]
+Creating command line "cl.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\RSP0000021544476.rsp" /nologo /errorReport:prompt"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\RSP0000031544476.rsp" with contents
 [
 /OUT:&quot;..\mapcache.exe&quot; /INCREMENTAL:NO /LIBPATH:&quot;..\lib&quot; /MANIFEST /MANIFESTFILE:&quot;mapcache\Release\mapcache.exe.intermediate.manifest&quot; /MANIFESTUAC:&quot;level='asInvoker' uiAccess='false'&quot; /NODEFAULTLIB /DEBUG /PDB:&quot;..\mapcache.pdb&quot; /SUBSYSTEM:CONSOLE /OPT:REF /OPT:ICF /LTCG /DYNAMICBASE:NO /MACHINE:X86 libcmt.lib oldnames.lib zdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
@@ -19,6 +26,6 @@
 &quot;.\mapcache\Release\mapcache.obj&quot;
 ]
-Creating command line "link.exe @"f:\Sourcecode\Black Magic\vcproj-9\mapcache\Release\RSP00000329643504.rsp" /NOLOGO /ERRORREPORT:PROMPT"
-Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\mapcache\Release\RSP00000529643504.rsp" with contents
+Creating command line "link.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\RSP0000031544476.rsp" /NOLOGO /ERRORREPORT:PROMPT"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\RSP0000051544476.rsp" with contents
 [
 /outputresource:&quot;..\mapcache.exe;#1&quot; /manifest
@@ -26,13 +33,16 @@
 &quot;.\mapcache\Release\mapcache.exe.intermediate.manifest&quot;
 ]
-Creating command line "mt.exe @"f:\Sourcecode\Black Magic\vcproj-9\mapcache\Release\RSP00000529643504.rsp" /nologo"
-Creating temporary file "f:\Sourcecode\Black Magic\vcproj-9\mapcache\Release\BAT00000729643504.bat" with contents
+Creating command line "mt.exe @"f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\RSP0000051544476.rsp" /nologo"
+Creating temporary file "f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\BAT0000061544476.bat" with contents
 [
 @echo Manifest resource last updated at %TIME% on %DATE% &gt; &quot;.\mapcache\Release\mt.dep&quot;
 ]
-Creating command line """f:\Sourcecode\Black Magic\vcproj-9\mapcache\Release\BAT00000729643504.bat"""
+Creating command line """f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\BAT0000061544476.bat"""
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Output Window
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Linking...
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Compiling...
+mapcache.c
+grfio.c
+Linking...
 Generating code
 Finished generating code
@@ -40,5 +50,5 @@
 </pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
 Results
-</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Build log was saved at "file://f:\Sourcecode\Black Magic\vcproj-9\mapcache\Release\BuildLog.htm"
+</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Build log was saved at "file://f:\Sourcecode\eAthena\Base\vcproj-9\mapcache\Release\BuildLog.htm"
 mapcache - 0 error(s), 0 warning(s)
 </pre></table><table   width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
Index: /README.txt
===================================================================
--- /README.txt (revision 3)
+++ /README.txt (revision 1)
@@ -1,4 +1,5 @@
-Blackmagic is based off of eAthena, as such maintains properties of eAthena, including the license, however the source is not open, at least not yet.
-Should I choose to open source it, then it will be put in a new place.
-This will never go commercial or draw in any profit of any kind to be used for personal or otherwise benificial use to one single person.
-Any income for the server project should be considered a donation and used towards the betterment of the project. 
+This is a Subversion repository; use the 'svnadmin' tool to examine
+it.  Do not add, delete, or modify files here unless you know how
+to avoid corrupting the repository.
+
+Visit http://subversion.tigris.org/ for more information.
Index: /ack Magic.sln
===================================================================
--- /Black Magic.sln (revision 9)
+++  (revision )
@@ -1,136 +1,0 @@
-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual C++ Express 2008
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_txt", "vcproj-9\map-server_txt.vcproj", "{D356871D-58E1-450B-967A-E1E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_txt", "vcproj-9\login-server_txt.vcproj", "{D356871D-58E1-450B-967A-E2E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server_txt", "vcproj-9\char-server_txt.vcproj", "{D356871D-58E1-450B-967A-E3E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "char-server_sql", "vcproj-9\char-server_sql.vcproj", "{D356871D-58E1-450B-967A-E4E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "login-server_sql", "vcproj-9\login-server_sql.vcproj", "{D356871D-58E1-450B-967A-E5E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "map-server_sql", "vcproj-9\map-server_sql.vcproj", "{D356871D-58E1-450B-967A-E6E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mapcache", "vcproj-9\mapcache.vcproj", "{D356871D-58E1-450B-967A-E7E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ladmin", "vcproj-9\ladmin.vcproj", "{D356871D-58E1-450B-967A-E8E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-login", "vcproj-9\txt-converter-login.vcproj", "{D356871D-58E1-450B-967A-E9E9646175AF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "txt-converter-char", "vcproj-9\txt-converter-char.vcproj", "{D356871D-58E1-450B-967A-EAE9646175AF}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Win32 = Debug|Win32
-		Debug-sql|Win32 = Debug-sql|Win32
-		Debug-txt|Win32 = Debug-txt|Win32
-		Release|Win32 = Release|Win32
-		Release-sql|Win32 = Release-sql|Win32
-		Release-txt|Win32 = Release-txt|Win32
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E1E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E2E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E3E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E4E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E5E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E6E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-sql|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-sql|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E7E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E8E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-E9E9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-sql|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-txt|Win32.ActiveCfg = Debug|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Debug-txt|Win32.Build.0 = Debug|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Release|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Release|Win32.Build.0 = Release|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-sql|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.ActiveCfg = Release|Win32
-		{D356871D-58E1-450B-967A-EAE9646175AF}.Release-txt|Win32.Build.0 = Release|Win32
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal
