Jelajahi Sumber

* Standardization in some database files, and other minor cleaning
* Disabled Ash Vacuum Warper since it's no longer in iRO - fixes bugreport:6560 (quests\quests_13_1.txt)

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

euphyy 12 tahun lalu
induk
melakukan
b76d16d0c4

+ 5 - 1
db/elemental_db.txt

@@ -1,4 +1,8 @@
-//ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion
+// Elemental Summons Database
+//
+// Structure of Database:
+// ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion
+
 // Monster Elementals
 2114,EL_AGNI_S,Agni,100,5000,1,1,100,100,10,10,1,1,1,1,1,1,5,12,0,0,83,200,504,1020,360
 2115,EL_AGNI_M,Agni,100,7500,1,1,250,250,25,25,1,1,1,1,1,1,5,12,1,0,83,200,504,1020,360

+ 6 - 2
db/elemental_skill_db.txt

@@ -1,6 +1,10 @@
-//ElementalID,SkillID,SkillLevel,ReqMode
-//Spirit Modes (1 = Passive, 2 = Defensive, 4 = Agressive)
+// Elemental Summons Skill Database
 //
+// Structure of Database:
+// ElementalID,SkillID,SkillLevel,ReqMode
+//
+// Spirit Modes: 1 = Passive, 2 = Defensive, 4 = Aggressive
+
 // EL_AGNI_S
 2114,8413,1,1	//EL_PYROTECHNIC,Pyrotechnic
 2114,8401,1,2	//EL_CIRCLE_OF_FIRE,Circle of Fire

+ 1 - 1
db/item_db2.txt

@@ -1,4 +1,4 @@
-// Items Additional Database - Custom Items go here
+// Items Additional Database
 //
 // Structure of Database:
 // ID,Name,Name,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Upper,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script }

+ 1 - 1
db/magicmushroom_db.txt

@@ -1,5 +1,5 @@
 // Magic Mushroom DB.
-// Database for skills that are randomly used trough Magic Mushroom status change.
+// Database for skills that are randomly used through Magic Mushroom status change.
 // Format: SkillID
 
 7	//SM_MAGNUM

+ 6 - 1
db/mercenary_db.txt

@@ -1,4 +1,8 @@
-//ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion
+// Mercenary Database
+//
+// Structure of Database:
+// ID,Sprite_Name,Name,LV,HP,SP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Speed,aDelay,aMotion,dMotion
+
 // Monster Mercenaries
 1191,MIMIC,Mimic,51,6120,187,2,150,900,10,40,44,121,1,60,75,110,10,12,1,0,60,100,972,500,288
 1506,DISGUISE,Disguise,55,7543,180,2,279,546,18,29,0,72,45,35,48,65,10,12,1,6,82,147,516,768,384
@@ -14,6 +18,7 @@
 2058,M_MIMIC,Mimic,51,6120,182,1,800,950,10,40,44,121,1,60,75,110,10,12,1,0,60,100,972,500,288
 2059,M_DISGUISE,Disguise,55,7543,180,2,526,693,18,29,0,72,45,35,48,65,10,12,1,6,82,147,516,768,384
 2060,M_ALICE,Alice,62,10000,221,1,700,850,5,5,64,64,42,85,100,130,10,12,1,7,60,200,502,1999,480
+
 // Normal Mercenaries
 6017,MER_ARCHER01,Mina,20,256,200,10,170,85,7,5,1,16,5,1,28,8,10,0,0,7,20,150,700,432,300
 6018,MER_ARCHER02,Dororu,30,457,70,10,228,114,11,7,1,18,8,1,40,11,10,0,0,7,20,150,700,432,300

+ 8 - 1
db/mercenary_skill_db.txt

@@ -1,4 +1,8 @@
-//MercenryID,SkillID,SkillLevel
+// Mercenary Skill Database
+//
+// Structure of Database:
+// MercenryID,SkillID,SkillLevel
+
 // Archer Mercenaries Level 1-10.
 // MER_ARCHER01
 6017,8207,2	//MA_DOUBLE
@@ -38,6 +42,7 @@
 6026,8215,5	//MA_SHARPSHOOTING
 6026,8223,5	//MER_QUICKEN
 6026,8233,1	//MER_AUTOBERSERK
+
 // Lancer Mercenaries Level 1-10.
 // MER_LANCER01
 6027,8216,1	//ML_PIERCE
@@ -74,6 +79,7 @@
 6036,8220,10	//ML_AUTOGUARD
 6036,8221,3	//ML_DEVOTION
 6036,8218,5	//ML_SPIRALPIERCE
+
 // Swordman Mercenaries Level 1-10.
 // MER_SWORDMAN01
 6037,8201,1	//MS_BASH
