* 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
This commit is contained in:
euphyy 2013-05-10 00:10:45 +00:00
parent 553fe59fb1
commit f967a8de53
18 changed files with 2021 additions and 361 deletions

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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: -- Заблокировать указанного игрока на данном канале.

View File

@ -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.

View File

@ -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;
---------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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;
}
}

File diff suppressed because it is too large Load Diff

View File

@ -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;
}
}

View File

@ -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

View File

@ -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;
}

View File

@ -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
//=======================================================

View File

@ -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;
}

View File

@ -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

View File

@ -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

View File

@ -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)