summaryrefslogtreecommitdiff
path: root/npc
diff options
context:
space:
mode:
Diffstat (limited to 'npc')
-rw-r--r--npc/008-0/master.txt2
-rw-r--r--npc/008-1/master.txt18
-rw-r--r--npc/008-2/_import.txt2
-rw-r--r--npc/008-2/_mobs.txt28
-rw-r--r--npc/008-2/_warps.txt3
-rw-r--r--npc/008-2/master.txt66
6 files changed, 86 insertions, 33 deletions
diff --git a/npc/008-0/master.txt b/npc/008-0/master.txt
index 4c6fecea4..e83798de7 100644
--- a/npc/008-0/master.txt
+++ b/npc/008-0/master.txt
@@ -63,7 +63,7 @@
warpparty("008-1", 176, 20, getcharid(1), "008-0", true);
// One bonus time
- monster("008-1", 90, 69, "Time Bonus", Scorpion, 1, "Party Master::OnMobTime");
+ monster("008-1", 90, 69, "Time Bonus", Mouboo, 1, "Party Master::OnMobTime");
// Four Chests
monster("008-1", 38, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
diff --git a/npc/008-1/master.txt b/npc/008-1/master.txt
index ad9f1d53b..0835f4d3b 100644
--- a/npc/008-1/master.txt
+++ b/npc/008-1/master.txt
@@ -31,7 +31,7 @@ OnTouch:
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) {
+ if (getcharid(1) <= 0 || @pmloop <= 0) {
mesn;
mesq l("Leaving your party? LAME.");
warp "SavePoint",0,0;
@@ -130,13 +130,15 @@ OnBossDeath:
warpparty("008-2", 135, 20, getcharid(1), "008-1", true);
// Bonus Monsters
- monster("008-2", 90, 69, "Time Bonus", Scorpion, 1, "Party Master::OnMobTime");
-
- // Four Chests
- monster("008-2", 38, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
- monster("008-2", 41, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
- monster("008-2", 44, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
- monster("008-2", 47, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
+ 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:
diff --git a/npc/008-2/_import.txt b/npc/008-2/_import.txt
index f5787ded6..6e2d0d90a 100644
--- a/npc/008-2/_import.txt
+++ b/npc/008-2/_import.txt
@@ -1,3 +1,5 @@
// Map 008-2: 2nd Floor - Party Dungeon
// This file is generated automatically. All manually added changes will be removed when running the Converter.
+"npc/008-2/_mobs.txt",
+"npc/008-2/_warps.txt",
"npc/008-2/master.txt",
diff --git a/npc/008-2/_mobs.txt b/npc/008-2/_mobs.txt
new file mode 100644
index 000000000..745c34cc7
--- /dev/null
+++ b/npc/008-2/_mobs.txt
@@ -0,0 +1,28 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 008-2: 2nd Floor - Party Dungeon mobs
+008-2,79,244,15,12 monster Slime Blast 1090,2,15000,15000
+008-2,47,200,21,39 monster Bandit 1024,4,25000,25000
+008-2,106,203,33,26 monster Mouboo 1023,4,25000,25000
+008-2,84,35,61,19 monster Cave Snake 1035,7,25000,25000
+008-2,60,74,35,18 monster Giant Maggot 1031,4,25000,25000
+008-2,86,107,8,14 monster Moggun 1070,2,25000,25000
+008-2,48,126,28,33 monster Mana Bug 1075,6,25000,25000
+008-2,119,244,23,13 monster Copper Slime 1088,1,25000,25000
+008-2,117,84,21,27 monster Red Slime 1092,6,25000,25000
+008-2,122,157,21,17 monster Yellow Slime 1091,3,25000,25000
+008-2,110,125,21,14 monster Lava Slime 1097,2,25000,25000
+008-2,89,158,9,17 monster Snake 1122,2,25000,25000
+008-2,37,63,21,39 monster Bandit 1024,4,25000,25000
+008-2,119,93,21,77 monster Desert Log Head 1127,6,25000,25000
+008-2,117,213,21,39 monster Desert Bandit 1124,3,25000,25000
+008-2,30,197,17,24 monster Sarracenus 1125,2,25000,25000
+008-2,88,70,10,48 monster Angry Red Scorpion 1130,6,25000,25000
+008-2,67,87,10,60 monster Sea Slime 1093,7,25000,25000
+008-2,33,138,21,32 monster Robin Bandit 1153,1,25000,25000
+008-2,59,204,11,34 monster Murderer Scorpion 1129,1,25000,25000
+008-2,86,172,10,54 monster Green Slime 1085,6,25000,25000
+008-2,81,61,73,39 monster Plushroom Field 1011,4,25000,45000
+008-2,81,242,21,15 monster Piou 1002,3,25000,15000
+008-2,81,117,73,39 monster Chagashroom Field 1128,4,25000,45000
+008-2,40,200,32,39 monster Big Ruby Bif 1100,1,35000,45000
+008-2,103,200,29,39 monster Sapphire Bif 1114,2,25000,45000
diff --git a/npc/008-2/_warps.txt b/npc/008-2/_warps.txt
new file mode 100644
index 000000000..adea286d0
--- /dev/null
+++ b/npc/008-2/_warps.txt
@@ -0,0 +1,3 @@
+// This file is generated automatically. All manually added changes will be removed when running the Converter.
+// Map 008-2: 2nd Floor - Party Dungeon warps
+008-2,80,255,0 warp #008-2_80_255 0,0,008-2,54,237
diff --git a/npc/008-2/master.txt b/npc/008-2/master.txt
index 89044832b..d5fc1c3c2 100644
--- a/npc/008-2/master.txt
+++ b/npc/008-2/master.txt
@@ -20,17 +20,19 @@ OnTouch:
008-2,135,19,0 script #FPDM23 NPC_HIDDEN,0,0,{
end;
OnTouch:
+ end;
// 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 &&
+ .@m$ != "008-2" &&
+ BaseLevel > 40 &&
+ mobcount("008-2", "Second Dungeon Master::OnBossDeath") == 0 &&
@pmloop) {
dispbottom l("Go and follow @@, your party leader!", getpartyleader(getcharid(1)));
warp "008-1", 176, 20; // 008-2
- } else if (BaseLevel > 20) {
+ } else if (BaseLevel > 40) {
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);
@@ -40,14 +42,14 @@ OnTouch:
end;
}
-008-2,0,0,0 script Second Dungeon Master NPC_BRGUARD_SWORD,{
+008-2,75,240,0 script Second Dungeon Master NPC_BRGUARD_SWORD,{
// Double-check, you should have been flung out long ago.
- if (getcharid(1) <= 0) {
+ if (getcharid(1) <= 0 || @pmloop <= 0) {
mesn;
- mesq l("Leaving your party? LAME.");
+ mesq l("Something seems wrong.");
warp "SavePoint",0,0;
}
- if (mobcount("008-1", "First Dungeon Master::OnBossDeath") > 0) {
+ if (mobcount("008-2", "Second Dungeon Master::OnBossDeath") > 0) {
npctalk3 l("What are you doing? Fight!");
end;
}
@@ -57,9 +59,10 @@ OnTouch:
next;
mesn;
- mesq l("I can summon the BOSS for the level 0~20 area.");
+ mesq l("I can summon the BOSS for the level 21~40 area.");
next;
if (strcharinfo(0) != getpartyleader(getcharid(1))) goto L_NotYou;
+ if (BaseLevel < 40) goto L_TooWeak;
mesn;
mesq l("He is strong though, so keep your party togheter!");
next;
@@ -95,7 +98,7 @@ OnTouch:
// 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";
+ monster "008-2", rand(37,54), rand(109,122), "Second Dungeon Boss", BanditLord, 1, "Second Dungeon Master::OnBossDeath";
close;
@@ -119,30 +122,45 @@ L_TooSmall:
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");
-OnAddTime:
- @pmloop=60;
- end;
+ // 40% odds of a Black Scorpion coming to avenge fallen monster leader
+ if (rand(1,5) % 2) {
+ getmapxy(.@m$, .@x, .@y, 0);
+ monster .@m$, .@x, .@y, "Semi Boss", BlackScorpion, 1;
+ }
+ Zeny=Zeny+700;
+ getexp 400, 60;
+ getitem CelestiaTea, 1;
+ dispbottom l("Reward: 700 GP, 400 XP, 1 @@", getitemlink(CelestiaTea));
+
OnBossDeath:
// Give every party member in map a reward
- partytimer("008-1", 200, "First Dungeon Master::OnReward", getcharid(1));
+ partytimer("008-2", 200, "Second Dungeon Master::OnReward", getcharid(1));
// Warp everyone and add timers
- warpparty("008-1", 176, 20, getcharid(1), "008-1", true);
+ warpparty("008-1", 176, 20, getcharid(1), "008-2", true); // TODO 008-3
+ // While we can't advance, we allow you to redo the dungeons
+ /*
// Bonus Monsters
- monster("008-1", 90, 69, "Time Bonus", Scorpion, 1, "Party Master::OnMobTime");
-
- // Four Chests
- monster("008-1", 38, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
- monster("008-1", 41, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
- monster("008-1", 44, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
- monster("008-1", 47, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
+ monster("008-3", 104, 238, "Time Bonus", RobinBandit, 1, "Party Master::OnMobTime");
+ monster("008-3", 85, 117, "Time Bonus", RobinBandit, 1, "Party Master::OnMobTime");
+
+ // Five Chests
+ monster("008-3", 38, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
+ monster("008-3", 41, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic, EvilChest), 1);
+ monster("008-3", 44, 104, "Mysterious Chest", any(SilverChest, SilverMimic), 1);
+ monster("008-3", 47, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic, EvilChest), 1);
+ monster("008-3", 50, 104, "Mysterious Chest", any(BronzeChest, BronzeMimic), 1);
+ */
end;
OnInit: