Bläddra i källkod

* Implemented Mora town NPCs from iRO.
* Implemented Mora guides.
* Implemented Mora official warp scripts.
* Added Mora Points NPC and removed a wrong shop item.
* Added placeholder NPCs for Mora quests -- no quests are currently functional.
* Rewrote documentation for 'recovery' command. (follow-up r17321)
* Updated RUS, SPN, IDN map_msg translations. (credits: Jarek, Leeg, Cydh)

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

euphyy 12 år sedan
förälder
incheckning
f967a8de53

+ 3 - 3
conf/msg_conf/map_msg_frn.conf

@@ -1468,10 +1468,10 @@
 1447: Option de canal '%s' inconnue.
 1448: Canal %s supprimé.
 1449: L'option '%s' est déjà activée, entrez '@channel setopt %s 0' pour la désactiver.
-1450: Option '%s' activée sur le canal '%s'.
+1450: Option '%s' activée sur le canal '#%s'.
 1451: La valeur '%d' pour l'option '%s' est incorrecte (doit être comprise entre 0-10).
-1452: Option '%s' activée sur le canal '%s' avec %d secondes.
-1453: Option '%s' désactivée sur le canal '%s'.
+1452: Option '%s' activée sur le canal '#%s' avec %d secondes.
+1453: Option '%s' désactivée sur le canal '#%s'.
 1454: Couleur maintenant en '%s'.
 1455: Vous parlez trop rapidement!
 1456: * %s ban <#nom_canal> <nom du joueur>

+ 10 - 4
conf/msg_conf/map_msg_idn.conf

@@ -385,7 +385,13 @@
 375:  <- Pemain %s meninggalkan duel --
 376:  -> Pemain %s telah menerima permintaan duel --
 377:  -- Pemain %s telah menolak permintaan duel --
-//378-389 kosong
+//lain-lain
+378: Eleanor sekarang dalam mode %s.
+379: Penggunaan item gagal. [%s] sedang cooling down. Tunggu %.1f menit.
+380: Penggunaan item gagal. [%s] sedang cooling down. Tunggu %d detik.
+381: Penggunaan skill gagal. [%s] membutuhkan %dx %s.
+382: Kamu terlalu dekat dengan batu atau emperium untuk menggunakan skill ini.
+//383-389 kosong
 //NoAsk
 390: Penolakan otomatis diaktifkan.
 391: Penolakan otomatis ditidakaktifkan.
@@ -1461,10 +1467,10 @@
 1447: '%s' adalah pilihan channel yang tidak diketahui.
 1448: Channel %s dihapus.
 1449: Pilihan '%s' sudah diaktifkan, (gunakan '@channel setopt %s 0' untuk mematikannya).
-1450: Pilihan '%s' saat ini diaktifkan untuk channel '%s'.
+1450: Pilihan '%s' saat ini diaktifkan untuk channel '#%s'.
 1451: Nilai '%d' keluar dari batas untuk option '%s' (batasnya 0-10).
-1452: Pilihan '%s' sekarang diaktifkan untuk channel '%s' dalam %d detik.
-1453: Pilihan '%s' sekarang dimatikan untuk channel '%s'.
+1452: Pilihan '%s' sekarang diaktifkan untuk channel '#%s' dalam %d detik.
+1453: Pilihan '%s' sekarang dimatikan untuk channel '#%s'.
 1454: Warna telah diatur menjadi '%s'.
 1455: Kamu berbicara terlalu cepat!
 1456: * %s ban <#nama_channel> <pemain>

+ 3 - 3
conf/msg_conf/map_msg_por.conf

@@ -1463,10 +1463,10 @@
 1447: Opção do canal '%s' desconhecida.
 1448: O canal '%s' foi deletado.
 1449: A opção '%s' já está habilitada (use '@channel setopt %s 0' para desabilitá-la).
-1450: A opção '%s' está habilitada para o canal '%s'.
+1450: A opção '%s' está habilitada para o canal '#%s'.
 1451: O valor '%d' para a opção '%s' está fora dos limites (de 0 até 10).
-1452: A opção '%s' está habilitada para o canal '%s' em %d segundos.
-1453: A opção '%s' está desabilitada para o canal '%s'.
+1452: A opção '%s' está habilitada para o canal '#%s' em %d segundos.
+1453: A opção '%s' está desabilitada para o canal '#%s'.
 //1454 livre
 1455: Você está digitando muito rápido!
 1456: * %s ban <#nome_do_canal> <jogador>

+ 4 - 4
conf/msg_conf/map_msg_rus.conf

@@ -1467,11 +1467,11 @@
 1447: Неизвестная опция '%s'.
 1448: Канал '%s' удален.
 1449: Опция '%s' уже включена (используйте '@channel setopt %s 0' для отключения).
-1450: Опция '%s' включена для канала '%s'.
+1450: Опция '%s' включена для канала '#%s'.
 1451: Значение '%d' для опции '%s' вне допустимых значений (пределы 0-10).
-1452: Опция '%s' включена для канала '%s' на %d секунд.
-1453: Опция '%s' отключена для канала '%s'.
-//1454 free
+1452: Опция '%s' включена для канала '#%s' на %d секунд.
+1453: Опция '%s' отключена для канала '#%s'.
+1454: Установлен цвет '%s'.
 1455: Вы отправляете слишком много сообщений!
 1456: * %s ban <#название_канала> <ник_игрока>
 1457: -- Заблокировать указанного игрока на данном канале.

+ 15 - 9
conf/msg_conf/map_msg_spn.conf

@@ -386,7 +386,13 @@
 375:  <- El jugador %s ha abandonado el duelo --
 376:  -> El jugador %s ha aceptado el duelo --
 377:  -- El jugador %s ha rechazado el duelo --
-//378-389 vacíos
+//etc
+378: Eleanor ha entrado en modo %s.
+379: Ha ocurrido un error. El objeto [%s] no puede usarse todavía. Espera %.1f minutos.
+380: Ha ocurrido un error. El objeto [%s] no puede usarse todavía. Espera %d segundos.
+381: La habilidad ha fallado. Para utilizar [%s] necesitas %dx %s.
+382: Estás demasiado cerca de un emperium o una piedra guardián.
+//383-389 vacíos
 //NoAsk (rechazar invitaciones)
 390: Rechazas todas las invitaciones de manera automática.
 391: Ya no rechazas todas las invitaciones de manera automática.
@@ -466,7 +472,7 @@
 
 // Sistema de correo
 //----------------------
-510: Tienes un total de %d cartas (%d sin leer).
+510: Tienes un total de %d cartas nuevas (%d sin leer).
 
 // Mensajes de detección de bots (sin uso)
 535: Se ha detectado un posible bot (99% de probabilidades) o un cliente modificado: '%s' (cuenta: %d, char_id: %d). Este jugador te pregunta el nombre si estás escondido.
@@ -477,9 +483,9 @@
 539: Ese jugador tiene %d unidades del objeto (id: %d), pero ha intentado intercambiar %d.
 540: Ese jugador ha sido bloqueado.
 // Anuncios de consecución de objetos poco comunes y robos de objetos.
-541: '%s' ha conseguido %s's %s (probabilidad: %0.02f%%)
+541: '%s' ha conseguido de %s un %s (probabilidad: %0.02f%%)
 //541: %.0s%.0s alguien ha conseguido %s
-542: '%s' ha robado %s's %s (probabilidad: %0.02f%%)
+542: '%s' ha robado de %s un %s (probabilidad: %0.02f%%)
 //542: %.0s%.0s alguien ha robado%s
 //543~548 no se utilizan (pertenecían a @away)
 // @autotrade
@@ -609,7 +615,7 @@
 661: [^EE0000%s^000000]
 
 // Mensajes etc del código fuente
-662: Debes alejarte como mínimo %d celdas de ese NPC.
+662: Debes alejarte como mínimo %d celdas de cualquier NPC.
 663: Duelo: No puedes utilizar ese objeto en pleno duelo.
 664: No puedes utilizar ese comando estando muerto.
 665: No puedes crear una sala de chat en este mapa.
@@ -1462,11 +1468,11 @@
 1447: La opción '%s' no es válida.
 1448: Has borrado el canal '%s'.
 1449: La opción '%s' ya está activada (utiliza '@channel setopt %s 0' para desactivarla).
-1450: La opción '%s' ha sido activada para el canal '%s'.
+1450: La opción '%s' ha sido activada para el canal '#%s'.
 1451: El parámetro '%d' para la opción '%s' está fuera del rango (límite 0-10).
-1452: La opción '%s' ha sido activada para el canal '%s' en '%d' segundos.
-1453: La opción '%s' ha sido desactivada para el canal '%s'.
-//1454 vacío
+1452: La opción '%s' ha sido activada para el canal '#%s' en '%d' segundos.
+1453: La opción '%s' ha sido desactivada para el canal '#%s'.
+1454: Has asignado el color '%s' al canal.
 1455: Estás escribiendo demasiado rápido.
 1456: * %s ban <#nombre del canal> <jugador>
 1457: -- Prohíbe el acceso al canal a un jugador.

+ 22 - 20
doc/script_commands.txt

@@ -3847,38 +3847,40 @@ you have maximum. Like 'heal', this will not call up any animations or effects.
 
 ---------------------------------------
 
-*recovery <type>{,<id | mapname>,<revive_flag>{,<map>}};
+*recovery <type>{,<option>,<revive_flag>{,<map name>}};
 
-Recovery can be used to recover all HP/SP to specific characters as well as revive.
-Party and Guild type use party and guild ID.  This command will return 1 on
-successful use.
+This command will revive and fully restore the HP/SP of the selected characters.
+It returns 1 upon successful use.
 
