1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
// TMW-2 Script
// Author:
// Jesusalva
// Description:
// This NPC serves no purpose currently. She is here to make Tulimshar more crowded.
008-0,47,63,0 script Party Master NPC_BRGUARD_SWORD,{
mesn;
if (getcharid(1) > 0) {
mesq l("You're in the \"@@\" party, very good!", getpartyname(getcharid(1)));
next;
} else {
mesq l("I protect a dungeon for PARTIES. You're not on a party, get moving.");
close;
}
mesn;
mesq l("I protect a very dangerous dungeon, and it is so dangerous, that only parties can go in.");
next;
if (strcharinfo(0) != getpartyleader(getcharid(1))) goto L_NotYou;
mesn;
mesq l("There are five floors, and they're all very dangerous. But there are riches to be found.");
next;
mesn;
mesq l("You also can't stay there forever! You will have 25 minutes to entirely clear it out and defeat the last boss.");
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;
// Warp everyone and add timers
partytimer("008-0", 1000, "Party Master::OnStart", getcharid(1));
warpparty("003-1", 41, 48, getcharid(1), "008-0", true);
close;
L_NotYou:
mesn;
mesq l("If you bring me @@, your party leader, I can let you in.", getpartyleader(getcharid(1)));
close;
L_TooSmall:
mesn;
mesq l("However, I need to see at least three volunteers here, to allow you in.");
close;
OnStart:
@pmloop=0;
OnLoop:
@pmloop+=1;
if (@pmloop < 1500)
addtimer(1000, "Party Master::OnLoop");
close;
OnInit:
.sex = G_MALE;
.distance = 5;
end;
}
|