summaryrefslogtreecommitdiff
path: root/npc/024-15
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
committerJesusaves <cpntb1@ymail.com>2022-10-23 21:44:22 -0300
commita7c45a192268da2601cef47a4cdba987ae2327ca (patch)
treec5fb5b97db109fe7106496dd96498c475881046b /npc/024-15
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/024-15')
-rw-r--r--npc/024-15/_import.txt4
-rw-r--r--npc/024-15/_warps.txt3
-rw-r--r--npc/024-15/lilanna.txt198
3 files changed, 205 insertions, 0 deletions
diff --git a/npc/024-15/_import.txt b/npc/024-15/_import.txt
new file mode 100644
index 0000000..f150fe2
--- /dev/null
+++ b/npc/024-15/_import.txt
@@ -0,0 +1,4 @@
+// Map 024-15: Frostia Indoors
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/024-15/_warps.txt",
+"npc/024-15/lilanna.txt",
diff --git a/npc/024-15/_warps.txt b/npc/024-15/_warps.txt
new file mode 100644
index 0000000..800c601
--- /dev/null
+++ b/npc/024-15/_warps.txt
@@ -0,0 +1,3 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 024-15: Frostia Indoors warps
+024-15,25,39,0 warp #024-15_25_39 0,0,024-1,64,31
diff --git a/npc/024-15/lilanna.txt b/npc/024-15/lilanna.txt
new file mode 100644
index 0000000..bfedb40
--- /dev/null
+++ b/npc/024-15/lilanna.txt
@@ -0,0 +1,198 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// Description:
+// Anise INC. Representative
+
+024-15,23,24,0 script Lilanna NPC_ELF_F,{
+ function FixCrystal;
+ function FixSelect;
+ mesn;
+ mesq l("Hello there, I am Lilanna and you are in ANISE INC. headquarters.");
+ next;
+ goto L_Loop;
+
+L_Loop:
+ mesn;
+ mesq l("How may I help you?");
+ select
+ l("Thanks."),
+ l("What ANISE INC. Does?"),
+ l("How to use best Warp Technology?"),
+ l("I would like to buy a Warp Crystal."),
+ rif(countitem(BrokenWarpCrystal), l("My warp crystal broke!"));
+ mes "";
+ switch (@menu) {
+ case 1:
+ close;
+ case 2:
+ mesn;
+ mesq l("ANISE Incorporated is the biggest company in warp technology!");
+ next;
+ mesn;
+ mesq l("From magical gates to ancient time-space technology - we know it all!");
+ next;
+ mesn;
+ mesq l("Do you know the warp crystals? We did them. Did you saw the great warp gate at the town entrance? It was us!");
+ next;
+ mesn;
+ mesq l("If you ever need to get quickly from one place to the other, count on us!");
+ next;
+ break;
+ case 3:
+ mesn;
+ mesq l("All warp technology, be it crystal-based, potion-based, or mechanic-based, relies on timespace distortions.");
+ next;
+ mesn;
+ mesq l("If you distort time-space too much, you might end up outside of it, meeting a quick, permanent, and unrecoverable death.");
+ next;
+ mesn;
+ mesq l("Different warp systems overlaps each other, so the cooldown is carried over regardless of the technology you use.");
+ mesc l("Potentially more destructive warp systems will have much longer cooldowns because they cause bigger holes in timespace.");
+ next;
+ mesn;
+ mes l("How to better preserve your dispostives:");
+ mes l("Mechanically based technology (eg. the Gates or Time Flasks) will never suffer damage from operation but are more costly.");
+ mes l("Crystal based technology can break if used too often. Try taking longer between each warp to raise their lifetime.");
+ mes l("Potion based technology will vanish upon use and usually don't interfer with other technologies. Usually.");
+ next;
+ mesn;
+ mesq l("Knowing when to warp is the secret to success!");
+ next;
+ break;
+ case 4:
+ npcshopattach(.name$);
+ openshop();
+ closeclientdialog;
+ end;
+ break;
+ case 5:
+ FixSelect();
+ break;
+ }
+ goto L_Loop;
+
+// FixCrystal ( Crystal ID, GP Tax )
+function FixCrystal {
+ .@cy=getarg(0);
+ .@gp=getarg(1);
+ if (Zeny < .@gp) {
+ mesc l("NOT ENOUGH MONEY"), 1;
+ mesc l("@@/@@ GP", fnum(Zeny), fnum(.@gp));
+ next;
+ return;
+ }
+ inventoryplace .@cy, 1;
+ delitem BrokenWarpCrystal, 1;
+ Zeny-=.@gp;
+ getitem .@cy, 1;
+ mesc l("Operation successful."), 3;
+ next;
+ mesn;
+ mesq l("Here you go, a brand new crystal. I'll fix the old one on the meanwhile. Take care of it.");
+ next;
+ return;
+}
+
+// A menu for fixing crystals
+function FixSelect {
+ do
+ {
+ mesc l("Fixing Crystals have a price. You can only charge crystals to places you've already been.");
+ mesc l("These are saved by walking in warp portals or touching Soul Menhirs.");
+ mes l("You have: @@ Broken crystals", countitem(BrokenWarpCrystal));
+ .@cbase=750; // Candor Base
+ .@nbase=1250; // Normal Base
+ .@lbase=2500; // LoF Base
+ .@fbase=5000; // Faraway Base
+ .@kbase=10000; // King Base (incl. Fortress Is.)
+ select
+ l("Don't fix."),
+ rif(true, l("Candor - @@ GP", fnum(.@cbase))),
+ rif(TELEPORTERS & TP_TULIM, l("Tulimshar - @@ GP", fnum(.@nbase))),
+ rif(TELEPORTERS & TP_HURNS, l("Hurnscald - @@ GP", fnum(.@nbase))),
+ rif(TELEPORTERS & TP_NIVAL, l("Nivalis - @@ GP", fnum(.@nbase))),
+ rif(TELEPORTERS & TP_FROST|TP_HALIN, l("Land Of Fire - @@ GP", fnum(.@lbase))),
+ rif(TELEPORTERS & TP_HALIN, l("Halinarzo - @@ GP", fnum(.@fbase))),
+ rif(TELEPORTERS & TP_FROST, l("Frostia - @@ GP", fnum(.@fbase))),
+ rif(TELEPORTERS & TP_LILIT, l("Lilit - @@ GP (not exchangeable)", fnum(.@kbase))),
+ rif(TELEPORTERS & TP_ARTIS, l("Artis - @@ GP (not exchangeable)", fnum(.@kbase)));
+ mes "";
+ switch (@menu) {
+ case 1: return;
+ case 2: FixCrystal(CandorWarpCrystal, .@cbase); break;
+ case 3: FixCrystal(TulimWarpCrystal, .@nbase); break;
+ case 4: FixCrystal(HurnsWarpCrystal, .@nbase); break;
+ case 5: FixCrystal(NivalWarpCrystal, .@nbase); break;
+ case 6: FixCrystal(LoFWarpCrystal, .@lbase); break;
+ case 7: FixCrystal(HalinWarpCrystal, .@fbase); break;
+ case 8: FixCrystal(FrostiaWarpCrystal, .@fbase); break;
+ case 9: FixCrystal(LilitWarpCrystal, .@kbase); break;
+ case 10: FixCrystal(ArtisWarpCrystal, .@kbase); break;
+ }
+ } while (countitem(BrokenWarpCrystal));
+ return;
+}
+
+OnTimer1000:
+ domovestep;
+
+OnInit:
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADTOP, Monocle);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, AlchemistArmor);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, CottonSkirt);
+ setunitdata(.@npcId, UDT_WEAPON, FurBoots); // She could use gloves, no
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 19);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 16);
+
+ initpath "move", 23, 24,
+ "dir", DOWN, 0,
+ "wait", 15, 0,
+ "dir", RIGHT, 0,
+ "move", 27, 24,
+ "wait", 3, 0,
+ "dir", DOWN, 0,
+ "wait", 15, 0,
+ "move", 24, 32,
+ "wait", 3, 0,
+ "dir", RIGHT, 0,
+ "wait", 10, 0,
+ "dir", LEFT, 0,
+ "wait", 10, 0,
+ "dir", UP, 0,
+ "wait", 3, 0,
+ "move", 27, 34,
+ "dir", UP, 0,
+ "wait", 3, 0,
+ "dir", LEFT, 0,
+ "wait", 3, 0,
+ "move", 23, 24,
+ "wait", 3, 0,
+ "dir", DOWN, 0,
+ "wait", 10, 0;
+ initialmove;
+ initnpctimer;
+ tradertype(NST_MARKET);
+ sellitem BrokenWarpCrystal, 50000, 1;
+
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+
+OnClock2358:
+ restoreshopitem BrokenWarpCrystal, 50000, 1;
+ end;
+
+// Pay your taxes!
+OnBuyItem:
+ debugmes("Purchase confirmed");
+ PurchaseTaxes();
+ end;
+
+OnSellItem:
+ debugmes("Sale confirmed");
+ SaleTaxes();
+ end;
+}
+