-<type> is who you are targeting.  Valid types are:
-	- 0: Specific Character (<charid> or target is invoker)
-	- 1: Party (<partyid> or target party is invoker's)
-	- 2: Guild (<guildid> or target guild is invoker's)
-	- 3: Map (<string> or invoker map)
-	- 4: All
+<type> is the target, and determines the <option> parameter:
+ 0: Player  -> Character ID number
+ 1: Party   -> Party ID number
+ 2: Guild   -> Guild ID number
+ 3: Map     -> Map name (a string)
+ 4: All     -> None (takes <revive_flag> as option)
 
-<revive_flag> is used to determine what actions to take.
-	- 1: Revive and Recover (Default)
-	- 2: Only Full Heal
-	- 4: Only Revive
+If no option is specified, the invoking player's character ID, party ID, guild ID,
+or map will be used.
 
-<map> is used only when <type> is 1-2 (Party/Guild) to define a single map where
-the party or guild gets the recovery.
+<revive_flag> determines the action:
+ 1: Revive and heal all players (default)
+ 2: Heal living players only
+ 4: Revive dead players only
+
+<map name> can optionally be used to define a single map to execute the command on
+for types 1 (party) and 2 (guild).
 
 Examples:
-	//Only revive characters in invoking party on map morocc
+	// Only revive characters in invoking party on map "morocc"
 	recovery 1,getcharid(1),4,"morocc";
 
-	//Fully heal (don't revive) all members of invoking character's guild
+	// Fully heal (don't revive) all members of invoking character's guild
 	recovery 2,getcharid(2),2;
 
-	//Revive and fully heal everyone in map prontera
+	// Revive and fully heal everyone in map "prontera"
 	recovery 3,"prontera";
 
-	//Only revive all dead characters on server
+	// Only revive all dead characters on server
 	recovery 4,4;
 
 ---------------------------------------

+ 1 - 1
npc/custom/healer.txt

@@ -53,7 +53,7 @@ malangdo,132,114,6	duplicate(Healer)	Healer#mal	909
 malaya,205,205,6	duplicate(Healer)	Healer#malay	909
 manuk,256,176,6	duplicate(Healer)	Healer#man	909
 mid_camp,203,289,6	duplicate(Healer)	Healer#mid	909
-mora,106,100,6	duplicate(Healer)	Healer#mora	909
+mora,55,152,4	duplicate(Healer)	Healer#mora	909
 morocc,153,97,6	duplicate(Healer)	Healer#mor	909
 moscovia,215,194,6	duplicate(Healer)	Healer#mos	909
 niflheim,188,180,5	duplicate(Healer)	Healer#nif	909

+ 1 - 1
npc/custom/warper.txt

@@ -381,7 +381,7 @@ manuk,262,177,4	duplicate(Warper)	Warper#34	811
 splendide,205,153,4	duplicate(Warper)	Warper#35	811
 mid_camp,216,288,4	duplicate(Warper)	Warper#36	811
 dicastes01,194,194,6	duplicate(Warper)	Warper#37	811
-mora,110,100,4	duplicate(Warper)	Warper#38	811
+mora,57,152,4	duplicate(Warper)	Warper#38	811
 moscovia,216,196,6	duplicate(Warper)	Warper#39	811
 nameless_n,259,213,4	duplicate(Warper)	Warper#40	811
 niflheim,205,179,4	duplicate(Warper)	Warper#41	811

+ 8 - 15
npc/merchants/quivers.txt

@@ -10,10 +10,10 @@
 //= [Official Conversion]
 //= Turns arrows into Arrow Quivers.
 // Breakdown of Subroutine "S_BuyQuiver"
-// arg(0): Type of Arrow to be packaged (item ID)
-// arg(1): How many of each 'getarg(0)' arrow per quiver
+// arg(0): Type of Arrow to be packaged (item ID).
+// arg(1): How many of each 'getarg(0)' arrow per quiver.
 // arg(2): The cost of making a 'getarg(0)' quiver.
-// arg(3): The quiver given by the NPC. (item ID)
+// arg(3): The quiver given by the NPC (item ID).
 //===== Additional Comments: =================================
 //= 07/06/05 : Added 1st Version. [Muad_Dib]
 //= Converted to rAthena format by Dr.Evil
@@ -25,14 +25,7 @@
 //============================================================
 
 payon_in01,5,134,5	script	Inventor Jaax	89,{
-	if (checkweight(1201,1) == 0) {
-		mes "[Inventor Jaax]";
-		mes "Hey, you're carrying";
-		mes "way too much stuff. Why don't you stash it away in Kafra Storage? We can talk after you do that, right?";
-		close;
-	}
-	set .@now_weight,MaxWeight-Weight;
-	if (.@now_weight < 2000) {
+	if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
 		mes "[Inventor Jaax]";
 		mes "Hey, you're carrying";
 		mes "way too much stuff. Why don't you stash it away in Kafra Storage? We can talk after you do that, right?";
@@ -49,7 +42,7 @@ payon_in01,5,134,5	script	Inventor Jaax	89,{
 	mes "created something";
 	mes "truly extraordinary. I call them... ^663300Magic Quivers^000000 !! This will be remembered in history as an";
 	mes "arrow revolution!";
-	Emotion e_no1;
+	emotion e_no1;
 	next;
 	mes "[Inventor Jaax]";
 	mes "I've studied magic and quivers for years, working night and day until I finally figured how to condense arrows with magic! With magic quivers, you'll be carrying more arrows, but with less weight!";
@@ -78,7 +71,7 @@ payon_in01,5,134,5	script	Inventor Jaax	89,{
 	//close;
 
 S_BuyQuiver:
-	if (countitem(getarg(0)) > 499) {
+	if (countitem(getarg(0)) >= getarg(1)) {
 		mes "[Inventor Jaax]";
 		mes "Excellent!";
 		mes "Are you carrying any Arrows with you? I'll provide you with a quiver that can carry "+getarg(1)+" of your "+getitemname(getarg(0))+"s for only ^FF3131"+getarg(2)+" Zeny^000000.";
@@ -168,11 +161,11 @@ S_BuyQuiver:
 	}
 	else {
 		mes "[Inventor Jaax]";
-		mes "You can carry a maximum of 500 Arrows within this quiver. It was made using my secret method,";
+		mes "You can carry a maximum of "+getarg(1)+" Arrows within this quiver. It was made using my secret method,";
 		mes "so the total weight of the Arrows and Quiver is less than carrying the Arrows alone.";
 		next;
 		mes "[Inventor Jaax]";
-		mes "It's a miracle of science! One that you can experience for yourself if you bring me at least 500 Arrows and 500 Zeny for each Quiver.";
+		mes "It's a miracle of science! One that you can experience for yourself if you bring me at least "+getarg(1)+" Arrows and "+getarg(2)+" Zeny for each Quiver.";
 		close;
 	}
 }

+ 800 - 237
npc/re/cities/mora.txt

@@ -1,9 +1,9 @@
 //===== rAthena Script ======================================= 
 //= Mora Village
 //===== By: ================================================== 
-//= SuperHulk
+//= Euphy
 //===== Current Version: ===================================== 
-//= 1.2
+//= 1.3
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: ========================================= 
@@ -13,309 +13,872 @@
 //= 1.1 Translations to English. [Flaid]
 //= 1.1a Standardized. [Euphy]
 //= 1.2 Added new NPCs. [Flaid]
+//= 1.3 Replaced with full iRO town NPCs. [Euphy]
 //============================================================ 
 
-mora,185,163,5	script	Mora Citizen#1	516,{
-	mes "[Scholar Gary]";
-	mes "Hello, traveler!";
-	mes "I'm Gary, the expert about enchantments in this area.";
-	mes "What do you want to know?";
+mora,52,138,6	script	Mungmung#mora	516,{
+	mes "[Mungmung]";
+	mes "I'm not the innkeeper!";
+	mes "Why do people want to pay me when they see me?";
+	close;
+}
+
+mora,43,127,4	script	Innkeeper#mora	522,{
+	mes "[Innkeeper]";
+	mes "Oh~ looks like we have another adventurer.";
+	mes "Where are you from?";
 	next;
-	switch(select("Fundamentals of enchantment.:Nothing.")) {
+	switch(select("Save.:I'd like to get some rest.:The place I used to live is called...:How can I use the warehouse?")) {
 	case 1:
-		mes "[Scholar Gary]";
-		mes "Ah, I see that you are interested";
-		mes "in enchantments!";
-		mes "Alright, here are the basics!!";
-		mes "After this you should understand";
-		mes "the mysteries of our enchantments!";
-		next;
-		mes "[Scholar Gary]";
-		mes "First of all, you must know";
-		mes "that this is magic, not an";
-		mes "exact science.";
-		next;
-		mes "[Scholar Gary]";
-		mes "You don't really know what will";
-		mes "happen. You can be lucky or";
-		mes "unlucky, and get a more or";
-		mes "less powerful enchantment.";
-		next;
-		mes "[Scholar Gary]";
-		mes "You can miss the magic, too!";
-		mes "If this happens while your equip";
-		mes "is being enchanted, you'll lose it";
-		mes "all previous enchantments, cards, and the refine!";
-		next;
-		mes "[Scholar Gary]";
-		mes "There is also a risk of";
-		mes "breaking your equipment";
-		mes "while trying to enchant";
-		mes "your equip with a second enchantment!";
-		next;
-		mes "[Scholar Gary]";
-		mes "Each attempt to enchant will cost";
-		mes "you 1 Mora coin and 100,000 zeny.";
-		mes "If you don't know yet, the money";
-		mes "made with this service goes";
-		mes "straight to the people of Mora!";
-		next;
-		mes "[Scholar Gary]";
-		mes "Those were the basics.";
-		mes "Take them to your heart.";
-		mes "For more details, you can";
-		mes "always visit my master,";
-		mes "Gougueulé Tonami!";
+		mes "[Innkeeper]";
+		mes "Wow, what's the rush?";
+		mes "You've just come here, and you're already going someplace else?";
+		next;
+		mes "[Innkeeper]";
+		mes "You know, haste makes waste. Tsk tsk.";
+		mes "Well, the game's been saved.";
+		savepoint "mora",57,142;
 		close;
 	case 2:
-		mes "[Scholar Gary]";
-		mes "Goodbye, and good luck!";
+		mes "[Innkeeper]";
+		mes "My my, I need some rest also.";
+		mes "The rate is 5000 zeny. Do you want a room?";
+		next;
+		if(select("Yes:No") == 1) {
+			if (Zeny >= 5000) {
+				mes "[Innkeeper]";
+				mes "Make yourself at home.";
+				close2;
+				set Zeny, Zeny-5000;
+				percentheal 100,100;
+				warp "mora",32,123;
+				end;
+			}
+		}
+		mes "[Innkeeper]";
+		mes "If you don't have the money, go soak yourself in the puddle in the center of the village.";
+		mes "It will warm you up.";
+		close;
+	case 3:
+		input .@str$;
+		mes "["+strcharinfo(0)+"]";
+		mes "I come from a place called "+.@str$+".";
+		next;
+		mes "[Innkeeper]";
+		mes "Oh, I think I've heard about the place before!";
+		next;
+		mes "[Innkeeper]";
+		mes "I heard that there are creeps there who won't get up at all even if it rains or snows, or their sweethearts or parents call them!";
+		mes "And that black clouds hover over them all the time, causing a storm!";
+		next;
+		mes "[Innkeeper]";
+		mes "How terrible!";
+		close;
+	case 4:
+		mes "[Innkeeper]";
+		mes "Search through the vegetable-shaped drawer to my right.";
 		close;
 	}
 }
 
-mora,52,138,8	script	Mora Citizen#2	516,{
-	mes "[Valere]";
-	mes "Hello, adventurer!";
-	mes "You look like you're";
-	mes "lost, aren't you!?";
-	next;
-	mes "[Valere]";
-	mes "...";
-	mes "Ah, okay.";
-	mes "But you look like you want to";
-	mes "enchant your equipment!";
+mora,48,128,0	script	Drawer	111,{
+	mes "- The figure 1 0 0 is written in small letters on the vegetable-shaped drawer. -";
 	next;
-	mes "[Valere]";
-	mes "I only need to know one thing";
-	mes "before telling you more about";
-	mes "the Mora equipment enchants!";
-	mes "So tell me, what is your class?";
-	next;
-	switch(select("Warlock.:Arch Bishop.:Ranger.:Guillotine Cross.:Rune Knight.:Other.:Goodbye.")) {
+	switch(select("Insert 100 zeny.:Don't do anything.")) {
 	case 1:
-		mes "[Valere]";
-		mes "Hmm, you should visit the";
-		mes "Artifact Crafter.";
-		mes "That is our enchantment specialist";
-		mes "for Warlock equipment!";
+		if (Zeny < 100) {
+			mes "I don't have enough zeny.";
+			mes "I need at least 500 zeny to use the Drawer.";
+			close;
+		}
+		if (basicskillcheck() && getskilllv("NV_BASIC") < 6) {
+			mes "The drawer is not working for me.";
+			mes "Maybe I am not yet qualified to use the Drawer yet.";
+			close;
+		}
+		set Zeny, Zeny-100;
+		openstorage;
 		close;
 	case 2:
-		mes "[Valere]";
-		mes "Hmm, you should visit the";
-		mes "Master of Relics.";
-		mes "That is our enchantment specialist";
-		mes "for Arch Bishop equipment!";
-		close;
-	case 3:
-	case 4:
-	case 5:
-		mes "[Valere]";
-		mes "Hmm, you should visit the";
-		mes "Artifact Researcher.";
-		mes "That is our enchantment specialist";
-		mes "for Ranger, Guillotine Cross,";
-		mes "and Rune Knight equipment!";
-		close;
-	case 6:
-		mes "[Valere]";
-		mes "Hmm, there is the Master Tailor";
-		mes "who sells and enchants the 'Army Padding'.";
-		next;
-		mes "[Valere]";
-		mes "There's also the Pendant Crafter";
-		mes "who enchants 'Pendant of Guardian'.";
-		next;
-		mes "[Valere]";
-		mes "And finally the Bulberry Westhood";
-		mes "who enchants 'Loki's muffler'.";
-		close;
-	case 7:
-		mes "[Valere]";
-		mes "Goodbye, and good luck!";
+		mes "- You gave up using the warehouse. -";
 		close;
 	}
 }
 
-mora,160,123,5	script	Mora Citizen#3	517,{
-	mes "[Boudril]";
-	mes "Hey, you seem to be";
-	mes "so far from home!";
-	mes "Mora is a remote town.";
-	mes "That's why we have";
-	mes "own currency here!";
+mora,43,113,4	script	Wounded Rafflesia#mora	517,{
+	mes "[Wounded Raffle]";
+	mes "Ugghh... What was it";
+	mes "that was in the bath... Arrrghh...";
+	mes "To attack suddenly like that... Be careful...";
+	mes "Whatever it is in there, it's very aggressive.";
+	close;
+}
+
+mora,30,128,4	script	Relaxing Traveler#mora1	514,{
+	mes "[Traveler]";
+	mes "The Mora Inn is famous";
+	mes "for its unusual pieces of furniture.";
+	mes "Mushroom closets and apple dressers...";
+	mes "Aren't they so innovative?";
 	next;
-	mes "[Boudril]";
-	mes "Beyond that, our community";
-	mes "developed this craft.";
-	mes "Items found here cannot";
-	mes "be found anywhere else!";
+	select("... ... ...");
+	mes "[Traveler]";
+	mes "Sorry... maybe it's just me...";
+	emotion e_sry;
 	close;
 }
 
-mora,105,100,3	script	Mora Citizen#4	518,{
-	mes "[Buisso]";
-	mes "Hello, my friend.";
-	mes "What brings you to this";
-	mes "place, so far from home?";
-	mes "Are you looking for a challange?";
-	mes "You won't be disappointed here!";
+mora,105,104,4	script	Boaster#mora	514,{
+	mes "[Boaster]";
+	mes "So the situation";
+	mes "was at its worst.";
+	next;
+	mes "[Raffles]";
+	mes "Oh~!";
+	next;
+	mes "[Boaster]";
+	mes "Bored to death, I started to cry.";
+	mes "Then I fell asleep, tired from all the crying.";
+	mes "And when I woke up,";
+	mes "I was even more bored";
+	mes "than before!";
 	next;
-	mes "[Buisso]";
-	mes "We are surrounded by the";
-	mes "Bifrost, an area with powerful";
-	mes "and deceitful monsters...";
-	mes "So cute, but still dangerous.";
+	mes "[Raffles]";
+	mes "Oh, oh!";
+	mes "That's terrible, so terrible.";
+	mes "How could that happen?!";
+	next;
+	mes "[Boaster]";
+	mes "So the situation got";
+	mes "more and more serious...";
+	mes "Now give me some more coins.";
+	emotion e_swt2,1;
 	close;
 }
 
-mora,98,104,4	script	Mora Citizen#5	516,{
-	mes "[Malavida]";
+mora,101,107,6	script	Excited Raffle#mora	518,{
+	mes "[Excited Raffle]";
+	mes "Wow~";
+	mes "The story is no fun at all.";
+	mes "Wow~!";
+	mes "But it's as if we were singing in chorus -";
+	mes "it's really fun.";
+	mes "Wow~!";
+	close;
+}
+
+mora,102,107,6	script	Relieved Raffle#mora	517,{
+	mes "[Relieved Raffle]";
+	mes "Wow~!";
+	mes "This is exciting.";
+	mes "He woke up safe and sound again!";
+	mes "Well, I'm sure he will next time!";
 	mes "...";
-	mes "What!? I look depressed!?";
-	mes "It's normal living here!";
-	mes "My dream was to be like you!";
 	next;
-	mes "[Malavida]";
-	mes "Traveling around the world,";
-	mes "chasing monsters,";
-	mes "hunting treasure...";
-	mes "You have the chance. Use it!";
+	mes "[Relieved Raffle]";
+	mes "Eh?";
+	close;
+}
+
+mora,98,104,6	script	Moved Raffle#mora	516,{
+	mes "[Moved Raffle]";
+	mes "This is sad, too sad!";
+	mes "I'm not sure why,";
+	mes "but it must be sad";
+	mes "because everybody else says so.";
+	close;
+}
+
+mora,103,100,6	script	Impressed Raffle#mora	518,{
+	mes "[Impressed Raffle]";
+	mes "Wow! Wow!";
+	close;
+}
+
+mora,105,100,2	script	Rangrang#mora	518,{
+	mes "[Rangrang]";
+	mes "I've never heard such a boring and sad story.";
+	mes "I feel like crying!";
+	close;
+}
+
+mora,99,100,8	script	Decoy#mora	515,{
+	mes "[A Decoy]";
+	mes "Oh~!";
+	mes "That's just so";
+	mes "unbelievable!";
+	mes "I'm so curious, let's give him some coins!";
+	close;
+}
+
+mora,122,97,5	script	Relaxing Rafflesia#mora	517,{
+	mes "[Relaxing Rafflesia]";
+	mes "The public bath in the center of the village is a symbol of Mora Village.";
+	next;
+	mes "[Relaxing Rafflesia]";
+	mes "It's not just a simple puddle.";
+	mes "It has tremendous power";
+	mes "to heal wounds.";
+	next;
+	mes "[Relaxing Rafflesia]";
+	mes "Try walking in the bath";
+	mes "if you want to see for yourself.";
+	mes "It will slowly but surely heal your wounds.";
+	close;
+}
+
+mora,123,94,8	script	Visitor to Mora#mora1	515,{
+	mes "[Visitor to Mora]";
+	mes "I'm stuck here because of the crevice, which appeared out of nowhere.";
+	mes "Ha......";
+	close;
+}
+
+mora,155,72,4	script	Visitor to Mora#mora2	513,{
+	mes "[Visitor to Mora]";
+	mes "Isn't this one cheerful village?";
+	mes "With Bifrost blocked like that, I'm thinking of settling here permanently.";
+	close;
+}
+
+mora,130,96,4	script	Relaxing Traveler#mora2	513,{
+	mes "[Traveler]";
+	mes "The Rafflesia in Mora Village all look alike, so it's so confusing.";
+	mes "It's like looking at centuplets...";
+	next;
+	mes "[Traveler]";
+	mes "However! If you look closely,";
+	mes "you'll find each of them has a personality.";
+	mes "To find it is one of the fun things";
+	mes "you can do in the village.";
+	close;
+}
+
+mora,160,123,4	script	Nemnem#mora	517,{
+	mes "[Nemnem]";
+	mes "My pain is getting worse and worse";
+	mes "since the crevice appeared in Bifrost.";
+	mes "Are you responsible for it, young one?";
+	next;
+	switch(select("Of course I am!:That's an unfair accusation!")) {
+	case 1:
+		mes "[Nemnem]";
+		mes "Bra~vo!";
+		emotion e_awsm;
+		close;
+	case 2:
+		mes "[Nemnem]";
+		mes "If not, never mind!";
+		emotion e_swt2,1;
+		close;
+	}
+}
+
+mora,177,157,6	script	Indifferent Worker#mora	518,{
+	mes "[Novice Worker]";
+	mes "I'll come out of the Labyrinth Forest and become a hero!";
+	next;
+	mes "[Indifferent Worker]";
+	mes "I hear somebody already did that.";
+	next;
+	mes "[Novice Worker]";
+	mes "What if I say I'm that somebody?";
+	next;
+	mes "[Indifferent Worker]";
+	mes "Forget it. It's more believable";
+	mes "to say I did it.";
+	next;
+	mes "[Novice Worker]";
+	mes "Well, that's true.";
+	close;
+}
+
+mora,179,155,2	script	Novice Worker#mora	516,{
+	mes "[Novice Worker]";
+	mes "I'll come out of the Labyrinth Forest and become a hero!";
+	next;
+	mes "[Indifferent Worker]";
+	mes "I hear somebody already did that.";
+	next;
+	mes "[Novice Worker]";
+	mes "What if I say I'm that somebody?";
+	next;
+	mes "[Indifferent Worker]";
+	mes "Forget it. It's more believable";
+	mes "to say I did it.";
+	next;
+	mes "[Novice Worker]";
+	mes "Well, that's true.";
 	close;
 }
 
