Jelajahi Sumber

=General
*Added some job coding to the source to prepare for the adding of baby 3rd's and other expanded jobs.
*Removed Baby Taekwon, Baby Star Gladiator, and Baby Soul Linker MAPID's code since their pointless.
-Gravity never released baby versions of these classes. If they do in the future then ill readded them.
*Did some clean up in pc.c in the job management code. All unnecessary spaces were replaced with tabs
-to lower the file size and make it easier to keep things tighty.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15871 54d463be-8e91-2dee-dedb-b68131a5f0ec

technote24 13 tahun lalu
induk
melakukan
6aac4722fb
4 mengubah file dengan 272 tambahan dan 226 penghapusan
  1. 0 6
      db/const.txt
  2. 35 15
      src/common/mmo.h
  3. 34 13
      src/map/map.h
  4. 203 192
      src/map/pc.c

+ 0 - 6
db/const.txt

@@ -237,8 +237,6 @@ EAJ_BABY_ARCHER	0x2003
 EAJ_BABY_ACOLYTE	0x2004
 EAJ_BABY_MERCHANT	0x2005
 EAJ_BABY_THIEF	0x2006
-EAJ_BABY_TAEKWON	0x2007
-EAJ_BABY_GANGSI	0x200D
 
 EAJ_SUPER_BABY	0x2100
 EAJ_BABY_KNIGHT	0x2101
@@ -247,8 +245,6 @@ EAJ_BABY_HUNTER	0x2103
 EAJ_BABY_PRIEST	0x2104
 EAJ_BABY_BLACKSMITH	0x2105
 EAJ_BABY_ASSASSIN	0x2106
-EAJ_BABY_STAR_GLADIATOR	0x2107
-EAJ_BABY_DEATH_KNIGHT	0x210D
 
 EAJ_BABY_CRUSADER	0x2201
 EAJ_BABY_SAGE	0x2202
@@ -256,8 +252,6 @@ EAJ_BABY_BARDDANCER	0x2203
 EAJ_BABY_MONK	0x2204
 EAJ_BABY_ALCHEMIST	0x2205
 EAJ_BABY_ROGUE	0x2206
-EAJ_BABY_SOUL_LINKER	0x2207
-EAJ_BABY_DARK_COLLECTOR	0x220D
 
 EAJ_SUPER_NOVICE_E	0x4100
 EAJ_RUNE_KNIGHT	0x4101

+ 35 - 15
src/common/mmo.h

