diff options
Diffstat (limited to 'src/map/pc.c')
-rw-r--r-- | src/map/pc.c | 337 |
1 files changed, 249 insertions, 88 deletions
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); } } |