-mora,102,107,6	script	Mora Citizen#6	517,{
-	mes "[Skape]";
-	mes "Have you tasted our dish?";
-	mes "The beef toast!?";
-	mes "This delicious beef only";
-	mes "exists in the Bifrost!";
+mora,175,161,6	script	Warehouse Worker#mora1	518,{
+	mes "[Kuorita]";
+	mes "Oh... this duck...";
+	next;
+	mes "[Kuorita]";
+	mes "Its slender red beak...";
+	mes "and the blush on its cheeks...";
+	mes "and its wings, ready to take off";
+	mes "any moment...";
 	next;
-	mes "[Skape]";
-	mes "If you want to taste this";
-	mes "dish, visit our chef.";
-	mes "He makes the best";
-	mes "Mora beef toast!";
+	mes "[Kuorita]";
+	mes "I want to have it badly...";
+	mes "What would happen if I stole it?";
 	close;
 }
 
-mora,101,107,4	script	Mora Citizen#7	518,{
-	mes "[Wouadel Kami]";
-	mes "*Dances*";
-	mes "I'm a choreographer, but";
-	mes "nobody understands me.";
-	mes "*doridori*";
-	mes "*bingbing*";
-	mes "*bangbang*";
+mora,168,161,4	script	Warehouse Worker#mora2	513,{
+	mes "[Lively]";
+	mes "The inn over there~";
+	mes "It should've been mine~";
+	next;
+	mes "[Lively]";
+	mes "The store over there~";
+	mes "It should've been mine as well~";
+	next;
+	mes "[Lively]";
+	mes "The warehouse here~";
+	mes "and all the things in it~";
+	mes "All of those should've been mine~";
+	mes "All of those should've been mine~";
+	next;
+	mes "[Lively]";
+	mes "Ahhh... I'd like to make money...";
 	close;
 }
 
-mora,103,100,6	script	Mora Citizen#8	518,{
-	mes "[Didier Lans]";
-	mes "Yooo gaba gaba!";
-	mes "Hello, my dear. You've heard";
-	mes "about my teachings, have you?";
-	mes "Do not hit your friends!";
-	mes "*makes small steps backwards*";
+mora,174,171,8	script	Warehouse Worker#mora3	518,{
+	mes "[Shortffle]";
+	mes "I want to climb the ladder,";
+	mes "but my legs are too short to do that.";
+	emotion e_sob;
 	next;
-	mes "[Didier Lans]";
-	mes "Yooo gaba gaba!";
-	mes "Eat your vegetables.";
-	mes "*is the fool*";
-	mes "Be smart, be polite!";
-	mes "Yooo gaba gaba!";
+	mes "[Shortffle]";
+	mes "I wonder who brought it here.";
 	close;
 }
 
-mora,184,169,3	script	Mora Citizen#9	516,{
-	mes "[Moussa Wi]";
-	mes "Bleh, I've been";
-	mes "here for too long.";
-	mes "Living with these dogs...";
-	mes "Having nothing to do...";
-	mes "Hmm, how about you";
-	mes "take care of them?";
+mora,184,169,6	script	Worker#mora1	516,{
+	mes "[Worker]";
+	mes "I heard that somebody made it out of the Labyrinth Forest alive.";
+	mes "Whoever it is, I want to meet this person myself.";
 	close;
 }
 
-mora,108,182,3	script	Mora Citizen#10	516,{
-	mes "[Yosou Keh]";
-	mes "Hello!";
-	mes "I am Yosou Keh,";
-	mes "a resident of Mora.";
-	mes "The Bifrost is populated";
-	mes "with many strong monsters...";
+mora,108,182,6	script	Worker#mora2	516,{
+	mes "[Worker]";
+	mes "Stay clear of the Labyrinth Forest.";
+	mes "Don't ever dream of peeking in out of curiosity.";
+	mes "Lots of travelers have gone missing after going there.";
 	close;
 }
 
-mora,113,185,5	script	Mora Citizen#11	516,{
-	mes "[Ninkasi]";
-	mes "Hey, dude.";
-	mes "How are you today, dude?";
-	mes "What can I do for you, dude?";
+mora,99,65,6	script	Banana Rafflesia#mora	516,{
+	mes "[Banana Rafflesia]";
+	mes "You want a banana?";
 	next;
-	switch(select("Why do you call me 'dude'?:Goodbye.")) {
+	switch(select("Yes, I do.:No, thanks.")) {
 	case 1:
-		mes "[Ninkasi]";
-		mes "Why not?";
-		mes "Calling others 'dude'";
-		mes "is my brand mark.";
-		mes "Be cool, dude, relax!";
-		mes "Enjoy your life, dude!";
+		mes "[Banana Rafflesia]";
+		mes "Take it if you can.";
+		mes "If you are successful, you can have it for free.";
+		emotion e_ok;
 		close;
 	case 2:
-		mes "[Ninkasi]";
-		mes "See you again, dude!";
+		mes "[Banana Rafflesia]";
+		mes "Well, I was going to give it for free,";
+		mes "but if you don't want it, it's fine with me.";
+		emotion e_pif;
 		close;
 	}
 }
 
-mora,43,127,4	script	Mora Citizen#12	522,{
-	mes "[Glouti Vori]";
-	mes "Mm, I love this beef toast!";
-	mes "That's the only reason I'm";
-	mes "still here! There's nothing";
-	mes "better than Mora beef toast!";
+mora,134,185,4	script	Mora Villager#sleep1	525,{
+	mes "[Mora Villager]";
+	mes "Snort--";
 	close;
 }
 
-mora,35,119,7	script	South World Dealer	513,{
-	mes "[South World Dealer]";
-	mes "...";
+mora,133,185,6	script	Mora Villager#sleep2	524,{
+	mes "[Mora Villager]";
+	mes "Snore--";
+	close;
+}
+
+mora,134,184,2	script	Mora Villager#sleep3	516,{
+	mes "[Mora Villager]";
+	mes "Phew phew pheeew--";
+	close;
+}
+
+mora,133,183,7	script	Mora Villager#sleep4	518,{
+	end;
+}
+
+mora,132,185,6	script	Mora Villager#sleep5	518,{
+	mes "[Mora Villager]";
+	mes "Phew-- Phew--";
+	close;
+}
+
+mora,132,184,6	script	Mora Villager#sleep6	522,{
+	mes "[Mora Villager]";
+	mes "Snort--";
+	close;
+}
+
+mora,132,183,8	script	Mora Villager#sleep7	524,{
+	mes "[Mora Villager]";
+	mes "- z Z";
+	close;
+}
+
+mora,133,184,2	script	Mora Villager#sleep8	1162,{
+	end;
+}
+
+mora,134,183,2	script	Mora Villager#sleep9	522,{
+	mes "[Mora Villager]";
+	mes "- z Z";
 	close;
 }
 
-mora,139,102,4	script	Milvida	515,{
-	mes "[Milvida]";
-	mes "Welcome to Mora~";
-	mes "In the center of the city";
-	mes "you can find all the shops";
-	mes "and some enchanters.";
+mora,105,176,4	script	Master Tailor#mora	509,{
+	mes "[Master Tailor]";
+	mes "With my touch, I can turn a typical army padding into a piece of art. I'm Kay the Master Tailor, creating art with army paddings.";
 	next;
-	mes "[Milvida]";
-	mes "Northeast of the city is";
-	mes "where the food is located.";
+	mes "[Master Tailor]";
+	mes "Well, what's in a name? I can turn your army padding into a piece of art if you bring ^ff00005 Mora Coins and an Army Padding^000000.";
 	close;
 }
 
