Преглед на файлове

- Added 22nd argument to 'getmonsterinfo' which returns the mvp_exp of a monster.
- Changed 'checkvending' to return 2 if player is using @autotrade.
- Follow up to r15871: used spaces so everything lines up (people might use different Tab Size in their text editors).

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

brianluau преди 13 години
родител
ревизия
64379ae3d4
променени са 4 файла, в които са добавени 235 реда и са изтрити 216 реда
  1. 1 0
      db/const.txt
  2. 35 18
      doc/script_commands.txt
  3. 197 197
      src/map/pc.c
  4. 2 1
      src/map/script.c

+ 1 - 0
db/const.txt

@@ -1315,6 +1315,7 @@ MOB_SIZE	18
 MOB_RACE	19
 MOB_ELEMENT	20
 MOB_MODE	21
+MOB_MVPEXP	22
 
 AI_ACTION_TYPE	0
 AI_ACTION_TAR_TYPE	1

+ 35 - 18
doc/script_commands.txt

@@ -3050,17 +3050,29 @@ It will return -1 if there is no such monster (or the type value is invalid),
 or "null" if you requested the monster's name.
 
 Valid types are listed in const.txt:
-	MOB_NAME	0		MOB_LV	1
-	MOB_MAXHP	2		MOB_BASEEXP	3
-	MOB_JOBEXP	4		MOB_ATK1	5
-	MOB_ATK2	6		MOB_DEF	7
-	MOB_MDEF	8		MOB_STR	9
-	MOB_AGI		10		MOB_VIT		11
-	MOB_INT		12		JOB_DEX		13
-	MOB_LUK		14		MOB_RANGE	15
-	MOB_RANGE2	16		MOB_RANGE3	17
-	MOB_SIZE	18		MOB_RACE	19
-	MOB_ELEMENT	20		MOB_MODE	21
+	MOB_NAME	0
+	MOB_LV	1
+	MOB_MAXHP	2
+	MOB_BASEEXP	3
+	MOB_JOBEXP	4
+	MOB_ATK1	5
+	MOB_ATK2	6
+	MOB_DEF	7
+	MOB_MDEF	8
+	MOB_STR	9
+	MOB_AGI	10
+	MOB_VIT	11
+	MOB_INT	12
+	MOB_DEX	13
+	MOB_LUK	14
+	MOB_RANGE	15
+	MOB_RANGE2	16
+	MOB_RANGE3	17
+	MOB_SIZE	18
+	MOB_RACE	19
+	MOB_ELEMENT	20
+	MOB_MODE	21
+	MOB_MVPEXP	22
 
 Check sample in doc/sample/getmonsterinfo.txt
 
@@ -3334,13 +3346,18 @@ bird and 0 if they don't.
 
 ---------------------------------------
 
-*checkvending ({"<player name>"})
-*checkchatting ({"<Player Name>"})
+*checkvending({"<player name>"})
+*checkchatting({"<Player Name>"})
 
-If the player's name is given, this command checks for that player
-to be online and whether he/she is chatting or vending.
-When no name is given, the attached player is used for checking.
-Returns true or false (1 or 0) when the player is chatting/vending or not.
+Checks if the player is vending or in a chatroom.
+Name is optional, and defaults to the attached player if omitted.
+
+Return values for 'checkvending' are
+  0 = not vending
+  1 = normal vending
+  2 = vending using @autotrade
+
+'checkchatting' returns 1 if they are in a chat room, 0 if they are not.
 
 Example(s):
 if (checkVending("Aaron")) mes "Aaron is currently vending!";
@@ -3349,7 +3366,7 @@ if (checkVending("Aaron")) mes "Aaron is currently vending!";
 
 if (checkChatting()) mes "You are currently chatting!";
 	//This will check if you're in a chat room or not
-	
+
 ---------------------------------------
 
 *agitcheck()

+ 197 - 197
src/map/pc.c

@@ -4713,120 +4713,120 @@ 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;
 		default:
 			return -1;
 	}
@@ -4838,114 +4838,114 @@ 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;
 		default:
 			return -1;
 	}
@@ -6010,11 +6010,11 @@ int pc_skillheal_bonus(struct map_session_data *sd, int skill_num)
 	{
 		switch( skill_num )
 		{
-		case AL_HEAL:			if( !(battle_config.skill_add_heal_rate&1) ) bonus = 0; break;
-		case PR_SANCTUARY:		if( !(battle_config.skill_add_heal_rate&2) ) bonus = 0; break;
-		case AM_POTIONPITCHER:	if( !(battle_config.skill_add_heal_rate&4) ) bonus = 0; break;
-		case CR_SLIMPITCHER:	if( !(battle_config.skill_add_heal_rate&8) ) bonus = 0; break;
-		case BA_APPLEIDUN:		if( !(battle_config.skill_add_heal_rate&16) ) bonus = 0; break;
+		case AL_HEAL:           if( !(battle_config.skill_add_heal_rate&1) ) bonus = 0; break;
+		case PR_SANCTUARY:      if( !(battle_config.skill_add_heal_rate&2) ) bonus = 0; break;
+		case AM_POTIONPITCHER:  if( !(battle_config.skill_add_heal_rate&4) ) bonus = 0; break;
+		case CR_SLIMPITCHER:    if( !(battle_config.skill_add_heal_rate&8) ) bonus = 0; break;
+		case BA_APPLEIDUN:      if( !(battle_config.skill_add_heal_rate&16)) bonus = 0; break;
 		}
 	}
 

+ 2 - 1
src/map/script.c

@@ -13922,6 +13922,7 @@ BUILDIN_FUNC(getmonsterinfo)
 		case 19: script_pushint(st,mob->status.race); break;
 		case 20: script_pushint(st,mob->status.def_ele); break;
 		case 21: script_pushint(st,mob->status.mode); break;
+		case 22: script_pushint(st,mob->mexp); break;
 		default: script_pushint(st,-1); //wrong Index
 	}
 	return 0;
@@ -13937,7 +13938,7 @@ BUILDIN_FUNC(checkvending) // check vending [Nab4]
 		sd = script_rid2sd(st);
 
 	if(sd)
-		script_pushint(st,sd->state.vending);
+		script_pushint(st, sd->state.autotrade ? 2 : sd->state.vending);
 	else
 		script_pushint(st,0);