summaryrefslogtreecommitdiff
path: root/npc/001-1/rowboathelper.txt
blob: d7809bf0e2a7e86f0fbc2769d9dc8d71af351443 (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
139
140
141
// Evol scripts.
// Author:
//    Toams
// Description:
//    helper scripts for rowboat usage
// Notes:
// Curious Hole bypass the cutscenes

// calling the Rowboat
001-1,200,60,0	script	Curious Hole	NPC_NO_SPRITE,{

    .@q = getq(General_Narrator);

    mesc l("You see a curious hole behind some rocks.");
    next;
    mesn strcharinfo(0);
    mesq l("Hey, anyone there?");
    next;
    mesc l("...");
    next;
    if  (.@q < 2)
    {
        mesc l("Altough you can't get rid of the feeling someone is listening on the other side, you don't get any replies.");
        close;
    }
    else
    {
        narrator(S_LAST_BLANK_LINE | S_LAST_NEXT,
            l("Suddenly you remember the strange phrase Mona overheard Sophialla saying"),
            l("Maybe you should try this phrase?"));
        if (askyesno() == ASK_YES)
        {
            mesn strcharinfo(0);
            mesc l("Sagratha is great.");
            next;

            if (getvariableofnpc(.caller, "#Rowboat")) {
                // Can you use it, or is it in grace time?
                if (getvariableofnpc(.clocks, "#Rowboat") > gettimetick(2)) {
                    mesn;
                    mesq l("Please be patient. Someone else is using the rowboat right now.");
                    close;
                }
                // Rowboat already there, so change owner
                mesn;
                mesq l("Hello, a rowboat is already on the beach. You can use it.");
                set(getvariableofnpc(.caller, "#Rowboat"), getcharid(3));
                set(getvariableofnpc(.clocks, "#Rowboat"), gettimetick(2)+15);
                close;
            }
            // Rowboat is at hideout, send it to you
            speech S_FIRST_BLANK_LINE | S_LAST_NEXT,
                l("Hello, a rowboat is on his way to the beach. Please wait for a while for it to arrive.");

            set(getvariableofnpc(.caller, "#Rowboat"), getcharid(3));
            set(getvariableofnpc(.clocks, "#Rowboat"), gettimetick(2)+30);
            doevent("#Rowboat::OnMoveToBeach");
            close;
        }
        else
            close;
    }

OnInit:
    .distance = 1;
}

// UNUSED
//unmounting the rowboat at eastern beach
001-1,202,62,0	script	unmountrowboateast	NPC_HIDDEN,1,1,{

    function UnMount {
        narrator(S_LAST_BLANK_LINE | S_LAST_NEXT,
            l("Do you want to leave the boat?"));
        if (askyesno() == ASK_YES)
        {
            slide_or_warp("001-1", 199, 62);
            setmount 0;
            close;
        }
}

OnTouch:
    UnMount;
    end;

OnInit:
    .distance = 1;
}


//unmounting the rowboat at southern beach
001-1,68,143,0	script	unmountrowboatsouth	NPC_HIDDEN,1,1,{

    function UnMount {
        narrator(S_LAST_BLANK_LINE | S_LAST_NEXT,
            l("Do you want to leave the boat?"));
        if (askyesno() == ASK_YES)
        {
            slide_or_warp("001-1", 68, 138);
            setmount 0;
            close;
        }
}

OnTouch:
    UnMount;
    end;

OnInit:
    .distance = 1;
}


//unmounting the rowboat at western beach
001-1,25,101,0	script	unmountrowboatwest	NPC_HIDDEN,1,1,{

    function UnMount {
        narrator(S_LAST_BLANK_LINE | S_LAST_NEXT,
            l("Do you want to leave the boat?"));
        if (askyesno() == ASK_YES)
        {
            slide_or_warp("001-1", 27, 101);
            setmount 0;
            close;
        }
}

OnTouch:
    UnMount;
    end;

OnInit:
    .distance = 1;
}

function	script	ForcedUnmount	{
    setmount 0;
    return;
}