-mora,55,124,2	script	Cat Traveler	495,{
-	mes "[Cat Traveler]";
-	mes "This city is like Malangdo";
-	mes "in several aspects,";
-	mes "don't you think?";
+mora,104,172,8	script	Victim#mora	520,{
+	mes "[Victim]";
+	mes "You Bastard! I want my rugged outwear! That was passed on to me by my father *SOB*";
+	next;
+	mes "^990099 It seems that he has gotten a great deal of damage from the art dealer.^000000";
+	close;
+}
+
+mora,125,174,2	script	A Random Customer#mora	520,{
+	mes "[Naive Customer]";
+	mes "I don't know when carving my pendant will be completed. Since he is reliable art dealer, I suppose he won't break my pendant.";
+	close;
+}
+
+mora,123,177,6	script	Pendant Crafter#mora	509,{
+	mes "[Pendant Crafter]";
+	mes "My job is to polish the stone in a Guardian's Pendant, and then carve a symbol with special power on it.";
+	next;
+	mes "[Pendant Crafter]";
+	mes "The process gives the Guardian's Pendant more power than an ordinary accessory.";
+	next;
+	mes "[Pendant Crafter]";
+	mes "If you're interested, I can work on your pendant for ^ff00005 Mora Coins^000000. Of course you need to have a Guardian's Pendant so I can work on with you.";
 	close;
 }
 
-mora,131,165,4	script	Bifrost Resident#1	520,{
-	mes "[Bifrost Resident]";
-	mes "Welcome to the workshop";
-	mes "of the west clan. If you";
-	mes "want your Loki Muffler";
-	mes "enchanted, please contact";
-	mes "my boss. He makes miracles!";
+mora,134,166,4	script	Bulberry Westhood#mora	509,{
+	mes "[Bulberry Westhood]";
+	mes "I'm Bulberry Westhood, keeping the tradition of quality hoods alive.";
+	next;
+	mes "[Bulberry Westhood]";
+	mes "I only handle quality items - not random scarfs from a marketplace.";
+	next;
+	mes "[Bulberry Westhood]";
+	mes "If you have anything that you think is of high enough quality, come find me with ^ff00005 Mora Coins^000000.";
 	next;
-	mes "[Bifrost Resident]";
-	mes "On a side note... I think I'm";
-	mes "really cute, don't you agree?";
+	mes "[Bulberry Westhood]";
+	mes "I can improve its high quality with my own hands.";
+	close;
+}
+
+mora,131,165,8	script	Wandering Customer#mora	520,{
+	mes "[Wandering Customer]";
+	mes "I don't know whether to believe this art dealer... He made me stand here like this for days.... Ah... I feel dizzy.";
 	close;
-}
+}
+
+mora,113,185,4	script	Reading Rafflesia#mora	516,{
+	mes "You see a Rafflesia";
+	mes "lost in reading.";
+	next;
+	switch(select("See what he's reading.:Leave him alone.")) {
+	case 1:
+		mes "Curious about what he's reading,";
+		mes "you quietly approach him from behind.";
+		mes "The Rafflesia is reading in a low voice.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "Seiren was going to Eremes's.";
+		mes "He was going there to borrow";
+		mes "Eremes's reference books,";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "but he also hoped to see";
+		mes "his beautiful sister, Seiren.";
+		mes "Seiren knocked on Eremes's door";
+		mes "with his heart pounding.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "Knock! Knock! Knock!";
+		mes "Excuse me. Is anybody there?";
+		mes "... ... ...";
+		mes "He doesn't hear anything.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "Is there nobody home?";
+		mes "He knocked again,";
+		mes "afraid that he might have";
+		mes "made the trip for nothing.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "Knock! Knock! Knock!";
+		mes "No answer again. Is there nobody home?";
+		mes "He knew it was rude to do that,";
+		mes "but he decided to enter anyway";
+		mes "and wait for Eremes to come back home.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "Seiren opened the front door";
+		mes "with his heart throbbing.";
+		mes "*squeak*";
+		mes "The door wasn't locked.";
+		mes "Eremes seems to be away for a while.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "Seiren entered the house hesitantly.";
+		mes "The moment he stepped into the house,";
+		mes "he heard a sound of water running.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "Seiren suddenly came to his senses,";
+		mes "and turned back to go out.";
+		mes "But right at the moment!!";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "*thud*";
+		mes "The bathroom door opened,";
+		mes "and with white steam pouring out came a foot.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "Seiren's heart almost stopped";
+		mes "at the sight of it. And a moment later,";
+		mes "somebody came out from the bathroom,";
+		mes "with just a towel around her body.";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "With her body still wet";
+		mes "from the shower...";
+		next;
+		mes "[Reading Rafflesia]";
+		mes "*gasp* Who are you? How long";
+		mes "were you standing there? How rude.";
+		emotion e_omg;
+		next;
+		mes "The Rafflesia closed the book hastily.";
+		mes "You're curious what will happen next,";
+		mes "but you've been rude enough,";
+		mes "so you just give up.";
+		close;
+	case 2:
+		mes "You leave the place quietly";
+		mes "in order not to disturb";
+		mes "the Rafflesia, who was lost in reading.";
+		close;
+	}
+}
+
+mora,140,186,4	script	Rafflesia Philosopher	517,{
+	mes "[Rafflesia Philosopher]";
+	mes "With a little token of appreciation, I will tell you a quote that will help you in your life.";
+	next;
+	switch(select("Give him a token of appreciation.:Can't you just tell me?")) {
+	case 1:
+		mes "[Rafflesia Philosopher]";
+		mes "How much are you willing to give me?";
+		mes "You can pay me in the currencies listed below.";
+		mes "Enter the sum you're willing to pay. Enter 0 if you don't want to pay anything.";
+		next;
+		input .@amount;
+		if (.@amount < 100 || .@amount > 1000000) {
+			mes "[Rafflesia Philosopher]";
+			mes "You can pay between ^FF0000 100 and 1000000^000000.";
+			close;
+		}
+		if (Zeny < .@amount) {
+			mes "[Rafflesia Philosopher]";
+			mes "So you think this is what my time is worth?";
+			close;
+		}
+		mes "[Rafflesia Philosopher]";
+		mes "The quote I'm going to tell you is...";
+		mes "Let's see... Wait a second.";
+		set Zeny, Zeny-.@amount;
+		next;
+		mes ". . . . . . . . .";
+		next;
+		mes ". . . . . . . . .";
+		next;
+		mes ". . . . . . . . .";
+		next;
+		mes "[Rafflesia Philosopher]";
+		mes "Okay! I think this is the one for you.";
+		next;
+		mes "[Rafflesia Philosopher]";
+		mes strcharinfo(0)+", the quote I'm going to tell you is...";
+
+		// There are more cases, but you get the point.
+		switch(rand(16)) {
+		case 0:
+			mes "We don't laugh because we're happy";
+			mes "- we're happy because we laugh.";
+			mes "- William James -";
+			break;
+		case 1:
+			mes "Humility is the most difficult";
+			mes "of all virtues to achieve,";
+			mes "nothing dies harder than the desire";
+			mes "to think well of oneself.";
+			mes "- T. S. Eliot -";
+			break;
+		case 2:
+			mes "If it's that painful, why do you keep doing it?";
+			mes "The answer's simple.";
+			mes "Because it makes my heart beat,";
+			mes "because it excites me.";
+			mes "My body might suffer, but I'm a lot happier";
+			mes "doing what I have always wanted to do.";
+			mes "- Biya Han -";
+			break;
+		case 3:
+			mes "The superior man thinks always";
+			mes "of virtue; the common man";
+			mes "thinks of comfort.";
+			mes "- Confucius -";
+			break;
+		case 4:
+			mes "Despair is an illness leading to death.";
+			mes "- Kierkegaard -";
+			break;
+		case 5:
+			mes "To eat bread without hope is";
+			mes "still slowly to starve to death.";
+			mes "- Pearl Buck -";
+			break;
+		case 6:
+			mes "The end comes when we";
+			mes "no longer talk with ourselves.";
+			mes "It is the end of genuine thinking";
+			mes "and the beginning of the final loneliness.";
+			mes "- Edward Gibbon -";
+			break;
+		case 7:
+			mes "Look deep into nature,";
+			mes "and then you will understand";
+			mes "everything better.";
+			mes "- Albert Einstein -";
+			break;
+		case 8:
+			mes "Beware of a man";
+			mes "of one book.";
+			mes "- English Proverb -";
+			break;
+		case 9:
+			mes "A bad peace is better";
+			mes "than a good war.";
+			mes "- Russian Proverb -";
+			break;
+		case 10:
+			mes "I do not have much patience";
+			mes "with a thing of beauty";
+			mes "that must be explained";
+			mes "to be understood.";
+			mes "If it does need additional interpretation";
+			mes "then I question";
+			mes "whether it has fulfilled its purpose.";
+			mes "- Charlie Chaplin -";
+			break;
+		case 11:
+			mes "The best and most beautiful things in the world";
+			mes "cannot be seen or even touched -";
+			mes "they must be felt with the heart.";
+			mes "- Helen Keller -";
+			break;
+		case 12:
+			mes "One should never rush marriage.";
+			mes "Unlike fruit, marriage is";
+			mes "always in season.";
+			mes "- Leo Tolstoy -";
+			break;
+		case 13:
+			mes "An eye for an eye";
+			mes "only ends up";
+			mes "making the whole world blind.";
+			mes "- Gandhi-";
+			break;
+		case 14:
+			mes "A day without laughter is a day wasted.";
+			mes "- Charlie Chaplin -";
+			break;
+		case 15:
+			mes "Laugh, and the world laughs";
+			mes "with you; weep, and";
+			mes "you weep alone.";
+			mes "- Ella Wheeler Wilcox -";
+			break;
+		}
+		next;
+		mes "[Rafflesia Philosopher]";
+		mes "People take what they hear";
+		mes "differently.";
+		next;
+		mes "[Rafflesia Philosopher]";
+		mes "I wonder what you think";
+		mes "about what I've told you.";
+		next;
+		input .@input1$;
+		mes "[Rafflesia Philosopher]";
+		mes "So you think that "+.@input1$+".";
+		next;
+		mes "[Rafflesia Philosopher]";
+		mes "... ... ... ...";
+		next;
+		mes "[Rafflesia Philosopher]";
+		mes "I don't know. There is no one answer";
+		mes "to this question...";
+		mes .@input1$;
+		close;
+	case 2:
+		mes "[Rafflesia Philosopher]";
+		mes "You don't get something for nothing.";
+		close;
+	}
+}
+
+-	script	#mora_traveler	-1,{
+	mes "[Upset Traveler]";
+	mes "You... you dare play a game with me?";
+	emotion e_ag,0,"Traveler#mora1";
+	next;
+	mes "[Traveler That Posed the Question]";
+	mes "What...? Do you have proof?";
+	mes "Do you have proof?!!";
+	emotion e_an,0,"Traveler#mora2";
+	next;
+	mes "[Traveler Trying to Stop the Fight]";
+	mes "Look, stop it, just stop it!";
+	mes "I'm afraid it will turn into a big fight...";
+	emotion e_swt2,0,"Traveler#mora3";
+	next;
+	mes "[Traveler Trying to Stop the Fight]";
+	mes "Oh! Why don't we ask";
+	mes "that person there...?";
+	next;
+	mes "[Upset Traveler]";
+	mes "Oh, yes! That's a great idea.";
+	mes "Well~ Hello there~";
+	mes "You there, traveler!";
+	emotion e_ic,0,"Traveler#mora1";
+	next;
+	mes "They seem to be calling out to you.";
+	next;
+	switch(select("See what the matter is.:I have nothing to do with it.")) {
+	case 1:
+		mes "["+strcharinfo(0)+"]";
+		mes "What's happening here?";
+		emotion e_what,1;
+		next;
+		mes "[Upset Traveler]";
+		mes "I'll tell you what.";
+		mes "Rose's mother had 10 sons.";
+		mes "The eldest son is called Roseone,";
+		mes "the second Rosetwo,";
+		mes "the third Rosethree...";
+		mes "the ninth Rosenine...";
+		mes "you get how it works, right?";
+		emotion e_ag,0,"Traveler#mora1";
+		next;
+		mes "[Traveler That Posed the Question]";
+		mes "Right, that's how it works.";
+		mes "So I asked what the youngest one would be called,";
+		mes "and when I told him the answer,";
+		mes "he got all upset and started cursing me.";
+		emotion e_an,0,"Traveler#mora2";
+		next;
+		mes "[Upset Traveler]";
+		mes "You... you bastard!";
+		mes "Hey there, what do you think";
+		mes "the answer to the question is?";
+		emotion e_ag,0,"Traveler#mora1";
+		next;
+		switch(select("Roseten.:Rose.:How would I know that?")) {
+		case 1:
+			mes "["+strcharinfo(0)+"]";
+			mes "The answer to the question is Roseten.";
+			mes "Why are you fighting over such a trivial matter?";
+			next;
+			mes "[Upset Traveler]";
+			mes "See? Even this traveler says";
+			mes "Roseten is the answer.";
+			mes "How dare you try to play tricks on me?";
+			emotion e_gg,0,"Traveler#mora1";
+			next;
+			mes "[Traveler That Posed the Question]";
+			mes "You idiot... you don't have the slightest clue!";
+			emotion e_an,0,"Traveler#mora2";
+			break;
+		case 2:
+			mes "["+strcharinfo(0)+"]";
+			mes "The answer to the question is Rose.";
+			mes "You said Rose's mother had 10 sons.";
+			mes "So even if the other sons' names are";
+			mes "Roseone, Rosetwo, ... Rosenine,";
+			mes "the youngest one must be Rose,";
+			mes "or she wouldn't be called Rose's mother.";
+			next;
+			mes "[Traveler That Posed the Question]";
+			mes "That's exactly what I mean!";
+			mes "I can't hang around with him.";
+			mes "I guess we live in two different worlds.";
+			emotion e_ok,0,"Traveler#mora2";
+			next;
+			mes "[Upset Traveler]";
+			mes "You bastard... What did you";
+			mes "get from this guy...?";
+			emotion e_ag,0,"Traveler#mora1";
+			break;
+		case 3:
+			mes "["+strcharinfo(0)+"]";
+			mes "I have no idea.";
+			mes "Try to sort it out yourselves.";
+			next;
+			mes "[Traveler Trying to Stop the Fight]";
+			mes "You good-for-nothing bastard,";
+			mes "you're trying to leave this mess to me?";
+			emotion e_an,0,"Traveler#mora3";
+			break;
+		}
+		next;
+		mes "*thud*";
+		mes "You feel a sudden impact on the back of your head.";
+		mes "Your sight is going blurry.";
+		specialeffect2 EF_HIT1;
+		sc_start SC_BLIND,20000,0;
+		next;
+		mes "You feel somebody rummaging through your pockets before you pass out.";
+		set Zeny, Zeny-5000;
+		close2;
+		percentheal -100,0;
+		warp "mora",31,132;
+		end;
+	case 2:
+		mes "You went on your way";
+		mes "leaving the travelers behind you.";
+		close;
+	}
+}
+mora,140,72,4	duplicate(#mora_traveler)	Traveler#mora1	513	//Upset Traveler
+mora,138,72,6	duplicate(#mora_traveler)	Traveler#mora2	513	//Traveler That Posed the Question
+mora,139,73,4	duplicate(#mora_traveler)	Traveler#mora3	513	//Traveler Trying to Stop the Fight

+ 215 - 0
npc/re/guides/guides_mora.txt

@@ -0,0 +1,215 @@
+//===== rAthena Script ======================================= 
+//= Mora Guides
+//===== By: ================================================== 
+//= Euphy
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= rAthena SVN
+//===== Description: ========================================= 
+//= Guides for the city of Mora.
+//===== Additional Comments: ================================= 
+//= 1.0 First version. [Euphy]
+//============================================================ 
+
+mora,25,158,6	script	Raffle Guide#west	516,{
+	mes "[Raffoh]";
+	mes "Laoh~!";
+	mes "Welcome to the Village of Mora.";
+	mes "I can tell you whatever you want to know about the village~!";
+	next;
+	switch(select("[ Inn ]:[ Residences ]:[ Stores ]:[ Warehouse ]:Remove markers from the mini-map:Quit")) {
+	case 1:
+		mes "[Raffoh]";
+		mes "Laoh~!";
+		mes "We have an inn but we can't make travelers sleep like Raffles...";
+		mes "Get some rest!";
+		viewpoint 1,44,134,0,0x0A82FF;
+		close;
+	case 2:
+		mes "[Raffoh]";
+		mes "Laoh~!";
+		mes "This is where Raffles' houses are...";
+		mes "But keep the noise down because people are asleep~!";
+		viewpoint 1,119,170,1,0xAAFF00;
+		close;
+	case 3:
+		mes "[Raffoh]";
+		mes "Laoh~!";
+		mes "If you are looking for souvenirs, you can buy some in this district.";
+		viewpoint 1,112,110,2,0xDA70D6;
+		close;
+	case 4:
+		mes "[Raffoh]";
+		mes "Laoh~!";
+		mes "This is where they keep all kinds of packages and groceries.";
+		mes "There are many things that don't belong to the Raffles, so be careful!";
+		viewpoint 1,182,161,3,0xFF1493;
+		close;
+	case 5:
+		mes "[Raffoh]";
+		mes "Laoh~! I'm removing them all~!";
+		viewpoint 2,1,1,0,0xFFFF00;
+		viewpoint 2,1,1,1,0xFFFF00;
+		viewpoint 2,1,1,2,0xFFFF00;
+		viewpoint 2,1,1,3,0xFFFF00;
+		close;
+	case 6:
+		mes "[Raffoh]";
+		mes "Laoh~!";
+		mes "What kinds of sports are popular in your homeland?";
+		close;
+	}
+}
+
+mora,167,76,4	script	Raffle Guide#east	522,{
+	mes "[Raffuh]";
+	mes "Uh...";
+	mes "This, this is the Village of Mora.";
+	mes "Uh... which place do you want to know about?";
+	next;
+	switch(select("[ Inn ]:[ Residences ]:[ Stores ]:[ Warehouse ]:Remove markers from the mini-map:Quit")) {
+	case 1:
+		mes "[Raffuh]";
+		mes "Uh...";
+		mes "Are, are you sleepy?";
+		mes "You can sleep here uh!! Put your stuff down uh! And-- and---";
+		viewpoint 1,44,134,0,0x0A82FF;
+		close;
+	case 2:
+		mes "[Raffuh]";
+		mes "Uh...";
+		mes "Why are you trying to find out where I live--?";
+		mes "Uh, no... I'd like to live with my friends--";
+		viewpoint 1,119,170,1,0xAAFF00;
+		close;
+	case 3:
+		mes "[Raffuh]";
+		mes "Uh...";
+		mes "There are a lot of things in those stores-- oh, there is a hot spring also uh!";
+		viewpoint 1,112,110,2,0xDA70D6;
+		close;
+	case 4:
+		mes "[Raffuh]";
+		mes "Uh...";
+		mes "You can't just march into the warehouse, or you'll be in trouble--";
+		mes "Many of the things there are from outside the village-- Raffuh has been in trouble several times--";
+		viewpoint 1,182,161,3,0xFF1493;
+		close;
+	case 5:
+		mes "[Raffuh]";
+		mes "Are you sure you want them removed?";
+		viewpoint 2,1,1,0,0xFFFF00;
+		viewpoint 2,1,1,1,0xFFFF00;
+		viewpoint 2,1,1,2,0xFFFF00;
+		viewpoint 2,1,1,3,0xFFFF00;
+		close;
+	case 6:
+		mes "[Raffuh]";
+		mes "Uh...";
+		mes "Being a guide doesn't help much with my social phobia--";
+		close;
+	}
+}
+
+mora,115,138,4	script	Raffle Guide#center	524,{
+	mes "[Raffla]";
+	mes "Lala!";
+	mes "Welcome to the Village of Mora la!";
+	mes "If you need to know anything about the village, just ask me la!";
+	next;
+	switch(select("[ Inn ]:[ Residences ]:[ Stores ]:[ Warehouse ]:Remove markers from the mini-map:Quit.")) {
+	case 1:
+		mes "[Raffla]";
+		mes "Lala!";
+		mes "This is where travelers can rest la!";
+		mes "The innkeeper is very kind, so try to talk to him a lot la!";
+		viewpoint 1,44,134,0,0x0A82FF;
+		close;
+	case 2:
+		mes "[Raffla]";
+		mes "Lala!";
+		mes "This is where Raffles live la!";
+		mes "Head over there la!";
+		viewpoint 1,119,170,1,0xAAFF00;
+		close;
+	case 3:
+		mes "[Raffla]";
+		mes "Lala!";
+		mes "So you want to buy something la?";
+		mes "There are a lot of stores and cafes, so check them out la!";
+		viewpoint 1,112,110,2,0xDA70D6;
+		close;
+	case 4:
+		mes "[Raffla]";
+		mes "Lala!";
+		mes "The warehouse is where you keep your valuables la!";
+		mes "Be careful so you don't get robbed la!";
+		viewpoint 1,182,161,3,0xFF1493;
+		close;
+	case 5:
+		mes "[Raffla]";
+		mes "Okay, I'll remove all the markers from the map la!";
+		viewpoint 2,1,1,0,0xFFFF00;
+		viewpoint 2,1,1,1,0xFFFF00;
+		viewpoint 2,1,1,2,0xFFFF00;
+		viewpoint 2,1,1,3,0xFFFF00;
+		close;
+	case 6:
+		mes "[Raffla]";
+		mes "Lala!";
+		mes "I really don't know how my family ends up doing these things la!";
+		close;
+	}
+}
+
+mora,72,51,4	script	Raffle Guide#south	518,{
+	mes "[Raffli]";
+	mes "Lali?";
+	mes "Welcome to the Village of Mora.";
+	mes "If you need to know anything about the village, just ask me.";
+	next;
+	switch(select("[ Inn ]:[ Residences ]:[ Stores ]:[ Warehouse ]:Remove markers from the mini-map:Quit")) {
+	case 1:
+		mes "[Raffli]";
+		mes "Lali?";
+		mes "This is where travelers can rest.";
+		mes "The innkeeper is very kind, so get to know him.";
+		viewpoint 1,44,134,0,0x0A82FF;
+		close;
+	case 2:
+		mes "[Raffli]";
+		mes "Lali?";
+		mes "This is where Raffles live.";
+		mes "Are you coming to Raffli's house li? I'm so happy.";
+		viewpoint 1,119,170,1,0xAAFF00;
+		close;
+	case 3:
+		mes "[Raffli]";
+		mes "Lali?";
+		mes "There are a lot of things I want to buy.";
+		mes "You can find tons of places to eat and shop, and tons of things to buy.";
+		viewpoint 1,112,110,2,0xDA70D6;
+		close;
+	case 4:
+		mes "[Raffli]";
+		mes "Lali?";
+		mes "The warehouse is where you keep your valuables.";
+		mes "But don't get robbed.";
+		viewpoint 1,182,161,3,0xFF1493;
+		close;
+	case 5:
+		mes "[Raffli]";
+		mes "I'll remove all the markers.";
+		viewpoint 2,1,1,0,0xFFFF00;
+		viewpoint 2,1,1,1,0xFFFF00;
+		viewpoint 2,1,1,2,0xFFFF00;
+		viewpoint 2,1,1,3,0xFFFF00;
+		close;
+	case 6:
+		mes "[Raffli]";
+		mes "Lali?";
+		mes "Brother seems to be upset today li. Did I do anything wrong?";
+		close;
+	}
+}

