Explorar o código

- 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 %!s(int64=13) %!d(string=hai) anos
pai
achega
64379ae3d4
Modificáronse 4 ficheiros con 235 adicións e 216 borrados
  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_RACE	19
 MOB_ELEMENT	20
 MOB_ELEMENT	20
 MOB_MODE	21
 MOB_MODE	21
+MOB_MVPEXP	22
 
 
 AI_ACTION_TYPE	0
 AI_ACTION_TYPE	0
 AI_ACTION_TAR_TYPE	1
 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.
 or "null" if you requested the monster's name.
 
 
 Valid types are listed in const.txt:
 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
 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):
 Example(s):
 if (checkVending("Aaron")) mes "Aaron is currently vending!";
 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!";
 if (checkChatting()) mes "You are currently chatting!";
 	//This will check if you're in a chat room or not
 	//This will check if you're in a chat room or not
-	
+
 ---------------------------------------
 ---------------------------------------
 
 
 *agitcheck()
 *agitcheck()

+ 197 - 197
src/map/pc.c

@@ -4713,120 +4713,120 @@ int pc_jobid2mapid(unsigned short b_class)
 	switch(b_class)
 	switch(b_class)
 	{
 	{
 	//Novice And 1-1 Jobs
 	//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
 	//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_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
 	//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_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
 	//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
 	//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
 	//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_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
 	//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
 	//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
 	//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_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
 	//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
 	//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_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
 	//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
 	//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_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:
 		default:
 			return -1;
 			return -1;
 	}
 	}
@@ -4838,114 +4838,114 @@ int pc_mapid2jobid(unsigned short class_, int sex)
 	switch(class_)
 	switch(class_)
 	{
 	{
 	//Novice And 1-1 Jobs
 	//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
 	//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
 	//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
 	//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
 	//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
 	//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
 	//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
 	//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
 	//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
 	//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
 	//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
 	//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
 	//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:
 		default:
 			return -1;
 			return -1;
 	}
 	}
@@ -6010,11 +6010,11 @@ int pc_skillheal_bonus(struct map_session_data *sd, int skill_num)
 	{
 	{
 		switch( 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 19: script_pushint(st,mob->status.race); break;
 		case 20: script_pushint(st,mob->status.def_ele); break;
 		case 20: script_pushint(st,mob->status.def_ele); break;
 		case 21: script_pushint(st,mob->status.mode); 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
 		default: script_pushint(st,-1); //wrong Index
 	}
 	}
 	return 0;
 	return 0;
@@ -13937,7 +13938,7 @@ BUILDIN_FUNC(checkvending) // check vending [Nab4]
 		sd = script_rid2sd(st);
 		sd = script_rid2sd(st);
 
 
 	if(sd)
 	if(sd)
-		script_pushint(st,sd->state.vending);
+		script_pushint(st, sd->state.autotrade ? 2 : sd->state.vending);
 	else
 	else
 		script_pushint(st,0);
 		script_pushint(st,0);