소스 검색

=General
*Added some extra data here and there that will be used in the future.
-Mostly stuff for adding more jobs.
*Corrected how the server listed a few job names. Like Mage should be Magician.
-As the job name is seen hard coded in the client.
*Added support for all 3rd jobs in the pre-re exp table.
-Base levels use a copy of the Trans exp table. Job levels use a copy of the
-Trans 2nd job exp table.
*Added baby 3rd's to the renewal exp table.
*Did some cleaning and updating in the atcommand.c file for the jobchange command.
-Added a few job changes by job name typing.
-Spaced things out in the message strings to allow job names of up to 16 characters.
-If a name is bigger then 16 characters, it will need to be reduced to fit the space.
-No more then 4 jobs listed max per line
-Also removed unneeded text lines as the ID's they point to are dummy ID's.
-Finally, updated the list of dummy ID's to prevent changing to, as well as added a
-message to display if someone attempts to job change to one of those dummy ID's.
*Readded the spaces in the pc.c file as tabs in the middle causes unorganized viewing issues.
-The space gap is now big enough to allow everything to line up.

=Jobs
*Added 3rd job babys.
-Everything is working properly for them except the max stats and skill trees.
-I will add this stuff in the next update.

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

technote24 13 년 전
부모
커밋
885a642019
11개의 변경된 파일538개의 추가작업 그리고 326개의 파일을 삭제
  1. 11 3
      conf/msg_athena.conf
  2. 59 4
      db/job_db1.txt
  3. 61 11
      db/job_db2.txt
  4. 4 3
      db/pre-re/exp.txt
  5. 4 3
      db/re/exp.txt
  6. 5 2
      src/char/char.c
  7. 2 2
      src/common/mmo.h
  8. 116 94
      src/map/atcommand.c
  9. 2 2
      src/map/map.h
  10. 272 201
      src/map/pc.c
  11. 2 1
      src/map/pc.h

+ 11 - 3
conf/msg_athena.conf

@@ -460,7 +460,7 @@
 //550 -> 650: Job Names
 550: Novice
 551: Swordsman
-552: Mage
+552: Magician
 553: Archer
 554: Acolyte
 555: Merchant
@@ -534,7 +534,9 @@
 //619: FREE
 //620: FREE
 621: Summer
-//...
+622: Gangsi
+623: Death Knight
+624: Dark Collector
 625: Rune Knight
 626: Warlock
 627: Ranger
@@ -544,9 +546,11 @@
 631: Royal Guard
 632: Sorcerer
 633: Minstrel
+//633: Maestro //IRO Name
 634: Wanderer
 635: Sura
 636: Genetic
+//636: Geneticist //IRO Name
 637: Shadow Chaser
 638: Baby Rune Knight
 639: Baby Warlock
@@ -561,7 +565,11 @@
 648: Baby Sura
 649: Baby Genetic
 650: Baby Shadow Chaser
-651: Unknown Job
+651: Expanded Super Novice
+652: Expanded Super Baby
+653: Kagerou
+654: Oboro
+655: Unknown Job
 
 //Custom translations
 import: conf/import/msg_conf.txt

+ 59 - 4
db/job_db1.txt

@@ -153,9 +153,22 @@
 4048, 28000,90   ,650  ,470  ,400  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
 // Soul Linker
 4049, 24000,75   ,500  ,900  ,500  ,575  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 625 
-//*************************************************************
-//* 3rds (base 650 3CeAM)
-//*************************************************************
+//================================
+// 3CeAM r664 Base
+//
+// Note: All settings below are based on what the previous job was. A Rune Knight will have the same values
+// as a Knight, a Ranger will have the same values as a Hunter, etc. 
+//
+// Note 2: Gangsi is currently using Acolyte settings, Death Knight using Knight settings and Dark Collector
+// is using Sage settings. Its mainly like this for these 3 jobs because of the temp sprite that shows when
+// changeing to their job ID's.
+//
+// Gangsi (Bongun/Munak)
+//4050,	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 , 600
+// Death Knight
+//4051,	28000,150  ,500  ,300  ,400  ,500  ,500  ,550  ,600  ,600  ,700  ,700  ,650  ,700  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Dark Collector
+//4052,	24000,75   ,500  ,700  ,450  ,525  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625  ,2000 ,2000 ,2000 ,2000 ,550  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 625
 // Rune Knight		(Base 2nd to 3rd)
 4054,	28000,150  ,500  ,300  ,400  ,500  ,500  ,550  ,600  ,600  ,700  ,700  ,650  ,700  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
 // Warlock		(Base 2nd to 3rd)
@@ -223,4 +236,46 @@
 // Mechanic Mount	(Base 2nd to 3rd)
 4086,	30000,90   ,500  ,400  ,400  ,600  ,650  ,2000 ,2000 ,2000 ,650  ,650  ,675  ,675  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
 // Mechanic Mount	(Trans 2nd to 3rd)
-4087,	30000,90   ,500  ,400  ,400  ,600  ,650  ,2000 ,2000 ,2000 ,650  ,650  ,675  ,675  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+4087,	30000,90   ,500  ,400  ,400  ,600  ,650  ,2000 ,2000 ,2000 ,650  ,650  ,675  ,675  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Rune Knight
+4096,	28000,150  ,500  ,300  ,400  ,500  ,500  ,550  ,600  ,600  ,700  ,700  ,650  ,700  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Warlock
+4097,	24000,55   ,500  ,900  ,500  ,575  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 625
+// Baby Ranger
+4098,	27000,85   ,500  ,400  ,400  ,600  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Arch Bishop
+4099,	26000,75   ,500  ,800  ,400  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600  ,600  ,600  ,2000 ,2000 ,2000 ,2000 ,600  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 600
+// Baby Mechanic
+4100,	30000,90   ,500  ,400  ,400  ,600  ,650  ,2000 ,2000 ,2000 ,650  ,650  ,675  ,675  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Guillotine Cross
+4101,	24000,110  ,500  ,400  ,400  ,500  ,650  ,2000 ,2000 ,2000 ,800  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,500  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Royal Guard
+4102,	28000,110  ,700  ,470  ,400  ,500  ,500  ,550  ,600  ,600  ,700  ,700  ,650  ,700  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Sorcerer
+4103,	24000,75   ,500  ,700  ,450  ,525  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,625  ,2000 ,2000 ,2000 ,2000 ,550  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 625
+// Baby Minstrel
+4104,	27000,75   ,300  ,600  ,400  ,550  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650  ,2000 ,575  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Wanderer
+4105,	27000,75   ,300  ,600  ,400  ,550  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650  ,2000 ,2000 ,575  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Sura
+4106,	26000,90   ,650  ,470  ,400  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,575  ,575  ,575  ,2000 ,475  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 , 575
+// Baby Genetic
+4107,	30000,90   ,500  ,400  ,400  ,550  ,575  ,2000 ,2000 ,2000 ,675  ,700  ,650  ,650  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Shadow Chaser
+4108,	24000,85   ,500  ,500  ,400  ,500  ,550  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,650  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Rune Knight Mount
+4109,	28000,150  ,500  ,300  ,400  ,500  ,500  ,550  ,600  ,600  ,700  ,700  ,650  ,700  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Royal Guard Mount
+4110,	28000,110  ,700  ,470  ,400  ,500  ,500  ,550  ,600  ,600  ,700  ,700  ,650  ,700  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Ranger Mount
+4111,	27000,85   ,500  ,400  ,400  ,600  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,600  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Baby Mechanic Mount
+4112,	30000,90   ,500  ,400  ,400  ,600  ,650  ,2000 ,2000 ,2000 ,650  ,650  ,675  ,675  ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000 ,2000
+// Expanded Super Novice
+//4190,	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
+// Expanded Super Baby
+//4191,	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
+// Kagerou
+//4211,	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
+// Oboro
+//4212,	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