+ 2 - 1
npc/re/merchants/3rd_trader.txt

@@ -13,7 +13,7 @@
 //= 1.0 First Version.
 //= 1.1 Optimized Poison Herb Salesman NPC
 //= 1.2 Optimized and standardized. [Euphy]
-//= 1.3 Added Malangdo Points NPC. [Euphy]
+//= 1.3 Added Malangdo/Mora Points NPC. [Euphy]
 //============================================================ 
 
 job3_guil01,79,96,3	script	Poison Herb Salesman::PHS	877,{
@@ -230,3 +230,4 @@ comodo,241,103,6	duplicate(pss)	Point Salesman#1	700
 alberta,105,52,7	duplicate(pss)	Point Salesman#2	700
 veins,202,128,6	duplicate(pss)	Point Salesman#3	700
 malangdo,215,163,6	duplicate(pss)	Point Salesman#4	700
+mora,115,118,3	duplicate(pss)	Point Salesman#5	700

+ 104 - 0
npc/re/merchants/quivers.txt

@@ -0,0 +1,104 @@
+//===== rAthena Script =======================================
+//= Arrow Quivers
+//===== By: ==================================================
+//= Muad_Dib (Prometheus Project); L0ne_W0lf
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Turns arrows into Arrow Quivers.
+// Breakdown of Subroutine "S_BuyQuiver"
+// arg(0): Type of Arrow to be packaged (item ID).
+// arg(1): How many of each 'getarg(0)' arrow per quiver.
+// arg(2): The cost of making a 'getarg(0)' quiver.
+// arg(3): The quiver given by the NPC (item ID).
+//===== Additional Comments: =================================
+//= 1.0 Added Mora NPC. [Euphy]
+//============================================================
+
+mora,106,117,4	script	Quiver Maker#mora	516,{
+	mes "[Quiver Maker]";
+	mes "Mora villagers ask what good quivers are. They just don't know how the world works.";
+	mes "No wonder they don't know a thing about quivers - spreading jam over leaves all day long.";
+	next;
+	switch(select("Please make me a quiver.:What's a quiver?")) {
+	case 1:
+		mes "[Quiver Maker]";
+		mes "At last someone appreciates a quiver!";
+		mes "I can make Elven Quivers and Hunting Quivers.";
+		mes "Which do you need?";
+		next;
+		switch(select("An Elven Quiver:A Hunting Quiver:I don't need a quiver.")) {
+		case 1: callsub S_BuyQuiver,1773,500,500,12575; //Arrow_Of_Elf_Cntr
+		case 2: callsub S_BuyQuiver,1774,500,500,12576; //Hunting_Arrow_Cntr
+		case 3:
+			mes "[Quiver Maker]";
+			mes "You can buy arrows off the tool merchant next to me.";
+			close;
+		}
+	case 2:
+		mes "[Quiver Maker]";
+		mes "An arrow may be thin and light, but carrying hundreds and thousands of arrows is like carrying a whole log.";
+		next;
+		mes "[Quiver Maker]";
+		mes "But when you have quivers, you can put arrows in them and save weight and space.";
+		mes "If you're interested in one, I'll stitch one up for you.";
+		close;
+	}
+	end;
+
+S_BuyQuiver:
+	if (countitem(getarg(0)) < getarg(1)) {
+		mes "[Quiver Maker]";
+		mes "Bring more than "+getarg(1)+" "+getitemname(getarg(0))+" and I'll make you a quiver.";
+		close;
+	}
+	mes "[Quiver Maker]";
+	mes "Oh, I see you have "+getitemname(getarg(0))+" in your hand!";
+	mes "Are you interested in using a quiver? It's really convenient!";
+	mes "If you're interested, I can trade "+getarg(1)+" of those arrows for one of these quivers for ^FF3131"+getarg(2)+" zeny^000000.";
+	next;
+	switch(select("Trade all the arrows you have:Get only one quiver:Don't trade")) {
+	case 1:
+		set .@arrows, countitem(getarg(0));
+		set .@quiver, .@arrows / getarg(1);
+		set .@arrows_used, .@quiver * getarg(1);
+		set .@arrow_zeny01, .@quiver * getarg(2);
+		mes "The number of arrows you have : ^3131FF"+.@arrows+"^000000";
+		mes "The number of quivers available : ^3131FF"+.@quiver+"^000000";
+		mes "Zeny needed for trade : ^3131FF"+.@arrow_zeny01+" zeny^000000";
+		next;
+		mes "Trade?";
+		next;
+		if(select("Trade:Don't trade") == 2) {
+			mes "[Quiver Maker]";
+			mes "Hey, you don't doubt my skills, do you?";
+			close;
+		}
+		break;
+	case 2:
+		set .@quiver, 1;
+		set .@arrows_used, getarg(1);
+		set .@arrow_zeny01, getarg(2);
+		break;
+	case 3:
+		mes "[Quiver Maker]";
+		mes "Hey, you don't doubt my skills, do you?";
+		close;
+	}
+	if (Zeny < .@arrow_zeny01) {
+		mes "[Quiver Maker]";
+		mes "I'm sorry, but you don't have enough Zeny!";
+		close;
+	}
+	mes "[Quiver Maker]";
+	mes "Hey, here you are.";
+	mes "There is ^3131FFsomething you need to know^000000 - try to remember it.";
+	mes "^FF0000You can't use quivers when your encumbrance is over 70%.^000000";
+	mes "You'd better keep that in mind, or you might be in trouble later.";
+	set Zeny, Zeny-.@arrow_zeny01;
+	delitem getarg(0),.@arrows_used;
+	getitem getarg(3),.@quiver;
+	close;
+}

