summaryrefslogtreecommitdiff
path: root/npc/marine/saluc.txt
blob: 56bc493f959dd248dea6d0b23246d6dcbe435c17 (plain) (blame)
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
138
// 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:
    .bodytype = BODYTYPE_2;
    .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;
}