@@ -639,27 +639,25 @@ enum {
 	JOB_STAR_GLADIATOR,
 	JOB_STAR_GLADIATOR2,
 	JOB_SOUL_LINKER,
-	/**
-	 * 3.1 (2.1)
-	 **/
+
+	//JOB_GANGSI,
+	//JOB_DEATH_KNIGHT,
+	//JOB_DARK_COLLECTOR,
+
 	JOB_RUNE_KNIGHT = 4054,
 	JOB_WARLOCK,
 	JOB_RANGER,
 	JOB_ARCH_BISHOP,
 	JOB_MECHANIC,
 	JOB_GUILLOTINE_CROSS,
-	/**
-	 * 3.1 (2.1 Trans)
-	 **/
+
 	JOB_RUNE_KNIGHT_T,
 	JOB_WARLOCK_T,
 	JOB_RANGER_T,
 	JOB_ARCH_BISHOP_T,
 	JOB_MECHANIC_T,
 	JOB_GUILLOTINE_CROSS_T,
-	/**
-	 * 3.2 (2.2)
-	 **/
+
 	JOB_ROYAL_GUARD,
 	JOB_SORCERER,
 	JOB_MINSTREL,
@@ -667,9 +665,7 @@ enum {
 	JOB_SURA,
 	JOB_GENETIC,
 	JOB_SHADOW_CHASER,
-	/**
-	 * 3.2 (2.2 Trans)
-	 **/
+
 	JOB_ROYAL_GUARD_T,
 	JOB_SORCERER_T,
 	JOB_MINSTREL_T,
@@ -677,9 +673,7 @@ enum {
 	JOB_SURA_T,
 	JOB_GENETIC_T,
 	JOB_SHADOW_CHASER_T,
-	/**
-	 * 3.x Mounts / Vehicles
-	 **/
+
 	JOB_RUNE_KNIGHT2,
 	JOB_RUNE_KNIGHT_T2,
 	JOB_ROYAL_GUARD2,
@@ -689,6 +683,32 @@ enum {
 	JOB_MECHANIC2,
 	JOB_MECHANIC_T2,
 
+	/*JOB_BABY_RUNE = 4096,
+	JOB_BABY_WARLOCK,
+	JOB_BABY_RANGER,
+	JOB_BABY_BISHOP,
+	JOB_BABY_MECHANIC,
+	JOB_BABY_CROSS,
+
+	JOB_BABY_GUARD,
+	JOB_BABY_SORCERER,
+	JOB_BABY_MINSTREL,
+	JOB_BABY_WANDERER,
+	JOB_BABY_SURA,
+	JOB_BABY_GENETIC,
+	JOB_BABY_CHASER,
+
+	JOB_BABY_RUNE2,
+	JOB_BABY_GUARD2,
+	JOB_BABY_RANGER2,
+	JOB_BABY_MECHANIC2,*/
+
+	//JOB_SUPER_NOVICE_E = 4190,
+	//JOB_SUPER_BABY_E,
+
+	//JOB_KAGEROU = 4211,
+	//JOB_OBORO,
+
 	JOB_MAX,
 };
 

+ 34 - 13
src/map/map.h

@@ -64,13 +64,14 @@ enum E_MAPSERVER_ST
 #define JOBL_THIRD 0x4000 //16384
 
 //for filtering and quick checking.
-#define MAPID_UPPERMASK 0x0fff
 #define MAPID_BASEMASK 0x00ff
+#define MAPID_UPPERMASK 0x0fff
 #define MAPID_THIRDMASK (JOBL_THIRD|MAPID_UPPERMASK)
 //First Jobs
 //Note the oddity of the novice:
 //Super Novices are considered the 2-1 version of the novice! Novices are considered a first class type, too...
 enum {
+//Novice And 1-1 Jobs
 	MAPID_NOVICE = 0x0,
 	MAPID_SWORDMAN,
 	MAPID_MAGE,
@@ -84,7 +85,8 @@ enum {
 	MAPID_NINJA,
 	MAPID_XMAS,
 	MAPID_SUMMER,
-//2_1 classes
+	//MAPID_GANGSI,
+//2-1 Jobs
 	MAPID_SUPER_NOVICE = JOBL_2_1|0x0,
 	MAPID_KNIGHT,
 	MAPID_WIZARD,
@@ -93,7 +95,9 @@ enum {
 	MAPID_BLACKSMITH,
 	MAPID_ASSASSIN,
 	MAPID_STAR_GLADIATOR,
-//2_2 classes
+	//MAPID_KAGEROUOBORO = JOBL_2_1|0x0A,
+	//MAPID_DEATH_KNIGHT = JOBL_2_1|0x0D,
+//2-2 Jobs
 	MAPID_CRUSADER = JOBL_2_2|0x1,
 	MAPID_SAGE,
 	MAPID_BARDDANCER,
@@ -101,7 +105,8 @@ enum {
 	MAPID_ALCHEMIST,
 	MAPID_ROGUE,
 	MAPID_SOUL_LINKER,
-//1-1, advanced
+	//MAPID_DARK_COLLECTOR = JOBL_2_2|0x0D,
+//Trans Novice And Trans 1-1 Jobs
 	MAPID_NOVICE_HIGH = JOBL_UPPER|0x0,
 	MAPID_SWORDMAN_HIGH,
 	MAPID_MAGE_HIGH,
@@ -109,21 +114,21 @@ enum {
 	MAPID_ACOLYTE_HIGH,
 	MAPID_MERCHANT_HIGH,
 	MAPID_THIEF_HIGH,
-//2_1 advanced
+//Trans 2-1 Jobs
 	MAPID_LORD_KNIGHT = JOBL_UPPER|JOBL_2_1|0x1,
 	MAPID_HIGH_WIZARD,
 	MAPID_SNIPER,
 	MAPID_HIGH_PRIEST,
 	MAPID_WHITESMITH,
 	MAPID_ASSASSIN_CROSS,
-//2_2 advanced
+//Trans 2-2 Jobs
 	MAPID_PALADIN = JOBL_UPPER|JOBL_2_2|0x1,
 	MAPID_PROFESSOR,
 	MAPID_CLOWNGYPSY,
 	MAPID_CHAMPION,
 	MAPID_CREATOR,
 	MAPID_STALKER,
-//1-1 baby
+//Baby Novice And Baby 1-1 Jobs
 	MAPID_BABY = JOBL_BABY|0x0,
 	MAPID_BABY_SWORDMAN,
 	MAPID_BABY_MAGE,
@@ -131,8 +136,7 @@ enum {
 	MAPID_BABY_ACOLYTE,
 	MAPID_BABY_MERCHANT,
 	MAPID_BABY_THIEF,
-	MAPID_BABY_TAEKWON,
-//2_1 baby
+//Baby 2-1 Jobs
 	MAPID_SUPER_BABY = JOBL_BABY|JOBL_2_1|0x0,
 	MAPID_BABY_KNIGHT,
 	MAPID_BABY_WIZARD,
@@ -140,40 +144,57 @@ enum {
 	MAPID_BABY_PRIEST,
 	MAPID_BABY_BLACKSMITH,
 	MAPID_BABY_ASSASSIN,
-	MAPID_BABY_STAR_GLADIATOR,
-//2_2 baby
+//Baby 2-2 Jobs
 	MAPID_BABY_CRUSADER = JOBL_BABY|JOBL_2_2|0x1,
 	MAPID_BABY_SAGE,
 	MAPID_BABY_BARDDANCER,
 	MAPID_BABY_MONK,
 	MAPID_BABY_ALCHEMIST,
 	MAPID_BABY_ROGUE,
-	MAPID_BABY_SOUL_LINKER,
+//3-1 Jobs
+	//MAPID_SUPER_NOVICE_E = JOBL_THIRD|JOBL_2_1|0x0,
 	MAPID_RUNE_KNIGHT = JOBL_THIRD|JOBL_2_1|0x1,
 	MAPID_WARLOCK,
 	MAPID_RANGER,
 	MAPID_ARCH_BISHOP,
 	MAPID_MECHANIC,
 	MAPID_GUILLOTINE_CROSS,
+//3-2 Jobs
 	MAPID_ROYAL_GUARD = JOBL_THIRD|JOBL_2_2|0x1,
 	MAPID_SORCERER,
 	MAPID_MINSTRELWANDERER,
 	MAPID_SURA,
 	MAPID_GENETIC,
 	MAPID_SHADOW_CHASER,
+//Trans 3-1 Jobs
 	MAPID_RUNE_KNIGHT_T = JOBL_THIRD|JOBL_UPPER|JOBL_2_1|0x1,
 	MAPID_WARLOCK_T,
 	MAPID_RANGER_T,
 	MAPID_ARCH_BISHOP_T,
 	MAPID_MECHANIC_T,
 	MAPID_GUILLOTINE_CROSS_T,
+//Trans 3-2 Jobs
 	MAPID_ROYAL_GUARD_T = JOBL_THIRD|JOBL_UPPER|JOBL_2_2|0x1,
 	MAPID_SORCERER_T,
 	MAPID_MINSTRELWANDERER_T,
 	MAPID_SURA_T,
 	MAPID_GENETIC_T,
 	MAPID_SHADOW_CHASER_T,
-
+//Baby 3-1 Jobs
+	//MAPID_SUPER_BABY_E = JOBL_THIRD|JOBL_BABY|JOBL_2_1|0x0,
+	/*MAPID_BABY_RUNE = JOBL_THIRD|JOBL_BABY|JOBL_2_1|0x1,
+	MAPID_BABY_WARLOCK,
+	MAPID_BABY_RANGER,
+	MAPID_BABY_BISHOP,
+	MAPID_BABY_MECHANIC,
+	MAPID_BABY_CROSS,
+//Baby 3-2 Jobs
+	MAPID_BABY_GUARD = JOBL_THIRD|JOBL_BABY|JOBL_2_2|0x1,
+	MAPID_BABY_SORCERER,
+	MAPID_BABY_MINSTRELWANDERER,
+	MAPID_BABY_SURA,
+	MAPID_BABY_GENETIC,
+	MAPID_BABY_CHASER,*/
 };
 
 //Max size for inputs to Graffiti, Talkie Box and Vending text prompts

+ 203 - 192
src/map/pc.c

@@ -4712,114 +4712,120 @@ int pc_jobid2mapid(unsigned short b_class)
 {
 	switch(b_class)
 	{
-		case JOB_NOVICE:            return MAPID_NOVICE;
-	//1st classes
-		case JOB_SWORDMAN:          return MAPID_SWORDMAN;
-		case JOB_MAGE:              return MAPID_MAGE;
-		case JOB_ARCHER:            return MAPID_ARCHER;
-		case JOB_ACOLYTE:           return MAPID_ACOLYTE;
-		case JOB_MERCHANT:          return MAPID_MERCHANT;
-		case JOB_THIEF:             return MAPID_THIEF;
-		case JOB_TAEKWON:           return MAPID_TAEKWON;
-		case JOB_WEDDING:           return MAPID_WEDDING;
-		case JOB_GUNSLINGER:        return MAPID_GUNSLINGER;
-		case JOB_NINJA:             return MAPID_NINJA;
-		case JOB_XMAS:              return MAPID_XMAS;
-		case JOB_SUMMER:            return MAPID_SUMMER;
-	//2_1 classes
-		case JOB_SUPER_NOVICE:      return MAPID_SUPER_NOVICE;
-		case JOB_KNIGHT:            return MAPID_KNIGHT;
-		case JOB_WIZARD:            return MAPID_WIZARD;
-		case JOB_HUNTER:            return MAPID_HUNTER;
-		case JOB_PRIEST:            return MAPID_PRIEST;
-		case JOB_BLACKSMITH:        return MAPID_BLACKSMITH;
-		case JOB_ASSASSIN:          return MAPID_ASSASSIN;
-		case JOB_STAR_GLADIATOR:    return MAPID_STAR_GLADIATOR;
-	//2_2 classes
-		case JOB_CRUSADER:          return MAPID_CRUSADER;
-		case JOB_SAGE:              return MAPID_SAGE;
+	//Novice And 1-1 Jobs
+		case JOB_NOVICE:		return MAPID_NOVICE;
+		case JOB_SWORDMAN:		return MAPID_SWORDMAN;
+		case JOB_MAGE:			return MAPID_MAGE;
+		case JOB_ARCHER:		return MAPID_ARCHER;
+		case JOB_ACOLYTE:		return MAPID_ACOLYTE;
+		case JOB_MERCHANT:		return MAPID_MERCHANT;
+		case JOB_THIEF:			return MAPID_THIEF;
+		case JOB_TAEKWON:		return MAPID_TAEKWON;
+		case JOB_WEDDING:		return MAPID_WEDDING;
+		case JOB_GUNSLINGER:		return MAPID_GUNSLINGER;
+		case JOB_NINJA:			return MAPID_NINJA;
+		case JOB_XMAS:			return MAPID_XMAS;
+		case JOB_SUMMER:		return MAPID_SUMMER;
+		//case JOB_GANGSI:		return MAPID_GANGSI;
+	//2-1 Jobs
+		case JOB_SUPER_NOVICE:		return MAPID_SUPER_NOVICE;
+		case JOB_KNIGHT:		return MAPID_KNIGHT;
+		case JOB_WIZARD:		return MAPID_WIZARD;
+		case JOB_HUNTER:		return MAPID_HUNTER;
+		case JOB_PRIEST:		return MAPID_PRIEST;
+		case JOB_BLACKSMITH:		return MAPID_BLACKSMITH;
+		case JOB_ASSASSIN:		return MAPID_ASSASSIN;
+		case JOB_STAR_GLADIATOR:	return MAPID_STAR_GLADIATOR;
+		//case JOB_KAGEROU:
+		//case JOB_OBORO:		return MAPID_KAGEROUOBORO;
+		//case JOB_DEATHKNIGHT:		return MAPID_DEATHKNIGHT;
+	//2-2 Jobs
+		case JOB_CRUSADER:		return MAPID_CRUSADER;
+		case JOB_SAGE:			return MAPID_SAGE;
 		case JOB_BARD:
-		case JOB_DANCER:            return MAPID_BARDDANCER;
-		case JOB_MONK:              return MAPID_MONK;
-		case JOB_ALCHEMIST:         return MAPID_ALCHEMIST;
-		case JOB_ROGUE:             return MAPID_ROGUE;
-		case JOB_SOUL_LINKER:       return MAPID_SOUL_LINKER;
-	//1st: advanced
-		case JOB_NOVICE_HIGH:       return MAPID_NOVICE_HIGH;
-		case JOB_SWORDMAN_HIGH:     return MAPID_SWORDMAN_HIGH;
-		case JOB_MAGE_HIGH:         return MAPID_MAGE_HIGH;
-		case JOB_ARCHER_HIGH:       return MAPID_ARCHER_HIGH;
-		case JOB_ACOLYTE_HIGH:      return MAPID_ACOLYTE_HIGH;
-		case JOB_MERCHANT_HIGH:     return MAPID_MERCHANT_HIGH;
-		case JOB_THIEF_HIGH:        return MAPID_THIEF_HIGH;
-	//2_1 advanced
-		case JOB_LORD_KNIGHT:       return MAPID_LORD_KNIGHT;
-		case JOB_HIGH_WIZARD:       return MAPID_HIGH_WIZARD;
-		case JOB_SNIPER:            return MAPID_SNIPER;
-		case JOB_HIGH_PRIEST:       return MAPID_HIGH_PRIEST;
-		case JOB_WHITESMITH:        return MAPID_WHITESMITH;
-		case JOB_ASSASSIN_CROSS:    return MAPID_ASSASSIN_CROSS;
-	//2_2 advanced
-		case JOB_PALADIN:           return MAPID_PALADIN;
-		case JOB_PROFESSOR:         return MAPID_PROFESSOR;
+		case JOB_DANCER:		return MAPID_BARDDANCER;
+		case JOB_MONK:			return MAPID_MONK;
+		case JOB_ALCHEMIST:		return MAPID_ALCHEMIST;
+		case JOB_ROGUE:			return MAPID_ROGUE;
+		case JOB_SOUL_LINKER:		return MAPID_SOUL_LINKER;
+		//case JOB_DARKCOLLECTOR:	return MAPID_DARKCOLLECTOR;
+	//Trans Novice And Trans 1-1 Jobs
+		case JOB_NOVICE_HIGH:		return MAPID_NOVICE_HIGH;
+		case JOB_SWORDMAN_HIGH:		return MAPID_SWORDMAN_HIGH;
+		case JOB_MAGE_HIGH:		return MAPID_MAGE_HIGH;
+		case JOB_ARCHER_HIGH:		return MAPID_ARCHER_HIGH;
+		case JOB_ACOLYTE_HIGH:		return MAPID_ACOLYTE_HIGH;
+		case JOB_MERCHANT_HIGH:		return MAPID_MERCHANT_HIGH;
+		case JOB_THIEF_HIGH:		return MAPID_THIEF_HIGH;
+	//Trans 2-1 Jobs
+		case JOB_LORD_KNIGHT:		return MAPID_LORD_KNIGHT;
+		case JOB_HIGH_WIZARD:		return MAPID_HIGH_WIZARD;
+		case JOB_SNIPER:		return MAPID_SNIPER;
+		case JOB_HIGH_PRIEST:		return MAPID_HIGH_PRIEST;
+		case JOB_WHITESMITH:		return MAPID_WHITESMITH;
+		case JOB_ASSASSIN_CROSS:	return MAPID_ASSASSIN_CROSS;
+	//Trans 2-2 Jobs
+		case JOB_PALADIN:		return MAPID_PALADIN;
+		case JOB_PROFESSOR:		return MAPID_PROFESSOR;
 		case JOB_CLOWN:
-		case JOB_GYPSY:             return MAPID_CLOWNGYPSY;
-		case JOB_CHAMPION:          return MAPID_CHAMPION;
-		case JOB_CREATOR:           return MAPID_CREATOR;
-		case JOB_STALKER:           return MAPID_STALKER;
-	//1-1 baby
-		case JOB_BABY:              return MAPID_BABY;
-		case JOB_BABY_SWORDMAN:     return MAPID_BABY_SWORDMAN;
-		case JOB_BABY_MAGE:         return MAPID_BABY_MAGE;
-		case JOB_BABY_ARCHER:       return MAPID_BABY_ARCHER;
-		case JOB_BABY_ACOLYTE:      return MAPID_BABY_ACOLYTE;
-		case JOB_BABY_MERCHANT:     return MAPID_BABY_MERCHANT;
-		case JOB_BABY_THIEF:        return MAPID_BABY_THIEF;
-	//2_1 baby
-		case JOB_SUPER_BABY:        return MAPID_SUPER_BABY;
-		case JOB_BABY_KNIGHT:       return MAPID_BABY_KNIGHT;
-		case JOB_BABY_WIZARD:       return MAPID_BABY_WIZARD;
-		case JOB_BABY_HUNTER:       return MAPID_BABY_HUNTER;
-		case JOB_BABY_PRIEST:       return MAPID_BABY_PRIEST;
-		case JOB_BABY_BLACKSMITH:   return MAPID_BABY_BLACKSMITH;
-		case JOB_BABY_ASSASSIN:     return MAPID_BABY_ASSASSIN;
-	//2_2 baby
-		case JOB_BABY_CRUSADER:     return MAPID_BABY_CRUSADER;
-		case JOB_BABY_SAGE:         return MAPID_BABY_SAGE;
+		case JOB_GYPSY:			return MAPID_CLOWNGYPSY;
+		case JOB_CHAMPION:		return MAPID_CHAMPION;
+		case JOB_CREATOR:		return MAPID_CREATOR;
+		case JOB_STALKER:		return MAPID_STALKER;
+	//Baby Novice And Baby 1-1 Jobs
+		case JOB_BABY:			return MAPID_BABY;
+		case JOB_BABY_SWORDMAN:		return MAPID_BABY_SWORDMAN;
+		case JOB_BABY_MAGE:		return MAPID_BABY_MAGE;
+		case JOB_BABY_ARCHER:		return MAPID_BABY_ARCHER;
+		case JOB_BABY_ACOLYTE:		return MAPID_BABY_ACOLYTE;
+		case JOB_BABY_MERCHANT:		return MAPID_BABY_MERCHANT;
+		case JOB_BABY_THIEF:		return MAPID_BABY_THIEF;
+	//Baby 2-1 Jobs
+		case JOB_SUPER_BABY:		return MAPID_SUPER_BABY;
+		case JOB_BABY_KNIGHT:		return MAPID_BABY_KNIGHT;
+		case JOB_BABY_WIZARD:		return MAPID_BABY_WIZARD;
+		case JOB_BABY_HUNTER:		return MAPID_BABY_HUNTER;
+		case JOB_BABY_PRIEST:		return MAPID_BABY_PRIEST;
+		case JOB_BABY_BLACKSMITH:	return MAPID_BABY_BLACKSMITH;
+		case JOB_BABY_ASSASSIN:		return MAPID_BABY_ASSASSIN;
+	//Baby 2-2 Jobs
+		case JOB_BABY_CRUSADER:		return MAPID_BABY_CRUSADER;
+		case JOB_BABY_SAGE:		return MAPID_BABY_SAGE;
 		case JOB_BABY_BARD:
-		case JOB_BABY_DANCER:       return MAPID_BABY_BARDDANCER;
-		case JOB_BABY_MONK:         return MAPID_BABY_MONK;
-		case JOB_BABY_ALCHEMIST:    return MAPID_BABY_ALCHEMIST;
-		case JOB_BABY_ROGUE:        return MAPID_BABY_ROGUE;
-	//3.1 non-trans
+		case JOB_BABY_DANCER:		return MAPID_BABY_BARDDANCER;
+		case JOB_BABY_MONK:		return MAPID_BABY_MONK;
+		case JOB_BABY_ALCHEMIST:	return MAPID_BABY_ALCHEMIST;
+		case JOB_BABY_ROGUE:		return MAPID_BABY_ROGUE;
+	//3-1 Jobs
+		//case JOB_SUPER_NOVICE_E:	return MAPID_SUPER_NOVICE_E;
 		case JOB_RUNE_KNIGHT:		return MAPID_RUNE_KNIGHT;
-		case JOB_WARLOCK:			return MAPID_WARLOCK;
-		case JOB_RANGER:			return MAPID_RANGER;
-		case JOB_ARCH_BISHOP:       return MAPID_ARCH_BISHOP;
-		case JOB_MECHANIC:			return MAPID_MECHANIC;
+		case JOB_WARLOCK:		return MAPID_WARLOCK;
+		case JOB_RANGER:		return MAPID_RANGER;
+		case JOB_ARCH_BISHOP:		return MAPID_ARCH_BISHOP;
+		case JOB_MECHANIC:		return MAPID_MECHANIC;
 		case JOB_GUILLOTINE_CROSS:	return MAPID_GUILLOTINE_CROSS;
-	//3.1 trans
+	//3-2 Jobs
+		case JOB_ROYAL_GUARD:		return MAPID_ROYAL_GUARD;
+		case JOB_SORCERER:		return MAPID_SORCERER;
+		case JOB_MINSTREL:
+		case JOB_WANDERER:		return MAPID_MINSTRELWANDERER;
+		case JOB_SURA:			return MAPID_SURA;
+		case JOB_GENETIC:		return MAPID_GENETIC;
+		case JOB_SHADOW_CHASER:		return MAPID_SHADOW_CHASER;
+	//Trans 3-1 Jobs
 		case JOB_RUNE_KNIGHT_T:		return MAPID_RUNE_KNIGHT_T;
-		case JOB_WARLOCK_T:			return MAPID_WARLOCK_T;
-		case JOB_RANGER_T:			return MAPID_RANGER_T;
+		case JOB_WARLOCK_T:		return MAPID_WARLOCK_T;
+		case JOB_RANGER_T:		return MAPID_RANGER_T;
 		case JOB_ARCH_BISHOP_T:		return MAPID_ARCH_BISHOP_T;
 		case JOB_MECHANIC_T:		return MAPID_MECHANIC_T;
-		case JOB_GUILLOTINE_CROSS_T:return MAPID_GUILLOTINE_CROSS_T;
-	//3.2 non-trans
-		case JOB_ROYAL_GUARD:		return MAPID_ROYAL_GUARD;
-		case JOB_SORCERER:			return MAPID_SORCERER;
-		case JOB_MINSTREL:			return MAPID_MINSTRELWANDERER;
-		case JOB_WANDERER:			return MAPID_MINSTRELWANDERER;
-		case JOB_SURA:				return MAPID_SURA;
-		case JOB_GENETIC:			return MAPID_GENETIC;
-		case JOB_SHADOW_CHASER:		return MAPID_SHADOW_CHASER;
-	//3.2 trans
+		case JOB_GUILLOTINE_CROSS_T:	return MAPID_GUILLOTINE_CROSS_T;
+	//Trans 3-2 Jobs
 		case JOB_ROYAL_GUARD_T:		return MAPID_ROYAL_GUARD_T;
 		case JOB_SORCERER_T:		return MAPID_SORCERER_T;
-		case JOB_MINSTREL_T:		return MAPID_MINSTRELWANDERER_T;
+		case JOB_MINSTREL_T:
 		case JOB_WANDERER_T:		return MAPID_MINSTRELWANDERER_T;
-		case JOB_SURA_T:			return MAPID_SURA_T;
-		case JOB_GENETIC_T:			return MAPID_GENETIC_T;
+		case JOB_SURA_T:		return MAPID_SURA_T;
+		case JOB_GENETIC_T:		return MAPID_GENETIC_T;
 		case JOB_SHADOW_CHASER_T:	return MAPID_SHADOW_CHASER_T;
 		default:
 			return -1;
@@ -4831,109 +4837,114 @@ int pc_mapid2jobid(unsigned short class_, int sex)
 {
 	switch(class_)
 	{
-		case MAPID_NOVICE:          return JOB_NOVICE;
-	//1st classes
-		case MAPID_SWORDMAN:        return JOB_SWORDMAN;
-		case MAPID_MAGE:            return JOB_MAGE;
-		case MAPID_ARCHER:          return JOB_ARCHER;
-		case MAPID_ACOLYTE:         return JOB_ACOLYTE;
-		case MAPID_MERCHANT:        return JOB_MERCHANT;
-		case MAPID_THIEF:           return JOB_THIEF;
-		case MAPID_TAEKWON:         return JOB_TAEKWON;
-		case MAPID_WEDDING:         return JOB_WEDDING;
-		case MAPID_GUNSLINGER:      return JOB_GUNSLINGER;
-		case MAPID_NINJA:           return JOB_NINJA;
-		case MAPID_XMAS:            return JOB_XMAS;
-		case MAPID_SUMMER:          return JOB_SUMMER;
-	//2_1 classes
-		case MAPID_SUPER_NOVICE:    return JOB_SUPER_NOVICE;
-		case MAPID_KNIGHT:          return JOB_KNIGHT;
-		case MAPID_WIZARD:          return JOB_WIZARD;
-		case MAPID_HUNTER:          return JOB_HUNTER;
-		case MAPID_PRIEST:          return JOB_PRIEST;
-		case MAPID_BLACKSMITH:      return JOB_BLACKSMITH;
-		case MAPID_ASSASSIN:        return JOB_ASSASSIN;
-		case MAPID_STAR_GLADIATOR:  return JOB_STAR_GLADIATOR;
-	//2_2 classes
-		case MAPID_CRUSADER:        return JOB_CRUSADER;
-		case MAPID_SAGE:            return JOB_SAGE;
-		case MAPID_BARDDANCER:      return sex?JOB_BARD:JOB_DANCER;
-		case MAPID_MONK:            return JOB_MONK;
-		case MAPID_ALCHEMIST:       return JOB_ALCHEMIST;
-		case MAPID_ROGUE:           return JOB_ROGUE;
-		case MAPID_SOUL_LINKER:     return JOB_SOUL_LINKER;
-	//1st: advanced
-		case MAPID_NOVICE_HIGH:     return JOB_NOVICE_HIGH;
-		case MAPID_SWORDMAN_HIGH:   return JOB_SWORDMAN_HIGH;
-		case MAPID_MAGE_HIGH:       return JOB_MAGE_HIGH;
-		case MAPID_ARCHER_HIGH:     return JOB_ARCHER_HIGH;
-		case MAPID_ACOLYTE_HIGH:    return JOB_ACOLYTE_HIGH;
-		case MAPID_MERCHANT_HIGH:   return JOB_MERCHANT_HIGH;
-		case MAPID_THIEF_HIGH:      return JOB_THIEF_HIGH;
-	//2_1 advanced
-		case MAPID_LORD_KNIGHT:     return JOB_LORD_KNIGHT;
-		case MAPID_HIGH_WIZARD:     return JOB_HIGH_WIZARD;
-		case MAPID_SNIPER:          return JOB_SNIPER;
-		case MAPID_HIGH_PRIEST:     return JOB_HIGH_PRIEST;
-		case MAPID_WHITESMITH:      return JOB_WHITESMITH;
-		case MAPID_ASSASSIN_CROSS:  return JOB_ASSASSIN_CROSS;
-	//2_2 advanced
-		case MAPID_PALADIN:         return JOB_PALADIN;
-		case MAPID_PROFESSOR:       return JOB_PROFESSOR;
-		case MAPID_CLOWNGYPSY:      return sex?JOB_CLOWN:JOB_GYPSY;
-		case MAPID_CHAMPION:        return JOB_CHAMPION;
-		case MAPID_CREATOR:         return JOB_CREATOR;
-		case MAPID_STALKER:         return JOB_STALKER;
-	//1-1 baby
-		case MAPID_BABY:            return JOB_BABY;
-		case MAPID_BABY_SWORDMAN:   return JOB_BABY_SWORDMAN;
-		case MAPID_BABY_MAGE:       return JOB_BABY_MAGE;
-		case MAPID_BABY_ARCHER:     return JOB_BABY_ARCHER;
-		case MAPID_BABY_ACOLYTE:    return JOB_BABY_ACOLYTE;
-		case MAPID_BABY_MERCHANT:   return JOB_BABY_MERCHANT;
-		case MAPID_BABY_THIEF:      return JOB_BABY_THIEF;
-	//2_1 baby
-		case MAPID_SUPER_BABY:      return JOB_SUPER_BABY;
-		case MAPID_BABY_KNIGHT:     return JOB_BABY_KNIGHT;
-		case MAPID_BABY_WIZARD:     return JOB_BABY_WIZARD;
-		case MAPID_BABY_HUNTER:     return JOB_BABY_HUNTER;
-		case MAPID_BABY_PRIEST:     return JOB_BABY_PRIEST;
-		case MAPID_BABY_BLACKSMITH: return JOB_BABY_BLACKSMITH;
-		case MAPID_BABY_ASSASSIN:   return JOB_BABY_ASSASSIN;
-	//2_2 baby
-		case MAPID_BABY_CRUSADER:   return JOB_BABY_CRUSADER;
-		case MAPID_BABY_SAGE:       return JOB_BABY_SAGE;
-		case MAPID_BABY_BARDDANCER: return sex?JOB_BABY_BARD:JOB_BABY_DANCER;
-		case MAPID_BABY_MONK:       return JOB_BABY_MONK;
-		case MAPID_BABY_ALCHEMIST:  return JOB_BABY_ALCHEMIST;
-		case MAPID_BABY_ROGUE:      return JOB_BABY_ROGUE;
-	//3.1 non-trans
+	//Novice And 1-1 Jobs
+		case MAPID_NOVICE:		return JOB_NOVICE;
+		case MAPID_SWORDMAN:		return JOB_SWORDMAN;
+		case MAPID_MAGE:		return JOB_MAGE;
+		case MAPID_ARCHER:		return JOB_ARCHER;
+		case MAPID_ACOLYTE:		return JOB_ACOLYTE;
+		case MAPID_MERCHANT:		return JOB_MERCHANT;
+		case MAPID_THIEF:		return JOB_THIEF;
+		case MAPID_TAEKWON:		return JOB_TAEKWON;
+		case MAPID_WEDDING:		return JOB_WEDDING;
+		case MAPID_GUNSLINGER:		return JOB_GUNSLINGER;
+		case MAPID_NINJA:		return JOB_NINJA;
+		case MAPID_XMAS:		return JOB_XMAS;
+		case MAPID_SUMMER:		return JOB_SUMMER;
+		//case MAPID_GANGSI:		return JOB_GANGSI;
+	//2-1 Jobs
+		case MAPID_SUPER_NOVICE:	return JOB_SUPER_NOVICE;
+		case MAPID_KNIGHT:		return JOB_KNIGHT;
+		case MAPID_WIZARD:		return JOB_WIZARD;
+		case MAPID_HUNTER:		return JOB_HUNTER;
+		case MAPID_PRIEST:		return JOB_PRIEST;
+		case MAPID_BLACKSMITH:		return JOB_BLACKSMITH;
+		case MAPID_ASSASSIN:		return JOB_ASSASSIN;
+		case MAPID_STAR_GLADIATOR:	return JOB_STAR_GLADIATOR;
+		//case MAPID_KAGEROUOBORO:	return sex?JOB_KAGEROU:JOB_OBORO;
+		//case MAPID_DEATHKNIGHT:	return JOB_DEATHKNIGHT;
+	//2-2 Jobs
+		case MAPID_CRUSADER:		return JOB_CRUSADER;
+		case MAPID_SAGE:		return JOB_SAGE;
+		case MAPID_BARDDANCER:		return sex?JOB_BARD:JOB_DANCER;
+		case MAPID_MONK:		return JOB_MONK;
+		case MAPID_ALCHEMIST:		return JOB_ALCHEMIST;
+		case MAPID_ROGUE:		return JOB_ROGUE;
+		case MAPID_SOUL_LINKER:		return JOB_SOUL_LINKER;
+		//case MAPID_DARKCOLLECTOR:	return JOB_DARKCOLLECTOR;
+	//Trans Novice And Trans 2-1 Jobs
+		case MAPID_NOVICE_HIGH:		return JOB_NOVICE_HIGH;
+		case MAPID_SWORDMAN_HIGH:	return JOB_SWORDMAN_HIGH;
+		case MAPID_MAGE_HIGH:		return JOB_MAGE_HIGH;
+		case MAPID_ARCHER_HIGH:		return JOB_ARCHER_HIGH;
+		case MAPID_ACOLYTE_HIGH:	return JOB_ACOLYTE_HIGH;
+		case MAPID_MERCHANT_HIGH:	return JOB_MERCHANT_HIGH;
+		case MAPID_THIEF_HIGH:		return JOB_THIEF_HIGH;
+	//Trans 2-1 Jobs
+		case MAPID_LORD_KNIGHT:		return JOB_LORD_KNIGHT;
+		case MAPID_HIGH_WIZARD:		return JOB_HIGH_WIZARD;
+		case MAPID_SNIPER:		return JOB_SNIPER;
+		case MAPID_HIGH_PRIEST:		return JOB_HIGH_PRIEST;
+		case MAPID_WHITESMITH:		return JOB_WHITESMITH;
+		case MAPID_ASSASSIN_CROSS:	return JOB_ASSASSIN_CROSS;
+	//Trans 2-2 Jobs
+		case MAPID_PALADIN:		return JOB_PALADIN;
+		case MAPID_PROFESSOR:		return JOB_PROFESSOR;
+		case MAPID_CLOWNGYPSY:		return sex?JOB_CLOWN:JOB_GYPSY;
+		case MAPID_CHAMPION:		return JOB_CHAMPION;
+		case MAPID_CREATOR:		return JOB_CREATOR;
+		case MAPID_STALKER:		return JOB_STALKER;
+	//Baby Novice And Baby 1-1 Jobs
+		case MAPID_BABY:		return JOB_BABY;
+		case MAPID_BABY_SWORDMAN:	return JOB_BABY_SWORDMAN;
+		case MAPID_BABY_MAGE:		return JOB_BABY_MAGE;
+		case MAPID_BABY_ARCHER:		return JOB_BABY_ARCHER;
+		case MAPID_BABY_ACOLYTE:	return JOB_BABY_ACOLYTE;
+		case MAPID_BABY_MERCHANT:	return JOB_BABY_MERCHANT;
+		case MAPID_BABY_THIEF:		return JOB_BABY_THIEF;
+	//Baby 2-1 Jobs
+		case MAPID_SUPER_BABY:		return JOB_SUPER_BABY;
+		case MAPID_BABY_KNIGHT:		return JOB_BABY_KNIGHT;
+		case MAPID_BABY_WIZARD:		return JOB_BABY_WIZARD;
+		case MAPID_BABY_HUNTER:		return JOB_BABY_HUNTER;
+		case MAPID_BABY_PRIEST:		return JOB_BABY_PRIEST;
+		case MAPID_BABY_BLACKSMITH:	return JOB_BABY_BLACKSMITH;
+		case MAPID_BABY_ASSASSIN:	return JOB_BABY_ASSASSIN;
+	//Baby 2-2 Jobs
+		case MAPID_BABY_CRUSADER:	return JOB_BABY_CRUSADER;
+		case MAPID_BABY_SAGE:		return JOB_BABY_SAGE;
+		case MAPID_BABY_BARDDANCER:	return sex?JOB_BABY_BARD:JOB_BABY_DANCER;
+		case MAPID_BABY_MONK:		return JOB_BABY_MONK;
+		case MAPID_BABY_ALCHEMIST:	return JOB_BABY_ALCHEMIST;
+		case MAPID_BABY_ROGUE:		return JOB_BABY_ROGUE;
+	//3-1 Jobs
+		//case MAPID_SUPER_NOVICE_E:	return JOB_SUPER_NOVICE_E;
 		case MAPID_RUNE_KNIGHT:		return JOB_RUNE_KNIGHT;
-		case MAPID_WARLOCK:			return JOB_WARLOCK;
-		case MAPID_RANGER:			return JOB_RANGER;
-		case MAPID_ARCH_BISHOP:     return JOB_ARCH_BISHOP;
+		case MAPID_WARLOCK:		return JOB_WARLOCK;
+		case MAPID_RANGER:		return JOB_RANGER;
+		case MAPID_ARCH_BISHOP:		return JOB_ARCH_BISHOP;
 		case MAPID_MECHANIC:		return JOB_MECHANIC;
-		case MAPID_GUILLOTINE_CROSS:return JOB_GUILLOTINE_CROSS;
-	//3.1 trans
+		case MAPID_GUILLOTINE_CROSS:	return JOB_GUILLOTINE_CROSS;
+	//3-2 Jobs
+		case MAPID_ROYAL_GUARD:		return JOB_ROYAL_GUARD;
+		case MAPID_SORCERER:		return JOB_SORCERER;
+		case MAPID_MINSTRELWANDERER:	return sex?JOB_MINSTREL:JOB_WANDERER;
+		case MAPID_SURA:		return JOB_SURA;
+		case MAPID_GENETIC:		return JOB_GENETIC;
+		case MAPID_SHADOW_CHASER:	return JOB_SHADOW_CHASER;
+	//Trans 3-1 Jobs
 		case MAPID_RUNE_KNIGHT_T:	return JOB_RUNE_KNIGHT_T;
 		case MAPID_WARLOCK_T:		return JOB_WARLOCK_T;
 		case MAPID_RANGER_T:		return JOB_RANGER_T;
-		case MAPID_ARCH_BISHOP_T:   return JOB_ARCH_BISHOP_T;
+		case MAPID_ARCH_BISHOP_T:	return JOB_ARCH_BISHOP_T;
 		case MAPID_MECHANIC_T:		return JOB_MECHANIC_T;
-		case MAPID_GUILLOTINE_CROSS_T:return JOB_GUILLOTINE_CROSS_T;
-	//3.2 non-trans
-		case MAPID_ROYAL_GUARD:		return JOB_ROYAL_GUARD;
-		case MAPID_SORCERER:		return JOB_SORCERER;
-		case MAPID_MINSTRELWANDERER:return sex?JOB_MINSTREL:JOB_WANDERER;
-		case MAPID_SURA:			return JOB_SURA;
-		case MAPID_GENETIC:			return JOB_GENETIC;
-		case MAPID_SHADOW_CHASER:	return JOB_SHADOW_CHASER;
-	//3.2 trans
+		case MAPID_GUILLOTINE_CROSS_T:	return JOB_GUILLOTINE_CROSS_T;
+	//Trans 3-2 Jobs
 		case MAPID_ROYAL_GUARD_T:	return JOB_ROYAL_GUARD_T;
 		case MAPID_SORCERER_T:		return JOB_SORCERER_T;
-		case MAPID_MINSTRELWANDERER_T:return sex?JOB_MINSTREL_T:JOB_WANDERER_T;
-		case MAPID_SURA_T:			return JOB_SURA_T;
-		case MAPID_GENETIC_T:			return JOB_GENETIC_T;
+		case MAPID_MINSTRELWANDERER_T:	return sex?JOB_MINSTREL_T:JOB_WANDERER_T;
+		case MAPID_SURA_T:		return JOB_SURA_T;
+		case MAPID_GENETIC_T:		return JOB_GENETIC_T;
 		case MAPID_SHADOW_CHASER_T:	return JOB_SHADOW_CHASER_T;
 		default:
 			return -1;