+ 1 - 1
npc/re/merchants/shops.txt

@@ -73,7 +73,7 @@ malangdo,232,163,5	shop	Tool Dealer Myo	560,611:-1,1750:-1,645:-1,656:-1,601:-1,
 //=======================================================
 // Mora
 //=======================================================
-mora,100,118,4	shop	Tool Dealer#mora	517,11522:-1,11523:-1,11524:-1,602:-1,601:-1,611:-1,1773:-1,1774:-1,713:-1
+mora,100,118,4	shop	Tool Dealer#mora	517,11522:-1,11523:-1,11524:-1,602:-1,601:-1,611:-1,1773:-1,1774:-1
 mora,138,110,4	shop	Mora Chef	518,11519:-1
 
 //=======================================================

+ 753 - 0
npc/re/quests/quests_mora.txt

@@ -0,0 +1,753 @@
+//===== rAthena Script =======================================
+//= Mora Quest NPCs
+//===== By: ==================================================
+//= Euphy
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena SVN
+//===== Description: =========================================
+//= Quest NPCs related to Mora.
+//===== Additional Comments: =================================
+//= 1.0 NPCs are currently placeholders. [Euphy]
+//============================================================
+
+// Find the Research Tools
+//============================================================
+mora,31,138,6	script	Raffle Researcher#ep14	522,{
+	mes "[Raffle Researcher]";
+	mes "Oh no~ My research tools...";
+	mes "What...... What was it?";
+	emotion e_sob;
+	next;
+	select("What is your business here?");
+	mes "[Raffle Researcher]";
+	mes "Hmm?";
+	emotion e_what;
+	next;
+	mes "[Raffle Researcher]";
+	mes "You're human...? Are you human...?";
+	mes "You... came from the underworld?";
+	next;
+	mes "[Raffle Researcher]";
+	mes "Human beings are incredible...";
+	mes "You survived the crevice and made it here.";
+	next;
+	mes "[Raffle Researcher]";
+	mes "... ... ...";
+	next;
+	mes "[Raffle Researcher]";
+	mes "You, come here for a minute.";
+	mes "It's a simple experiment, so there's no need to be afraid.";
+	emotion e_gg;
+	next;
+	switch(select("What a crazy Raffle. I must run away.:... ...")) {
+	case 1:
+		mes "[Raffle Researcher]";
+		mes "You said you had made it up from the Crevice,";
+		mes "so I was wondering what race you were,";
+		mes "but a mere human? How did you get up here?";
+		emotion e_lv;
+		close;
+	case 2:
+		if (BaseLevel < 100) {
+			mes "[Raffle Researcher]";
+			mes "What... I thought a human who made it up from the Crevice";
+			mes "would be extraordinary,";
+			mes "but you're no more than a kid.";
+			next;
+			mes "[Raffle Researcher]";
+			mes "Go hunt more ^000000Porings^000000";
+			mes "and come back when your level is in the triple digits kid!";
+			close;
+		}
+		close;
+	}
+}
+
+// Theore's Request
+//============================================================
+mora,55,124,2	script	Jones#ep14_1_bs	495,{
+	mes "[Jones]";
+	mes "Oh.... Darn.......";
+	mes "I can't go down, and I can't go back. My credibility that I've worked so hard on is just crumbling into dust.";
+	close;
+}
+
+mora,98,66,4	script	Lilitia#ep14_1_bs	518,{
+	mes "[Lilitia]";
+	mes "I really hate the cold.";
+	mes "That's why Mora is a lovely place to live.";
+	next;
+	mes "[Lilitia]";
+	mes "The leaves are always fresh here. And, the stress about languages just disappears.";
+	close;
+}
+
+mora,139,102,2	script	Humming#ep14_1_bs	515,{
+	mes "[Humming]";
+	mes "I heard that a crevice crept in between Jotunheim and Midgard, so I wanted to check it out. But I got stuck here.";
+	mes "I was looking forward to seeing a new place.";
+	next;
+	mes "[Humming]";
+	mes "Are you from Midgard?";
+	mes "What is it like there?";
+	mes "I've always wanted to see a creature called Poring.";
+	close;
+}
+
+mora,35,119,4	script	Rondo#ep14_1_bs	513,{
+	mes "[Rondo]";
+	mes "Mora is such a mysterious place.";
+	mes "You can understand any language.";
+	next;
+	mes "[Rondo]";
+	mes "Of course, when we leave this area I won't be able to understand what you say, but I'll be able to remember the conversations we had.";
+	mes "And I'll look forward to the day we meet again, here.";
+	close;
+}
+
+mora,185,163,2	script	Warehouse Manager#mora	516,{
+	mes "[Warehouse Manager]";
+	mes "No, sir!";
+	mes "You cannot enter at will.";
+	mes "This is a warehouse. If you need something, please ask the staff outside.";
+	close;
+}
+
+// Wandering Guardian Quest
+//============================================================
+mora,46,152,6	script	Flower Smelling Lady	510,{
+	mes "[Flower Smelling Lady]";
+	mes "I need rest.";
+	mes "I'm too tired to talk to you.";
+	mes "I'm sorry.";
+	close;
+}
+
+mora,48,152,4	script	Sharp Eyed Man	512,{
+	mes "He won't look at you. It's like he's not interested at all.";
+	close;
+}
+
+// Helping Lope and Euridi
+//============================================================
+mora,117,66,4	script	Euridi#pa	521,{
+	mes "[Euridi]";
+	mes "You are very delicate.";
+	mes "It's true that I need help,";
+	mes "but I don't think you can help.";
+	close;
+}
+
+mora,115,68,4	script	Euridi's Friend#pa	520,{
+	mes "[Euridi's Friend]";
+	mes "Please stop Euridi.";
+	mes "She is desperate to find her missing fiance.";
+	close;
+}
+
+mora,65,145,4	script	Pitt#pa	519,{
+	mes "[Pitt]";
+	mes "So you're quite good,";
+	mes "since you passed through the Hazy Forest alive.";
+	mes "I'm completely messed up, you see,";
+	mes "so I can't afford to listen to the tales of your exploits.";
+	mes "Now leave.";
+	close;
+}
+
+// Knights of the Neighborhood
+//============================================================
+mora,118,166,6	script	Knights Chief#mo	525,{
+	mes "[Order of the Knights Chief]";
+	mes "We are the legendary order of the Neighborhood Knights, founded just five minutes ago!";
+	next;
+	mes "[Order of the Knights Chief]";
+	mes "We have four chiefs but no foot soldiers...";
+	mes "It's so frustrating!";
+	next;
+	mes "[Other Leaders]";
+	mes "Those other guys are all soldiers, but I'm the Boss!";
+	mes "I, the Head, will tell you what to do!";
+	mes "The Leader is the highest in the rank!";
+	mes "You talked me into joining the order, and now look at this!";
+	close;
+}
+
+mora,116,165,6	script	Knights Boss#mo	524,{
+	mes "[Order of the Knights Boss]";
+	mes "You have courage to";
+	mes "show up out of nowhere";
+	mes "and demand Mora Coins... how impressive!";
+	mes "You're more than qualified to be a soldier of the Order of the Neighborhood Knights.";
+	next;
+	mes "[Order of the Knights Boss]";
+	mes "Soldier, I need you to do something for me.";
+	mes "Go to the Hazy Forest and gather 200 ^FF0000Mysterious Seeds^000000!";
+	next;
+	switch(select("Yes, sir!:I challenge you to a duel!")) {
+	case 1:
+		mes "[Order of the Knights Boss]";
+		mes "Good attitude, "+strcharinfo(0)+" Soldier!";
+		mes "I'll reward you handsomely when you get back.";
+		next;
+		mes "[Other Bosses]";
+		mes "This is from me, the Chief!";
+		mes "Don't look down on the Head!";
+		mes "It's from me, the Leader!";
+		close;
+	case 2:
+		mes "[Order of the Knights Boss]";
+		mes "See the Chief if you want to have a duel!";
+		mes "I'm in charge of recruiting here.";
+		mes "Ahem...";
+		close;
+	}
+}
+
+mora,114,163,6	script	Knights Head#mo	522,{
+	mes "[Order of the Knights Head]";
+	mes "I hear that a Laphine called 'Lope'";
+	mes "went missing in the Hazy Forest.";
+	mes "I wish the Order of the Neighborhood Knights";
+	next;
+	mes "[Order of the Knights Head]";
+	mes "could help solve the case,";
+	mes "but we can't now";
+	mes "because we're not done cleaning the yard yet.";
+	mes "So, what I'm trying to say is";
+	next;
+	mes "[Order of the Knights Head]";
+	mes "why don't you go";
+	mes "and deal with the problem";
+	mes "on behalf of the Order of the Neighborhood Knights!";
+	next;
+	mes "[Order of the Knights Head]";
+	mes "I promise, as the Head of the Order,";
+	mes "that I'll give you more work";
+	mes "when you get back!";
+	next;
+	mes "[Other Heads]";
+	mes "I approve it, as the Chief.";
+	mes "You can thank me, the Boss.";
+	mes "You know the Leader is the boss here, right?";
+	close;
+}
+
+mora,112,161,4	script	Knights Leader#mo	523,{
+	mes "[Order of the Knights Leader]";
+	mes "I'm the Leader of the Order -";
+	mes "you can tell me.";
+	mes "What brings you here? Do you have some work for us?";
+	next;
+	mes "[Other Leaders]";
+	mes "Huh! I said the Boss is the boss!";
+	mes "No, the Chief is the best!";
+	mes "How rude you all are! I'm the Head here!";
+	emotion e_swt2,1;
+	close;
+}
+
+// Daily Quests - Bow-wow
+//============================================================
+mora,119,103,4	script	Bow-wow#pa0829	513,{
+	if (BaseLevel < 99) {
+		mes "[Bow-wow]";
+		mes "I try to give tasks only to reliable people. You are......... no, never mind.";
+		close;
+	}
+	end;
+}
+
+mora,119,118,4	script	General Good Dealer#pa0	516,{
+	if (BaseLevel < 99) {
+		mes "[General Good Dealer]";
+		mes "Hmm, you don't look reliable enough for Bow-wow's tasks.";
+		close;
+	}
+	end;
+}
+
+// Daily Quests - Woof-grr
+//============================================================
+mora,124,108,8	script	Woof-grrr#pa0829	514,{
+	if (BaseLevel < 99) {
+		mes "[Woof-grrr]";
+		mes "Can you please keep away from me? You're getting in the way.";
+		close;
+	}
+	end;
+}
+
+mora,127,112,4	script	Commodities Dealer#pa08	518,{
+	if (BaseLevel < 99) {
+		mes "[Commodities Dealer]";
+		mes "Well, Woof-grrr can't have given a weakling like you tasks.";
+		close;
+	}
+	end;
+}
+
+// Daily Quests - Elephantine
+//============================================================
+mora,133,80,6	script	Elephantine#pa0829	509,{
+	if (BaseLevel < 135) {
+		mes "[Elephantine]";
+		mes "Hmm, you don't look reliable enough to perform tasks for me.";
+		close;
+	}
+	end;
+}
+
+mora,115,98,7	script	Hotcha#pa0829	509,{
+	if (BaseLevel < 135) {
+		mes "[Hotcha]";
+		mes "Hmm, you don't look reliable enough for Elephantine's tasks.";
+		close;
+	}
+	end;
+}
+
+// Daily Quests - Soul Guide
+//============================================================
+mora,170,101,4	script	Soul Guide#pa0829	515,{
+	if (BaseLevel < 99) {
+		mes "[Soul Guide]";
+		mes "Reliability is the primary quality needed in looking for lost souls. You don't look so reliable to me.";
+		close;
+	}
+	end;
+}
+
+// Mora Enchants
+//============================================================
+mora,88,89,6	script	Keeper of Secrets#pa082	495,{
+	mes "[Artifice]";
+	mes "Relics for Archbishops are meant for defense and support!";
+	next;
+	mes "[Artifice]";
+	mes "Like the other Guardians, they may trade coins for their relics, so collect Mora Coins!";
+	next;
+	if (countitem(6380) < 10) {
+		mes "[Artifice]";
+		mes "If you collect more than 10 coins then come to me to trade!";
+		close;
+	}
+	close;
+}
+
+mora,99,93,6	script	Artifact Crafter#pa0829	495,{
+	mes "[Artifact Crafter]";
+	mes "My job is to imbue artifacts with new power. If you have enough Coins, you can have one of the following items reinforced.";
+	next;
+	switch(select("Tell me more.:I want to have my item reinforced.")) {
+	case 1:
+		mes "[Artifact Crafter]";
+		mes "Let me explain. One reinforcement costs you two Coins.";
+		next;
+		mes "[Artifact Crafter]";
+		mes "And, I'll work on the item whether it's been already reinforced or not.";
+		next;
+		mes "[Artifact Crafter]";
+		mes "So if you have an artifact reinforced to your liking, put it in a safe place and come back.";
+		next;
+		mes "[Artifact Crafter]";
+		mes "And another thing, the artifact will be destroyed if the reinforcement fails. Please keep that in mind.";
+		close;
+	case 2:
+		mes "[Artifact Crafter]";
+		mes "And, I'll work on the item whether it's been already reinforced or not.";
+		next;
+		mes "[Artifact Crafter]";
+		mes "So if you have an artifact reinforced to your liking, put it in a safe place and come back.";
+		next;
+		mes "[Artifact Crafter]";
+		mes "And another thing, the artifact will be destroyed if the reinforcement fails. Please keep that in mind.";
+		next;
+		set .@i, select("Maybe next time.:Golden Rod Staff:Aqua Staff:Crimson Staff:Forest Staff:Golden Rod Shoes:Aqua Shoes:Crimson Shoes:Forest Shoes:Golden Rod Orb:Aqua Orb:Crimson Orb:Forest Orb:Golden Rod Robe:Aqua Robe:Crimson Robe:Forest Robe")-2;
+		if (.@i == -1) {
+			mes "[Artifact Crafter]";
+			mes "As you wish.";
+			close;
+		}
+		setarray .@artifacts[0],
+			2007,2008,2009,2010,	// Staves
+			2467,2468,2469,2470,	// Shoes
+			2859,2860,2861,2862,	// Orbs
+			15025,15026,15027,15028;	// Robes
+		setarray .@enchants[0],
+			2,2,2,2,
+			3,3,3,3,
+			3,3,3,3,
+			3,3,3,3;
+		if (countitem(6380) < 2 || countitem(.@artifacts[.@i]) < 1) {
+			mes "[Artifact Crafter]";
+			mes "You have to have 2 Mora Coins and an item to be reinforced before I can do my work.";
+			close;
+		}
+		close;
+	}
+}
+
+mora,104,76,4	script	Guardian of Artifacts#p	495,{
+	mes "[Guardian of Artifacts]";
+	mes "My job is to guard the Warlock's ancient artifacts.";
+	next;
+	mes "[Guardian of Artifacts]";
+	mes "Well, it's not a big deal actually. I give out artifacts to those who deserve them for the price of a few Mora Coins.";
+	next;
+	if (countitem(6380) < 10) {
+		mes "[Guardian of Artifacts]";
+		mes "You can trade with me when you have 10 or more Coins. See you later.";
+		close;
+	}
+	close;
+}
+
+mora,96,74,6	script	Master of Relics#pa0829	495,{
+	mes "[Relice]";
+	mes "I enhance Relics that holy Arch-Bishops use, it will take 2 Mora Coins and the relic to allow me to attempt to enhance it.";
+	next;
+	switch(select("More details please:Please Enhance my Relic.")) {
+	case 1:
+		mes "[Relice]";
+		mes "Let me briefly explain, for ^00CC002 Mora Coins^000000 and the relic I can give you a single Enchantment on that relic.";
+		next;
+		mes "[Relice]";
+		mes "It is possible I can fail though and if that happens the relic is lost forever.";
+		next;
+		mes "[Relice]";
+		mes "There are many combinations of enchantments that can be applied, as 2 enchantments happen each time.";
+		close;
+	case 2:
+		mes "[Relice]";
+		mes "Ok, you can get a new Relic from Artifice if it fails.";
+		next;
+		mes "[Relice]";
+		mes "If you have a ritual for luck, you should use it now!";
+		next;
+		set .@i, select("Wait a minute!:Light of Cure:Seal of Cathedral:Ring of Archbishop:Shoes of Affection:Shoes of Judgement:Shawl of Affection:Shawl of Judgement:Robe of Affection:Robe of Judgement:Bible of Promise 1st Vol:Wand of Affection:Mace of Judgement")-2;
+		if (.@i == -1) {
+			mes "[Relice]";
+			mes "Certainly. Go with the Light.";
+			close;
+		}
+		setarray .@relics[0],
+			2864,2865,2866,	// Accessories
+			2471,2472,		// Shoes
+			2569,2570,		// Shawls
+			15029,15030,		// Robes
+			2156,1657,16013;	// Weapons
+		setarray .@enchants[0],
+			2,2,2,
+			3,3,
+			3,3,
+			3,3,
+			3,2,2;
+		if (countitem(6380) < 2 || countitem(.@relics[.@i]) < 1) {
+			mes "[Relice]";
+			mes "For 2 Mora Coins I can strengthen the relic you have in many ways!";
+			close;
+		}
+		close;
+	}
+}
+
+mora,152,97,6	script	Guardian of Power#pa082	515,{
+	mes "[Guardian of Power]";
+	mes "I give Rune Knights, Guillotine Crosses, and Rangers ancient artifacts to help them carry out their missions.";
+	next;
+	mes "[Guardian of Power]";
+	mes "There are guardians that give Mora Village coins which you can use to exchange for these artifacts.";
+	next;
+	if (countitem(6380) < 10) {
+		mes "[Guardian of Power]";
+		mes "If you collect 10 or more Mora coins, then I can trade them for the artifacts.";
+		close;
+	}
+	close;
+}
+
+mora,148,98,4	script	Artifact Researcher#new	521,{
+	mes "[Artifact Researcher]";
+	mes "Nice to meet you.";
+	mes "I'm here in Mora studying ancient relics and artifacts. The new discoveries of Adventurers has made this village very exciting for me.";
+	next;
+	switch(select("Tell me more...:Give abilities to artifacts.:Reset Enhanced abilities.")) {
+	case 1:
+		mes "[Artifact Researcher]";
+		mes "New artifacts have been found here in Mora village, haven't you heard the news?";
+		next;
+		mes "[Artifact Researcher]";
+		mes "If you come across any of these artifacts, there are hidden powers that can be extracted from them.";
+		next;
+		mes "[Artifact Researcher]";
+		mes "I'm going to continue my research for these artifacts. We researchers are taking Mora Coins as payment for our services...";
+		next;
+		mes "[Artifact Researcher]";
+		mes "I'm offering my services to give abilities to the artifacts for 100,000 zeny and 1 Mora Coin.";
+		next;
+		mes "[Artifact Researcher]";
+		mes "The best part of my service is that any enhancements that you have in these artifacts will not be harmed.";
+		close;
+	case 2:
+		if (countitem(6380) < 1 || Zeny < 100000) {
+			mes "[Artifact Researcher]";
+			mes "I'm not giving these services out for free pal. 100,000 zeny and 1 Mora Coin. Is that too much to ask?";
+			close;
+		}
+		close;
+	case 3:
+		if (countitem(6380) < 1 || Zeny < 100000) {
+			mes "[Artifact Researcher]";
+			mes "I'm not giving these services out for free pal. 100,000 zeny and 1 Mora Coin. Is that too much to ask?";
+			close;
+		}
+		close;
+	}
+}
+
+mora,124,82,4	script	Artifact Collector#blan	522,{
+	mes "Those Mora Artifacts look so perfect!";
+	mes "But I know you want it to be even better!";
+	next;
+	mes "[Artifact Collector]";
+	mes "Greetings Adventurer. We will be great friends in a moment after I tell you how to Empower your Artifacts!";
+	next;
+	switch(select("Let's do this!:Empower Artifacts?:Nope, not for me!")) {
+	case 1:
+		emotion e_flash;
+		mes "[Artifact Collector]";
+		mes "Let me take a look at what you have brought me.";
+		next;
+
+		// Detect weapon...
+
+		emotion e_an;
+		mes "[Artifact Collector]";
+		mes "The weapon you have isn't one of the Artifacts I can work with.";
+		close;
+	case 2:
+		emotion e_ok;
+		mes "[Artifact Collector]";
+		mes "You seem like a pretty good judge of character.";
+		next;
+		mes "[Artifact Collector]";
+		mes "For over 200 years I've been working with Artifacts here in Mora. Toiling to get the perfect +9!";
+		next;
+		select("Gulp... +9?!");
+		emotion e_omg,1;
+		mes "[Artifact Collector]";
+		mes "My business is collecting the old relics and refining them to their essence!";
+		next;
+		emotion e_sob;
+		mes "[Artifact Collector]";
+		mes "Finding the perfect Artifact for me to experiment on is my life's work.";
+		mes "Plus seeing the wonder of our ancestor's legacy is also gratifying.";
+		next;
+		select("I can see how that could be fun.");
+		emotion e_pat;
+		mes "[Artifact Collector]";
+		mes "Thank you human.";
+		next;
+		mes "[Artifact Collector]";
+		mes "I've been doing this for over 200 years, and honestly the readily available supply is gone, and Artificer and Artifact Crafter won't trade me anymore...";
+		next;
+		emotion e_dots;
+		mes "[Artifact Collector]";
+		mes "But maybe the Humans that are starting to visit can bring in some new stock!";
+		next;
+		select("Humans... Stock?");
+		emotion e_what,1;
+		mes "[Artifact Collector]";
+		mes "Yes! If the humans can bring me new artifacts I can work on my ultimate achievement!";
+		next;
+		select("Ultimate Achievement?");
+		emotion e_what,1;
+		emotion e_ok;
+		mes "[Artifact Collector]";
+		mes "Patience, we'll get to that...";
+		next;
+		mes "[Artifact Collector]";
+		mes "I am a collector, by trade, but my greatest achievement is empowering some artifacts with greater power!";
+		mes "I have only perfected my ability on a few Artifact types so far.";
+		next;
+		mes "[Artifact Collector]";
+		mes "You might just be the human to help me complete my plan.";
+		next;
+		emotion e_otl;
+		mes "[Artifact Collector]";
+		mes "Oh how I love how fate works sometimes...";
+		next;
+		mes "[Artifact Collector]";
+		mes "+1, +2, +3, +4, +5, +6 those refinements are not strong enough to work on my craft.";
+		next;
+		emotion 57,0;
+		mes "[Artifact Collector]";
+		mes "But +7! +7 is rare and just barely strong enough to work in my crafting attempts.";
+		next;
+		select("I have a feeling this is where you ask me to do stuff...");
+		emotion e_hmm,1;
+		mes "[Artifact Collector]";
+		mes "Right you are! I know it is natural for you Humans to help a friend, even without the friend asking...";
+		next;
+		select("I'm not sure if...");
+		emotion e_what,1;
+		mes "Of course I'll accept your help!  Find me...";
+		next;
+		mes "- Golden Rod Staff -";
+		mes "- Aqua Staff -";
+		mes "- Crimson Staff -";
+		mes "- Forest Staff -";
+		mes "- Staff of Mercy -";
+		mes "- Mace of Judgement -";
+		next;
+		select("What should I look for?");
+		emotion e_what,1;
+		mes "[Artifact Collector]";
+		mes "Well aside from the +7, there are very specific enchantments that need to be on the artifact that help catalyze the process.";
+		next;
+		mes "[Artifact Collector]";
+		mes "If either the +7 or the specific enchantment is missing I can't do it.";
+		next;
+		select("So the Refining will be preserved?");
+		emotion e_omg,1;
+		emotion e_an;
+		mes "[Artifact Collector]";
+		mes "No, but what you'll get back is so much better!";
+		next;
+		emotion e_what;
+		mes "[Artifact Collector]";
+		mes "By now you are wondering more about the artifacts I'm looking for, go ahead and ask!";
+		next;
+		setarray .@artifacts[0],1657,16013,2007,2008,2009,2010;
+		setarray .@empowered[0],1660,16018,2011,2012,2013,2014;
+		while(1) {
+			set .@i, select("I don't think I'm interested:Staff of Mercy:Mace of Judgement:Golden Rod Staff:Aqua Staff:Crimson Staff:Forest Staff")-2;
+			if (.@i == -1) {
+				mes "[Artifact Collector]";
+				mes "But please if you do get one, please let me work on it, I'm begging you.";
+				close;
+			}
+			mes "[Artifact Collector]";
+			mes getitemname(.@artifacts[.@i])+" must of course be refined to +7 or higher for me to distill it to an enchantment.";
+			next;
+			switch(.@i) {
+			case 0:
+				setarray .@enchants[0],4761,4723,4714;
+				set .@str$, "MATK+2%, DEX+4, INT+5";
+				break;
+			case 1:
+				setarray .@enchants[0],4767,4723,4704;
+				set .@str$, "ATK+3%, DEX+4, STR+5";
+				break;
+			default:
+				setarray .@enchants[0],4761,4713;
+				set .@str$, "MATK+2%, INT+4";
+				break;
+			}
+			mes "[Artifact Collector]";
+			mes "It must also carry any of these enchantments: "+.@str$+" to be craftable by me.";
+			next;
+			select("What are the attributes of an "+getitemname(.@empowered[.@i])+"?");
+			mes "[Artifact Collector]";
+			mes getitemname(.@empowered[.@i]);
+			switch(.@i) {
+			case 0: //Mercy_Staff1
+				mes "One handed Staff / Attack : 30";
+				mes "Weight : 50 / Any Sex";
+				mes "Archbishop only";
+				mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000";
+				mes "MATK + 180, INT + 4.";
+				mes "Adds 20% Heal Bonus.";
+				mes "If worn with Robes, Shoes, and Robe of Mercy Increase Heal Bonus by an additional 45% and SP consumption of 'Heal' by 50.";
+				mes "Subtract 3 seconds from the reuse delay of Sacrement, Lauda Agnus and Lauda Ramus.";
+				break;
+			case 1: //Judgement_Mace1
+				mes "Mace / Attack : 170";
+				mes "Weight : 120 / Any Sex";
+				mes "Archbishop only";
+				mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000";
+				mes "MATK + 180, STR + 2, INT + 2.";
+				mes "Physical and Magical Attacks have a chance to increase damage by 40% to Demon monsters for 7 seconds.";
+				mes "If worn with Judgement Golves, Shoes and Shawl, increase Damage against Undead by 30%.";
+				mes "Increase damage of Adoramus by 200%, and increase SP cost of Adoramus by 30.";
+				break;
+			case 2: //Golden_Rod_Staff1
+				mes "Staff / Attack: 30";
+				mes "Weight : 90 / Any Sex";
+				mes "Warlock only";
+				mes "Weapon Level : 4 / ^ff0000Required Level : 130^000000";
+				mes "INT + 5, MATK + 270.";
+				mes "Increase Jupitel Thunder damage by 30%.";
+				mes "If worn with Golden Robe, Golden Shoes, and Golden Orb Increase Wind Magic damage by 60%.";
+				mes "Lower Earth Magic damage by 60% and resistance to Earth by 50%.";
+				break;
+			case 3: //Aqua_Staff1
+				mes "Staff / Attack : 30";
+				mes "Weight : 90 / Any Sex";
+				mes "Warlock only";
+				mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000";
+				mes "INT + 5, MATK + 270.";
+				mes "Increase Cold Bolt and Frost Diver damage by 30%.";
+				mes "If worn with Aqua Robe, Shoes, and Orb Increase Water Magic damage by 60%.";
+				mes "Lower Wind Magic damage by 60% and resistance to Wind by 50%.";
+				break;
+			case 4: //Crimson_Staff1
+				mes "Staff / Attack : 30";
+				mes "Weight : 90 / Any Sex";
+				mes "Warlock only";
+				mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000";
+				mes "INT + 5, MATK + 270.";
+				mes "Increase Fire Bolt and Fireball damage by 30%.";
+				mes "If worn with Crimson Robe, Shoes, and Orb Increase Fire Magic damage by 60%.";
+				mes "Lower Water Magic damage by 60% and resistance to Water by 50%.";
+				break;
+			case 5: //Forest_Staff1
+				mes "Staff / Attack : 30";
+				mes "Weight : 90 / Any Sex";
+				mes "Warlock only";
+				mes "Weapon Level : 4 / ^ff0000Required Level: 130^000000";
+				mes "INT + 5, MATK + 270.";
+				mes "Increase Earth Spike and Heaven's Drive damage by 30%.";
+				mes "If worn with Forest Robe, Shoes, and Orb Increase Earth Magic damage by 60%.";
+				mes "Lower Fire Magic damage by 60% and resistance to Fire by 50%.";
+				break;
+			}
+			next;
+
+			// Check weapon...
+			if (getequipid(EQI_HAND_R) == .@artifacts[.@i] && getequiprefinerycnt(EQI_HAND_R) >= 7) {
+				// Check enchants...
+				//delequip EQI_HAND_R;
+				//getitem .@empowered[.@i];
+			}
+
+			emotion e_what;
+			mes "[Artifact Collector]";
+			mes "Ok, well maybe someday you will be.";
+			next;
+		}
+	case 3:
+		mes "[Artifact Collector]";
+		mes "Oh well, can you do me a favor?";
+		mes "And have yourself a great day.";
+		mes "Could you do that for me pal?";
+		mes "Thanks! <3";
+		close;
+	}
+}
+
+mora,119,75,2	script	Artifact Panhandler	515,{
+	mes "[Artifact Panhandler]";
+	mes "Psst, if you have any of those Mora artifacts just lying around I'll trade ya 2 Mora coins for them!";
+	mes "Of course I only want ones that are battle tested, so you must be wearing it.";
+	next;
+	if (BaseLevel < 99) {
+		mes "[Artifact Panhandler]";
+		mes "I don't think you can possibly have any Mora Gear I'd be interested in right now.";
+		close;
+	}
+	close;
+}