+ 61 - 11
db/job_db2.txt

@@ -12,12 +12,6 @@
 //  5 = DEX increased by 1 at this job level
 //  6 = LUK increased by 1 at this job level
 //
-
-
-
-
-
-
 // Novice
 0,0,0,0,0,0,0,0,0,0
 // Swordman
@@ -167,9 +161,22 @@
 4048,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2
 // Soul Linker
 4049,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5
-//*************************************************************
-//* 3rds (base 650 3CeAM)
-//*************************************************************
+//================================
+// 3CeAM r664 Base
+//
+// Note: All 3rd class and other jobs below go up to job level 50. Also, Gangsi job tree job levels
+// will be set the same as the Taekwon job tree until we can get some official info. (Rytech)
+//
+// Note 2: Gangsi is currently using Acolyte settings, Death Knight using Knight settings and Dark Collector
+// is using Sage settings. Its mainly like this for these 3 jobs because of the temp sprite that shows when
+// changeing to their job ID's.
+//
+// Gangsi (Bongun/Munak)
+//4050,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
+// Death Knight
+//4051,3,0,3,1,6,0,0,3,0,1,5,3,2,0,1,0,3,3,5,6,1,0,3,0,0,0,1,6,3,0,5,0,1,0,0,3,6,2,0,5,0,0,3,0,0,1,1,5,5,0
+// Dark Collector
+//4052,4,0,2,3,0,2,0,4,0,0,3,0,2,0,4,0,6,3,0,5,0,2,0,4,5,0,5,0,0,4,0,5,2,0,6,0,4,4,5,6,0,1,0,1,4,1,1,1,0,4
 // Rune Knight	(Base 2nd to 3rd)
 4054,4,4,5,3,4,0,0,0,0,1,1,4,4,3,5,0,0,0,5,2,2,4,3,5,0,0,0,0,0,4,5,3,1,0,0,0,0,0,4,5,2,0,0,5,3,4,6,6,6,4
 // Warlock	(Base 2nd to 3rd)
@@ -227,9 +234,9 @@
 // Rune Knight Mount	(Trans 2nd to 3rd)
 4081,4,4,5,3,4,0,0,0,0,1,1,4,4,3,5,0,0,0,5,2,2,4,3,5,0,0,0,0,0,4,5,3,1,0,0,0,0,0,4,5,2,0,0,5,3,4,6,6,6,4
 // Royal Guard Mount	(Base 2nd to 3rd)
-4082,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+4082,0,3,4,1,4,5,0,0,3,0,4,0,1,5,0,6,0,0,4,5,0,0,2,4,0,4,3,0,0,1,5,0,6,2,0,0,4,4,0,1,3,3,0,5,1,4,0,1,5,0
 // Royal Guard Mount	(Trans 2nd to 3rd)
-4083,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+4083,0,3,4,1,4,5,0,0,3,0,4,0,1,5,0,6,0,0,4,5,0,0,2,4,0,4,3,0,0,1,5,0,6,2,0,0,4,4,0,1,3,3,0,5,1,4,0,1,5,0
 // Ranger Mount	(Base 2nd to 3rd)
 4084,5,4,4,2,0,0,2,5,4,0,0,3,3,3,0,0,5,2,0,0,4,3,5,0,0,1,1,0,0,5,2,3,0,0,0,4,4,4,2,0,0,0,2,5,2,0,0,0,4,2
 // Ranger Mount	(Trans 2nd to 3rd)
@@ -238,3 +245,46 @@
 4086,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0
 // Mechanic Mount	(Trans 2nd to 3rd)
 4087,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0