@@ -113,6 +119,7 @@
 6046,8203,10	//MS_BOWLINGABASH
 6046,8201,10	//MS_BASH
 6046,8206,1	//MS_BERSERK
+
 // Monster Mercenaries
 // MIMIC
 1191,8233,1	//MER_AUTOBERSERK

+ 17 - 9
db/mob_avail.txt

@@ -1,13 +1,21 @@
-// for mobs
-// mob_id,sprite_id,equip #
-// Use another mob's sprite for a monster.  0 for sprite will disable mob.
-// Mob must have an equipment it's pet counterpart can use or it will cause problems.  If no equip use 0.
-// The following if a player sprite is used
-// MobID,SpriteID,Sex,Hair,Hair_Color,Weapon,Shield,Head_Top,Head_Middle,Head_Bottom,Option,Dye_Color
-// Use Item ID for weapons and shields, not View ID.
+// Mob Availability and Alias Database
+//
+// Structure of Database:
+// MobID,SpriteID{,Equipment}
+//
+// 01. MobID        Mob ID to change.
+// 02. SpriteID     Mob ID which will be sent to the client instead of MobID.
+//                  If 0, the mob becomes unavailable for use.
+// 03. Equipment    Item ID of pet equipment (must be available for pet counterpart, or this will cause problems).
+//
+// To disguise a mob as a player:
+// MobID,SpriteID,Sex,Hair_Style,Hair_Color,Weapon,Shield,Head_Top,Head_Middle,Head_Bottom,Option,Dye_Color
+//
+// SpriteID is a job class value.
+// Weapon and Shield uses Item ID, while Head uses View ID.
 
-//1002,1039	//Poring,Baphomet (Make Porings look like Baphomet)
-//1970,1002,10013	// new mob that looks like a Poring with a backpack
+//1002,1039		// Poring - Baphomet
+//1970,1002,10013	// Displays a Poring with a backpack
 
 // Easter Event Monsters
 //1920,1047,0

+ 1 - 0
db/mob_chat_db.txt

@@ -2,6 +2,7 @@
 //
 // Structure of Database:
 // Line_ID,Color_Code,Dialog
+
 1,0xFF0000,Weakling! Challenge me if you have any courage!
 2,0xFF0000,Impressive! I wonder how far your recklessness will take you.
 3,0xFF0000,I almost pity how outmatched you are against me. Now prepare for my attack!

+ 6 - 5
db/mob_item_ratio.txt

@@ -1,20 +1,21 @@
+// Specific Item Drop Ratio Database
 // Overrides for global item_rate* values from conf/battle/drops.conf
-
-// Database format:
+//
+// Structure of Database:
 // ItemID,Ratio{,MonsterID}
-
+//
 // Result:
 // ItemID base drop rates defined in mob_db will not get multiplied
 //  by global item_rate* values (aka drop rates) from
 //  conf/battle/drops.conf. Instead Ratio will be used (100 = 1x).
 // If no MonsterID is specified, all monsters will be affected,
 //  otherwise only listed ones.
-
+//
 // Examples:
 // 909,100 // Jellopies from monsters will drop with 1x drop rate regardless of global drop rate
 // 909,1000 // Jellopies from monsters will drop with 10x drop rate regardless of global drop rate
 // 909,100,1002 // Jellopies from Porings will drop with 1x drop rate. Other monsters that drop Jellopies are unaffected (use global drop rate).
-
+//
 // Notes:
 // - By default you can list up to 10 MonsterIDs per ItemID.
 //   It can be changed in src/map/mob.c by adjusting MAX_ITEMRATIO_MOBS.

+ 49 - 52
db/mob_skill_db2.txt

@@ -1,60 +1,57 @@
-// Custom mob skills
-//MOB_ID, a unused dummy character sequence (for information only), STATE, SKILL_ID, SKILL_LV,
-// rate (10000 = 100%), casttime, delay, cancelable, a target, a condition type, a condition value,
-// a value 1, a value 2, a value 3, a value 4, a value 5, emotion, chat
-//Example
-//1001,Poring@TF_POISON,attack,52,3,100,1500,10000,no,target,always,0,,,,,7
+// Custom Mob Skill Database
 //
-//rate refers to the chance of the skill being casted when the condition is fulfilled.
-//delay is the time in milliseconds that has to be pass before recasting the same skill.
+// Structure of Database:
+// MobID,Dummy value (info only),State,SkillID,SkillLv,Rate,CastTime,Delay,Cancelable,Target,Condition type,Condition value,val1,val2,val3,val4,val5,Emotion,Chat
 //
