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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
// TMW2 scripts.
// Authors:
// Jesusalva
// Description:
// Gemini Sisters Quest - Valia Gemini
function script GeminiCheck {
.@st = getarg(0, 0);
if (getq(General_Narrator) < 16 || getq(HurnscaldQuest_Gemini) < .@st) {
warp "Save", 0, 0;
dispbottom l("You don't feel so well... And then, you're dead.");
die();
end;
}
}
// Valia Gemini
014-2-2,36,22,0 script Valia NPC_RED_WIZARD_F,{
GeminiCheck();
.@q = getq(HurnscaldQuest_Gemini);
mesn;
mesq l("Greetings, adventurer. I am Valia Gemini, owner of this abode.");
next;
mesn;
mesq l("I usually don't let anyone in, but I had to make an exception for the likes of you.");
next;
mesn;
mesq l("You see, I have a sister. Luvia Gemini. Very talented, but unfortunately, not enough to prevent being captured and brainwashed by Isbamuth.");
next;
mesn;
mesq l("I am sure you already fought him. And survived, too, apparently. Help her, and I will reward your efforts appropriately.");
next;
mesn;
mesq l("You can bring up to 3 other friends with you, but they must be on the same party as you and you must be the party leader.");
next;
select
l("I'm not interested, sorry."),
l("Why don't you go yourself?"),
l("Alright, I will help.");
mes "";
switch (@menu) {
case 1:
close;
case 2:
mesn;
mesq l("Because Isbamuth is tracking me? It would be pointless if he noticed. If you can't even understand this, maybe I overestimated you, after all...");
close;
}
// You accepted the quest
mesn;
// ...But you lack a party
if (getcharid(1) <= 0) {
mesq l("You don't have a party. You're useless to me.");
close;
}
// ...But you are not the leader
if (strcharinfo(0) != getpartyleader(getcharid(1))) {
mesq l("Bring me %s or make your own party if you want to help me.", getpartyleader(getcharid(1)));
close;
}
// ...But the party is too large
getpartymember(getcharid(1));
.@count = $@partymembercount;
if (.@count > 4) {
mesq l("Your party is too big. Discretion is a key if we want to succeed.");
close;
}
// Alright.
mesq l("Good. I hope you have stocked everything. The time limit is 4 hours.");
mesc l("Are you and your party ready?"), 1;
if (askyesno() != ASK_YES)
close;
mesn;
mesq l("Good. Here, take this key and hide it.");
compareandsetq HurnscaldQuest_Gemini, 0, 1;
// Create instance
.@p=getcharid(1);
.@inst = instance_create("Gemini "+.@p, .@p, IOT_PARTY);
// If it worked then setup
if (.@inst >= 0) {
// Attach maps
instance_attachmap("034-1", .@inst, false, "val1@"+.@p);
instance_attachmap("034-2", .@inst, false, "val2@"+.@p);
instance_attachmap("034-3", .@inst, false, "val3@"+.@p);
instance_attachmap("034-4", .@inst, false, "val4@"+.@p);
// Save the instance ID
$@VALIA_INST[.@p]=.@inst;
$@VALIA_MAP$[.@p]="";
}
// Instance lasts 4 hours - your time limit
instance_set_timeout(14400, 14400, $@VALIA_INST[.@p]);
// Do we need to initialize or are we just restarting?
if (.@inst >= 0)
instance_init(.@inst);
// Warp everyone and add timers
//partytimer("008-0", 1000, "Party Master::OnStart", getcharid(1));
warpparty("val1@"+.@p, 24, 24, getcharid(1), "014-2-2", true);
close;
OnInit:
.distance=4;
end;
}
|