summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/000-1/exit.txt8
-rw-r--r--npc/024-1/_import.txt1
-rw-r--r--npc/024-1/guard.txt12
-rw-r--r--npc/024-1/soul-menhir.txt20
-rw-r--r--npc/024-1/town.txt4
-rw-r--r--npc/024-10/_import.txt1
-rw-r--r--npc/024-10/haircut.txt66
-rw-r--r--npc/024-12/_import.txt1
-rw-r--r--npc/024-12/alicia.txt111
-rw-r--r--npc/024-3/_import.txt1
-rw-r--r--npc/024-3/arauto.txt16
-rw-r--r--npc/024-8/_import.txt1
-rw-r--r--npc/024-8/nurse.txt23
13 files changed, 258 insertions, 7 deletions
diff --git a/npc/000-1/exit.txt b/npc/000-1/exit.txt
index 81b60e531..ddbcc2321 100644
--- a/npc/000-1/exit.txt
+++ b/npc/000-1/exit.txt
@@ -23,10 +23,10 @@ OnTalkNearby:
end;
OnInit:
- setarray .LOCMASTER_LOC$, "Candor", "Tulim", "Halin", "Hurns", "LoF", "Nival"; // 018-5 Lilit 024-1 Frostia
- setarray .LOCMASTER_MAP$, "005-1", "003-1", "009-1", "012-1", "017-1", "020-1";
- setarray .LOCMASTER_X, 34, 40, 26, 86, 119, 56;
- setarray .LOCMASTER_Y, 101, 49, 30, 69, 87, 62;
+ setarray .LOCMASTER_LOC$, "Candor", "Tulim", "Halin", "Hurns", "LoF", "Nival", "Frostia"; // 018-5 Lilit
+ setarray .LOCMASTER_MAP$, "005-1", "003-1", "009-1", "012-1", "017-1", "020-1", "024-1";
+ setarray .LOCMASTER_X, 34, 40, 26, 86, 119, 56, 94;
+ setarray .LOCMASTER_Y, 101, 49, 30, 69, 87, 62, 42;
debugmes "Locmaster: Index 0: %s [%s.gat (%d, %d)]", .LOCMASTER_LOC$[0], .LOCMASTER_MAP$[0], .LOCMASTER_X[0], .LOCMASTER_Y[0];
debugmes "Locmaster: Index 2: %s [%s.gat (%d, %d)]", .LOCMASTER_LOC$[2], .LOCMASTER_MAP$[2], .LOCMASTER_X[2], .LOCMASTER_Y[2];
diff --git a/npc/024-1/_import.txt b/npc/024-1/_import.txt
index c31784210..604efcddb 100644
--- a/npc/024-1/_import.txt
+++ b/npc/024-1/_import.txt
@@ -3,5 +3,6 @@
"npc/024-1/_warps.txt",
"npc/024-1/guard.txt",
"npc/024-1/mapflags.txt",
+"npc/024-1/soul-menhir.txt",
"npc/024-1/teleporter.txt",
"npc/024-1/town.txt",
diff --git a/npc/024-1/guard.txt b/npc/024-1/guard.txt
index 4dc86cdd8..23bc03790 100644
--- a/npc/024-1/guard.txt
+++ b/npc/024-1/guard.txt
@@ -9,10 +9,20 @@
goto L_Unallowed;
//if (getrace() == "Elf") goto L_Warp;
- .@tax=101-reputation("Frostia");
+ .@tax=1001-(reputation("Frostia")*10);
mesn;
mesc l("The guard eyes you with suspcion.");
mesq l("You should not be here. Get moving.");
+ if (Zeny < .@tax)
+ close;
+ next;
+ mesc l("Bribe the guard for @@ GP?", .@price);
+ if (askyesno() == ASK_YES) {
+ Zeny-=.@price;
+ closeclientdialog;
+ slide 93, 69;
+ npctalk3 l("Behave yourself.");
+ }
close;
L_Unallowed:
diff --git a/npc/024-1/soul-menhir.txt b/npc/024-1/soul-menhir.txt
new file mode 100644
index 000000000..2820399df
--- /dev/null
+++ b/npc/024-1/soul-menhir.txt
@@ -0,0 +1,20 @@
+// TMW2 scripts.
+// Author:
+// Jesusalva
+// Description:
+// Soul Menhir
+
+024-1,94,41,0 script Soul Menhir#frost NPC_SOUL_SNOW,{
+ @map$ = "024-1";
+ setarray @Xs, 93, 94, 95, 93, 95, 93, 94, 95;
+ setarray @Ys, 40, 40, 40, 41, 41, 42, 42, 42;
+ @x = 0;
+ @y = 0;
+ callfunc "SoulMenhir";
+ @map$ = "";
+ cleararray @Xs[0], 0, getarraysize(@Xs);
+ cleararray @Ys[0], 0, getarraysize(@Ys);
+ @x = 0;
+ @y = 0;
+ close;
+}
diff --git a/npc/024-1/town.txt b/npc/024-1/town.txt
index f3ddc20c7..fd7e7bb67 100644
--- a/npc/024-1/town.txt
+++ b/npc/024-1/town.txt
@@ -4,7 +4,7 @@
// Description:
// Reset LOCATION$ when entering a town
-/*024-1,x,y,0 script #LocFrostia NPC_HIDDEN,2,0,{
+024-1,93,69,0 script #LocFrostia NPC_HIDDEN,2,0,{
LOCATION$="Frostia"; end;
-}*/
+}
diff --git a/npc/024-10/_import.txt b/npc/024-10/_import.txt
index 6340503e7..185060717 100644
--- a/npc/024-10/_import.txt
+++ b/npc/024-10/_import.txt
@@ -1,3 +1,4 @@
// Map 024-10: Frostia Indoors
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/024-10/_warps.txt",
+"npc/024-10/haircut.txt",
diff --git a/npc/024-10/haircut.txt b/npc/024-10/haircut.txt
new file mode 100644
index 000000000..a7d931146
--- /dev/null
+++ b/npc/024-10/haircut.txt
@@ -0,0 +1,66 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Haircut.
+
+024-10,27,30,0 script Cato Mil NPC_ELVEN_FEMALE_ARMOR_SHOP,{
+ function setRace {
+ clear;
+ setnpcdialogtitle l("Debug - Modify Race");
+ mes l("Race") + ": " + $@allraces$[Class];
+ next;
+ mes l("Please select the desired race.");
+ select("Human:Ukar:Redy:Elf:Orc:Raijin:Tritan");
+ jobchange max(0, @menu-1);
+ return;
+ }
+
+
+ mesn;
+ mesq l("Hi! Do you want a hair cut?");
+
+ do
+ {
+ select
+ l("What is my current hairstyle and hair color?"),
+ l("I'd like to get a different style."),
+ l("Can you do something with my color?"),
+ rif(is_staff(), l("I am a GM, and I want to change my Race!")),
+ l("I'm fine for now, thank you.");
+
+ switch (@menu)
+ {
+ case 1:
+ BarberSayStyle 3;
+ break;
+ case 2:
+ BarberChangeStyle;
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Enjoy your new style.");
+ l("Anything else?");
+ break;
+ case 3:
+ BarberChangeColor;
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("I hope you like this color.");
+ l("Anything else?");
+ break;
+ case 4:
+ setRace;
+ break;
+ case 5:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Feel free to come visit me another time.");
+
+ goodbye;
+ }
+ } while (1);
+ close;
+
+OnInit:
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+}
+
diff --git a/npc/024-12/_import.txt b/npc/024-12/_import.txt
index bd57bfee9..1715d1891 100644
--- a/npc/024-12/_import.txt
+++ b/npc/024-12/_import.txt
@@ -1,3 +1,4 @@
// Map 024-12: Frostia Indoors
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/024-12/_warps.txt",
+"npc/024-12/alicia.txt",
diff --git a/npc/024-12/alicia.txt b/npc/024-12/alicia.txt
new file mode 100644
index 000000000..0d70aa48f
--- /dev/null
+++ b/npc/024-12/alicia.txt
@@ -0,0 +1,111 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Status Reset. (+ Alchemy Recipe?)
+
+024-12,28,29,0 script Alicia NPC_ELF_F,{
+
+ speech S_LAST_NEXT,
+ l("I am @@, an alchemist specialized in reset potions.", .name$);
+
+L_Menu:
+ .@plush_count = BaseLevel*200-(9*200);
+ // Lv 10: 200 GP
+ // Lv 90: 16.000 GP
+ if (BaseLevel > 10)
+ .@plush_count = .@plush_count/(BaseLevel/10);
+
+ select
+ l("Can you reset my stats please?"),
+ l("Can you teach me some Alchemy Recipe?"),
+ lg("You are weird, I have to go sorry.");
+
+ switch (@menu)
+ {
+ case 1:
+ goto L_ResetStats;
+ case 2:
+ goto L_Recipe;
+ case 3:
+ goto L_Quit;
+ }
+
+L_ResetStats:
+ mesn;
+ mesq l("Status point reset can't be undone. Do you really want this?");
+
+L_ConfirmReset:
+ select
+ lg("Yes, I am sure."),
+ lg("I need to think about it...");
+
+ switch (@menu)
+ {
+ case 1:
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Let me just have a quick look at you. Hm... I will need @@ GP to reset your stats.", .@plush_count);
+
+ select
+ rif(Zeny >= .@plush_count, l("Here, take as much as you need, I have plenty!")),
+ rif(Zeny > 0 && Zeny < .@plush_count, l("I don't have enough money...")),
+ rif(Zeny == 0, l("Oh no, I don't have any money on me right now.")),
+ l("I have to go, sorry.");
+
+ if (@menu > 1) {
+ goto L_Quit;
+ }
+
+ // TODO: I think there were functions to deal with GP
+ set Zeny, Zeny-.@plush_count;
+
+ speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
+ l("Thank you."),
+ l("Now stand still... It should not take much time...");
+
+ .@wasSP = StatusPoint;
+ resetstatus;
+ if (StatusPoint == .@wasSP) {
+ speech S_LAST_NEXT,
+ l("It seems that you have no status points to reset!"),
+ l("But the money you brought was really awesome you know."),
+ l("Come back when you will really need me.");
+ } else {
+ speech S_LAST_NEXT,
+ l("Let's see... @@ of your status points have just been reset!", StatusPoint - .@wasSP),
+ l("Spend it wisely this time."),
+ l("But you are welcome to reset your stats again! I need the money.");
+ }
+ }
+ goto L_Quit;
+
+L_Recipe:
+ mes "";
+ mesn;
+ mesq l("Oh my! Did you rent a house or an apartment and now want to brew stuff, like @@ or @@?", getitemlink(PrecisionPotion), getitemlink(StatusResetPotion));
+ next;
+ mesn;
+ mesq l("...That's your problem, not mine. I am an elf if you haven't noticed.");
+ next;
+ goto L_Menu;
+
+L_Quit:
+ closedialog;
+ goodbye;
+ close;
+
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADTOP, EarMuffs);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, TneckSweater);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, BromenalPants);
+ setunitdata(.@npcId, UDT_WEAPON, FurBoots); // Boots
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 11);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 17);
+
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+
+}
+
diff --git a/npc/024-3/_import.txt b/npc/024-3/_import.txt
index 2e52a6254..5b3917d56 100644
--- a/npc/024-3/_import.txt
+++ b/npc/024-3/_import.txt
@@ -1,3 +1,4 @@
// Map 024-3: Frostia Indoors
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/024-3/_warps.txt",
+"npc/024-3/arauto.txt",
diff --git a/npc/024-3/arauto.txt b/npc/024-3/arauto.txt
new file mode 100644
index 000000000..5c6eb6377
--- /dev/null
+++ b/npc/024-3/arauto.txt
@@ -0,0 +1,16 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Banker.
+
+024-3,33,28,0 script Arauto NPC_LLOYD,{
+ Banker(.name$, "Frostia", 9800);
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
+
diff --git a/npc/024-8/_import.txt b/npc/024-8/_import.txt
index 5d1c1aac0..447477f77 100644
--- a/npc/024-8/_import.txt
+++ b/npc/024-8/_import.txt
@@ -1,3 +1,4 @@
// Map 024-8: Frostia Indoors
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/024-8/_warps.txt",
+"npc/024-8/nurse.txt",
diff --git a/npc/024-8/nurse.txt b/npc/024-8/nurse.txt
new file mode 100644
index 000000000..222667aa6
--- /dev/null
+++ b/npc/024-8/nurse.txt
@@ -0,0 +1,23 @@
+// TMW2 scripts.
+// Authors:
+// Jesusalva
+// Description:
+// Nurse.
+
+024-3,33,28,0 script Frostia's Nurse NPC_ELF_F,{
+ Nurse(.name$, 10, 5);
+ close;
+
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, CottonSkirt);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, TneckSweater);
+ setunitdata(.@npcId, UDT_HEADTOP, NPCEyes);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 12);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 14);
+
+ .sex = G_FEMALE;
+ .distance = 5;
+ end;
+}
+