summaryrefslogtreecommitdiff
path: root/npc/008-1
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/008-1
downloadserverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.gz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.bz2
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.tar.xz
serverdata-a7c45a192268da2601cef47a4cdba987ae2327ca.zip
Initial commit (Moubootaur Legends fork)
Diffstat (limited to 'npc/008-1')
-rw-r--r--npc/008-1/_import.txt5
-rw-r--r--npc/008-1/_mobs.txt23
-rw-r--r--npc/008-1/_warps.txt3
-rw-r--r--npc/008-1/master.txt150
4 files changed, 181 insertions, 0 deletions
diff --git a/npc/008-1/_import.txt b/npc/008-1/_import.txt
new file mode 100644
index 0000000..ecc43a5
--- /dev/null
+++ b/npc/008-1/_import.txt
@@ -0,0 +1,5 @@
+// Map 008-1: 1st Floor - Party Dungeon
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/008-1/_mobs.txt",
+"npc/008-1/_warps.txt",
+"npc/008-1/master.txt",
diff --git a/npc/008-1/_mobs.txt b/npc/008-1/_mobs.txt
new file mode 100644
index 0000000..e65aade
--- /dev/null
+++ b/npc/008-1/_mobs.txt
@@ -0,0 +1,23 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 008-1: 1st Floor - Party Dungeon mobs
+008-1,155,138,15,15 monster Ratto 1005,2,15000,15000
+008-1,34,113,28,16 monster Ratto 1005,2,15000,15000
+008-1,52,147,42,15 monster Angry Scorpion 1131,4,15000,25000
+008-1,118,144,22,17 monster Pinkie 1132,3,15000,25000
+008-1,72,57,49,34 monster House Maggot 1084,14,15000,25000
+008-1,165,75,16,13 monster Slime Blast 1090,2,15000,25000
+008-1,37,54,29,26 monster Red Scorpion 1072,2,15000,25000
+008-1,132,108,42,15 monster Fire Goblin 1067,4,15000,25000
+008-1,157,158,17,15 monster Mana Ghost 1068,1,15000,25000
+008-1,154,46,29,15 monster Mineral Bif 1058,2,15000,45000
+008-1,147,143,29,27 monster Squirrel 1032,4,15000,25000
+008-1,146,44,37,30 monster Maggot 1030,8,15000,25000
+008-1,134,96,41,18 monster Candor Scorpion 1073,6,15000,25000
+008-1,66,41,42,15 monster Bat 1039,5,15000,25000
+008-1,60,78,35,22 monster Duck 1029,4,15000,25000
+008-1,52,133,37,31 monster Cave Maggot 1027,10,15000,25000
+008-1,103,144,12,15 monster Little Blub 1007,3,15000,25000
+008-1,99,54,79,33 monster Piou 1002,8,15000,25000
+008-1,100,108,79,21 monster Piousse 1003,6,15000,25000
+008-1,59,149,39,19 monster Plushroom Field 1011,2,15000,25000
+008-1,139,150,39,19 monster Chagashroom Field 1128,2,15000,25000
diff --git a/npc/008-1/_warps.txt b/npc/008-1/_warps.txt
new file mode 100644
index 0000000..9ed2049
--- /dev/null
+++ b/npc/008-1/_warps.txt
@@ -0,0 +1,3 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 008-1: 1st Floor - Party Dungeon warps
+008-1,176,19,0 warp #008-1_176_19 0,0,008-0,47,64
diff --git a/npc/008-1/master.txt b/npc/008-1/master.txt
new file mode 100644
index 0000000..51a1994
--- /dev/null
+++ b/npc/008-1/master.txt
@@ -0,0 +1,150 @@
+// TMW-2 Script
+// Author:
+// Jesusalva
+// Description:
+// This NPC is a work on progress. It measures all players equal.
+// Controls the first floor, but not many things to control.
+
+008-1,48,117,0 script #FPDM12 NPC_HIDDEN,0,0,{
+ end;
+OnTouch:
+ // IMPORTANT: Prevent party master from returning here
+ getmapxy(.@m$, .@x, .@y, 0, getpartyleader(getcharid(1)));
+ if (.@m$ ~= "008-*" &&
+ .@m$ != "008-0" &&
+ .@m$ != "008-1" &&
+ BaseLevel > 20 &&
+ mobcount("008-1", "First Dungeon Master::OnBossDeath") == 0 &&
+ @pmloop) {
+ dispbottom l("Go and follow @@, your party leader!", getpartyleader(getcharid(1)));
+ warp "008-2", 135, 20;
+ } else if (BaseLevel > 20) {
+ dispbottom l("If I bring @@, my party leader, and the boss is defeated, I can go you in.", getpartyleader(getcharid(1)));
+ } else {
+ mesc l("I cannot pass, because I am only level @@.", BaseLevel);
+ mesc l("Newbies can only get past their limits once, with their party leader level help! If they die, they can't rejoin!");
+ // I thought it would be better to allow first passage based on leader level.
+ // Parties are not meant to be permanent, and this helps a lot.
+ }
+ end;
+}
+
+008-1,48,117,0 script First Dungeon Master NPC_BRGUARD_SWORD,{
+ // Double-check, you should have been flung out long ago.
+ if (getcharid(1) <= 0 || @pmloop <= 0) {
+ mesn;
+ mesq l("Something seems wrong.");
+ warp "SavePoint",0,0;
+ close;
+ }
+ if (mobcount("008-1", "First Dungeon Master::OnBossDeath") > 0) {
+ npctalk3 l("What are you doing? Fight!");
+ end;
+ }
+
+ mesn;
+ mesq l("Compliments reaching this far, @@ from the @@ party!", strcharinfo(0), getpartyname(getcharid(1)));
+ next;
+
+ mesn;
+ mesq l("I can summon the BOSS for the level 0~20 area.");
+ next;
+ if (strcharinfo(0) != getpartyleader(getcharid(1))) goto L_NotYou;
+ if (BaseLevel < 20) goto L_TooWeak;
+ mesn;
+ mesq l("He is strong though, so keep your party together!");
+ next;
+ // Get info about your party, and backup it
+ getpartymember(getcharid(1));
+ .@count = $@partymembercount;
+ copyarray(.@name$[0], $@partymembername$[0], $@partymembercount);
+ copyarray(.@aid[0], $@partymemberaid[0], $@partymembercount);
+ copyarray(.@cid[0], $@partymembercid[0], $@partymembercount);
+ .@count_online=0;
+
+ if (.@count < 3 && !$@GM_OVERRIDE) goto L_TooSmall;
+ mesn;
+ mesc l("Are you and your party ready?"), 1;
+ if (askyesno() != ASK_YES)
+ close;
+
+ // Loop though party to see if you can start
+ for (.@i = 0; .@i < .@count; ++.@i) {
+ // Online?
+ if (isloggedin(.@aid[.@i], .@cid[.@i])) {
+ getmapxy(.@m$, .@x, .@y, 0, .@name$[.@i]);
+ // Here?
+ if (.@m$ == .map$)
+ .@count_online++;
+ }
+ }
+
+ // How many are logged in and here?
+ if (.@count_online < 3 && !$@GM_OVERRIDE) goto L_TooSmall;
+
+ // TODO: Query if exp sharing is enabled
+ // TODO: Instance for party
+ // TODO: Second Floor
+ npctalk l("@@: Fight!", getpartyname(getcharid(1)));
+ monster "008-1", rand(37,54), rand(109,122), "First Dungeon Boss", Sarracenus, 1, "First Dungeon Master::OnBossDeath";
+ close;
+
+
+
+
+
+
+
+
+
+
+// Only the party leader can start this.
+L_NotYou:
+ mesn;
+ dispbottom l("Go and fetch @@, the party leader!", getpartyleader(getcharid(1)));
+ close;
+
+// Minimum 3 players
+L_TooSmall:
+ mesn;
+ mesq l("However, I need to see at least three volunteers here, to allow you in.");
+ close;
+
+// Must have level to face boss
+L_TooWeak:
+ mesn;
+ mesq l("This is the end for your party, as the leader doesn't have sufficient level.");
+ close;
+
+// Second Floor special monsters
+OnReward:
+ Zeny=Zeny+200;
+ getexp 200, 20;
+ dispbottom l("Reward: 200 GP, 200 XP");
+
+// Boss death causes 008-2 to be set
+OnBossDeath:
+ // Give every party member in map a reward
+ partytimer("008-1", 200, "First Dungeon Master::OnReward", getcharid(1));
+
+ // Warp everyone and add timers
+ warpparty("008-2", 135, 20, getcharid(1), "008-1", true);
+
+ // Bonus Monsters
+ monster("008-1", 104, 238, "Time Bonus", NightScorpion, 1, "Party Master::OnMobTime");
+ monster("008-1", 85, 117, "Time Bonus", BlackScorpion, 1, "Party Master::OnMobTime");
+
+ // Five Chests
+ monster("008-2", 70, 239, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
+ monster("008-2", 70, 241, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
+ monster("008-2", 70, 243, "Mysterious Chest", any(BronzeChest, BronzeMimic, SilverChest, SilverMimic), 1);
+ monster("008-2", 70, 245, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
+ monster("008-2", 70, 247, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
+ end;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 5;
+ end;
+}
+