+// Baby Rune Knight
+4096,4,4,5,3,4,0,0,0,0,1,1,4,4,3,5,0,0,0,5,2,2,4,3,5,0,0,0,0,0,4,5,3,1,0,0,0,0,0,4,5,2,0,0,5,3,4,6,6,6,4
+// Baby Warlock
+4097,4,4,5,0,0,5,4,2,0,0,0,0,5,0,3,0,0,3,5,2,0,0,4,3,3,0,0,5,2,0,6,0,0,1,4,4,0,0,5,2,4,0,0,4,4,0,2,0,0,4
+// Baby Ranger
+4098,5,4,4,2,0,0,2,5,4,0,0,3,3,3,0,0,5,2,0,0,4,3,5,0,0,1,1,0,0,5,2,3,0,0,0,4,4,4,2,0,0,0,2,5,2,0,0,0,4,2
+// Baby Arch Bishop
+4099,4,0,3,0,5,0,4,4,0,3,3,0,0,5,5,0,0,1,1,0,0,4,0,1,0,2,2,1,0,0,0,4,0,3,0,5,0,2,2,4,4,0,0,5,3,1,0,0,4,5
+// Baby Mechanic
+4100,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0
+// Baby Guillotine Cross
+4101,2,5,0,1,1,0,0,0,1,2,5,0,0,3,3,1,0,0,3,1,0,0,2,2,5,0,0,4,4,1,3,0,0,0,2,5,5,0,0,0,4,3,2,2,0,0,0,4,5,5
+// Baby Royal Guard
+4102,0,3,4,1,4,5,0,0,3,0,4,0,1,5,0,6,0,0,4,5,0,0,2,4,0,4,3,0,0,1,5,0,6,2,0,0,4,4,0,1,3,3,0,5,1,4,0,1,5,0
+// Baby Sorcerer
+4103,4,4,5,3,4,0,0,0,0,1,1,4,4,3,5,0,0,0,5,2,2,4,3,5,0,0,0,0,0,4,5,3,1,0,0,0,0,0,4,5,2,0,0,5,3,4,6,6,6,4
+// Baby Minstrel
+4104,0,0,3,0,5,0,4,4,0,3,3,0,0,5,5,0,0,1,1,0,0,4,0,1,0,2,2,1,0,0,0,4,0,3,0,5,0,2,0,4,4,0,0,5,3,1,0,0,4,5
+// Baby Wanderer
+4105,5,4,4,2,0,0,2,5,4,0,0,3,3,3,0,0,5,2,0,0,4,3,5,0,0,1,1,0,0,5,2,3,0,0,0,4,4,4,2,0,0,0,2,5,2,0,0,0,4,2
+// Baby Sura
+4106,2,5,0,1,1,0,0,0,1,2,5,0,0,3,3,1,0,0,3,1,0,0,2,2,5,0,0,4,4,1,3,0,0,0,2,5,5,0,0,0,4,3,2,2,0,0,0,4,5,5
+// Baby Genetic
+4107,4,4,5,0,0,5,4,2,0,0,0,4,5,0,0,0,0,3,5,2,0,0,4,3,3,0,0,5,2,0,6,0,0,0,4,4,1,0,5,2,4,0,0,4,4,0,2,0,0,4
+// Baby Shadow Chaser
+4108,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0
+// Baby Rune Knight Mount
+4109,4,4,5,3,4,0,0,0,0,1,1,4,4,3,5,0,0,0,5,2,2,4,3,5,0,0,0,0,0,4,5,3,1,0,0,0,0,0,4,5,2,0,0,5,3,4,6,6,6,4
+// Baby Royal Guard Mount
+4110,0,3,4,1,4,5,0,0,3,0,4,0,1,5,0,6,0,0,4,5,0,0,2,4,0,4,3,0,0,1,5,0,6,2,0,0,4,4,0,1,3,3,0,5,1,4,0,1,5,0
+// Baby Ranger Mount
+4111,5,4,4,2,0,0,2,5,4,0,0,3,3,3,0,0,5,2,0,0,4,3,5,0,0,1,1,0,0,5,2,3,0,0,0,4,4,4,2,0,0,0,2,5,2,0,0,0,4,2
+// Baby Mechanic Mount
+4112,6,1,0,0,1,0,6,2,5,4,0,0,4,6,0,0,2,0,3,3,4,5,0,0,3,6,0,0,3,0,1,1,3,6,0,0,4,4,0,0,0,3,3,1,1,0,0,5,2,0
+// Expanded Super Novice
+//4190,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0
+// Expanded Super Baby
+//4191,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0,1,2,0,3,0,4,5,0,6,0
+// Note: Kagerou and Oboro will temporarly use Ninja stat bonuses until official ones are known.
+// Kagerou
+//4211,2,2,0,0,5,2,0,0,0,4,2,5,0,4,6,2,5,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
+// Oboro
+//4212,2,2,0,0,5,2,0,0,0,4,2,5,0,4,6,2,5,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

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 4 - 3
db/pre-re/exp.txt


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 4 - 3
db/re/exp.txt


+ 5 - 2
src/char/char.c

@@ -2055,8 +2055,9 @@ int parse_fromlogin(int fd)
 					if( class_[i] == JOB_BARD || class_[i] == JOB_DANCER ||
 						class_[i] == JOB_CLOWN || class_[i] == JOB_GYPSY ||
 						class_[i] == JOB_BABY_BARD || class_[i] == JOB_BABY_DANCER ||
-						class_[i] == JOB_WANDERER || class_[i] == JOB_WANDERER_T ||
-						class_[i] == JOB_MINSTREL || class_[i] == JOB_MINSTREL_T )
+						class_[i] == JOB_MINSTREL || class_[i] == JOB_WANDERER ||
+						class_[i] == JOB_MINSTREL_T || class_[i] == JOB_WANDERER_T ||
+						class_[i] == JOB_BABY_MINSTREL || class_[i] == JOB_BABY_WANDERER )
 					{
 						// job modification
 						if( class_[i] == JOB_BARD || class_[i] == JOB_DANCER )
@@ -2069,6 +2070,8 @@ int parse_fromlogin(int fd)
 							class_[i] = (sex ? JOB_MINSTREL : JOB_WANDERER);
 						else if( class_[i] == JOB_MINSTREL_T || class_[i] == JOB_WANDERER_T )
 							class_[i] = (sex ? JOB_MINSTREL_T : JOB_WANDERER_T);
+						else if( class_[i] == JOB_BABY_MINSTREL || class_[i] == JOB_BABY_WANDERER )
+							class_[i] = (sex ? JOB_BABY_MINSTREL : JOB_BABY_WANDERER);
 					}
 					// to avoid any problem with equipment and invalid sex, equipment is unequiped.
 					if( SQL_ERROR == Sql_Query(sql_handle, "UPDATE `%s` SET `equip` = '0' WHERE `char_id` = '%d'", inventory_db, char_id[i]) )

+ 2 - 2
src/common/mmo.h