-//STATE:
-// any / idle (in standby) / walk (in movement) / dead (on killed) / loot /
-// attack / angry (like attack, except player has not attacked mob yet) /
-// chase (following target, after being attacked) / follow (following
-// target, without being attacked)
+// RATE: the chance of the skill being casted when the condition is fulfilled (10000 = 100%).
+// DELAY: the time (in milliseconds) before attempting to recast the same skill.
 //
-//target: The target of the skill can be: target (when a PC is targetted) / self / friend / master
-// (the following are for ground-skills, a random target tile is selected from
-// the specified area):
-// around1 (3x3 area around self) / around2 (5x5 area around self) /
-// around3 (7x7 area around self) / around4 (9x9 area around self) /
-// around5 (3x3 area around target) / around6 (5x5 area around target) /
-// around7 (7x7 area around target) / around8 (9x9 area around target) /
-// around (11x11 area around self)
+// STATE:
+//	any (except dead) / idle (in standby) / walk (in movement) / dead (on killed) /
+//	loot /attack / angry (like attack, except player has not attacked mob yet) /
+//	chase (following target, after being attacked) / follow (following target,
+//	without being attacked) / anytarget (attack+angry+chase+follow)
 //
-//conditions: (condition type) (value which specifies a condition value)
-//	always			uncondtional
-//	myhpltmaxrate		when the mob's hp drops to a certain %
-//	mystatuson		If the mob has any abnormalities in status (condition value),
-//	mystatusoff		If the mob has ended any abnormalities in status (condition value),
-//	friendhpltmaxrate	when the mobs' friend's hp drops to a certain %
-//	friendstatuson		If the friend has any abnormalities in status (condition value),
-//	friendstatusoff		If the friend has ended any abnormalities in status (condition value),
-//	attackpcgt		Attack PC becomes more than the  number of specification
-//	attackpcge		Attack PC becomes equal or more than the number of specification.
-//	slavelt			when the number of slaves is lower than the original number of specification.
-//	slavele			when the number of slaves is lower or equal than the original number of specification.
-//	closedattacked		when melee attacked (close range attack)
-//	longrangeattacked	when long ranged attacked (like bows and far range weapons)
-//	skillused		when a skill is used on the mob
-//	afterskill		after the mob used certain skill.
-//	casttargeted		when a target is in cast range.
-//	rudeattacked		when a target is rude attacked
+// TARGET:
+//	target (current target) / self / friend / master / randomtarget (any enemy within skill's range)
 //
-// The character's state which can be specified to be a condition value by the statuson/statusoff system
-//	anybad		any type of state change
-//	stone		condition of being in stone state
-//	freeze		condition of being in frozen state
-//	stun		condition of being in stunned state
-//	sleep		condition of being in sleep state
-//	poison		condition of being in poisoned state
-//	curse		condition of being in cursed state
-//	silence		condition of being in silenced state
-//	confusion		condition of being in confusion state
-//	blind		condition of being in blind state
-//	hiding		condition of being in hidden state
-//	sight		condition of being in unhidden state
+//	The following are for ground-skills, a random target tile is selected from the specified area:
+//	    around1 (3x3 area around self) / around2 (5x5 area around self) /
+//	    around3 (7x7 area around self) / around4 (9x9 area around self) /
+//	    around5 (3x3 area around target) / around6 (5x5 area around target) /
+//	    around7 (7x7 area around target) / around8 (9x9 area around target) /
+//	    around = around4
+//
+// CONDITION:
+//	always			Unconditional (no condition value).
+//	onspawn			When mob spawns/respawns (no condition value).
+//	myhpltmaxrate		When mob's HP drops to the specified %.
+//	myhpinrate		When mob's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
+//	mystatuson		If mob has the specified abnormality in status.
+//	mystatusoff		If mob has ended the specified abnormality in status.
+//	friendhpltmaxrate	When mob's friend's HP drops to the specified %.
+//	friendhpinrate		When mob's friend's HP is in a certain % range (condition value = lower bound, val1 = upper bound).
+//	friendstatuson		If friend has the specified abnormality in status.
+//	friendstatusoff		If friend has ended the specified abnormality in status.
+//	attackpcgt		When attack PCs become greater than specified number.
+//	attackpcge		When attack PCs become greater than or equal to the specified number.
+//	slavelt			When number of slaves is less than the original specified number.
+//	slavele			When number of slaves is less than or equal to the original specified number.
+//	closedattacked		When close range melee attacked (no condition value).
+//	longrangeattacked	When long range attacked, ex. bows, guns, ranged skills (no condition value).
+//	skillused		When the specified skill is used on the mob.
+//	afterskill		After mob casts the specified skill.
+//	casttargeted		When a target is in cast range (no condition value).
+//	rudeattacked		When mob is rude attacked (no condition value).
+//
+//	Status abnormalities specified through the statuson/statusoff system:
+//	    anybad (any type of state change) / stone / freeze / stun / sleep /
+//	    poison / curse / silence / confusion / blind / hiding / sight (unhidden)
+//
+// Note: if a negative MobID is provided, the skill will be treated as 'global':
+//	-1: added for all boss types.
+//	-2: added for all normal types.
+//	-4: added for all mobs.
 
 // rAthena Dev Team
 //1900,Valaris@AL_TELEPORT,idle,26,1,10000,0,0,yes,self,rudeattacked,,,,,,,,