+ 3 - 0
npc/re/scripts_athena.conf

@@ -33,6 +33,7 @@ npc: npc/re/guides/guides_juno.txt
 npc: npc/re/guides/guides_lighthalzen.txt
 npc: npc/re/guides/guides_louyang.txt
 npc: npc/re/guides/guides_lutie.txt
+npc: npc/re/guides/guides_mora.txt
 npc: npc/re/guides/guides_morroc.txt
 npc: npc/re/guides/guides_moscovia.txt
 npc: npc/re/guides/guides_niflheim.txt
@@ -59,6 +60,7 @@ npc: npc/re/merchants/diamond.txt
 npc: npc/re/merchants/enchan_mal.txt
 npc: npc/re/merchants/flute.txt
 npc: npc/re/merchants/inn.txt
+npc: npc/re/merchants/quivers.txt
 npc: npc/re/merchants/refine.txt
 npc: npc/re/merchants/renters.txt
 npc: npc/re/merchants/shops.txt
@@ -92,4 +94,5 @@ npc: npc/re/quests/quests_dicastes.txt
 npc: npc/re/quests/quests_izlude.txt
 npc: npc/re/quests/quests_lighthalzen.txt
 npc: npc/re/quests/quests_malangdo.txt
+npc: npc/re/quests/quests_mora.txt
 npc: npc/re/quests/quests_veins.txt