@@ -683,7 +683,7 @@ enum {
 	JOB_MECHANIC2,
 	JOB_MECHANIC_T2,
 
-	/*JOB_BABY_RUNE = 4096,
+	JOB_BABY_RUNE = 4096,
 	JOB_BABY_WARLOCK,
 	JOB_BABY_RANGER,
 	JOB_BABY_BISHOP,
@@ -701,7 +701,7 @@ enum {
 	JOB_BABY_RUNE2,
 	JOB_BABY_GUARD2,
 	JOB_BABY_RANGER2,
-	JOB_BABY_MECHANIC2,*/
+	JOB_BABY_MECHANIC2,
 
 	//JOB_SUPER_NOVICE_E = 4190,
 	//JOB_SUPER_BABY_E,

+ 116 - 94
src/map/atcommand.c

@@ -938,7 +938,9 @@ ACMD_FUNC(jobchange)
 		int i, found = 0;
 		const struct { char name[24]; int id; } jobs[] = {
 			{ "novice",		0 },
+			{ "swordman",	1 },
 			{ "swordsman",	1 },
+			{ "magician",	2 },
 			{ "mage",		2 },
 			{ "archer",		3 },
 			{ "acolyte",	4 },
@@ -963,8 +965,11 @@ ACMD_FUNC(jobchange)
 			{ "gunslinger",	24 },
 			{ "gunner",	24 },
 			{ "ninja",	25 },
+			{ "novice high",	4001 },
 			{ "high novice",	4001 },
+			{ "swordman high",	4002 },
 			{ "swordsman high",	4002 },
+			{ "magician high",	4003 },
 			{ "mage high",		4003 },
 			{ "archer high",	4004 },
 			{ "acolyte high",	4005 },
@@ -985,7 +990,9 @@ ACMD_FUNC(jobchange)
 			{ "clown",		4020 },
 			{ "gypsy",		4021 },
 			{ "baby novice",	4023 },
+			{ "baby swordman",	4024 },
 			{ "baby swordsman",	4024 },
+			{ "baby magician",	4025 },
 			{ "baby mage",		4025 },
 			{ "baby archer",	4026 },
 			{ "baby acolyte",	4027 },
@@ -1011,32 +1018,54 @@ ACMD_FUNC(jobchange)
 			{ "taekwon girl",	4046 },
 			{ "star gladiator",	4047 },
 			{ "soul linker",	4049 },
+			//{ "gangsi",		4050 },
+			//{ "bongun",		4050 },
+			//{ "munak",		4050 },
+			//{ "death knight",	4051 },
+			//{ "dark collector",	4052 },
 			{ "rune knight",	4054 },
 			{ "warlock",		4055 },
-			{ "ranger",			4056 },
+			{ "ranger",		4056 },
 			{ "arch bishop",	4057 },
 			{ "mechanic",		4058 },
 			{ "guillotine",		4059 },
-			{ "rune knight (Trans)",	4060 },
-			{ "warlock (Trans)",		4061 },
-			{ "ranger (Trans)",		4062 },
-			{ "arch bishop (Trans)",	4063 },
-			{ "mechanic (Trans)",		4064 },
-			{ "guillotine (Trans)",	4065 },
+			{ "rune knight2",	4060 },
+			{ "warlock2",		4061 },
+			{ "ranger2",		4062 },
+			{ "arch bishop2",	4063 },
+			{ "mechanic2",		4064 },
+			{ "guillotine2",	4065 },
 			{ "royal guard",	4066 },
 			{ "sorcerer",		4067 },
 			{ "minstrel",		4068 },
 			{ "wanderer",		4069 },
-			{ "sura",			4070 },
+			{ "sura",		4070 },
 			{ "genetic",		4071 },
 			{ "shadow chaser",	4072 },
-			{ "royal guard (Trans)",	4073 },
-			{ "sorcerer (Trans)",		4074 },
-			{ "minstrel (Trans)",		4075 },
-			{ "wanderer (Trans)",		4076 },
-			{ "sura (Trans)",			4077 },
-			{ "genetic (Trans)",		4078 },
-			{ "shadow chaser (Trans)",	4079 },
+			{ "royal guard2",	4073 },
+			{ "sorcerer2",		4074 },
+			{ "minstrel2",		4075 },
+			{ "wanderer2",		4076 },
+			{ "sura2",		4077 },
+			{ "genetic2",		4078 },
+			{ "shadow chaser2",	4079 },
+			{ "baby rune",		4096 },
+			{ "baby warlock",	4097 },
+			{ "baby ranger",	4098 },
+			{ "baby bishop",	4099 },
+			{ "baby mechanic",	4100 },
+			{ "baby cross",		4101 },
+			{ "baby guard",		4102 },
+			{ "baby sorcerer",	4103 },
+			{ "baby minstrel",	4104 },
+			{ "baby wanderer",	4105 },
+			{ "baby sura",		4106 },
+			{ "baby genetic",	4107 },
+			{ "baby chaser",	4108 },
+			//{ "super novice e",	4190 },
+			//{ "super baby e",	4191 },
+			//{ "kagerou",		4211 },
+			//{ "oboro",		4212 },
 		};
 
 		for (i=0; i < ARRAYLENGTH(jobs); i++) {
@@ -1049,65 +1078,62 @@ ACMD_FUNC(jobchange)
 		}
 
 		if (!found) {
-			clif_displaymessage(fd, "Please, enter job ID (usage: @job/@jobchange <job name/ID>).");
+			clif_displaymessage(fd, "Please, enter a job ID (usage: @job/@jobchange <job name/ID>).");
 			clif_displaymessage(fd, "----- Novice / 1st Class -----");
-			clif_displaymessage(fd, "   0 Novice            1 Swordman          2 Mage              3 Archer");
-			clif_displaymessage(fd, "   4 Acolyte           5 Merchant          6 Thief");
+			clif_displaymessage(fd, "   0 Novice              1 Swordman            2 Magician            3 Archer");
+			clif_displaymessage(fd, "   4 Acolyte             5 Merchant            6 Thief");
 			clif_displaymessage(fd, "----- 2nd Class -----");
-			clif_displaymessage(fd, "   7 Knight            8 Priest            9 Wizard           10 Blacksmith");
-			clif_displaymessage(fd, "  11 Hunter           12 Assassin         14 Crusader         15 Monk");
-			clif_displaymessage(fd, "  16 Sage             17 Rogue            18 Alchemist        19 Bard");
+			clif_displaymessage(fd, "   7 Knight              8 Priest              9 Wizard             10 Blacksmith");
+			clif_displaymessage(fd, "  11 Hunter             12 Assassin           14 Crusader           15 Monk");
+			clif_displaymessage(fd, "  16 Sage               17 Rogue              18 Alchemist          19 Bard");
 			clif_displaymessage(fd, "  20 Dancer");
 			clif_displaymessage(fd, "----- High Novice / High 1st Class -----");
-			clif_displaymessage(fd, "4001 Novice High    4002 Swordman High  4003 Mage High      4004 Archer High");
-			clif_displaymessage(fd, "4005 Acolyte High   4006 Merchant High  4007 Thief High");
+			clif_displaymessage(fd, "4001 Novice High      4002 Swordman High    4003 Magician High    4004 Archer High");
+			clif_displaymessage(fd, "4005 Acolyte High     4006 Merchant High    4007 Thief High");
 			clif_displaymessage(fd, "----- Transcendent 2nd Class -----");
-			clif_displaymessage(fd, "4008 Lord Knight    4009 High Priest    4010 High Wizard    4011 Whitesmith");
-			clif_displaymessage(fd, "4012 Sniper         4013 Assassin Cross 4015 Paladin        4016 Champion");
-			clif_displaymessage(fd, "4017 Professor      4018 Stalker        4019 Creator        4020 Clown");
+			clif_displaymessage(fd, "4008 Lord Knight      4009 High Priest      4010 High Wizard      4011 Whitesmith");
+			clif_displaymessage(fd, "4012 Sniper           4013 Assassin Cross   4015 Paladin          4016 Champion");
+			clif_displaymessage(fd, "4017 Professor        4018 Stalker          4019 Creator          4020 Clown");
 			clif_displaymessage(fd, "4021 Gypsy");
 			clif_displaymessage(fd, "----- 3rd Class (Regular to 3rd) -----");
-			clif_displaymessage(fd, "4054 Rune Knight    4055 Warlock        4056 Ranger         4057 Arch Bishop");
-			clif_displaymessage(fd, "4058 Mechanic       4059 Guillotine Cross 4066 Royal Guard  4067 Sorcerer");
-			clif_displaymessage(fd, "4068 Minstrel       4069 Wanderer       4070 Sura           4071 Genetic");
+			clif_displaymessage(fd, "4054 Rune Knight      4055 Warlock          4056 Ranger           4057 Arch Bishop");
+			clif_displaymessage(fd, "4058 Mechanic         4059 Guillotine Cross 4066 Royal Guard      4067 Sorcerer");
+			clif_displaymessage(fd, "4068 Minstrel         4069 Wanderer         4070 Sura             4071 Genetic");
 			clif_displaymessage(fd, "4072 Shadow Chaser");
 			clif_displaymessage(fd, "----- 3rd Class (Transcendent to 3rd) -----");
-			clif_displaymessage(fd, "4060 Rune Knight    4061 Warlock        4062 Ranger         4063 Arch Bishop");
-			clif_displaymessage(fd, "4064 Mechanic       4065 Guillotine Cross 4073 Royal Guard  4074 Sorcerer");
-			clif_displaymessage(fd, "4075 Minstrel       4076 Wanderer       4077 Sura           4078 Genetic");
+			clif_displaymessage(fd, "4060 Rune Knight      4061 Warlock          4062 Ranger           4063 Arch Bishop");
+			clif_displaymessage(fd, "4064 Mechanic         4065 Guillotine Cross 4073 Royal Guard      4074 Sorcerer");
+			clif_displaymessage(fd, "4075 Minstrel         4076 Wanderer         4077 Sura             4078 Genetic");
 			clif_displaymessage(fd, "4079 Shadow Chaser");
 			clif_displaymessage(fd, "----- Expanded Class -----");
-			clif_displaymessage(fd, "  23 Super Novice     24 Gunslinger       25 Ninja            26 Xmas");
-			clif_displaymessage(fd, "  27 Summer         4046 Taekwon        4047 Star Gladiator 4049 Soul Linker");
-			//clif_displaymessage(fd, "4050 Gangsi         4051 Death Knight   4052 Dark Collector");
+			clif_displaymessage(fd, "  23 Super Novice       24 Gunslinger         25 Ninja            4046 Taekwon");
+			clif_displaymessage(fd, "4047 Star Gladiator   4049 Soul Linker");
+			//clif_displaymessage(fd, "4047 Star Gladiator   4049 Soul Linker      4050 Gangsi           4051 Death Knight");
+			//clif_displaymessage(fd, "4052 Dark Collector   4190 Ex. Super Novice 4191 Ex. Super Baby");
+			//clif_displaymessage(fd, "4211 Kagerou          4212 Oboro");
 			clif_displaymessage(fd, "---- 1st And 2nd Baby Class ----");
-			clif_displaymessage(fd, "4023 Baby Novice    4024 Baby Swordsman 4025 Baby Mage      4026 Baby Archer");
-			clif_displaymessage(fd, "4027 Baby Acolyte   4028 Baby Merchant  4029 Baby Thief     4030 Baby Knight");
-			clif_displaymessage(fd, "4031 Baby Priest    4032 Baby Wizard    4033 Baby Blacksmith 4034 Baby Hunter");
-			clif_displaymessage(fd, "4035 Baby Assassin  4037 Baby Crusader  4038 Baby Monk      4039 Baby Sage");
-			clif_displaymessage(fd, "4040 Baby Rogue     4041 Baby Alchemist 4042 Baby Bard      4043 Baby Dancer");
+			clif_displaymessage(fd, "4023 Baby Novice      4024 Baby Swordman    4025 Baby Magician    4026 Baby Archer");
+			clif_displaymessage(fd, "4027 Baby Acolyte     4028 Baby Merchant    4029 Baby Thief       4030 Baby Knight");
+			clif_displaymessage(fd, "4031 Baby Priest      4032 Baby Wizard      4033 Baby Blacksmith  4034 Baby Hunter");
+			clif_displaymessage(fd, "4035 Baby Assassin    4037 Baby Crusader    4038 Baby Monk        4039 Baby Sage");
+			clif_displaymessage(fd, "4040 Baby Rogue       4041 Baby Alchemist   4042 Baby Bard        4043 Baby Dancer");
 			clif_displaymessage(fd, "4045 Super Baby");
-			//clif_displaymessage(fd, "---- 3rd Baby Class ----");
-			//clif_displaymessage(fd, "4096 Baby Rune Knight    4097 Baby Warlock        4098 Baby Ranger");
-			//clif_displaymessage(fd, "4099 Baby Arch Bishop    4100 Baby Mechanic       4101 Baby Guillotine Cross");
-			//clif_displaymessage(fd, "4102 Baby Royal Guard    4103 Baby Sorcerer       4104 Baby Minstrel");
-			//clif_displaymessage(fd, "4105 Baby Wanderer       4106 Baby Sura           4107 Baby Genetic");
-			//clif_displaymessage(fd, "4108 Baby Shadow Chaser");
-			//clif_displaymessage(fd, "---- Mounts, Modes, And Others ----");
-			//clif_displaymessage(fd, "  13 Knight (Peco)    21 Crusader (Peco)  22 Wedding          26 Christmas");
-			//clif_displaymessage(fd, "  27 Summer 4014 Lord Knight (Peco) 4022 Paladin (Peco)  4036 Baby Knight (Peco)");
-			//clif_displaymessage(fd, "4044 Baby Crusader (Peco) 4048 Star Gladiator (Union) 4080 Rune Knight (Dragon)");
-			//clif_displaymessage(fd, "4081 Rune Knight Trans (Dragon) 4082 Royal Guard (Gryphon)");
-			//clif_displaymessage(fd, "4083 Royal Guard Trans (Gryphon) 4084 Ranger (Warg) 4085 Ranger Trans (Warg)");
-			//clif_displaymessage(fd, "4086 Mechanic (Mado) 4087 Mechanic Trans (Mado)");
+			clif_displaymessage(fd, "---- 3rd Baby Class ----");
+			clif_displaymessage(fd, "4096 Baby Rune Knight 4097 Baby Warlock     4098 Baby Ranger      4099 Baby Arch Bishop");
+			clif_displaymessage(fd, "4100 Baby Mechanic    4101 Baby Glt. Cross  4102 Baby Royal Guard 4103 Baby Sorcerer");
+			clif_displaymessage(fd, "4104 Baby Minstrel    4105 Baby Wanderer    4106 Baby Sura        4107 Baby Genetic");
+			clif_displaymessage(fd, "4108 Baby Shadow Chaser");
+			//clif_displaymessage(fd, "---- Modes And Others ----");
+			//clif_displaymessage(fd, "  22 Wedding            26 Christmas          27 Summer         4048 Star Gladiator (Union)");
 			return -1;
 		}
 	}
 
-	if (job == 13 || job == 21 || job == 22 || job == 26 || job == 27
-		|| job == 4014 || job == 4022 || job == 4036 || job == 4044 || job == 4048
+	if (job == 13 || job == 21 || job == 22 || job == 26 || job == 27 || job == 4014 || job == 4022 || job == 4036 || job == 4044 || job == 4048
+		 || (job >= JOB_RUNE_KNIGHT2 && job <= JOB_MECHANIC_T2) || (job >= JOB_BABY_RUNE2 && job <= JOB_BABY_MECHANIC2)
 	) // Deny direct transformation into dummy jobs
-		return 0;
+		{clif_displaymessage(fd, "You can not change to this job by command.");
+		return 0;}
 
 	if (pcdb_checkid(job))
 	{
@@ -1118,57 +1144,53 @@ ACMD_FUNC(jobchange)
 			return -1;
 		}
 	} else {
-		clif_displaymessage(fd, "Please, enter job ID (usage: @job/@jobchange <job name/ID>).");
+		clif_displaymessage(fd, "Please enter a valid job ID (usage: @job/@jobchange <job name/ID>).");
 			clif_displaymessage(fd, "----- Novice / 1st Class -----");
-			clif_displaymessage(fd, "   0 Novice            1 Swordman          2 Mage              3 Archer");
-			clif_displaymessage(fd, "   4 Acolyte           5 Merchant          6 Thief");
+			clif_displaymessage(fd, "   0 Novice              1 Swordman            2 Magician            3 Archer");
+			clif_displaymessage(fd, "   4 Acolyte             5 Merchant            6 Thief");
 			clif_displaymessage(fd, "----- 2nd Class -----");
-			clif_displaymessage(fd, "   7 Knight            8 Priest            9 Wizard           10 Blacksmith");
-			clif_displaymessage(fd, "  11 Hunter           12 Assassin         14 Crusader         15 Monk");
-			clif_displaymessage(fd, "  16 Sage             17 Rogue            18 Alchemist        19 Bard");
+			clif_displaymessage(fd, "   7 Knight              8 Priest              9 Wizard             10 Blacksmith");
+			clif_displaymessage(fd, "  11 Hunter             12 Assassin           14 Crusader           15 Monk");
+			clif_displaymessage(fd, "  16 Sage               17 Rogue              18 Alchemist          19 Bard");
 			clif_displaymessage(fd, "  20 Dancer");
 			clif_displaymessage(fd, "----- High Novice / High 1st Class -----");
-			clif_displaymessage(fd, "4001 Novice High    4002 Swordman High  4003 Mage High      4004 Archer High");
-			clif_displaymessage(fd, "4005 Acolyte High   4006 Merchant High  4007 Thief High");
+			clif_displaymessage(fd, "4001 Novice High      4002 Swordman High    4003 Magician High    4004 Archer High");
+			clif_displaymessage(fd, "4005 Acolyte High     4006 Merchant High    4007 Thief High");
 			clif_displaymessage(fd, "----- Transcendent 2nd Class -----");
-			clif_displaymessage(fd, "4008 Lord Knight    4009 High Priest    4010 High Wizard    4011 Whitesmith");
-			clif_displaymessage(fd, "4012 Sniper         4013 Assassin Cross 4015 Paladin        4016 Champion");
-			clif_displaymessage(fd, "4017 Professor      4018 Stalker        4019 Creator        4020 Clown");
+			clif_displaymessage(fd, "4008 Lord Knight      4009 High Priest      4010 High Wizard      4011 Whitesmith");
+			clif_displaymessage(fd, "4012 Sniper           4013 Assassin Cross   4015 Paladin          4016 Champion");
+			clif_displaymessage(fd, "4017 Professor        4018 Stalker          4019 Creator          4020 Clown");
 			clif_displaymessage(fd, "4021 Gypsy");
 			clif_displaymessage(fd, "----- 3rd Class (Regular to 3rd) -----");
-			clif_displaymessage(fd, "4054 Rune Knight    4055 Warlock        4056 Ranger         4057 Arch Bishop");
-			clif_displaymessage(fd, "4058 Mechanic       4059 Guillotine Cross 4066 Royal Guard  4067 Sorcerer");
-			clif_displaymessage(fd, "4068 Minstrel       4069 Wanderer       4070 Sura           4071 Genetic");
+			clif_displaymessage(fd, "4054 Rune Knight      4055 Warlock          4056 Ranger           4057 Arch Bishop");
+			clif_displaymessage(fd, "4058 Mechanic         4059 Guillotine Cross 4066 Royal Guard      4067 Sorcerer");
+			clif_displaymessage(fd, "4068 Minstrel         4069 Wanderer         4070 Sura             4071 Genetic");
 			clif_displaymessage(fd, "4072 Shadow Chaser");
 			clif_displaymessage(fd, "----- 3rd Class (Transcendent to 3rd) -----");
-			clif_displaymessage(fd, "4060 Rune Knight    4061 Warlock        4062 Ranger         4063 Arch Bishop");
-			clif_displaymessage(fd, "4064 Mechanic       4065 Guillotine Cross 4073 Royal Guard  4074 Sorcerer");
-			clif_displaymessage(fd, "4075 Minstrel       4076 Wanderer       4077 Sura           4078 Genetic");
+			clif_displaymessage(fd, "4060 Rune Knight      4061 Warlock          4062 Ranger           4063 Arch Bishop");
+			clif_displaymessage(fd, "4064 Mechanic         4065 Guillotine Cross 4073 Royal Guard      4074 Sorcerer");
+			clif_displaymessage(fd, "4075 Minstrel         4076 Wanderer         4077 Sura             4078 Genetic");
 			clif_displaymessage(fd, "4079 Shadow Chaser");
 			clif_displaymessage(fd, "----- Expanded Class -----");
-			clif_displaymessage(fd, "  23 Super Novice     24 Gunslinger       25 Ninja            26 Xmas");
-			clif_displaymessage(fd, "  27 Summer         4046 Taekwon        4047 Star Gladiator 4049 Soul Linker");
-			//clif_displaymessage(fd, "4050 Gangsi         4051 Death Knight   4052 Dark Collector");
+			clif_displaymessage(fd, "  23 Super Novice       24 Gunslinger         25 Ninja            4046 Taekwon");
+			clif_displaymessage(fd, "4047 Star Gladiator   4049 Soul Linker");
+			//clif_displaymessage(fd, "4047 Star Gladiator   4049 Soul Linker      4050 Gangsi           4051 Death Knight");
+			//clif_displaymessage(fd, "4052 Dark Collector   4190 Ex. Super Novice 4191 Ex. Super Baby");
+			//clif_displaymessage(fd, "4211 Kagerou          4212 Oboro");
 			clif_displaymessage(fd, "---- 1st And 2nd Baby Class ----");
-			clif_displaymessage(fd, "4023 Baby Novice    4024 Baby Swordsman 4025 Baby Mage      4026 Baby Archer");
-			clif_displaymessage(fd, "4027 Baby Acolyte   4028 Baby Merchant  4029 Baby Thief     4030 Baby Knight");
-			clif_displaymessage(fd, "4031 Baby Priest    4032 Baby Wizard    4033 Baby Blacksmith 4034 Baby Hunter");
-			clif_displaymessage(fd, "4035 Baby Assassin  4037 Baby Crusader  4038 Baby Monk      4039 Baby Sage");
-			clif_displaymessage(fd, "4040 Baby Rogue     4041 Baby Alchemist 4042 Baby Bard      4043 Baby Dancer");
+			clif_displaymessage(fd, "4023 Baby Novice      4024 Baby Swordman    4025 Baby Magician    4026 Baby Archer");
+			clif_displaymessage(fd, "4027 Baby Acolyte     4028 Baby Merchant    4029 Baby Thief       4030 Baby Knight");
+			clif_displaymessage(fd, "4031 Baby Priest      4032 Baby Wizard      4033 Baby Blacksmith  4034 Baby Hunter");
+			clif_displaymessage(fd, "4035 Baby Assassin    4037 Baby Crusader    4038 Baby Monk        4039 Baby Sage");
+			clif_displaymessage(fd, "4040 Baby Rogue       4041 Baby Alchemist   4042 Baby Bard        4043 Baby Dancer");
 			clif_displaymessage(fd, "4045 Super Baby");
-			//clif_displaymessage(fd, "---- 3rd Baby Class ----");
-			//clif_displaymessage(fd, "4096 Baby Rune Knight    4097 Baby Warlock        4098 Baby Ranger");
-			//clif_displaymessage(fd, "4099 Baby Arch Bishop    4100 Baby Mechanic       4101 Baby Guillotine Cross");
-			//clif_displaymessage(fd, "4102 Baby Royal Guard    4103 Baby Sorcerer       4104 Baby Minstrel");
-			//clif_displaymessage(fd, "4105 Baby Wanderer       4106 Baby Sura           4107 Baby Genetic");
-			//clif_displaymessage(fd, "4108 Baby Shadow Chaser");
-			//clif_displaymessage(fd, "---- Mounts, Modes, And Others ----");
-			//clif_displaymessage(fd, "  13 Knight (Peco)    21 Crusader (Peco)  22 Wedding          26 Christmas");
-			//clif_displaymessage(fd, "  27 Summer 4014 Lord Knight (Peco) 4022 Paladin (Peco)  4036 Baby Knight (Peco)");
-			//clif_displaymessage(fd, "4044 Baby Crusader (Peco) 4048 Star Gladiator (Union) 4080 Rune Knight (Dragon)");
-			//clif_displaymessage(fd, "4081 Rune Knight Trans (Dragon) 4082 Royal Guard (Gryphon)");
-			//clif_displaymessage(fd, "4083 Royal Guard Trans (Gryphon) 4084 Ranger (Warg) 4085 Ranger Trans (Warg)");
-			//clif_displaymessage(fd, "4086 Mechanic (Mado) 4087 Mechanic Trans (Mado)");
+			clif_displaymessage(fd, "---- 3rd Baby Class ----");
+			clif_displaymessage(fd, "4096 Baby Rune Knight 4097 Baby Warlock     4098 Baby Ranger      4099 Baby Arch Bishop");
+			clif_displaymessage(fd, "4100 Baby Mechanic    4101 Baby Glt. Cross  4102 Baby Royal Guard 4103 Baby Sorcerer");
+			clif_displaymessage(fd, "4104 Baby Minstrel    4105 Baby Wanderer    4106 Baby Sura        4107 Baby Genetic");
+			clif_displaymessage(fd, "4108 Baby Shadow Chaser");
+			//clif_displaymessage(fd, "---- Modes And Others ----");
+			//clif_displaymessage(fd, "  22 Wedding            26 Christmas          27 Summer         4048 Star Gladiator (Union)");
 		return -1;
 	}
 