+ 1 - 1
db/pet_db2.txt

@@ -1,4 +1,4 @@
-// Pet Additional Database - Custom Pets
+// Pet Additional Database
 //
 // Structure of Database:
 // MobID,Name,JName,LureID,EggID,EquipID,FoodID,Fullness,HungryDelay,R_Hungry,R_Full,Intimate,Die,Capture,Speed,S_Performance,talk_convert_class,attack_rate,defence_attack_rate,change_target_rate,pet_script,loyal_script

+ 2 - 1
db/quest_db.txt

@@ -1,7 +1,8 @@
 // Quest Database
 //
-// Structure of Database :
+// Structure of Database:
 // Quest ID,Time Limit,Target1,Val1,Target2,Val2,Target3,Val3,Quest Title
+
 1000,0,0,0,0,0,0,0,"Transcend"
 1001,0,0,0,0,0,0,0,"Job Change to Acolyte"
 1002,0,0,0,0,0,0,0,"Job Change to Acolyte"

+ 4 - 2
db/skill_improvise_db.txt

@@ -1,6 +1,8 @@
-// Improvise DB.
+// Improvise Database
 // Database for skills that can be summoned trough Randomize Spell/Improvised Song (Minstrel/Wanderer Skill).
-// Format: SkillID,Rate
+//
+// Structure of Database:
+// SkillID,Rate
 
 // Mage Skills
 10,5000	// Sight

+ 5 - 5
db/spellbook_db.txt

@@ -1,9 +1,9 @@
-//============================================================
-// Preserve points database for Reading Spellbook. [LimitLine/3CeAm]
-// Structure:
+// Reading Spellbook Preserve Points Database
+//
+// Structure of Database:
 // SkillID,PreservePoints,Required Book
-//============================================================
-//To add more entries skill.h MAX_SKILL_SPELLBOOK_DB must be increased
+//
+// To add more entries, increase MAX_SKILL_SPELLBOOK_DB in skill.h.
 
 //Mage
 14,7,6190	//Cold Bolt

+ 0 - 7
doc/quest_variables.txt

@@ -7,36 +7,30 @@ variables. You can store up to 31 boolean value into a single
 variable. [Lupus]
 --------------------------------------------------------------
 
-
 --------------------------------------------------------------
 Variable: MISC_QUEST
 
-
 Quest: 		Juice Maker Quest
 Info:		How to make juices. This bit keeps final state of the quest.
 How to set: 	set MISC_QUEST,MISC_QUEST | 1;
 How to check: 	if(MISC_QUEST & 1){}
 
-
 Quest: 		Tempestra Quest
 Info:		Has you given a potion to Temperstra or not.
 How to set: 	set MISC_QUEST,MISC_QUEST | 2;
 How to check: 	if(MISC_QUEST & 2){}
 
-
 Quest: 		Morgenstein Quest
 Info:		How to make Mixture & Counteragent. Also subquest for Alchemist Job
 		This bit keeps final state of the quest.
 How to set: 	set MISC_QUEST,MISC_QUEST | 4;
 How to check: 	if(MISC_QUEST & 4){}
 
-
 Quest: 		Prontera Culvert Quest
 Info:		Could you enter the Prontera Culvert or not.
 How to set: 	set MISC_QUEST,MISC_QUEST | 8;
 How to check: 	if(MISC_QUEST & 8){}
 
-
 Quest: 		Edgar's Offer
 Info:		Cheap ticket from Izlude to Alberta.
 		This bit keeps final state of the quest.
@@ -112,7 +106,6 @@ How to check: 	if(MISC_QUEST & 65536){}
 --------------------------------------------------------------
 Variable: MISC_QUEST2
 
-
 Quest: 		?
 Info:		?
 How to set: 	set MISC_QUEST,MISC_QUEST | ?;

+ 8 - 9
doc/whisper_sys.txt

@@ -14,7 +14,7 @@ This piece of code to allows characters to execute events in NPCs by whispering
 them up to ten parameters. The NPC must have an "OnWhisperGlobal" label, or an
 "event not found" error will result.
 
