summaryrefslogtreecommitdiff
path: root/npc/008-1
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2018-07-03 12:32:41 -0300
committerJesusaves <cpntb1@ymail.com>2018-07-03 12:32:41 -0300
commit5142e7ea77b43de41db8d3df66dc44b61f26038e (patch)
treec170c56e7f7d87a73b9c5fbc8602298f9a209e77 /npc/008-1
parent2380857159abdb802790360dc9b673e7504ae71b (diff)
downloadserverdata-5142e7ea77b43de41db8d3df66dc44b61f26038e.tar.gz
serverdata-5142e7ea77b43de41db8d3df66dc44b61f26038e.tar.bz2
serverdata-5142e7ea77b43de41db8d3df66dc44b61f26038e.tar.xz
serverdata-5142e7ea77b43de41db8d3df66dc44b61f26038e.zip
Error threading involving party leader, redo some logic
Diffstat (limited to 'npc/008-1')
-rw-r--r--npc/008-1/master.txt50
1 files changed, 29 insertions, 21 deletions
diff --git a/npc/008-1/master.txt b/npc/008-1/master.txt
index 9d4e61efd..a3394581f 100644
--- a/npc/008-1/master.txt
+++ b/npc/008-1/master.txt
@@ -4,9 +4,33 @@
// Description:
// This NPC is a work on progress. It measures all players equal.
+008-1,48,117,0 script #FPDM1 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-1", 176, 20; // 008-2
+ } 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 this way. There was at least three different ways to prevent that.
+ }
+ end;
+}
+
008-1,48,117,0 script First Dungeon Master NPC_BRGUARD_SWORD,{
- mesn;
+ // Double-check, you should have been flung out long ago.
if (getcharid(1) <= 0) {
+ mesn;
mesq l("Leaving your party? LAME.");
warp "SavePoint",0,0;
}
@@ -15,6 +39,7 @@
end;
}
+ mesn;
mesq l("Compliments reaching this far, @@ from the @@ party!", strcharinfo(0), getpartyname(getcharid(1)));
next;
@@ -69,27 +94,10 @@
-// Only the party leader can start this. But you can rejoin, as long map leader is on 008-2+
+// Only the party leader can start this.
L_NotYou:
- 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) {
- mesn;
- mesq l("Go and follow @@, your party leader!", getpartyleader(getcharid(1)));
- warp "008-1", 176, 20; // 008-2
- } else if (BaseLevel > 20) {
- mesn;
- mesq l("If you bring me @@, your party leader, and the boss is defeated, I can let you in.", getpartyleader(getcharid(1)));
- } else {
- mesn;
- mesq l("I cannot let you pass, because you are 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 this way. There was at least three different ways to prevent that.
- }
+ mesn;
+ dispbottom l("Go and fetch @@, the party leader!", getpartyleader(getcharid(1)));
close;
// Minimum 3 players