+ 2 - 2
src/map/map.h

@@ -182,7 +182,7 @@ enum {
 	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_RUNE = JOBL_THIRD|JOBL_BABY|JOBL_2_1|0x1,
 	MAPID_BABY_WARLOCK,
 	MAPID_BABY_RANGER,
 	MAPID_BABY_BISHOP,
@@ -194,7 +194,7 @@ enum {
 	MAPID_BABY_MINSTRELWANDERER,
 	MAPID_BABY_SURA,
 	MAPID_BABY_GENETIC,
-	MAPID_BABY_CHASER,*/
+	MAPID_BABY_CHASER,
 };
 
 //Max size for inputs to Graffiti, Talkie Box and Vending text prompts

+ 272 - 201
src/map/pc.c

@@ -4713,120 +4713,136 @@ int pc_jobid2mapid(unsigned short b_class)
 	switch(b_class)
 	{
 	//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;
+		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_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;
+		//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_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;
-		//case JOB_DARKCOLLECTOR:     return MAPID_DARKCOLLECTOR;
+		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;
+		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;
+		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_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;
+		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;
+		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;
+		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_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;
+		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_GUILLOTINE_CROSS:  return MAPID_GUILLOTINE_CROSS;
+		//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_GUILLOTINE_CROSS:      return MAPID_GUILLOTINE_CROSS;
 	//3-2 Jobs
-		case JOB_ROYAL_GUARD:       return MAPID_ROYAL_GUARD;
-		case JOB_SORCERER:          return MAPID_SORCERER;
+		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;
+		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_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;
+		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_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;
 	//Trans 3-2 Jobs
-		case JOB_ROYAL_GUARD_T:     return MAPID_ROYAL_GUARD_T;
-		case JOB_SORCERER_T:        return MAPID_SORCERER_T;
+		case JOB_ROYAL_GUARD_T:         return MAPID_ROYAL_GUARD_T;
+		case JOB_SORCERER_T:            return MAPID_SORCERER_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_SHADOW_CHASER_T:   return MAPID_SHADOW_CHASER_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_SHADOW_CHASER_T:       return MAPID_SHADOW_CHASER_T;
+	//Baby 3-1 Jobs
+		//case JOB_SUPER_BABY_E:          return MAPID_SUPER_BABY_E;
+		case JOB_BABY_RUNE:             return MAPID_BABY_RUNE;
+		case JOB_BABY_WARLOCK:          return MAPID_BABY_WARLOCK;
+		case JOB_BABY_RANGER:           return MAPID_BABY_RANGER;
+		case JOB_BABY_BISHOP:           return MAPID_BABY_BISHOP;
+		case JOB_BABY_MECHANIC:         return MAPID_BABY_MECHANIC;
+		case JOB_BABY_CROSS:            return MAPID_BABY_CROSS;
+	//Baby 3-2 Jobs
+		case JOB_BABY_GUARD:            return MAPID_BABY_GUARD;
+		case JOB_BABY_SORCERER:         return MAPID_BABY_SORCERER;
+		case JOB_BABY_MINSTREL:
+		case JOB_BABY_WANDERER:         return MAPID_BABY_MINSTRELWANDERER;
+		case JOB_BABY_SURA:             return MAPID_BABY_SURA;
+		case JOB_BABY_GENETIC:          return MAPID_BABY_GENETIC;
+		case JOB_BABY_CHASER:           return MAPID_BABY_CHASER;
 		default:
 			return -1;
 	}
@@ -4838,114 +4854,129 @@ int pc_mapid2jobid(unsigned short class_, int sex)
 	switch(class_)
 	{
 	//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;
+		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;
+		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;
+		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;
+		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;
+		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;
+		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;
+		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;
+		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;
+		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_MECHANIC:        return JOB_MECHANIC;
-		case MAPID_GUILLOTINE_CROSS: return JOB_GUILLOTINE_CROSS;
+		//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_MECHANIC:              return JOB_MECHANIC;
+		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;
+		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_MECHANIC_T:      return JOB_MECHANIC_T;
-		case MAPID_GUILLOTINE_CROSS_T: return JOB_GUILLOTINE_CROSS_T;
+		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_MECHANIC_T:            return JOB_MECHANIC_T;
+		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_SHADOW_CHASER_T: return JOB_SHADOW_CHASER_T;
+		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_SHADOW_CHASER_T:       return JOB_SHADOW_CHASER_T;
+	//Baby 3-1 Jobs
+		//case MAPID_SUPER_BABY_E:          return JOB_SUPER_BABY_E;
+		case MAPID_BABY_RUNE:             return JOB_BABY_RUNE;
+		case MAPID_BABY_WARLOCK:          return JOB_BABY_WARLOCK;
+		case MAPID_BABY_RANGER:           return JOB_BABY_RANGER;
+		case MAPID_BABY_BISHOP:           return JOB_BABY_BISHOP;
+		case MAPID_BABY_MECHANIC:         return JOB_BABY_MECHANIC;
+		case MAPID_BABY_CROSS:            return JOB_BABY_CROSS;
+	//Baby 3-2 Jobs
+		case MAPID_BABY_GUARD:            return JOB_BABY_GUARD;
+		case MAPID_BABY_SORCERER:         return JOB_BABY_SORCERER;
+		case MAPID_BABY_MINSTRELWANDERER: return sex?JOB_BABY_MINSTREL:JOB_BABY_WANDERER;
+		case MAPID_BABY_SURA:             return JOB_BABY_SURA;
+		case MAPID_BABY_GENETIC:          return JOB_BABY_GENETIC;
+		case MAPID_BABY_CHASER:           return JOB_BABY_CHASER;
 		default:
 			return -1;
 	}
@@ -5058,7 +5089,7 @@ const char* job_name(int class_)
 	case JOB_BABY_ALCHEMIST:
 	case JOB_BABY_BARD:
 	case JOB_BABY_DANCER:
-		return msg_txt(608 - JOB_BABY_CRUSADER +class_);
+		return msg_txt(608 - JOB_BABY_CRUSADER + class_);
 		
 	case JOB_BABY_CRUSADER2:
 		return msg_txt(608);
@@ -5074,21 +5105,26 @@ const char* job_name(int class_)
 	case JOB_SOUL_LINKER:
 		return msg_txt(618);
 
+	//case JOB_GANGSI:
+	//case JOB_DEATH_KNIGHT:
+	//case JOB_DARK_COLLECTOR:
+	//	return msg_txt(622 - JOB_GANGSI+class_);
+
 	case JOB_RUNE_KNIGHT:
 	case JOB_WARLOCK:
 	case JOB_RANGER:
 	case JOB_ARCH_BISHOP:
 	case JOB_MECHANIC:
 	case JOB_GUILLOTINE_CROSS:
-		return msg_txt(625 - JOB_RUNE_KNIGHT + class_);
-	
+		return msg_txt(625 - JOB_RUNE_KNIGHT+class_);
+
 	case JOB_RUNE_KNIGHT_T:
 	case JOB_WARLOCK_T:
 	case JOB_RANGER_T:
 	case JOB_ARCH_BISHOP_T:
 	case JOB_MECHANIC_T:
 	case JOB_GUILLOTINE_CROSS_T:
-		return msg_txt(625 - JOB_RUNE_KNIGHT_T + class_);
+		return msg_txt(625 - JOB_RUNE_KNIGHT_T+class_);
 
 	case JOB_ROYAL_GUARD:
 	case JOB_SORCERER:
@@ -5097,8 +5133,8 @@ const char* job_name(int class_)
 	case JOB_SURA:
 	case JOB_GENETIC:
 	case JOB_SHADOW_CHASER:
-		return msg_txt(631 - JOB_ROYAL_GUARD + class_);
-	
+		return msg_txt(631 - JOB_ROYAL_GUARD+class_);
+
 	case JOB_ROYAL_GUARD_T:
 	case JOB_SORCERER_T:
 	case JOB_MINSTREL_T:
@@ -5106,8 +5142,8 @@ const char* job_name(int class_)
 	case JOB_SURA_T:
 	case JOB_GENETIC_T:
 	case JOB_SHADOW_CHASER_T:
-		return msg_txt(631 - JOB_ROYAL_GUARD_T + class_);
-	
+		return msg_txt(631 - JOB_ROYAL_GUARD_T+class_);
+
 	case JOB_RUNE_KNIGHT2:
 	case JOB_RUNE_KNIGHT_T2:
 		return msg_txt(625);
@@ -5124,8 +5160,43 @@ const char* job_name(int class_)
 	case JOB_MECHANIC_T2:
 		return msg_txt(629);
 
+	case JOB_BABY_RUNE:
+	case JOB_BABY_WARLOCK:
+	case JOB_BABY_RANGER:
+	case JOB_BABY_BISHOP:
+	case JOB_BABY_MECHANIC:
+	case JOB_BABY_CROSS:
+	case JOB_BABY_GUARD:
+	case JOB_BABY_SORCERER:
+	case JOB_BABY_MINSTREL:
+	case JOB_BABY_WANDERER:
+	case JOB_BABY_SURA:
+	case JOB_BABY_GENETIC:
+	case JOB_BABY_CHASER:
+		return msg_txt(638 - JOB_BABY_RUNE+class_);
+
+	case JOB_BABY_RUNE2:
+		return msg_txt(638);
+
+	case JOB_BABY_GUARD2:
+		return msg_txt(644);
+
+	case JOB_BABY_RANGER2:
+		return msg_txt(640);
+
+	case JOB_BABY_MECHANIC2:
+		return msg_txt(642);
+
+	//case JOB_SUPER_NOVICE_E:
+	//case JOB_SUPER_BABY_E:
+	//	return msg_txt(651 - JOB_SUPER_NOVICE_E+class_);
+
+	//case JOB_KAGEROU:
+	//case JOB_OBORO:
+	//	return msg_txt(653 - JOB_KAGEROU+class_);
+
 	default:
-		return msg_txt(651);
+		return msg_txt(655);
 	}
 }
 

+ 2 - 1
src/map/pc.h

@@ -649,7 +649,8 @@ enum e_pc_permission {
 ( \
 	( (class_) >= JOB_NOVICE      && (class_) <  JOB_MAX_BASIC   ) \
 ||	( (class_) >= JOB_NOVICE_HIGH && (class_) <= JOB_SOUL_LINKER ) \
-||	( (class_) >= JOB_RUNE_KNIGHT && (class_) <  JOB_MAX         ) \
+||	( (class_) >= JOB_RUNE_KNIGHT && (class_) <= JOB_MECHANIC_T2 ) \
+||	( (class_) >= JOB_BABY_RUNE   && (class_) <  JOB_MAX         ) \
 )
 
 // clientside atk display macros (values to the left/right of the "+")

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.