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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
// The Mana World scripts.
// Author:
// Jesusalva
// Description:
// Saluc Golden Beard, one of the greediest ship captains in Argaes.
// THIS IS A PLACEHOLDER!
// If you logout on instance, ensure TravelFix() can fix your position
marine mapflag nosave marine-2,40,32
// Ship captain
marine,25,24,0 script Saluc Golden Beard NPC_HAL,{
function confirmTravel;
function artisTravel;
if (.artis)
artisTravel();
mesn;
mesq l("Hello, adventurer! I am Saluc the Golden Beard!");
next;
mesn;
mesq l("No, I'm not a scammer! You'll get a ship travel with me, I just... charge a bit more for profit.");
next;
mesn;
mesq l("So, to where you want to go?");
mesc l("You are currently at %s.", LOCATION$);
menuint
rif(LOCATION$ != "Tulim", l("To Tulimshar")), TP_TULIM,
rif(LOCATION$ != "Hurns", l("To Hurnscald")), TP_HURNS,
rif(LOCATION$ != "Candor", l("To Candor")), TP_CANDOR,
l("No, I'll save my money."), TP_NONE;
mes "";
if (@menuret == TP_NONE)
close;
mesn;
mesq l("Excellent! Hehehe... That'll be %d E!", .price);
if (.artis)
mesc l("This travel option is NOT advised for new players."), 1;
if (Zeny < .price)
close;
next;
mesc l("Travel?");
if (askyesno() == ASK_NO || Zeny < .price)
close;
mesn;
mesq l("Hehehe... All aboard!");
next;
confirmTravel(.price);
close;
/* Special Artis dialog */
function artisTravel {
mesn;
mesq l("Hello, adventurer! I am William D. and I am the captain of this frigate!");
next;
mesn;
mesq l("Gema IV is a good trading ship, but the Legion has requisitioned it...");
next;
.@price=.price;
// NOT a typo; You can self-smuggle yourself w/o the commendation leter.
// ...For now.
if (getq(Artis_Legion_Progress) >= 6) {
mesn;
mesq l("Did Q'Anon sent you? Are you enrolled in the Argaes expedition? We're leaving soon so hurry up!");
.@price=0;
} else {
mesn;
mesq l("I'm providing transport to the Argaes expedition.");
mesc l("William looks around to make sure no one else is listening and continues.");
next;
mesn;
mesq l("Heh, are you curious with the new world? I can make room for an extra \"Crew\" member, if ya catch my drift...");
mesc l("NEW PLAYERS: This route is for veterans only."), 1;
}
next;
mesn;
mesq l("So, will you board?");
next;
menuint
l("To Argaes!"), TP_ARGAES,
l("No, I'll save my money."), TP_NONE;
mes "";
if (@menuret == TP_NONE)
close;
if (Zeny < .@price)
close;
next;
mesc l("Travel?");
if (.@price)
mesc l("This option is not advised."), 1;
if (askyesno() == ASK_NO || Zeny < .@price)
close;
mesn;
mesq l("Hehehe... All aboard!");
next;
confirmTravel(.@price);
close;
return;
}
/* Warp players to their travel */
function confirmTravel {
closeclientdialog;
Zeny-=getarg(0);
.@i=array_find($@LOCMASTER_TP, @menuret);
PC_DEST$=$@LOCMASTER_LOC$[.@i];
@timer_navio_running = 1;
addtimer (.artis ? 140000 : 50000), "#MarineShip::OnEvent"; // One minute
warp "marine-2", 40, 32;
return;
}
OnInit:
.distance = 4;
.price = 100; // Current a constant, but maybe... In future...
.artis = false;
end;
OnInstanceInit:
// Smart Replacement for Artis' version
if (instance_mapname("marine") == "marine@Arti") {
setnpcdisplay(instance_npcname(.name$), "William D.");
.price = 10000;
.artis = true;
}
end;
}
// Exit door
marine,42,25,0 script Exit#Marine NPC_HIDDEN,0,0,{
OnTouch:
ReturnLastTown();
end;
}
|