+ 25 - 7
npc/re/warps/fields/bif_fild.txt

@@ -3,20 +3,38 @@
 //===== By: ==================================================
 //= Chilly
 //===== Current Version: =====================================
-//= 1.0
+//= 1.1
 //===== Compatible With: =====================================
 //= rAthena SVN
 //===== Description: =========================================
 //= Warp Points for Bifrost Field
 //===== Additional Comments: =================================
 //= 1.0 First Version.
+//= 1.1 Added official warp scripts. [Euphy]
 //============================================================
 
 splendide,275,390,0	warp	bifrost_field0001	1,1,bif_fild01,316,50
 bif_fild01,318,48,0	warp	bifrost_field0002	1,1,splendide,275,387
-bif_fild02,285,333,0	warp	bifrost_field0003	1,1,mora,179,74
-mora,182,74,0	warp	bifrost_field0004	1,1,bif_fild02,285,330
-bif_fild02,95,310,0	warp	bifrost_field0005	1,1,mora,22,157
-mora,20,159,0	warp	bifrost_field0006	1,1,bif_fild02,98,309
-bif_fild02,174,162,0	warp	bifrost_field0007	1,1,mora,58,27
-mora,56,25,0	warp	bifrost_field0008	1,1,bif_fild02,177,162
+mora,182,74,0	warp	bifrost_field0003	1,1,bif_fild02,285,330
+mora,20,159,0	warp	bifrost_field0004	1,1,bif_fild02,98,309
+mora,56,25,0	warp	bifrost_field0005	1,1,bif_fild02,177,162
+
+-	script	bifrost_field0000	-1,{
+	mes "At the end of the small path through the bright flower garden";
+	mes "is an entrance to something that looks like a small hill.";
+	next;
+	if(select("Knock-knock:Is this a wormhole?") == 1) {
+		mes "When you knock on the door-like thing just for fun,";
+		mes "the door clicks open and you feel some mysterious force pulling you inside.";
+		close2;
+		switch(atoi(charat(strnpcinfo(2),9))) {
+			case 1: warp "mora",179,74; end;
+			case 2: warp "mora",22,157; end;
+			case 3: warp "mora",58,27; end;
+		}
+	}
+	close;
+}
+bif_fild02,285,333,0	duplicate(bifrost_field0000)	Small Hole#ep14_mora1	844
+bif_fild02,95,310,0	duplicate(bifrost_field0000)	Small Hole#ep14_mora2	844
+bif_fild02,174,162,0	duplicate(bifrost_field0000)	Small Hole#ep14_mora3	844

+ 16 - 20
src/map/script.c

@@ -12813,34 +12813,30 @@ int recovery_sub(struct map_session_data* sd, int revive)
 {
 	if(revive&(1|4) && pc_isdead(sd)) {
 		status_revive(&sd->bl, 100, 100);
-		clif_displaymessage(sd->fd,msg_txt(sd,16));
+		clif_displaymessage(sd->fd,msg_txt(sd,16)); // You've been revived!
 		clif_specialeffect(&sd->bl, 77, AREA);
 	} else if(revive&(1|2) && !pc_isdead(sd)) {
 		status_percent_heal(&sd->bl, 100, 100);
-		clif_displaymessage(sd->fd,msg_txt(sd,680));
+		clif_displaymessage(sd->fd,msg_txt(sd,680)); // You have been recovered!
 	}
 	return 0;
 }
 
 /*=========================================================================
  * Fully Recover a Character's HP/SP - [Capuche] & [Akinari]
- * recovery <target>,{<id | map>,<revive_flag>,{<map>}};
- * <target> :
- *	0 - Character
- *	1 - Character Party
- *	2 - Character Guild
- *	3 - Map (Character on map)
- *	4 - All Characters
- * <id | map> :
- *	<target> : 0   => Character's Account ID
- *	<target> : 1-2 => Character's Party/Guild ID
- *	<target> : 3   => Map Name (player attached map's name by default)
- * <revive_flag> :
- *		 : 1 => Revive and Recover (Default)
- *		 : 2 => Only Full Heal
- *		 : 4 => Only Revive
- * <map> :
- *	<target> : 1-2 => Map name (Null = All)
+ * recovery <type>{,<option>,<revive_flag>{,<map name>}};
+ * <type> determines <option>:
+ *	0 : char_id
+ *	1 : party_id
+ *	2 : guild_id
+ *	3 : map_name
+ *	4 : all characters
+ * <revive_flag>:
+ *	1 : Revive and heal all players (default)
+ *	2 : Heal living players only
+ *	4 : Revive dead players only
+ * <map name>:
+ *	for types 1-2 : map_name (null = all maps)
  *-------------------------------------------------------------------------*/
 BUILDIN_FUNC(recovery)
 {
@@ -12928,7 +12924,7 @@ BUILDIN_FUNC(recovery)
 		{
 			struct s_mapiterator *iter;
 			if(script_hasdata(st,3) && !script_isstring(st,3))
-				revive = script_getnum(st,3);
+				revive = script_getnum(st,3); // recovery 4,<revive_flag>;
 			iter = mapit_getallusers();
 			for (sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); sd = (TBL_PC*)mapit_next(iter)) {
 				if(type == 3 && sd->bl.m != map)