summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/000-0-0/sailors.txt2
-rw-r--r--npc/001-2-6/books.txt6
-rw-r--r--npc/002-1/arpan.txt6
-rw-r--r--npc/002-1/knife.txt4
-rw-r--r--npc/002-3/_import.txt2
-rw-r--r--npc/002-3/billybons.txt12
-rw-r--r--npc/002-3/juliet.txt (renamed from npc/002-3/julia.txt)56
-rw-r--r--npc/002-3/note.txt4
-rw-r--r--npc/003-1/_warps.txt4
-rw-r--r--npc/003-1/eomie.txt1
-rw-r--r--npc/003-1/eugene.txt2
-rw-r--r--npc/003-1/mariusthebard.txt84
-rw-r--r--npc/003-1/ninathetraveler.txt16
-rw-r--r--npc/003-1/sarah.txt16
-rw-r--r--npc/003-1/well.txt4
-rw-r--r--npc/003-8/jhedia.txt21
-rw-r--r--npc/005-1/_import.txt3
-rw-r--r--npc/005-1/_warps.txt2
-rw-r--r--npc/005-1/aahna.txt10
-rw-r--r--npc/005-1/ayasha.txt44
-rw-r--r--npc/005-1/liana.txt50
-rw-r--r--npc/005-1/maya.txt2
-rw-r--r--npc/005-1/zegas.txt100
-rw-r--r--npc/005-3/barrel.txt108
-rw-r--r--npc/005-6/morgan.txt2
-rw-r--r--npc/functions/game-rules.txt13
26 files changed, 450 insertions, 124 deletions
diff --git a/npc/000-0-0/sailors.txt b/npc/000-0-0/sailors.txt
index c8f3b095a..b8ecdfa9f 100644
--- a/npc/000-0-0/sailors.txt
+++ b/npc/000-0-0/sailors.txt
@@ -24,7 +24,7 @@ OnTalk:
next;
mesn "Magic Arpan";
- mesq l("In the worst scenario possible, the Monster King finally decided to attack warships.");
+ mesq l("In the worst scenario possible, the monsters finally decided to attack warships.");
next;
mesn "Elmo";
diff --git a/npc/001-2-6/books.txt b/npc/001-2-6/books.txt
index 53091bdf0..b4fc8b1a8 100644
--- a/npc/001-2-6/books.txt
+++ b/npc/001-2-6/books.txt
@@ -142,15 +142,15 @@ OnInit:
function read_book {
narrator S_FIRST_BLANK_LINE,
l("Aemil was once a magnificent land unknown to us all."),
- l("Before the end of the Mana War, a band of adventurers formed in the Ancean region of Argaes from those who had lost their homes and families."),
+ l("Before the end of the First Famine, a band of adventurers sailed in search of fertile lands."),
l("They sailed from Hurnscald to Tulimshar and then Nivalis, the last permanent settlements of humans."),
l("There, they gathered merchants and warriors to join them in a journey to find a new land on which to live."),
l("The group found the support of Tulimshar's merchant lords and was given ships to sail east."),
l("They sailed past the Clear Sea and towards the Long Ocean which nobody had explored before."),
- l("The newly created Fleet of Ancea travelled so far that they were never heard from again."),
+ l("The newly created Fleet travelled so far that they were never heard from again."),
l("Their leaders then came to the conclusion that an alliance was the only way they could survive."),
l("They eventually found a new land after much hardship and named it Aurora, after its beautiful sunrise."),
- l("A great city, eventually to become larger than the cities of Ancea, rose on the coast of Aemil. This city was named Esperia."),
+ l("A great city rose on the coast of Aemil. This city was named Esperia."),
l("However..."),
l("The end of the story got erased, probably because of the sea water. Some pages are still missing. Thus much is lost to time, including the author's name.");
}
diff --git a/npc/002-1/arpan.txt b/npc/002-1/arpan.txt
index be8eb6e3b..f5a945e7d 100644
--- a/npc/002-1/arpan.txt
+++ b/npc/002-1/arpan.txt
@@ -133,7 +133,7 @@ L_OhWell:
L_Story:
mes "";
- mesq lg("You were yaying sleeping for quite some time there. Our shipkeeper, Julia, was here with you, and she did her best to heal your injuries.");
+ mesq lg("You were yaying sleeping for quite some time there. Our shipkeeper, Juliet, was here with you, and she did her best to heal your injuries.");
next;
if (.@q_julia == 0) setq ShipQuests_Julia, 1;
mesq lg("Yaya, you should go see her! She'll be happy to see you.");
@@ -151,7 +151,7 @@ L_Menu:
menu
rif(.@q_nard == 5 && getq(General_Narrator) < 1, l("What can I do now?")), L_GotoSleep,
lg("Could you tell me where I am?"), L_Where,
- lg("Where can I find Julia?"), L_Julia,
+ lg("Where can I find Juliet?"), L_Julia,
l("Who are you?"), L_Who,
rif(getq(ShipQuests_ArpanMoney) == 1, lg("Do you know what happened to the gold I had when you guys saved me?")), L_WhereMoney,
rif(getq(ShipQuests_ArpanMoney) < 2, l("Where are my old clothes?")), L_WhereOldClothes,
@@ -181,7 +181,7 @@ L_Julia:
next;
mesn "Narrator";
- mes col(l("Julia is on the upper level of the ship, use the arrow keys to walk to the stairs or click on the stairs at the top right of your screen."), 9);
+ mes col(l("Juliet is on the upper level of the ship, use the arrow keys to walk to the stairs or click on the stairs at the top right of your screen."), 9);
next;
goto L_Menu;
diff --git a/npc/002-1/knife.txt b/npc/002-1/knife.txt
index 1280d0bed..0754648ab 100644
--- a/npc/002-1/knife.txt
+++ b/npc/002-1/knife.txt
@@ -20,8 +20,8 @@
next;
menu
- l("Yeah !."), L_Give,
- l("Na."), -;
+ l("Yeah!"), L_Give,
+ l("Nah."), -;
closedialog;
close;
diff --git a/npc/002-3/_import.txt b/npc/002-3/_import.txt
index 77541ce13..9a31365db 100644
--- a/npc/002-3/_import.txt
+++ b/npc/002-3/_import.txt
@@ -3,6 +3,6 @@
"npc/002-3/_warps.txt",
"npc/002-3/billybons.txt",
"npc/002-3/doors.txt",
-"npc/002-3/julia.txt",
+"npc/002-3/juliet.txt",
"npc/002-3/mapflags.txt",
"npc/002-3/note.txt",
diff --git a/npc/002-3/billybons.txt b/npc/002-3/billybons.txt
index 33400049e..9dbb64ba4 100644
--- a/npc/002-3/billybons.txt
+++ b/npc/002-3/billybons.txt
@@ -64,11 +64,9 @@
L_Secret:
mes "";
mesn;
- mesq l("Hear me *hic* well, what ever, whatididever you will *hic* said ab... uhm... out what?! You saw there, the Legion of Aemil won't let it get public.");
+ mesq l("Hear me *hic* well, what ever, whatididever you will *hic* said ab... uhm... out what?! You saw there, the Guild won't let it get public.");
next;
- mesq l("Nobody will know about the existence of the Mercurians.");
- next;
- mesq l("Nobody! *burp*");
+ mesq l("Nobody can know! *burp*");
next;
close;
@@ -81,9 +79,9 @@ L_Hic:
L_Quit:
mes "";
mesn;
- mesq l("Yeah you're all like *hic* that in Esperia, but you won't get me! *burp*");
+ mesq l("Yeah you're all like *hic* that, but you won't get me! *burp*");
next;
- mesq l("I'm not that numb eeh *hic* what did ever yous disco... ...vered there, the Legion of Aemil won't get me!");
+ mesq l("I'm not that numb eeh *hic* what did ever yous disco... ...vered there, the Guild won't get me!");
mesq l("*burp*");
next;
@@ -92,7 +90,7 @@ L_Quit:
close;
- L_Give:
+L_Give:
mes "";
inventoryplace 833, 1;
diff --git a/npc/002-3/julia.txt b/npc/002-3/juliet.txt
index f2c2f83ba..24b6a0e21 100644
--- a/npc/002-3/julia.txt
+++ b/npc/002-3/juliet.txt
@@ -3,8 +3,10 @@
// 4144
// Qwerty Dragon
// Vasily_Makarov
+// Jesusalva
// Description:
// Allows to change language and talks about what happened to him.
+// Modified by Jesusalva for TMW2
// 2 Bits Array:
// ShipQuests
// Variables:
@@ -32,7 +34,7 @@
// 24 ChefGado Quest completed and "Introduction" chapter finalized.
// 25 Reward taken from the box.
-002-3,27,24,0 script Julia#TMW2 NPC_JULIA,2,10,{
+002-3,27,24,0 script Juliet#TMW2 NPC_JULIA,2,10,{
function ynMenu {
if (select(l("Yes, I do."), l("No, none.")) == 1) {
@@ -97,7 +99,7 @@
setq ShipQuests_ChefGado, 6;
Zeny += 100;
- message strcharinfo(0), l("You receive @@ E!", 100);
+ message strcharinfo(0), l("You receive @@ GP!", 100);
getexp 8, 0;
close;
}
@@ -119,7 +121,7 @@
setq ShipQuests_ChefGado, 5;
Zeny += 200;
- message strcharinfo(0), l("You receive @@ E!", 200);
+ message strcharinfo(0), l("You receive @@ GP!", 200);
getexp 15, 0;
close;
}
@@ -188,11 +190,9 @@
function whereAmI {
mes "";
mesn;
- mesq l("You're on a ship, we're on our way to the commercial capital of Artis.");
+ mesq l("You're on a ship, we're on our way to the oldest human city, Tulishmar.");
next;
- mesq l("We should be there in a few days, once we arrive, I will warn the Legion of Aemil about what happened, I'm sure they can help.");
- next;
- mesq l("But for now, you can relax on the ship, or visit the island we're docked at! Its a small island, but a good place to get some exercise and stretch your legs.");
+ mesq l("We should be there in a few days. For now, you can relax on the ship, or visit the island we're docked at! Its a small island, but a good place to get some exercise and stretch your legs.");
next;
mesq l("Do you have any other questions for me?");
next;
@@ -207,16 +207,14 @@
next;
mesq lg("You were in bad shape, you should be happy we found you before the sea killed you.");
next;
- mesq l("Oh, and there was this inscription on your raft. It represents the Legion of Aemil, one of the four main guilds of Gasaron. Does that help you remember anything, anything at all?");
- next;
- select
- l("Sorry, but I can't tell you anything about that."),
- l("Nothing, sorry.");
+ //select
+ // l("Sorry, but I can't tell you anything about that."),
+ // l("Nothing, sorry.");
mes "";
mesn;
- mesq l("No problem, do you have any other questions for me?");
+ mesq l("Did you have any other questions for me?");
next;
ynMenu;
return;
@@ -285,13 +283,37 @@ OnTouch:
mesn;
mesq l("Hi, nice to see you!");
next;
- mesq l("My name is Julia, it is me who took care of you after we found you in the sea.");
+ mesq l("My name is Juliet, it is me who took care of you after we found you in the sea.");
next;
mesq lg("I'm glad to see you're okay.");
next;
- mesq lg("Could I ask you what your native language is? A sailor told me you're Russian, but another one told me you're French... I'm a bit lost. I will register you on the ship passenger list just after that.");
- next;
- chooseLang;
+ if (getq(ShipQuests_Julia) < 2)
+ {
+ mesq l("I'm sure that you've got some questions for me, feel free to ask them, but first I need to tell you the rules of proper social conduct on board.");
+
+ mesq l("Here they are.");
+ next;
+
+ narrator S_LAST_NEXT,
+ l("There is a paper with some rules written on it.");
+
+ GameRules 8 | 4;
+
+ mesn;
+ mesq l("Oh, and I almost forgot! Do not give the password of your room to anybody! I am the only one who has the other key and I won't ask for yours so keep it secret and try not to use the same password for any other room in the future.");
+ next;
+ mesq l("If you want to read this page again, there is a copy up on the left wall.");
+ next;
+ mesq l("You can also read The Book of Laws at any time to see the rules.");
+ next;
+ mesq l("I think I'm done with that now. Do you have any questions?");
+ next;
+
+ setq ShipQuests_Julia, 2;
+ }
+ //mesq lg("Could I ask you what your native language is? A sailor told me you're Russian, but another one told me you're French... I'm a bit lost. I will register you on the ship passenger list just after that.");
+ //next;
+ //chooseLang;
mainMenu;
end;
diff --git a/npc/002-3/note.txt b/npc/002-3/note.txt
index 31b395541..9bdbb8692 100644
--- a/npc/002-3/note.txt
+++ b/npc/002-3/note.txt
@@ -15,8 +15,8 @@
narrator S_NO_NPC_NAME,
l("Following these lines are some other writings on this paper."),
- l("Do not give the password of your room to anybody! Keep it secret and try not to use the same one in any other room in the future. - Julia"),
- l("Does anyone know a good place to hang out in Esperia? - M. Arpan"),
+ l("Do not give the password of your room to anybody! Keep it secret and try not to use the same one in any other room in the future. - Juliet"),
+ l("Does anyone know a good place to hang out in Esperia or Artis? - M. Arpan"),
l("Other things are written but are not legible anymore.");
close;
diff --git a/npc/003-1/_warps.txt b/npc/003-1/_warps.txt
index c125f0dd8..17d8d4f2a 100644
--- a/npc/003-1/_warps.txt
+++ b/npc/003-1/_warps.txt
@@ -4,7 +4,7 @@
003-1,46,72,0 warp #003-1_46_72 0,0,003-2,32,40
003-1,52,72,0 warp #003-1_52_72 0,0,003-2,38,40
003-1,56,99,0 warp #003-1_56_99 0,0,003-3,39,40
-003-1,54,137,0 warp #003-1_54_137 0,0,003-4,35,40
+//003-1,54,137,0 warp #003-1_54_137 0,0,003-4,35,40
003-1,51,119,0 warp #003-1_51_119 0,0,003-1,82,119
003-1,81,119,0 warp #003-1_81_119 0,0,003-1,52,119
003-1,96,144,0 warp #003-1_96_144 0,0,003-5,38,40
@@ -13,6 +13,6 @@
003-1,111,137,0 warp #003-1_111_137 0,0,003-7,39,40
003-1,107,132,0 warp #003-1_107_132 0,0,003-7,29,31
003-1,112,100,0 warp #003-1_112_100 0,0,003-8,31,43
-003-1,82,68,0 warp #003-1_82_68 0,0,003-9,35,40
+//003-1,82,68,0 warp #003-1_82_68 0,0,003-9,35,40
003-1,51,65,0 warp #003-1_51_65 0,0,003-2,42,34
003-1,115,93,0 warp #003-1_115_93 0,0,003-8,41,28
diff --git a/npc/003-1/eomie.txt b/npc/003-1/eomie.txt
index b566af4f5..d3f406139 100644
--- a/npc/003-1/eomie.txt
+++ b/npc/003-1/eomie.txt
@@ -1,5 +1,6 @@
// Author:
// Saulc
+// Notes: Eomie did the bug bomb at Candor
003-1,68,24,0 script Eomie NPC_MONA,{
diff --git a/npc/003-1/eugene.txt b/npc/003-1/eugene.txt
index 8c6b6fc38..c02b279a9 100644
--- a/npc/003-1/eugene.txt
+++ b/npc/003-1/eugene.txt
@@ -80,7 +80,7 @@ L_QuestDone:
OnInit:
.sex = G_MALE;
- .distance = 2;
+ .distance = 12;
end;
}
diff --git a/npc/003-1/mariusthebard.txt b/npc/003-1/mariusthebard.txt
index fe7169084..3bddc1331 100644
--- a/npc/003-1/mariusthebard.txt
+++ b/npc/003-1/mariusthebard.txt
@@ -1,13 +1,91 @@
+// The Mana World 2 Project
+// This file is part of TMW2 Project.
+
// Author:
// Saulc
+// Jesusalva
+
+// Description:
+// Marius the Bard is a bard. Helps player with the world's background story.
+
+003-1,88,135,0 script Marius The Bard NPC_ELVEN_MAN_TRADER,{
+
+//hello;
+ mesn;
+ mesq l("Hello adventurer, what may this humble minstrel do for you today?");
+ next;
+
+ menu
+ "Who, or what are you?", L_Who,
+ "Where exactly am I?", L_Where,
+ "Can you sing me a song?", L_Music,
+ "Actually, nothing. Bye!", L_Bye;
+
+L_Who:
+ mes "";
+ mesn;
+ mesq l("I am a bard! I used to be an elf trader, but music got me for good.");
+ next;
+ mesq l("Now I travel by the world, composing songs about the things I see.");
+ next;
+ mesq l("I try to improve my skills every day. One day, I will sing a song no one will ever forget.");
+ close();
-003-1,88,135,0 script Marius The Bard NPC_WATER_SPLASH,{
+L_Where:
+ mes "";
+ mesn;
+ mesq l("This is Tulishmar, the oldest of human cities.");
+ next;
+ mesq l("It is a port city at the south of the continent. Main economic activities are mining and spices trade.");
+ next;
+ mesq l("The biggest mine, where you could find Mana Stones in the past, is now entirely depleted. Not a single stone left.");
+ next;
+ mesq l("The magic council have only a handful set of them, and they let only the most skilled ones get it.");
+ next;
+ mesq l("If you want, you can ask there for one. They are at the big building at northwest.");
+ close();
+// NOTE: Rewriting this song is always OK.
+// The last line is always bigger than the previous ones.
+L_Music:
+ mes "";
+ mesn;
+ mesq l("I will sing a song about the Mana War and current times.");
+ next;
+ mes l("In times of famine, magic came to save us.");
+ mes l("But we took every stone, and restricted the magic.");
+ mes l("Ah! Greedy humans! Why had we to desire?");
+ mes l("Ah! Greedy humans! How ignorant were we, to ever do that?");
+ next;
+ mes l("Saul and Fefe did a great revolution,");
+ mes l("They wanted magic to be once again free!");
+ mes l("Ah! Greedy humans! Why did we had to fight?");
+ mes l("Ah! Greedy humans! Couldn't we happy with little?");
+ next;
+ mes l("The mana war stroke, and many people died,");
+ mes l("The Mana Stones were stolen, in evil hands have fallen!");
+ mes l("Ah! Greedy humans! Just how big is our greed?");
+ mes l("Ah! Greedy humans! Things will never be as they used to be!");
+ next;
+ mes l("The mage thief tried to all power absorb,");
+ mes l("But instead of dying a Monster King he became!");
+ mes l("Ah! Greedy humans! We pay the price for our actions,");
+ mes l("Ah! Greedy humans! The Monster War will now rage the globe!");
+ next;
+ mes l("But hope is not lost, said the Sages of Fate!");
+ mes l("Because heroes are not born, rather, they are made!");
+ mes l("Ah! Greedy humans! Stand up to save our world!");
+ mes l("Ah! Greedy humans! End this war which our greed has stroke!");
+ close();
-hello;
+L_Bye:
+ mes "";
+ mesn;
+ mesq lg("Good bye my friend, and safe travels!");
+ close();
OnInit:
.sex = G_MALE;
- .distance = 3;
+ .distance = 5;
end;
}
diff --git a/npc/003-1/ninathetraveler.txt b/npc/003-1/ninathetraveler.txt
index 31180615d..921344691 100644
--- a/npc/003-1/ninathetraveler.txt
+++ b/npc/003-1/ninathetraveler.txt
@@ -1,7 +1,7 @@
// Author:
// Saulc
-003-1,56,143,0 script Nina The Traveler NPC_GUARD1,{
+003-1,56,143,0 script Nina The Traveler NPC_MONA,{
.cake = CherryCake;
.reward = FancyHat;
@@ -25,20 +25,20 @@
else
{
speech S_FIRST_BLANK_LINE,
- l("Sorry it's not the cake i love.");
+ l("Sorry, that is not the cake I love.");
close;
}
}
function quest_started {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("Oh Welcoem then.");
+ l("Oh, Welcome then.");
speech S_LAST_NEXT,
- l("Can you bring me a piece of Cherry Cake? Pretty please?.");
+ l("Can you bring me a piece of Cherry Cake? Pretty please?");
do
{
select
- l("Here is it !"),
+ l("Here is it!"),
menuaction(l("Quit"));
switch (@menu)
@@ -56,8 +56,8 @@
if (.@chest == 1)
goto quest_completed;
select
- rif(.@chest == 0,
- l("Hello i'm new there, can i help you ?")),
+ rif(.@chest == 0,
+ l("Hello, I'm new here! Can I help you?")),
menuaction(l("Quit"));
switch (@menu)
@@ -73,7 +73,7 @@
close;
OnInit:
- .sex = G_MALE;
+ .sex = G_FEMALE;
.distance = 3;
end;
}
diff --git a/npc/003-1/sarah.txt b/npc/003-1/sarah.txt
index 6cfeeb60a..c5c6e7def 100644
--- a/npc/003-1/sarah.txt
+++ b/npc/003-1/sarah.txt
@@ -1,7 +1,7 @@
// Author:
// Saulc
-003-1,90,144,0 script Sarah NPC_PLAYER,{
+003-1,90,144,0 script Sarah NPC_MONA,{
.cake = CherryCake;
.reward = FancyHat;
@@ -25,20 +25,20 @@
else
{
speech S_FIRST_BLANK_LINE,
- l("Sorry it's not the cake i love.");
+ l("Sorry, that is not the cake I love.");
close;
}
}
function quest_started {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("Oh Welcoem then.");
+ l("Oh, Welcome then.");
speech S_LAST_NEXT,
- l("Can you bring me a piece of Cherry Cake? Pretty please?.");
+ l("Can you bring me a piece of Cherry Cake? Pretty please?");
do
{
select
- l("Here is it !"),
+ l("Here is it!"),
menuaction(l("Quit"));
switch (@menu)
@@ -56,8 +56,8 @@
if (.@chest == 1)
goto quest_completed;
select
- rif(.@chest == 0,
- l("Hello i'm new there, can i help you ?")),
+ rif(.@chest == 0,
+ l("Hello, I'm new here! Can I help you?")),
menuaction(l("Quit"));
switch (@menu)
@@ -73,7 +73,7 @@
close;
OnInit:
- .sex = G_MALE;
+ .sex = G_FEMALE;
.distance = 3;
end;
}
diff --git a/npc/003-1/well.txt b/npc/003-1/well.txt
index 695dae536..c7e272213 100644
--- a/npc/003-1/well.txt
+++ b/npc/003-1/well.txt
@@ -20,13 +20,13 @@
close;
}
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("You don't have enought quantity.");
+ l("You don't have enough ore.");
close;
}
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("Hello do you want to craft @@, for that i will need 7 @@,and @@ gp.", getitemlink(.ItemCreate),getitemlink(.Item1),.GP);
+ l("Hello! Do you want to craft @@? For that I will need 7 @@, and @@ gp.", getitemlink(.ItemCreate),getitemlink(.Item1),.GP);
do
{
diff --git a/npc/003-8/jhedia.txt b/npc/003-8/jhedia.txt
index 9f661fa20..c638d894c 100644
--- a/npc/003-8/jhedia.txt
+++ b/npc/003-8/jhedia.txt
@@ -1,6 +1,7 @@
// TMW2 scripts.
// Author:
// Crazyfefe
+// Note: script works, but one may argue it is not complete
003-8,28,30,0 script Jhedia NPC_ELVEN_FEMALE,{
@@ -12,24 +13,24 @@
function quest_create {
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("How many ingots do you want to make?");
- input .amount;
+ input @amount;
- if (countitem("Iron Ore") >= .amount * 7 && countitem("Coal") >= .amount * 11 && Zeny >= 8500 * .amount)
+ if (countitem("Iron Ore") >= @amount * 7 && countitem("Coal") >= @amount * 11 && Zeny >= 8500 * @amount)
{
- delitem .Item1, .amount * 7;
- delitem .Item2, .amount * 11;
- Zeny = Zeny - .amount * .GP;
- getitem .ItemCreate, .amount;
+ delitem .Item1, @amount * 7;
+ delitem .Item2, @amount * 11;
+ Zeny = Zeny - @amount * .GP;
+ getitem .ItemCreate, @amount;
close;
}
- speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("You don't have enought quantity.");
+ speech S_FIRST_BLANK_LINE,// | S_LAST_NEXT,
+ l("You don't have enough material.");
close;
}
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("Hello do you want to craft @@, for that i will need 7 @@, 11 @@ and @@ gp.", getitemlink(.ItemCreate),getitemlink(.Item1),getitemlink(.Item2),.GP);
+ l("Hello! Do you want to craft @@? For that i will need 7 @@, 11 @@ and @@ gp.", getitemlink(.ItemCreate),getitemlink(.Item1),getitemlink(.Item2),.GP);
do
{
@@ -51,7 +52,7 @@
close;
OnInit:
- .sex = G_MALE;
+ .sex = G_FEMALE;
.distance = 3;
end;
}
diff --git a/npc/005-1/_import.txt b/npc/005-1/_import.txt
index 5c79c44df..b2de1340f 100644
--- a/npc/005-1/_import.txt
+++ b/npc/005-1/_import.txt
@@ -2,6 +2,9 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/005-1/_mobs.txt",
"npc/005-1/_warps.txt",
+"npc/005-1/aahna.txt",
"npc/005-1/ayasha.txt",
"npc/005-1/maya.txt",
+"npc/005-1/liana.txt",
"npc/005-1/warpcandorbattle.txt",
+"npc/005-1/zegas.txt",
diff --git a/npc/005-1/_warps.txt b/npc/005-1/_warps.txt
index 37724759a..ce38a46e4 100644
--- a/npc/005-1/_warps.txt
+++ b/npc/005-1/_warps.txt
@@ -1,6 +1,6 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
// Map 005-1: Candor Island warps
-005-1,43,107,0 warp #005-1_43_107 0,0,002-2,21,28
+005-1,43,107,0 warp #005-1_43_107 0,0,002-3,21,28
005-1,31,80,0 warp #005-1_31_80 0,0,005-2,33,42
005-1,34,74,0 warp #005-1_34_74 0,0,005-3,25,42
005-1,48,70,0 warp #005-1_48_70 0,0,005-4,25,42
diff --git a/npc/005-1/aahna.txt b/npc/005-1/aahna.txt
new file mode 100644
index 000000000..c679ca07d
--- /dev/null
+++ b/npc/005-1/aahna.txt
@@ -0,0 +1,10 @@
+005-1,61,43,0 script Aahna NPC_GUARD1,{
+ mesn;
+ mesq l("Hello, What a lovely day for a stroll.");
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 3;
+ end;
+}
diff --git a/npc/005-1/ayasha.txt b/npc/005-1/ayasha.txt
index 8a6338455..9bc7b2d2f 100644
--- a/npc/005-1/ayasha.txt
+++ b/npc/005-1/ayasha.txt
@@ -1,17 +1,17 @@
// Author:
// Crazyfefe
+// Jesusalva (fixes)
-
-005-1,52,81,0 script Ayasha NPC_PLAYER,{
+005-1,52,81,0 script Ayasha NPC_HUMAN_FEMALE_NOOB,{
function quest_findAllKids
{
setq CandorQuest_HAS, 1;
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("Good luck !");
+ l("Good luck!");
close;
}
@@ -19,7 +19,7 @@
if (.@has == 0)
{
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("Hello! can you help me for find all kids?");
+ l("Hello! Can you help me to find all kids?");
do
{
select
@@ -37,7 +37,7 @@
else if (.@has == 1)
{
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("You don't find all of them yet.");
+ l("You still haven't found all of them yet.");
close;
}
else if (.@has == 2)
@@ -61,15 +61,15 @@
close;
OnInit:
- .sex = G_MALE;
+ .sex = G_FEMALE;
.distance = 3;
end;
}
function script CheckEnfant {
- .questCheck = .questCheck + 1; // NOTE: Do we really want this as a **NPC** variable? These affects other players, right?
- l("Oh Welcome then.");
+ .questCheck = .questCheck + 1; // FIXME: This is broken scope.
+ l("Oh Welcome then."); // NOTE: This will never work
speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
l("Oh! You found me. Well played!");
narrator("You receive 5 exp.");
@@ -84,6 +84,9 @@ function script CheckEnfant {
if (getq(CandorQuest_HAS) == 1)
{
CheckEnfant();
+ } else {
+ mes l("The kid is not paying attention to you.");
+ close;
}
end;
OnInit:
@@ -95,10 +98,13 @@ OnInit:
if (getq(CandorQuest_HAS) == 1)
{
CheckEnfant();
+ } else {
+ mes l("The kid is not paying attention to you.");
+ close;
}
end;
OnInit:
- .sex = G_OTHER;
+ .sex = G_MALE;
.distance = 1;
end;
}
@@ -106,10 +112,13 @@ OnInit:
if (getq(CandorQuest_HAS) == 1)
{
CheckEnfant();
+ } else {
+ mes l("The kid is not paying attention to you.");
+ close;
}
end;
OnInit:
- .sex = G_OTHER;
+ .sex = G_MALE;
.distance = 1;
end;
}
@@ -117,10 +126,13 @@ OnInit:
if (getq(CandorQuest_HAS) == 1)
{
CheckEnfant();
+ } else {
+ mes l("The kid is not paying attention to you.");
+ close;
}
end;
OnInit:
- .sex = G_OTHER;
+ .sex = G_MALE;
.distance = 1;
end;
}
@@ -128,10 +140,13 @@ OnInit:
if (getq(CandorQuest_HAS) == 1)
{
CheckEnfant();
+ } else {
+ mes l("The kid is not paying attention to you.");
+ close;
}
end;
OnInit:
- .sex = G_OTHER;
+ .sex = G_MALE;
.distance = 1;
end;
}
@@ -139,10 +154,13 @@ OnInit:
if (getq(CandorQuest_HAS) == 1)
{
CheckEnfant();
+ } else {
+ mes l("The kid is not paying attention to you.");
+ close;
}
end;
OnInit:
- .sex = G_OTHER;
+ .sex = G_MALE;
.distance = 1;
end;
}
diff --git a/npc/005-1/liana.txt b/npc/005-1/liana.txt
new file mode 100644
index 000000000..fc06cf41b
--- /dev/null
+++ b/npc/005-1/liana.txt
@@ -0,0 +1,50 @@
+// TMW2 Script
+// Author: Jesusalva
+// Author: TMW-Org. Script Writers
+// PS. Liana could (should) explain too the small cave north of there. It can be
+// a place to run, or maybe monsters there are natural and protect them from the
+// Mana Monsters, etc.
+
+005-1,47,86,0 script Liana NPC_ELVEN_FEMALE,{
+ mesn;
+ //mesq l("Hurnscald is a large city. I'm sure glad I live in Candor because I know where everything's at.");
+ mesq l("Monsters do not aim small towns like Candor. This city also comes with the plus that I know where everything's at.");
+ if (QL_BEGIN == 10) goto L_Hasan;
+ close;
+
+L_Hasan:
+ mes "[Liana]";
+ mesq l("Are you enjoying yourself in Candor? Do you have any questions?");
+ menu
+ l("A guy named Hasan is bullying people."),L_Next,
+ l("No, thanks."),L_Close;
+
+L_Next:
+ mesq l("Ah, Hasan. He's causing trouble again?");
+ next;
+ mes l("She shakes her head.");
+ next;
+ mesq l("This guy has been a plague ever since he could walk. He's always causing trouble.");
+ next;
+ mesq l("And his father... Well, one day his father thought he should teach Hasan a lesson.");
+ next;
+ mesq l("He took him into the desert and then left him there!");
+ next;
+ mes l("Hasan was only seven years old!");
+ next;
+ mesq l("I never understood how someone could do something like that to a child, even if it's a rascal like Hasan.");
+ next;
+ mesq l("Anyway, Hasan tried to find his way back home, but stumbled into a nest of scorpions!");
+ next;
+ mes l("She shakes her head.");
+ mesq l("If Lieutenant Dausen hadn't have come along that moment, Hasan would have died that day.");
+ next;
+ mesq l("However, the scorpions poison caused a bad fever and once Hasan had recovered from that, he was even more malicious than before.");
+ next;
+ mes l("She sighs.");
+ QL_BEGIN = 11;
+ goto L_Close;
+
+L_Close:
+ close;
+}
diff --git a/npc/005-1/maya.txt b/npc/005-1/maya.txt
index b21ac8a52..5b6a5afee 100644
--- a/npc/005-1/maya.txt
+++ b/npc/005-1/maya.txt
@@ -11,5 +11,5 @@
005-1,42,37,0 script Maya NPC_RAIJIN_FEMALE_LEGION_ARTIS,{
-
+ hello;
}
diff --git a/npc/005-1/zegas.txt b/npc/005-1/zegas.txt
new file mode 100644
index 000000000..f2acc6a13
--- /dev/null
+++ b/npc/005-1/zegas.txt
@@ -0,0 +1,100 @@
+005-1,35,77,0 script Zegas NPC_MONA,{
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 1)
+ goto L_Find;
+ if (.@q == 2)
+ goto L_Looking;
+ if (.@q == 3)
+ goto L_QuestEnd;
+ if (.@q == 4)
+ goto L_Thanks;
+ goto L_Meet;
+
+L_Meet:
+ mesn;
+ mesq l("Hey do you have a second?");
+ next;
+ mesq l("The storehouse here is over run with house maggots.");
+ next;
+ mesq l("Wouldn't you know it, the bug bomb Eomie gave us is in one of the store room barrels.");
+ next;
+ mesq l("Can you search the barrels for the bug bomb and set it off when you find it?");
+ setq CandorQuest_Barrel, 1;
+ menu
+ l("Sure."),L_Start,
+ l("Maybe some other time."),L_Close;
+
+L_Find:
+ mesn;
+ mesq l("The storehouse is still over run with house maggots.");
+ next;
+ mesq l("Please help me find the bug bomb Eomie gave us is in one of the store room barrels?");
+ menu
+ l("Sure."),L_Start,
+ l("Maybe some other time."),L_Close;
+
+L_Start:
+ mesn;
+ mesq l("Thanks, come back and see me once you found the bug bomb and set it off.");
+ setq CandorQuest_Barrel, 2;
+ goto L_Close;
+
+L_Looking:
+ mesn;
+ mesq l("Still haven't found it? Well keep looking I know it's in there, somewhere.");
+ goto L_Close;
+
+L_QuestEnd:
+ mesn;
+ mesq l("From the smell I can see you found the bug bomb!");
+ mesq l("Thanks once again, I know it's not much but here is 50 GP for your troubles.");
+ getexp 50, 0;
+ Zeny = (Zeny + 50);
+ setq CandorQuest_Barrel, 4;
+ goto L_Close;
+
+L_Thanks:
+ mesn;
+ mesq l("Thanks for Helping with clear out the store room!");
+ goto L_Close;
+
+L_Close:
+ close;
+
+OnInit:
+ .sex = G_FEMALE;
+ .distance = 2;
+ end;
+}
+
+005-1,32,73,0 script ZegasDebug NPC_MONA,{
+ showavatar NPC_MONA; // this is handled by avatars.xml
+ mesn;
+ mesq l("Reset?");
+ next;
+ menu
+ l("Yes."), L_Reset,
+ l("No."), L_Close;
+
+L_Reset:
+ setq CandorQuest_Barrel, 0;
+ STARTAREA = STARTAREA &~ (1 << 2);
+ STARTAREA = STARTAREA &~ (1 << 3);
+ STARTAREA = STARTAREA &~ (1 << 4);
+ STARTAREA = STARTAREA &~ (1 << 5);
+ STARTAREA = STARTAREA &~ (1 << 6);
+ STARTAREA = STARTAREA &~ (1 << 7);
+ STARTAREA = STARTAREA &~ (1 << 8);
+ STARTAREA = STARTAREA &~ (1 << 9);
+ mes l("Reset!");
+ goto L_Close;
+
+L_Close:
+ //showavatar; // Use this to hide the showavatar
+ close;
+
+//OnInit:
+ //if (!debug)
+ // disablenpc "ZegasDebug";
+ //end;
+}
diff --git a/npc/005-3/barrel.txt b/npc/005-3/barrel.txt
index ec7f06b4f..63af4dfc3 100644
--- a/npc/005-3/barrel.txt
+++ b/npc/005-3/barrel.txt
@@ -1,57 +1,93 @@
-// Evol scripts.
+// TMW-2 script.
// Author:
// Crazyfefe
+// Jesusalva
// Description:
-// Blacksmith's assistant of Artis
+// Barrels
// Variables:
-// ArtisQuests_Enora
+// CandorQuest_Barrel
// Values:
// 0 Default.
-// 1 BlackSmith quest delivered.
-// 2 Chelios Quest given.
-// 3 Chelios Quest done.
-// 4 BlackSmith gave the sword.
+// 1 Quest Found.
+// 2 Quest Accepted.
+// 3 Bomb Defused.
+// 4 Quest Completed.
+
+// TODO FIXME: KNOWN BUG
+// It is a known bug that using .questCheck and .questState is ABSOLUTELY WRONG
+// A NPC variable affects the whole server, lasting until server restart.
+// Therefore, by using "." variables, it will only work at localhosts.
+// TODO FIXME: KNOWN BUG
function script CheckBarrel {
- .questCheck = .questCheck + 1;
+ @barrel_count = 0;
+ @count_tmp = 0;
+ if (debug)
+ npctalk3 l("Hello, I am B-@@, of the @@ order.", @barrel, $@BarrelBits[@barrel]);
+ if (STARTAREA & $@BarrelBits[@barrel])
+ goto L_Empty;
+ STARTAREA = STARTAREA | $@BarrelBits[@barrel];
+
+ goto L_Loop;
+
+L_BarrelTally:
areamonster "005-3", 24, 34, 45, 42, "Cave Maggot", 1027, 1;
- if (.questCheck == 8)
+ if (@barrel_count == 8)
{
- setq CandorQuest_Barrel, 1;
+ message strcharinfo(0), "You found the bug bomb.";
+ specialeffect(13);
+ setq CandorQuest_Barrel, 3;
}
- .@rand = rand(6);
- if (.@rand == 0)
+ @rand = rand(6);
+ if (@rand == 0)
getitem Coal,1;
- else if (.@rand == 1)
+ else if (@rand == 1)
getitem PinkAntenna,1;
- else if (.@rand == 2)
+ else if (@rand == 2)
getitem CoinBag,1;
- else if (.@rand == 3)
+ else if (@rand == 3)
getitem Croconut,1;
- else if (.@rand == 4)
+ else if (@rand == 4)
getitem Bread,1;
- else if (.@rand == 5)
+ else if (@rand == 5)
getitem TolchiArrow,6;
+ return;
+
+L_Loop:
+ while (@count_tmp < 8) {
+ @count_tmp = (@count_tmp + 1);
+ if (STARTAREA & $@BarrelBits[@count_tmp])
+ @barrel_count = (@barrel_count + 1);
+ }
+ goto L_BarrelTally;
+
+L_Empty:
+ message strcharinfo(0), "You've already searched this barrel.";
+ return;
}
005-3,24,36,0 script Barrel#1 NPC_NO_SPRITE,{
- if (.questState == 0)
+ @barrel = 1;
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 2)
{
- .questState = 1;
CheckBarrel();
}
end;
OnInit:
+ // Remember: array start at zero, but barrels count start at 1. "Fixing" may break barrel 8!
+ setarray $@BarrelBits, (1 << 1), (1 << 2), (1 << 3), (1 << 4), (1 << 5), (1 << 6), (1 << 7), (1 << 8), (1 << 9);
.sex = G_OTHER;
.distance = 1;
end;
}
005-3,24,39,0 script Barrel#2 NPC_NO_SPRITE,{
- if (.questState == 0)
+ @barrel = 2;
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 2)
{
- .questState = 1;
CheckBarrel();
}
end;
@@ -62,9 +98,10 @@ OnInit:
}
005-3,29,37,0 script Barrel#3 NPC_NO_SPRITE,{
- if (.questState == 0)
+ @barrel = 3;
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 2)
{
- .questState = 1;
CheckBarrel();
}
end;
@@ -74,9 +111,10 @@ OnInit:
end;
}
005-3,35,34,0 script Barrel#4 NPC_NO_SPRITE,{
- if (.questState == 0)
+ @barrel = 4;
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 2)
{
- .questState = 1;
CheckBarrel();
}
end;
@@ -86,9 +124,10 @@ OnInit:
end;
}
005-3,38,34,0 script Barrel#5 NPC_NO_SPRITE,{
- if (.questState == 0)
+ @barrel = 5;
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 2)
{
- .questState = 1;
CheckBarrel();
}
end;
@@ -98,9 +137,10 @@ OnInit:
end;
}
005-3,44,40,0 script Barrel#6 NPC_NO_SPRITE,{
- if (.questState == 0)
+ @barrel = 6;
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 2)
{
- .questState = 1;
CheckBarrel();
}
end;
@@ -110,9 +150,10 @@ OnInit:
end;
}
005-3,38,41,0 script Barrel#7 NPC_NO_SPRITE,{
- if (.questState == 0)
+ @barrel = 7;
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 2)
{
- .questState = 1;
CheckBarrel();
}
end;
@@ -122,9 +163,10 @@ OnInit:
end;
}
005-3,29,41,0 script Barrel#8 NPC_NO_SPRITE,{
- if (.questState == 0)
+ @barrel = 8;
+ .@q = getq(CandorQuest_Barrel);
+ if (.@q == 2)
{
- .questState = 1;
CheckBarrel();
}
end;
diff --git a/npc/005-6/morgan.txt b/npc/005-6/morgan.txt
index 5f9fe1c3b..44df10a63 100644
--- a/npc/005-6/morgan.txt
+++ b/npc/005-6/morgan.txt
@@ -1,5 +1,7 @@
005-6,30,37,0 script Morgan NPC_RUMLY,{
+hello;
+
OnInit:
.sex = G_MALE;
end;
diff --git a/npc/functions/game-rules.txt b/npc/functions/game-rules.txt
index f633ee5f3..97395d568 100644
--- a/npc/functions/game-rules.txt
+++ b/npc/functions/game-rules.txt
@@ -4,21 +4,22 @@
// Qwerty Dragon
// Reid
// WildX
+// Jesusalva
// Description:
-// 7 main rules of Evol Online.
+// Main Rules of TMW2.
function script GameRules {
if (checkweight(BookOfLaws, 1) == true && countitem(BookOfLaws) < 1)
getitem BookOfLaws, 1; // give the book if the player lost it
narrator getarg(0, 0),
- l("1. ##BDo not bot##b, this means you are not allowed to perform any AFK (away from keyboard) activity, apart from standing idle."),
+ l("1. ##BDo not bot nor multibox##b, this means you are not allowed to perform any AFK (away from keyboard) activity, apart from standing idle. And you are not allowed to engage in combat while controlling more than one character at a time, either."),
l("2. ##BDo not use offensive/rude language##b in the chats or in your character(s) name(s)."),
l("3. ##BDo not spam/flood other players.##b This includes chat spam and spam by trade requests."),
- l("4. ##BSpeak only English in public areas.##b You can speak whatever language you want through whispers or whenever everyone in the area can speak said language."),
+ l("4. ##BPrefer English in public areas.##b You can speak whatever language you want through whispers or whenever everyone in the area can speak said language. But otherwise, prefer english."),
l("5. ##BDo not beg others##b for money, items or favours of any kind. If you want to ask for something, do it politely and only once. Try not to annoy other players."),
l("6. ##BFollow the [@@http://wiki.evolonline.org/rules/esc|ESC@@]##b (Evol Social Convention)."),
- l("7. ##BDo not multibox.##b You are not allowed to engage in combat while controlling more than one character at a time.");
+ l("7. ##BAs long as you have an account, you agree with the [@@https://gitlab.com/TMW2/TheManaWorld_Wiki/wikis/Rules|Terms Of Service@@]##b. Shall any rule conflict with these terms, the Terms Of Service provided on that link shall prevail.");
return;
}
@@ -28,13 +29,13 @@ function script GameRules {
function read_book {
narrator S_FIRST_BLANK_LINE | S_LAST_NEXT,
- l("This book outlines the laws of every city and holding in Gasaron."),
+ l("This book outlines the laws which applies everywhere in the World Of Mana."),
l("The first page contains the universal rules that have been agreed upon throughout the land.");
GameRules S_NO_NPC_NAME | S_LAST_NEXT;
narrator S_NO_NPC_NAME,
- l("The next page begins to list the complex trading laws of the City of Esperia"),
+ l("The next page begins to list the complex trading laws and political rules."),
l("All this seems unimportant to you right now.");
close;
}