-	NPC:<NPC Name> 	<String>{#String 2{#...{#String 10}}}
+	NPC:<NPC Name>		<String>{#String 2{#...{#String 10}}}
 	
 The whispered strings are separated by the "#" character, and are each stored
 into separate temporary character string variables:
@@ -31,11 +31,10 @@ You whisper an NPC "NPCCommander" in-game with the following instructions:
 The parameters are passed on to the "OnWhisperGlobal" label of the NPC, and can
 be processed accordingly:
 
-	-	script	NPCCommander	-1,{
-	OnWhisperGlobal:
-		// The following code will inform player "Lordalfa" that he has been
-		// reported for killstealing.
-		if (@whispervar0$ == "Report")
-			message @whispervar2$,"You have been reported for "+@whispervar1$+".";
-		end;
-	}
+-	script	NPCCommander	-1,{
+OnWhisperGlobal:
+	// Inform player "Lordalfa" that he has been reported for killstealing.
+	if (@whispervar0$ == "Report")
+		message @whispervar2$,"You have been reported for "+@whispervar1$+".";
+	end;
+}

+ 75 - 113
npc/custom/etc/mvp_arena.txt

@@ -9,14 +9,14 @@
 //===== Description: =========================================
 //= Rooms containing 16 different MVPs
 //===== Additional Comments: =================================
-//= 1.0 first version of script
-//= 1.1 Optimised The MVP arena [massdriller]
+//= 1.0 - First version of script
+//= 1.1 - Optimised The MVP arena [massdriller]
 //= 1.2 - NPC in prontera [Silent]
 //= 1.3 - Removed Duplicates
 //= 1.4 - Optimized, text edited [Euphy]
 //============================================================
 
-// ==== Entrance ====
+// Entrance
 prontera,154,197,3	script	MVP Warper	768,{
 	mes "[ ^0065DFMVP Warper^000000 ]";
 	mes "Would you like to enter";
@@ -26,29 +26,30 @@ prontera,154,197,3	script	MVP Warper	768,{
 	close;
 }
 
-// ==== Information NPC ====
+// Information
 quiz_00,49,31,4	script	MVP Arena Guide	778,{
 	mes "[ ^0065DFMVP Arena Guide^000000 ]";
 	mes "Welcome and behold this sacred place. Here you will find out if you truly have what it takes to call yourself a warrior.";
 	next;
 	switch(select("Information","Heal me!","Return to Prontera","Cancel")) {
-		case 1:
-			mes "[ ^0065DFMVP Arena Guide^000000 ]";
-			mes "There are four Keepers, and each can spawn four different MVPs.";
-			mes "There are eight rooms per Keeper, and sixteen MVPs in total.";
-			close;
-		case 2:
-			specialeffect2 313;
-			percentheal 100,100;
-			close;
-		case 3:
-			warp "prontera",156,179;
-			close;
-		case 4:
-			close; }
+	case 1:
+		mes "[ ^0065DFMVP Arena Guide^000000 ]";
+		mes "There are four Keepers, and each can spawn four different MVPs.";
+		mes "There are eight rooms per Keeper, and sixteen MVPs in total.";
+		close;
+	case 2:
+		specialeffect2 313;
+		percentheal 100,100;
+		close;
+	case 3:
+		warp "prontera",156,179;
+		close;
+	case 4:
+		close;
+	}
 }
 
-// ==== Keepers ====
+// Keepers
 function	script	Keeper	{
 	mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]";
 	mes "Which arena would you";
@@ -60,104 +61,65 @@ function	script	Keeper	{
 	if (getmapusers("pvp_n_"+.@i+"-"+getarg(0))>19) {
 		mes "[ ^0065DF"+strnpcinfo(1)+"^000000 ]";
 		mes "Sorry, this arena is full!";
-		close; }
+		close;
+	}
 	warp "pvp_n_"+.@i+"-"+getarg(0),102,102;
 	close;
 }
+quiz_00,56,31,4	script	Alpha MVP	770,{ callfunc "Keeper",2; }
+quiz_00,58,31,4	script	Beta MVP	773,{ callfunc "Keeper",3; }
+quiz_00,60,31,4	script	Theta MVP	774,{ callfunc "Keeper",4; }
+quiz_00,62,31,4	script	Epsilon MVP	776,{ callfunc "Keeper",5; }
 
-quiz_00,56,31,4	script	Alpha MVP	770,{
-	callfunc "Keeper",2; }
-quiz_00,58,31,4	script	Beta MVP	773,{
-	callfunc "Keeper",3; }
-quiz_00,60,31,4	script	Theta MVP	774,{
-	callfunc "Keeper",4; }
-quiz_00,62,31,4	script	Epsilon MVP	776,{
-	callfunc "Keeper",5; }
-
-// ==== Protectors ====
+// Protectors
 function	script	Protector	{
 	switch(select(""+((getarg(0)=="")?"":"Harder Monsters")+":Heal:Exit")) {
-		case 1:
-			warp getarg(0),102,102;
-			close;
-		case 2:
-			specialeffect2 313;
-			percentheal 100,100;
-			close;
-		case 3:
-			warp "prontera",156,179;
-			close; }
+	case 1:
+		warp getarg(0),102,102;
+		close;
+	case 2:
+		specialeffect2 313;
+		percentheal 100,100;
+		close;
+	case 3:
+		warp "prontera",156,179;
+		close;
+	}
 }
+pvp_n_1-2,100,100,4	script	MVP-Protector#01	727,{ callfunc "Protector","pvp_n_2-2"; }
+pvp_n_2-2,100,100,4	script	MVP-Protector#02	727,{ callfunc "Protector","pvp_n_3-2"; }
+pvp_n_3-2,100,100,4	script	MVP-Protector#03	727,{ callfunc "Protector","pvp_n_4-2"; }
+pvp_n_4-2,100,100,4	script	MVP-Protector#04	727,{ callfunc "Protector","pvp_n_5-2"; }
+pvp_n_5-2,100,100,4	script	MVP-Protector#05	727,{ callfunc "Protector","pvp_n_6-2"; }
+pvp_n_6-2,100,100,4	script	MVP-Protector#06	727,{ callfunc "Protector","pvp_n_7-2"; }
+pvp_n_7-2,100,100,4	script	MVP-Protector#07	727,{ callfunc "Protector","pvp_n_8-2"; }
+pvp_n_8-2,100,100,4	script	MVP-Protector#08	727,{ callfunc "Protector",""; }
+pvp_n_1-3,100,100,4	script	MVP-Protector#09	727,{ callfunc "Protector","pvp_n_2-3"; }
+pvp_n_2-3,100,100,4	script	MVP-Protector#10	727,{ callfunc "Protector","pvp_n_3-3"; }
+pvp_n_3-3,100,100,4	script	MVP-Protector#11	727,{ callfunc "Protector","pvp_n_4-3"; }
+pvp_n_4-3,100,100,4	script	MVP-Protector#12	727,{ callfunc "Protector","pvp_n_5-3"; }
+pvp_n_5-3,100,100,4	script	MVP-Protector#13	727,{ callfunc "Protector","pvp_n_6-3"; }
+pvp_n_6-3,100,100,4	script	MVP-Protector#14	727,{ callfunc "Protector","pvp_n_7-3"; }
+pvp_n_7-3,100,100,4	script	MVP-Protector#15	727,{ callfunc "Protector","pvp_n_8-3"; }
+pvp_n_8-3,100,100,4	script	MVP-Protector#16	727,{ callfunc "Protector",""; }
+pvp_n_1-4,100,100,4	script	MVP-Protector#17	727,{ callfunc "Protector","pvp_n_2-4"; }
+pvp_n_2-4,100,100,4	script	MVP-Protector#18	727,{ callfunc "Protector","pvp_n_3-4"; }
+pvp_n_3-4,100,100,4	script	MVP-Protector#19	727,{ callfunc "Protector","pvp_n_4-4"; }
+pvp_n_4-4,100,100,4	script	MVP-Protector#20	727,{ callfunc "Protector","pvp_n_5-4"; }
+pvp_n_5-4,100,100,4	script	MVP-Protector#21	727,{ callfunc "Protector","pvp_n_6-4"; }
+pvp_n_6-4,100,100,4	script	MVP-Protector#22	727,{ callfunc "Protector","pvp_n_7-4"; }
+pvp_n_7-4,100,100,4	script	MVP-Protector#23	727,{ callfunc "Protector","pvp_n_8-4"; }
+pvp_n_8-4,100,100,4	script	MVP-Protector#24	727,{ callfunc "Protector",""; }
+pvp_n_1-5,100,100,4	script	MVP-Protector#25	727,{ callfunc "Protector","pvp_n_2-5"; }
+pvp_n_2-5,100,100,4	script	MVP-Protector#26	727,{ callfunc "Protector","pvp_n_3-5"; }
+pvp_n_3-5,100,100,4	script	MVP-Protector#27	727,{ callfunc "Protector","pvp_n_4-5"; }
+pvp_n_4-5,100,100,4	script	MVP-Protector#28	727,{ callfunc "Protector","pvp_n_5-5"; }
+pvp_n_5-5,100,100,4	script	MVP-Protector#29	727,{ callfunc "Protector","pvp_n_6-5"; }
+pvp_n_6-5,100,100,4	script	MVP-Protector#30	727,{ callfunc "Protector","pvp_n_7-5"; }
+pvp_n_7-5,100,100,4	script	MVP-Protector#31	727,{ callfunc "Protector","pvp_n_8-5"; }
+pvp_n_8-5,100,100,4	script	MVP-Protector#32	727,{ callfunc "Protector",""; }
 
