summaryrefslogtreecommitdiff
path: root/npc/008-3-5
diff options
context:
space:
mode:
Diffstat (limited to 'npc/008-3-5')
-rw-r--r--npc/008-3-5/_import.txt7
-rw-r--r--npc/008-3-5/_mobs.txt12
-rw-r--r--npc/008-3-5/_warps.txt6
-rw-r--r--npc/008-3-5/bryant.txt79
-rw-r--r--npc/008-3-5/lordcave.txt101
-rw-r--r--npc/008-3-5/nunia.txt81
6 files changed, 286 insertions, 0 deletions
diff --git a/npc/008-3-5/_import.txt b/npc/008-3-5/_import.txt
new file mode 100644
index 00000000..cb743792
--- /dev/null
+++ b/npc/008-3-5/_import.txt
@@ -0,0 +1,7 @@
+// Map 008-3-5: Bandit Cave
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/008-3-5/_mobs.txt",
+"npc/008-3-5/_warps.txt",
+"npc/008-3-5/bryant.txt",
+"npc/008-3-5/lordcave.txt",
+"npc/008-3-5/nunia.txt",
diff --git a/npc/008-3-5/_mobs.txt b/npc/008-3-5/_mobs.txt
new file mode 100644
index 00000000..5331e5e6
--- /dev/null
+++ b/npc/008-3-5/_mobs.txt
@@ -0,0 +1,12 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 008-3-5: Bandit Cave mobs
+008-3-5,87,83,22,16 monster Cave Maggot 1027,8,2000,20000
+008-3-5,79,68,54,12 monster Crafty 1018,12,2500,35000
+008-3-5,71,62,49,39 monster Thief Slime 1105,3,20000,100000
+008-3-5,90,70,13,29 monster Yellow Slime 1073,8,20000,75000
+008-3-5,79,82,21,15 monster Bandit 1063,3,2000,20000
+008-3-5,74,66,38,21 monster Snake 1075,3,10000,100000
+008-3-5,54,41,26,21 monster Robin Bandit 1064,2,2000,20000
+008-3-5,44,51,13,33 monster Cave Maggot 1027,7,2000,20000
+008-3-5,49,41,38,21 monster Bandit 1063,2,2000,20000
+008-3-5,133,72,24,9 monster Ratto 1005,6,5000,10000
diff --git a/npc/008-3-5/_warps.txt b/npc/008-3-5/_warps.txt
new file mode 100644
index 00000000..be81f002
--- /dev/null
+++ b/npc/008-3-5/_warps.txt
@@ -0,0 +1,6 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 008-3-5: Bandit Cave warps
+008-3-5,158,72,0 warp #008-3-5_158_72 0,2,008-3-4,22,85
+008-3-5,109,67,0 warp #008-3-5_109_67 0,2,008-3-5,101,68
+008-3-5,102,68,0 warp #008-3-5_102_68 0,2,008-3-5,110,67
+008-3-5,92,108,0 warp #008-3-5_92_108 0,0,008-1,109,83
diff --git a/npc/008-3-5/bryant.txt b/npc/008-3-5/bryant.txt
new file mode 100644
index 00000000..4199c484
--- /dev/null
+++ b/npc/008-3-5/bryant.txt
@@ -0,0 +1,79 @@
+// TMW2 Script.
+// Author:
+// Jesusalva
+// Description:
+// Part of Helena's quest
+// Gives spoilers about what Jesusalva plans in doing with Bryant
+
+008-3-5,101,85,0 script Bryant NPC_CRASMANDE,{
+ function bryantBanditLord;
+ function bryantSilverKey;
+ function bryantComplete;
+ .@q=getq(HurnscaldQuest_Bandits);
+ if (.@q == 5) bryantSilverKey();
+ if (.@q == 6) bryantBanditLord();
+ if (.@q >= 7) bryantComplete();
+ mesn;
+ mesq l("Welcome.");
+ next;
+ mesn;
+ mesq l("I'm looking everywhere for the bandit leader. I can't seem to find him. So I stopped here to rest a bit.");
+ close;
+
+function bryantSilverKey {
+ mesn;
+ mesq l("Don't say anything, I can smell the scent of Lena's hair on you.");
+ next;
+ inventoryplace PiberriesInfusion, 3;
+ getitem PiberriesInfusion, 3;
+ setq HurnscaldQuest_Bandits, 6;
+ mesn;
+ mesq l("I guess she sent you to kill the Bandit Lord, right? I'll lure him for you.");
+ next;
+ mesn;
+ mesq l("It is pretty close to here. I advise you to use a good sword, and heal yourself often.");
+ next;
+ mesn;
+ mesq l("I will give you 3 @@. Use them on this fight, or you're doomed to fail.", getitemlink(PiberriesInfusion));
+ close;
+}
+
+function bryantBanditLord {
+ mesn;
+ mesq l("What are you waiting for? Go kill the bandit lord.");
+ next;
+ mesn strcharinfo(0);
+ select
+ l("I'm going, don't worry."),
+ l("There was nobody on the Bandit Lord's room.");
+ if (@menu == 1)
+ close;
+ mes "";
+ mesn;
+ mesq l("...Have you ever gone there yet?");
+ next;
+ mesn;
+ mesq l("Go kill the Bandit Lord!");
+ close;
+}
+
+function bryantComplete {
+ mesn;
+ mesq l("Good job defeating the Bandit Lord.");
+ close;
+}
+
+OnInit:
+ /*
+ .@npcId = getnpcid(.name$);
+ setunitdata(.@npcId, UDT_HEADTOP, FairyHat);
+ setunitdata(.@npcId, UDT_HEADMIDDLE, ForestArmor);
+ setunitdata(.@npcId, UDT_HEADBOTTOM, JeansChaps);
+ setunitdata(.@npcId, UDT_WEAPON, DeepBlackBoots);
+ setunitdata(.@npcId, UDT_HAIRSTYLE, 24);
+ setunitdata(.@npcId, UDT_HAIRCOLOR, 1);
+ */
+
+ .distance = 5;
+ end;
+}
diff --git a/npc/008-3-5/lordcave.txt b/npc/008-3-5/lordcave.txt
new file mode 100644
index 00000000..906cd8ad
--- /dev/null
+++ b/npc/008-3-5/lordcave.txt
@@ -0,0 +1,101 @@
+// TMW2 Script
+// Author:
+// Jesusalva
+// FIXME:
+// Create a party instance for this
+
+008-3-5,83,49,0 script #BanditLordDen NPC_HIDDEN,0,5,{
+ function lordCleanup;
+ end;
+
+function lordCleanup {
+ // Bug
+ if (!.lock) {
+ consolemes(CONSOLEMES_ERROR, "No lock passed to Lord Cave during cleanup");
+ end;
+ }
+
+ // Cleanup
+ .lock = false;
+ delcells "BanditLordDenWall";
+ killmonster("008-3-5", "#BanditLordDen::OnLordDeath");
+ stopnpctimer;
+ return;
+}
+
+OnInit:
+ .maxLevel = 55;
+ .lock=false;
+ end;
+
+OnTouch:
+ .@q=getq(HurnscaldQuest_Bandits);
+ if (.@q != 6) end;
+
+ // Oooh, we got a challenger!
+
+ // But the Lord is busy? Oh well, try again later
+ if (.lock) {
+ dispbottom l("%s came here first, you should wait for them.", strcharinfo(0, "Someone", .lock));
+ slide 92, 52;
+ end;
+ }
+
+ // Block the NPC
+ .lock=getcharid(3);
+ slide 80, 49;
+
+ // Block the passage
+ mapannounce "008-3-5", "A minor earthquake happens.", bc_map;
+ setcells "008-3-5", 82, 48, 83, 51, 2, "BanditLordDenWall";
+ initnpctimer;
+
+ // Summon
+ if (mobcount("008-3-5", "#BanditLordDen::OnLordDeath") == 0)
+ monster "008-3-5", 48, 35, "Bandit Lord", BanditLord, 1, "#BanditLordDen::OnLordDeath";
+ end;
+
+OnLordDeath:
+ // Unlock
+ lordCleanup();
+
+ // If killed by a monster, GM, whatever, abort
+ if (!playerattached())
+ end;
+
+ // Complete quest (if PC is attached and doing quest)
+ .@q=getq(HurnscaldQuest_Bandits);
+ if (.@q == 6 && !ispcdead()) {
+ setq HurnscaldQuest_Bandits, 7;
+ quest_xp(.maxLevel, 2500);
+ dispbottom l("Phew! The Bandit Lord was killed.");
+ } else {
+ dispbottom l("I killed the Bandit Lord! ...Why I did that, again?");
+ }
+ end;
+
+OnTimer5000:
+ .@pc=attachrid(.lock);
+
+ // Player logged out
+ if (!.@pc) {
+ lordCleanup();
+ end;
+ }
+
+ // Player killed in combat
+ if (ispcdead()) {
+ lordCleanup();
+ end;
+ }
+
+ // Player changed map
+ if (getmap() != "008-3-5") {
+ lordCleanup();
+ end;
+ }
+
+ // Battle ongoing, restart timer
+ initnpctimer;
+ end;
+}
diff --git a/npc/008-3-5/nunia.txt b/npc/008-3-5/nunia.txt
new file mode 100644
index 00000000..cd12a085
--- /dev/null
+++ b/npc/008-3-5/nunia.txt
@@ -0,0 +1,81 @@
+// Evol scripts.
+// Author:
+// Micksha
+// Description:
+// Nunia, Henry's friend and Woodland's master thief.
+// THIS IS A PLACEHOLDER!
+
+008-3-5,35,65,0 script Nunia NPC_NUNIA,{
+ function nuniaIntruder;
+ function nuniaHenry;
+ function nuniaBegin;
+
+ // What do we have here?
+ .@q=getq(ThiefQuests_Artis);
+ switch (.@q) {
+ case 7:
+ nuniaHenry();
+ break;
+ case 8:
+ case 9:
+ nuniaBegin();
+ // TODO: Script control; Transfer quest variable authority
+ break;
+ default:
+ nuniaIntruder();
+ break;
+ }
+ close;
+
+///////////////////////////////////////////////////////////////////////////////
+function nuniaIntruder {
+ speech
+ l("Who dares to enter this cave? Who are you?"),
+ l("At least, you look peaceful."),
+ l("Let's do like this: You leave me alone, and I don't mess with you. Deal?");
+ select
+ l("Deal."),
+ l("No deal, I'm going to report you to authorities!");
+ mes "";
+ // Some meta option/dialog to improve the immersion
+ if (@menu == 2) {
+ mesn;
+ mesq l("There's only one problem, you know...");
+ next;
+ mesn;
+ mesq l("The dead can't speak.");
+ percentheal -100, -100;
+ }
+ return;
+}
+
+function nuniaHenry {
+ mesn;
+ mesq l("Your smell... Did Henry sent you here? How cute of him!");
+ next;
+ mesn;
+ mesq l("I've raised too much suspicion, so my friends told me to lay low for a while.");
+ next;
+ mesn;
+ mesq l("The Brotherhood is watching our movements, they already suspect who is a member and who isn't, but they don't know for sure.");
+ next;
+ mesn;
+ mesq l("Therefore, we had to cut off our connection with Artis. Don't want Brotherhood to find the secrets of our structure.");
+ setq1 ThiefQuests_Artis, 8;
+ return;
+}
+
+function nuniaBegin {
+ speech
+ l("Who dares to enter this cave? Who are you?"),
+ l("At least, you look peaceful. And I see by your fingers that you can deal with lockpicks."),
+ l("I am going to teach you all what a thief needs to know, later"),
+ l("Call for Micksha and Jesusalva to implement all this, please."),
+ l("And Tanveer, our president in Tulimshar, should be able to give you even more training. If you manage to find our headquarters, of course, hahaha!");
+ return;
+}
+
+OnInit:
+ .distance = 4;
+ end;
+}