diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/atcommand.c | 179 | ||||
-rw-r--r-- | src/map/map.h | 66 | ||||
-rw-r--r-- | src/map/pc.c | 337 |
3 files changed, 436 insertions, 146 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index b44eae946..0d1c8f9d9 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -1252,7 +1252,7 @@ ACMD_FUNC(jobchange) if (!message || !*message || sscanf(message, "%d %d", &job, &upper) < 1) { int i, found = 0; - const struct { char name[16]; int id; } jobs[] = { + const struct { char name[22]; int id; } jobs[] = { { "novice", 0 }, { "swordsman", 1 }, { "mage", 2 }, @@ -1327,6 +1327,45 @@ ACMD_FUNC(jobchange) { "taekwon girl", 4046 }, { "star gladiator", 4047 }, { "soul linker", 4049 }, + { "rune knight", 4054 }, + { "warlock", 4055 }, + { "ranger", 4056 }, + { "arch bishop", 4057 }, + { "mechanic", 4058 }, + { "guillotine cross", 4059 }, + { "rune knight2", 4060 }, + { "warlock2", 4061 }, + { "ranger2", 4062 }, + { "arch bishop2", 4063 }, + { "mechanic2", 4064 }, + { "guillotine cross2", 4065 }, + { "royal guard", 4066 }, + { "sorcerer", 4067 }, + { "minstrel", 4068 }, + { "wanderer", 4069 }, + { "sura", 4070 }, + { "genetic", 4071 }, + { "shadow chaser", 4072 }, + { "royal guard2", 4073 }, + { "sorcerer2", 4074 }, + { "minstrel2", 4075 }, + { "wanderer2", 4076 }, + { "sura2", 4077 }, + { "genetic2", 4078 }, + { "shadow chaser2", 4079 }, + { "baby rune knight", 4096 }, + { "baby warlock", 4097 }, + { "baby ranger", 4098 }, + { "baby arch bishop", 4099 }, + { "baby mechanic", 4100 }, + { "baby guillotine cross", 4101 }, + { "baby royal guard", 4102 }, + { "baby sorcerer", 4103 }, + { "baby minstrel", 4104 }, + { "baby wanderer", 4105 }, + { "baby sura", 4106 }, + { "baby genetic", 4107 }, + { "baby shadow chaser", 4108 }, }; for (i=0; i < ARRAYLENGTH(jobs); i++) { @@ -1340,36 +1379,61 @@ ACMD_FUNC(jobchange) if (!found) { clif_displaymessage(fd, "Please, enter job ID (usage: @job/@jobchange <job name/ID>)."); - clif_displaymessage(fd, " 0 Novice 7 Knight 14 Crusader 21 N/A"); - clif_displaymessage(fd, " 1 Swordman 8 Priest 15 Monk 22 N/A"); - clif_displaymessage(fd, " 2 Mage 9 Wizard 16 Sage 23 Super Novice"); - clif_displaymessage(fd, " 3 Archer 10 Blacksmith 17 Rogue 24 Gunslinger"); - clif_displaymessage(fd, " 4 Acolyte 11 Hunter 18 Alchemist 25 Ninja"); - clif_displaymessage(fd, " 5 Merchant 12 Assassin 19 Bard 26 N/A"); - clif_displaymessage(fd, " 6 Thief 13 N/A 20 Dancer 27 N/A"); - clif_displaymessage(fd, "4001 Novice High 4008 Lord Knight 4015 Paladin 4022 N/A"); - clif_displaymessage(fd, "4002 Swordman High 4009 High Priest 4016 Champion"); - clif_displaymessage(fd, "4003 Mage High 4010 High Wizard 4017 Professor"); - clif_displaymessage(fd, "4004 Archer High 4011 Whitesmith 4018 Stalker"); - clif_displaymessage(fd, "4005 Acolyte High 4012 Sniper 4019 Creator"); - clif_displaymessage(fd, "4006 Merchant High 4013 Assassin Cross 4020 Clown"); - clif_displaymessage(fd, "4007 Thief High 4014 N/A 4021 Gypsy"); - clif_displaymessage(fd, "4023 Baby Novice 4030 Baby Knight 4037 Baby Crusader 4044 N/A"); - clif_displaymessage(fd, "4024 Baby Swordsman 4031 Baby Priest 4038 Baby Monk 4045 Super Baby"); - clif_displaymessage(fd, "4025 Baby Mage 4032 Baby Wizard 4039 Baby Sage 4046 Taekwon Kid"); - clif_displaymessage(fd, "4026 Baby Archer 4033 Baby Blacksmith 4040 Baby Rogue 4047 Taekwon Master"); - clif_displaymessage(fd, "4027 Baby Acolyte 4034 Baby Hunter 4041 Baby Alchemist 4048 N/A"); - clif_displaymessage(fd, "4028 Baby Merchant 4035 Baby Assassin 4042 Baby Bard 4049 Soul Linker"); - clif_displaymessage(fd, "4029 Baby Thief 4036 N/A 4043 Baby Dancer"); + 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, "----- 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, " 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, "----- Transcendent 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, "4021 Gypsy"); + clif_displaymessage(fd, "----- 3rd Class (Regular 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, "4072 Shadow Chaser"); + clif_displaymessage(fd, "----- 3rd Class (Trans 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, "4079 Shadow Chaser"); + clif_displaymessage(fd, "----- Expanded Class -----"); + clif_displaymessage(fd, " 23 Super Novice 24 Gunslinger 25 Ninja 4046 Taekwon"); + clif_displaymessage(fd, "4047 Star Gladiator 4049 Soul Linker"); + clif_displaymessage(fd, "---- Baby 1st / 2nd 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, "4045 Super Baby"); + clif_displaymessage(fd, "---- Baby 3rd 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, "[upper]: -1 (default) to automatically determine the 'level', 0 to force normal job, 1 to force high job."); return -1; } } - if (job == 13 || job == 21 || job == 22 || job == 26 || job == 27 - || job == 4014 || job == 4022 || job == 4036 || job == 4044 || job == 4048 - ) // Deny direct transformation into dummy jobs - return 0; + switch(job) + { + case 13: case 21: case 4014: case 4022: case 4036: + case 4044: case 4080: case 4081: case 4082: case 4083: + case 4084: case 4085: case 4086: case 4087: case 4109: + case 4110: case 4111: case 4112: + return 0; // Deny direct transformation into dummy jobs + } if (pcdb_checkid(job)) { @@ -1381,27 +1445,48 @@ ACMD_FUNC(jobchange) } } else { clif_displaymessage(fd, "Please, enter job ID (usage: @job/@jobchange <job name/ID>)."); - clif_displaymessage(fd, " 0 Novice 7 Knight 14 Crusader 21 N/A"); - clif_displaymessage(fd, " 1 Swordman 8 Priest 15 Monk 22 N/A"); - clif_displaymessage(fd, " 2 Mage 9 Wizard 16 Sage 23 Super Novice"); - clif_displaymessage(fd, " 3 Archer 10 Blacksmith 17 Rogue 24 Gunslinger"); - clif_displaymessage(fd, " 4 Acolyte 11 Hunter 18 Alchemist 25 Ninja"); - clif_displaymessage(fd, " 5 Merchant 12 Assassin 19 Bard 26 N/A"); - clif_displaymessage(fd, " 6 Thief 13 N/A 20 Dancer 27 N/A"); - clif_displaymessage(fd, "4001 Novice High 4008 Lord Knight 4015 Paladin 4022 N/A"); - clif_displaymessage(fd, "4002 Swordman High 4009 High Priest 4016 Champion"); - clif_displaymessage(fd, "4003 Mage High 4010 High Wizard 4017 Professor"); - clif_displaymessage(fd, "4004 Archer High 4011 Whitesmith 4018 Stalker"); - clif_displaymessage(fd, "4005 Acolyte High 4012 Sniper 4019 Creator"); - clif_displaymessage(fd, "4006 Merchant High 4013 Assassin Cross 4020 Clown"); - clif_displaymessage(fd, "4007 Thief High 4014 N/A 4021 Gypsy"); - clif_displaymessage(fd, "4023 Baby Novice 4030 Baby Knight 4037 Baby Crusader 4044 N/A"); - clif_displaymessage(fd, "4024 Baby Swordsman 4031 Baby Priest 4038 Baby Monk 4045 Super Baby"); - clif_displaymessage(fd, "4025 Baby Mage 4032 Baby Wizard 4039 Baby Sage 4046 Taekwon Kid"); - clif_displaymessage(fd, "4026 Baby Archer 4033 Baby Blacksmith 4040 Baby Rogue 4047 Taekwon Master"); - clif_displaymessage(fd, "4027 Baby Acolyte 4034 Baby Hunter 4041 Baby Alchemist 4048 N/A"); - clif_displaymessage(fd, "4028 Baby Merchant 4035 Baby Assassin 4042 Baby Bard 4049 Soul Linker"); - clif_displaymessage(fd, "4029 Baby Thief 4036 N/A 4043 Baby Dancer"); + 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, "----- 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, " 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, "----- Transcendent 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, "4021 Gypsy"); + clif_displaymessage(fd, "----- 3rd Class (Regular 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, "4072 Shadow Chaser"); + clif_displaymessage(fd, "----- 3rd Class (Trans 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, "4079 Shadow Chaser"); + clif_displaymessage(fd, "----- Expanded Class -----"); + clif_displaymessage(fd, " 23 Super Novice 24 Gunslinger 25 Ninja 4046 Taekwon"); + clif_displaymessage(fd, "4047 Star Gladiator 4049 Soul Linker"); + clif_displaymessage(fd, "---- Baby 1st / 2nd 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, "4045 Super Baby"); + clif_displaymessage(fd, "---- Baby 3rd 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, "[upper]: -1 (default) to automatically determine the 'level', 0 to force normal job, 1 to force high job."); return -1; } diff --git a/src/map/map.h b/src/map/map.h index 3b1775e46..8c817387f 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -40,7 +40,7 @@ struct item_data; #define NATURAL_HEAL_INTERVAL 500 #define MIN_FLOORITEM 2 #define MAX_FLOORITEM START_ACCOUNT_NUM -#define MAX_LEVEL 99 +#define MAX_LEVEL 150 #define MAX_DROP_PER_MAP 48 #define MAX_IGNORE_LIST 20 // official is 14 #define MAX_VENDING 12 @@ -62,6 +62,7 @@ struct item_data; #define JOBL_UPPER 0x1000 //4096 #define JOBL_BABY 0x2000 //8192 +#define JOBL_3 0x4000 //16384 //for filtering and quick checking. #define MAPID_UPPERMASK 0x0fff @@ -71,6 +72,7 @@ struct item_data; //Super Novices are considered the 2-1 version of the novice! Novices are considered a first class type, too... enum { MAPID_NOVICE = 0x0, +//1st classes MAPID_SWORDMAN, MAPID_MAGE, MAPID_ARCHER, @@ -84,7 +86,7 @@ enum { MAPID_XMAS, MAPID_SUMMER, //2_1 classes - MAPID_SUPER_NOVICE = JOBL_2_1|0x0, + MAPID_SUPER_NOVICE = JOBL_2_1|MAPID_NOVICE, MAPID_KNIGHT, MAPID_WIZARD, MAPID_HUNTER, @@ -93,15 +95,29 @@ enum { MAPID_ASSASSIN, MAPID_STAR_GLADIATOR, //2_2 classes - MAPID_CRUSADER = JOBL_2_2|0x1, + MAPID_CRUSADER = JOBL_2_2|MAPID_SWORDMAN, MAPID_SAGE, MAPID_BARDDANCER, MAPID_MONK, MAPID_ALCHEMIST, MAPID_ROGUE, MAPID_SOUL_LINKER, -//1-1, advanced - MAPID_NOVICE_HIGH = JOBL_UPPER|0x0, +//3_1 classes + MAPID_RUNE_KNIGHT = JOBL_3|JOBL_2_1|MAPID_SWORDMAN, + MAPID_WARLOCK, + MAPID_RANGER, + MAPID_ARCHBISHOP, + MAPID_MECHANIC, + MAPID_GUILLOTINE_CROSS, +//3_2 classes + MAPID_ROYAL_GUARD = JOBL_3|JOBL_2_2|MAPID_SWORDMAN, + MAPID_SORCERER, + MAPID_MINSTRELWANDERER, + MAPID_SURA, + MAPID_GENETIC, + MAPID_SHADOW_CHASER, +//1st, advanced + MAPID_NOVICE_HIGH = JOBL_UPPER|MAPID_NOVICE, MAPID_SWORDMAN_HIGH, MAPID_MAGE_HIGH, MAPID_ARCHER_HIGH, @@ -109,21 +125,35 @@ enum { MAPID_MERCHANT_HIGH, MAPID_THIEF_HIGH, //2_1 advanced - MAPID_LORD_KNIGHT = JOBL_UPPER|JOBL_2_1|0x1, + MAPID_LORD_KNIGHT = JOBL_UPPER|JOBL_2_1|MAPID_SWORDMAN, MAPID_HIGH_WIZARD, MAPID_SNIPER, MAPID_HIGH_PRIEST, MAPID_WHITESMITH, MAPID_ASSASSIN_CROSS, //2_2 advanced - MAPID_PALADIN = JOBL_UPPER|JOBL_2_2|0x1, + MAPID_PALADIN = JOBL_UPPER|JOBL_2_2|MAPID_SWORDMAN, MAPID_PROFESSOR, MAPID_CLOWNGYPSY, MAPID_CHAMPION, MAPID_CREATOR, MAPID_STALKER, -//1-1 baby - MAPID_BABY = JOBL_BABY|0x0, +//3_1 advanced + MAPID_RUNE_KNIGHT_H = JOBL_3|JOBL_UPPER|JOBL_2_1|MAPID_SWORDMAN, + MAPID_WARLOCK_H, + MAPID_RANGER_H, + MAPID_ARCHBISHOP_H, + MAPID_MECHANIC_H, + MAPID_GUILLOTINE_CROSS_H, +//3_2 advanced + MAPID_ROYAL_GUARD_H = JOBL_3|JOBL_UPPER|JOBL_2_2|MAPID_SWORDMAN, + MAPID_SORCERER_H, + MAPID_MINSTRELWANDERER_H, + MAPID_SURA_H, + MAPID_GENETIC_H, + MAPID_SHADOW_CHASER_H, +//1st baby + MAPID_BABY = JOBL_BABY|MAPID_NOVICE, MAPID_BABY_SWORDMAN, MAPID_BABY_MAGE, MAPID_BABY_ARCHER, @@ -132,7 +162,7 @@ enum { MAPID_BABY_THIEF, MAPID_BABY_TAEKWON, //2_1 baby - MAPID_SUPER_BABY = JOBL_BABY|JOBL_2_1|0x0, + MAPID_SUPER_BABY = JOBL_BABY|JOBL_2_1|MAPID_NOVICE, MAPID_BABY_KNIGHT, MAPID_BABY_WIZARD, MAPID_BABY_HUNTER, @@ -141,13 +171,27 @@ enum { MAPID_BABY_ASSASSIN, MAPID_BABY_STAR_GLADIATOR, //2_2 baby - MAPID_BABY_CRUSADER = JOBL_BABY|JOBL_2_2|0x1, + MAPID_BABY_CRUSADER = JOBL_BABY|JOBL_2_2|MAPID_SWORDMAN, MAPID_BABY_SAGE, MAPID_BABY_BARDDANCER, MAPID_BABY_MONK, MAPID_BABY_ALCHEMIST, MAPID_BABY_ROGUE, MAPID_BABY_SOUL_LINKER, +//3_1 baby + MAPID_BABY_RUNE = JOBL_3|JOBL_BABY|JOBL_2_1|MAPID_SWORDMAN, + MAPID_BABY_WARLOCK, + MAPID_BABY_RANGER, + MAPID_BABY_BISHOP, + MAPID_BABY_MECHANIC, + MAPID_BABY_CROSS, +//3_2 baby + MAPID_BABY_GUARD = JOBL_3|JOBL_BABY|JOBL_2_2|MAPID_SWORDMAN, + 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 diff --git a/src/map/pc.c b/src/map/pc.c index 4b2d4511e..82e395153 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4435,102 +4435,144 @@ int pc_checkequip(struct map_session_data *sd,int pos) *------------------------------------------*/ int pc_jobid2mapid(unsigned short b_class) { - int class_ = 0; - if (b_class >= JOB_BABY && b_class <= JOB_SUPER_BABY) + switch(b_class) { - if (b_class == JOB_SUPER_BABY) - b_class = JOB_SUPER_NOVICE; - else - b_class -= JOB_BABY; - class_|= JOBL_BABY; - } - else if (b_class >= JOB_NOVICE_HIGH && b_class <= JOB_PALADIN2) - { - b_class -= JOB_NOVICE_HIGH; - class_|= JOBL_UPPER; - } - if (b_class >= JOB_KNIGHT && b_class <= JOB_KNIGHT2) - class_|= JOBL_2_1; - else if (b_class >= JOB_CRUSADER && b_class <= JOB_CRUSADER2) - class_|= JOBL_2_2; - switch (b_class) - { - case JOB_NOVICE: - case JOB_SWORDMAN: - case JOB_MAGE: - case JOB_ARCHER: - case JOB_ACOLYTE: - case JOB_MERCHANT: - case JOB_THIEF: - class_ |= b_class; - break; - case JOB_KNIGHT: - case JOB_KNIGHT2: - case JOB_CRUSADER: - case JOB_CRUSADER2: - class_ |= MAPID_SWORDMAN; - break; - case JOB_PRIEST: - case JOB_MONK: - class_ |= MAPID_ACOLYTE; - break; - case JOB_WIZARD: - case JOB_SAGE: - class_ |= MAPID_MAGE; - break; - case JOB_BLACKSMITH: - case JOB_ALCHEMIST: - class_ |= MAPID_MERCHANT; - break; - case JOB_HUNTER: + 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; case JOB_BARD: - case JOB_DANCER: - class_ |= MAPID_ARCHER; - break; - case JOB_ASSASSIN: - case JOB_ROGUE: - class_ |= MAPID_THIEF; - break; - - case JOB_STAR_GLADIATOR: - case JOB_STAR_GLADIATOR2: - class_ |= JOBL_2_1; - class_ |= MAPID_TAEKWON; - break; - case JOB_SOUL_LINKER: - class_ |= JOBL_2_2; - case JOB_TAEKWON: - class_ |= MAPID_TAEKWON; - break; - case JOB_WEDDING: - class_ = MAPID_WEDDING; - break; - case JOB_SUPER_NOVICE: //Super Novices are considered 2-1 novices. [Skotlex] - class_ |= JOBL_2_1; - break; - case JOB_GUNSLINGER: - class_ |= MAPID_GUNSLINGER; - break; - case JOB_NINJA: - class_ |= MAPID_NINJA; - break; - case JOB_XMAS: - class_ = MAPID_XMAS; - break; - case JOB_SUMMER: - class_ = MAPID_SUMMER; - break; + 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; + //3_1 classes + case JOB_RUNE_KNIGHT: return MAPID_RUNE_KNIGHT; + case JOB_WARLOCK: return MAPID_WARLOCK; + case JOB_RANGER: return MAPID_RANGER; + case JOB_ARCHBISHOP: return MAPID_ARCHBISHOP; + case JOB_MECHANIC: return MAPID_MECHANIC; + case JOB_GUILLOTINE_CROSS: return MAPID_GUILLOTINE_CROSS; + //3_2 classes + 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; + //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_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; + //3_1 advanced + case JOB_RUNE_KNIGHT_H: return MAPID_RUNE_KNIGHT_H; + case JOB_WARLOCK_H: return MAPID_WARLOCK_H; + case JOB_RANGER_H: return MAPID_RANGER_H; + case JOB_ARCHBISHOP_H: return MAPID_ARCHBISHOP_H; + case JOB_MECHANIC_H: return MAPID_MECHANIC_H; + case JOB_GUILLOTINE_CROSS_H:return MAPID_GUILLOTINE_CROSS_H; + //3_2 advanced + case JOB_ROYAL_GUARD_H: return MAPID_ROYAL_GUARD_H; + case JOB_SORCERER_H: return MAPID_SORCERER_H; + case JOB_MINSTREL_H: + case JOB_WANDERER_H: return MAPID_MINSTRELWANDERER_H; + case JOB_SURA_H: return MAPID_SURA_H; + case JOB_GENETIC_H: return MAPID_GENETIC_H; + case JOB_SHADOW_CHASER_H: return MAPID_SHADOW_CHASER_H; + //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_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 baby classes + 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; + //3_2 baby classes + case JOB_BABY_GUARD: return MAPID_BABY_GUARD; + case JOB_BABY_SORCERER: return MAPID_BABY_SORCERER; + case JOB_BABY_WANDERER: + case JOB_BABY_MINSTREL: 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; } - return class_; } //Reverts the map-style class id to the client-style one. int pc_mapid2jobid(unsigned short class_, int sex) { - switch(class_) { + 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; @@ -4560,7 +4602,21 @@ int pc_mapid2jobid(unsigned short class_, int sex) case MAPID_ALCHEMIST: return JOB_ALCHEMIST; case MAPID_ROGUE: return JOB_ROGUE; case MAPID_SOUL_LINKER: return JOB_SOUL_LINKER; - //1-1: advanced + //3_1 classes + case MAPID_RUNE_KNIGHT: return JOB_RUNE_KNIGHT; + case MAPID_WARLOCK: return JOB_WARLOCK; + case MAPID_RANGER: return JOB_RANGER; + case MAPID_ARCHBISHOP: return JOB_ARCHBISHOP; + case MAPID_MECHANIC: return JOB_MECHANIC; + case MAPID_GUILLOTINE_CROSS:return JOB_GUILLOTINE_CROSS; + //3_2 classes + 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; + //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; @@ -4582,6 +4638,20 @@ int pc_mapid2jobid(unsigned short class_, int sex) case MAPID_CHAMPION: return JOB_CHAMPION; case MAPID_CREATOR: return JOB_CREATOR; case MAPID_STALKER: return JOB_STALKER; + //3_1 advanced + case MAPID_RUNE_KNIGHT_H: return JOB_RUNE_KNIGHT_H; + case MAPID_WARLOCK_H: return JOB_WARLOCK_H; + case MAPID_RANGER_H: return JOB_RANGER_H; + case MAPID_ARCHBISHOP_H: return JOB_ARCHBISHOP_H; + case MAPID_MECHANIC_H: return JOB_MECHANIC_H; + case MAPID_GUILLOTINE_CROSS_H: return JOB_GUILLOTINE_CROSS_H; + //3_2 advanced + case MAPID_ROYAL_GUARD_H: return JOB_ROYAL_GUARD_H; + case MAPID_SORCERER_H: return JOB_SORCERER_H; + case MAPID_MINSTRELWANDERER_H: return sex?JOB_MINSTREL_H:JOB_WANDERER_H; + case MAPID_SURA_H: return JOB_SURA_H; + case MAPID_GENETIC_H: return JOB_GENETIC_H; + case MAPID_SHADOW_CHASER_H: return JOB_SHADOW_CHASER_H; //1-1 baby case MAPID_BABY: return JOB_BABY; case MAPID_BABY_SWORDMAN: return JOB_BABY_SWORDMAN; @@ -4605,6 +4675,20 @@ int pc_mapid2jobid(unsigned short class_, int sex) 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 baby classes + 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; + //3_2 baby classes + 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; } @@ -4736,9 +4820,86 @@ char* job_name(int class_) return msg_txt(619); case JOB_NINJA: return msg_txt(620); - + + case JOB_RUNE_KNIGHT: + case JOB_WARLOCK: + case JOB_RANGER: + case JOB_ARCHBISHOP: + case JOB_MECHANIC: + case JOB_GUILLOTINE_CROSS: + return msg_txt(625 - JOB_RUNE_KNIGHT +class_); + + case JOB_RUNE_KNIGHT_H: + case JOB_WARLOCK_H: + case JOB_RANGER_H: + case JOB_ARCHBISHOP_H: + case JOB_MECHANIC_H: + case JOB_GUILLOTINE_CROSS_H: + return msg_txt(625 - JOB_RUNE_KNIGHT_H +class_); + + case JOB_ROYAL_GUARD: + case JOB_SORCERER: + case JOB_MINSTREL: + case JOB_WANDERER: + case JOB_SURA: + case JOB_GENETIC: + case JOB_SHADOW_CHASER: + return msg_txt(631 - JOB_ROYAL_GUARD +class_); + + case JOB_ROYAL_GUARD_H: + case JOB_SORCERER_H: + case JOB_MINSTREL_H: + case JOB_WANDERER_H: + case JOB_SURA_H: + case JOB_GENETIC_H: + case JOB_SHADOW_CHASER_H: + return msg_txt(631 - JOB_ROYAL_GUARD_H +class_); + + case JOB_RUNE_KNIGHT2: + case JOB_RUNE_KNIGHT_H2: + return msg_txt(625); + + case JOB_ROYAL_GUARD2: + case JOB_ROYAL_GUARD_H2: + return msg_txt(631); + + case JOB_RANGER2: + case JOB_RANGER_H2: + return msg_txt(627); + + case JOB_MECHANIC2: + case JOB_MECHANIC_H2: + 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); + default: - return msg_txt(650); + return msg_txt(651); } } |