-pvp_n_1-2,100,100,4	script	MVP-Protector#01	727,{
-	callfunc "Protector","pvp_n_2-2"; }
-pvp_n_2-2,100,100,4	script	MVP-Protector#02	727,{
-	callfunc "Protector","pvp_n_3-2"; }
-pvp_n_3-2,100,100,4	script	MVP-Protector#03	727,{
-	callfunc "Protector","pvp_n_4-2"; }
-pvp_n_4-2,100,100,4	script	MVP-Protector#04	727,{
-	callfunc "Protector","pvp_n_5-2"; }
-pvp_n_5-2,100,100,4	script	MVP-Protector#05	727,{
-	callfunc "Protector","pvp_n_6-2"; }
-pvp_n_6-2,100,100,4	script	MVP-Protector#06	727,{
-	callfunc "Protector","pvp_n_7-2"; }
-pvp_n_7-2,100,100,4	script	MVP-Protector#07	727,{
-	callfunc "Protector","pvp_n_8-2"; }
-pvp_n_8-2,100,100,4	script	MVP-Protector#08	727,{
-	callfunc "Protector",""; }
-
-pvp_n_1-3,100,100,4	script	MVP-Protector#09	727,{
-	callfunc "Protector","pvp_n_2-3"; }
-pvp_n_2-3,100,100,4	script	MVP-Protector#10	727,{
-	callfunc "Protector","pvp_n_3-3"; }
-pvp_n_3-3,100,100,4	script	MVP-Protector#11	727,{
-	callfunc "Protector","pvp_n_4-3"; }
-pvp_n_4-3,100,100,4	script	MVP-Protector#12	727,{
-	callfunc "Protector","pvp_n_5-3"; }
-pvp_n_5-3,100,100,4	script	MVP-Protector#13	727,{
-	callfunc "Protector","pvp_n_6-3"; }
-pvp_n_6-3,100,100,4	script	MVP-Protector#14	727,{
-	callfunc "Protector","pvp_n_7-3"; }
-pvp_n_7-3,100,100,4	script	MVP-Protector#15	727,{
-	callfunc "Protector","pvp_n_8-3"; }
-pvp_n_8-3,100,100,4	script	MVP-Protector#16	727,{
-	callfunc "Protector",""; }
-
-pvp_n_1-4,100,100,4	script	MVP-Protector#17	727,{
-	callfunc "Protector","pvp_n_2-4"; }
-pvp_n_2-4,100,100,4	script	MVP-Protector#18	727,{
-	callfunc "Protector","pvp_n_3-4"; }
-pvp_n_3-4,100,100,4	script	MVP-Protector#19	727,{
-	callfunc "Protector","pvp_n_4-4"; }
-pvp_n_4-4,100,100,4	script	MVP-Protector#20	727,{
-	callfunc "Protector","pvp_n_5-4"; }
-pvp_n_5-4,100,100,4	script	MVP-Protector#21	727,{
-	callfunc "Protector","pvp_n_6-4"; }
-pvp_n_6-4,100,100,4	script	MVP-Protector#22	727,{
-	callfunc "Protector","pvp_n_7-4"; }
-pvp_n_7-4,100,100,4	script	MVP-Protector#23	727,{
-	callfunc "Protector","pvp_n_8-4"; }
-pvp_n_8-4,100,100,4	script	MVP-Protector#24	727,{
-	callfunc "Protector",""; }
-
-pvp_n_1-5,100,100,4	script	MVP-Protector#25	727,{
-	callfunc "Protector","pvp_n_2-5"; }
-pvp_n_2-5,100,100,4	script	MVP-Protector#26	727,{
-	callfunc "Protector","pvp_n_3-5"; }
-pvp_n_3-5,100,100,4	script	MVP-Protector#27	727,{
-	callfunc "Protector","pvp_n_4-5"; }
-pvp_n_4-5,100,100,4	script	MVP-Protector#28	727,{
-	callfunc "Protector","pvp_n_5-5"; }
-pvp_n_5-5,100,100,4	script	MVP-Protector#29	727,{
-	callfunc "Protector","pvp_n_6-5"; }
-pvp_n_6-5,100,100,4	script	MVP-Protector#30	727,{
-	callfunc "Protector","pvp_n_7-5"; }
-pvp_n_7-5,100,100,4	script	MVP-Protector#31	727,{
-	callfunc "Protector","pvp_n_8-5"; }
-pvp_n_8-5,100,100,4	script	MVP-Protector#32	727,{
-	callfunc "Protector",""; }
-
-// ==== Alpha ====
+// Alpha
 pvp_n_1-2,0,0,0,0	monster	Eddga	1115,3,60000,66000
 pvp_n_1-2,0,0,0,0	monster	Mistress	1059,1,60000,66000
 pvp_n_2-2,0,0,0,0	monster	Mistress	1059,3,60000,66000
