summaryrefslogtreecommitdiff
path: root/world/map/npc/functions/ferry.txt
blob: 271a2e39f7520176f18a913852caaf320e298c53 (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
// The ferry system

botcheck.gat,27,28,0|script|#FerryConfig|-1,
{
    end;

OnInit:
    disablenpc "Hurnscald Koga";
    disablenpc "Candor Koga";
    disablenpc "Nivalis Koga";
    disablenpc "Tulimshar North Koga";
    disablenpc "Tulimshar South Koga";
    set $@MainCurrentDock, 0;
    set $@CandorCurrentDock, 0;
    set $@DockTickCount, 0;
    set $@DockLeaveCount, 1;
    setarray $@MainDocks$, "Hurnscald", "Nivalis", "Tulimshar South";
    setarray $@CandorDocks$, "Candor", "Tulimshar North";
    cmdothernpc "#"+$@MainDocks$[$@MainCurrentDock]+"Dock", "Arrive";
    cmdothernpc "#"+$@CandorDocks$[$@CandorCurrentDock]+"Dock", "Arrive";
    initnpctimer;
    end;

L_NextDock:
    set $@MainLastDock, $@MainCurrentDock;
    set $@CandorLastDock, $@CandorCurrentDock;
    set $@MainCurrentDock, $@MainCurrentDock + 1;
    set $@CandorCurrentDock, $@CandorCurrentDock + 1;
    if($@MainCurrentDock == getarraysize($@MainDocks$))
        set $@MainCurrentDock, 0;
    if($@CandorCurrentDock == getarraysize($@CandorDocks$))
        set $@CandorCurrentDock, 0;
    set $@DockTickCount, 0;
    cmdothernpc "#"+$@MainDocks$[$@MainLastDock]+"Dock", "Warp";
    cmdothernpc "#"+$@MainDocks$[$@MainCurrentDock]+"Dock", "Arrive";
    cmdothernpc "#"+$@CandorDocks$[$@CandorLastDock]+"Dock", "Warp";
    cmdothernpc "#"+$@CandorDocks$[$@CandorCurrentDock]+"Dock", "Arrive";
    mapannounce "035-2.tmx", " Koga - Main : Now arriving in "+$@MainDocks$[$@MainCurrentDock]+".", 0;
    mapannounce "036-2.tmx", " Koga - Candor : Now arriving in "+$@CandorDocks$[$@CandorCurrentDock]+".", 0;
    initnpctimer;
    end;

OnTimer10000:
    if ($@DockTickCount > $@DockLeaveCount)
        goto L_NextDock;
    mapannounce "035-2.tmx", "Koga - Main : Now docked in "+$@MainDocks$[$@MainCurrentDock]+", Departing soon", 0;
    mapannounce "036-2.tmx", "Koga - Candor : Now docked in "+$@CandorDocks$[$@CandorCurrentDock]+", Departing soon", 0;
    set $@DockTickCount, $@DockTickCount + 1;
    initnpctimer;
    end;

}

function|script|FerryManifest|,
{
    mes "Which Ferry do you want to check the schedule for?";
    menu
        "World Ferry.", L_WorldFerry,
        "Candor Ferry.", L_CandorFerry;

L_CandorFerry:
    mes "The ferry is currently at "+$@CandorDocks$[$@CandorCurrentDock];
    next;
    set @NextDock, ($@CandorCurrentDock + 1);
    if(@NextDock == getarraysize($@CandorDocks$))
        set @NextDock, 0;
    mes "The ferry will be arriving at "+$@CandorDocks$[@NextDock]+" next";
    goto L_Close;

L_WorldFerry:
    mes "The ferry is currently at "+$@MainDocks$[$@MainCurrentDock];
    next;
    set @NextDock, ($@MainCurrentDock + 1);
    if(@NextDock == getarraysize($@MainDocks$))
        set @NextDock, 0;
    mes "The ferry will be arriving at "+$@MainDocks$[@NextDock]+" next";
    goto L_Close;

L_Close:
    close;
}

function|script|BoardFerry|,
{
    mes "Board the ferry?";
    menu
        "yes.", L_Board,
        "no.", L_Return;

L_Board:
    warp "035-2.tmx",39,29;
    goto L_Return;

L_Return:
    return;
}

function|script|BoardCandorFerry|,
{
    mes "Board the ferry?";
    menu
        "yes.", L_Board,
        "no.", L_Return;

L_Board:
    if (BaseLevel < 40) goto L_TooYoung;
    warp "036-2.tmx",39,29;
    goto L_Return;

L_TooYoung:
    mes "This area is too dangerous for your low level.";
    goto L_Return;

L_Return:
    return;
}