@@ -186,7 +148,7 @@ pvp_n_8-2,0,0,0,0	monster	Mistress	1059,3,60000,66000
 pvp_n_8-2,0,0,0,0	monster	Moonlight	1150,3,60000,66000
 pvp_n_8-2,0,0,0,0	monster	Maya	1147,3,60000,66000
 
-// ==== Beta ====
+// Beta
 pvp_n_1-3,0,0,0,0	monster	Phreeoni	1159,3,60000,66000
 pvp_n_1-3,0,0,0,0	monster	Turtle General	1312,1,60000,66000
 pvp_n_2-3,0,0,0,0	monster	Phreeoni	1159,2,60000,66000
@@ -217,7 +179,7 @@ pvp_n_8-3,0,0,0,0	monster	Turtle General	1312,3,60000,66000
 pvp_n_8-3,0,0,0,0	monster	Orc Hero	1087,3,60000,66000
 pvp_n_8-3,0,0,0,0	monster	Orc Lord	1190,3,60000,66000
 
-// ==== Theta ====
+// Theta
 pvp_n_1-4,0,0,0,0	monster	Drake	1112,3,60000,66000
 pvp_n_1-4,0,0,0,0	monster	Osiris	1038,1,60000,66000
 pvp_n_2-4,0,0,0,0	monster	Drake	1112,2,60000,66000
@@ -248,7 +210,7 @@ pvp_n_8-4,0,0,0,0	monster	Osiris	1038,3,60000,66000
 pvp_n_8-4,0,0,0,0	monster	Doppelganger	1046,3,60000,66000
 pvp_n_8-4,0,0,0,0	monster	Lord of Death	1373,3,60000,66000
 
-// ==== Epsilon ====
+// Epsilon
 pvp_n_1-5,0,0,0,0	monster	Incantation Samurai	1492,3,60000,66000
 pvp_n_1-5,0,0,0,0	monster	Pharoh	1157,1,60000,66000
 pvp_n_2-5,0,0,0,0	monster	Incantation Samurai	1492,2,60000,66000
@@ -279,7 +241,7 @@ pvp_n_8-5,0,0,0,0	monster	Pharoh	1157,2,60000,66000
 pvp_n_8-5,0,0,0,0	monster	Dark Lord	1272,2,60000,66000
 pvp_n_8-5,0,0,0,0	monster	Baphomet	1039,2,60000,66000
 
-// ==== Mapflags ====
+// Mapflags
 pvp_n_1-1	mapflag	pvp_nightmaredrop	off
 pvp_n_2-1	mapflag	pvp_nightmaredrop	off
 pvp_n_3-1	mapflag	pvp_nightmaredrop	off

+ 1 - 1
npc/custom/etc/quest_warper.txt

@@ -430,7 +430,7 @@ Zeny_short_HP:
 	if (select("Yes","No") == 2) goto L_end;
 	set @Hp, Zeny/$QW_HP_H_PRICE;
     	set @HpPrice, @Hp*$QW_HP_H_PRICE;
-    	if (@Sp == 1) mes "You're not worth the effort.";
+    	if (@Hp == 1) mes "You're not worth the effort.";
     	if (@Hp == 1) goto L_end;
     	set Zeny, Zeny-@HpPrice;
 	heal @Hp,0;

+ 4 - 1
npc/quests/quests_13_1.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= L0ne_W0lf
 //===== Current Version: ===================================== 
-//= 2.5a
+//= 2.6
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -43,6 +43,7 @@
 //= 2.4 More optimization (-32kb). [Euphy]
 //= 2.5 Yet more optimization (-22kb). [Euphy]
 //= 2.5a Minor fixes. [Euphy]
+//= 2.6 Disabled "Ash Vacuum Warper" as it's no longer in iRO. [Euphy]
 //============================================================ 
 
 // Onward to the New World
@@ -14905,6 +14906,7 @@ que_dan02,102,42,3	script	Disfigured Corpse#moc2	457,{
 	close;
 }
 
+/*
 //Mid Camp Warper (gogoash), Translated from the Official [Slim]
 prontera,161,192,5	script	Ash Vacuum Warper	707,{
 	mes "[Warp Soldier]";
@@ -14934,3 +14936,4 @@ prontera,161,192,5	script	Ash Vacuum Warper	707,{
 	}
 	end;
 }
+*/