summaryrefslogtreecommitdiff
path: root/npc/000-2-1/alige.txt
blob: 3a520de34b32edfb9ae8c8950a90503c6c1fb950 (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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
// Evol scripts.
// Authors:
//    Vasily_Makarov
//    Ablu
//    Reid
// Description:
//    Hidden NPC on a ship'ground hole.
//
// 2 bits array:
//    ShipQuests
// Variable:
//    ShipQuests_Alige
// Values:
//    0     first talking (before food)
//    1     already talked


000-2-1.gat,33,32,0,1	script	AligeTrigger	0,1,1,{

    OnTouch:
      if (geta2(ShipQuests, ShipQuests_Alige) > 0) close;
      doevent "Alige::OnFirstEncounter";
      close;
    OnTouchFirst:
      setnpcdir "Alige", 2;
      stopnpctimer;
      initnpctimer;
      // OnTouch will not be called otherwise when OnTouchFirst got called
      goto OnTouch;
    OnUnTouchAll:
      setnpcdir "Alige", 4;
      stopnpctimer;
      initnpctimer;
      close;
    OnTimer190:
      if (getnpcdir ("Alige") == 2) setnpcdir "Alige", 6;
      if (getnpcdir ("Alige") == 4) setnpcdir "Alige", 8;
      stopnpctimer;
      end;
}

000-2-1.gat,33,31,0,1	script	Alige	301,{

  set @q, geta2(ShipQuests, ShipQuests_Alige);
  if (@q == 2) goto l_AskForFood;
  goto OnFirstEncounter;

  OnFirstEncounter:
    seta2 ShipQuests, ShipQuests_Alige, 1;

  l_Talk:
    mesn l("Hidden person");
    mesq l("Hey, psst! You're not a sailor, right?");

    menu
        l("I am, who are you?"), -,
        l("I'm not."), l_NeedHelp;

    mesn l("Hidden person doesn't answer");
    close;

  l_NeedHelp:
    mesn l("Hidden person");
    mesq l("Good, good! ") + " " + l("Could you help me please? ") + " " + l("I beg you, please, pleeeease... ");

    menu
        l("Why not... but, who are you?") + " " + l("And what kind of help do you need?"), l_CanHelp;
        l("Sorry but I have no time for this."), -;

    mesn l("Hidden person");
    mesq l("Damn you! You better not tell anyone that you've seen me!");
    close;

  l_CanHelp:
    mesn;
    mesq l("I'm called Alige, and I've been hiding here for few weeks.") + l("All that I had to eat were these berries... Berries... Berries...") + l("I'm losing my mind, I need something else to eat!");
    next;

    mesn;
    mesq l("Can you bring me something which isn't a vegetable?") + l("And please, no berries. No more!");

    menu
      l("Okay, but what do you offer me?"), l_AboutReward,
      l("Why are you hiding? ") + " " + l("Why not going outside to talk?"), -;

  l_ExplainHiding:
    mesn;
    mesq l("No, I'm not, I just wanted to travel across the seas for fun.") + " " + l("In this cave, you see, I have lots of fun.");
    next;

    mesn;
    mesq l("Err, seriously, I just wanted to get to Artis, and I haven't got the money to pay for the ferry!");
    next;

    mesn;
    mesq l("Please, don't tell people that you've seen me, I don't want to be thrown to sea as food for sharks or decapitated, not again!");

    next;

    if (geta2(ShipQuests, ShipQuests_Alige) == 2) goto l_AskForFood;
    goto l_Accept;

  l_AboutReward:
    mesn;
    mesq l("I'll share my berries with you, if you help me.");
    next;

  l_Accept:
    menu
      l("Ok, I'll help you."), l_Accepted,
      l("What is Artis?"), l_Artis,
      l("I think I should report you to the crew members."), -;
    goto l_DamnYou;

  l_Artis:
    mesn;
    mesq l("It's a commercial port of Andorra, it's weird that you don't know about it, it's a famous city throughout the world... But hey oh, return to topic! I'm hungry!");
    next;
    if (@q == 2) goto l_AskForFood;
    goto l_Accept;

  l_Accepted:
    seta2 ShipQuests, ShipQuests_Alige, 2;
    mesn;
    mesq l("Perfect, which food did you get for me today?");
    next;
    goto l_GiveFood;

  l_GiveFood:
    menu
        rif(countitem(502, 1), l(getitemname(502))), 502,
        rif(countitem(503, 1), l(getitemname(503))), 503,
        rif(countitem(504, 1), l(getitemname(504))), 504,
        rif(countitem(505, 1), l(getitemname(505))), 505,
        rif(countitem(506, 1), l(getitemname(506))), 506,
        rif(countitem(507, 1), l(getitemname(507))), 507,
        l("I don't have anything good for you today."), -1;

    set @id, @menuret;
    if (@id == -1) goto l_DamnYou;
    if ( (@id == 502) || (@id == 504) || (@id == 505) ) goto l_GiveReward;
    if (@id == 507) goto l_NoMore;

    mesn;
    mesq("I don't want this, give me something else.");
    goto l_GiveFood;

  l_GiveReward:

    if (countitem(@id) < 1) close;
    delitem @id, 1;

    mesn;
    mesq l("Thank you so much! Here, have some berries...");

    getitem 507, rand(1,3);
    close;

  l_NoMore:

    mesn;
    mesq l("Arrr, don't give me more berries! I don't want them, stupid berries, stupid ... stupid ... stupid!");
    next;
    close;

  l_AskForFood:

    mesn;
    mesq "Do you have anything for me today?";
    next;

    menu
      l("Yes."), l_GiveFood,
      l("Why are you hiding? ") + " " + l("Why not going outside to talk?"), l_ExplainHiding,
      l("What is Artis?"), l_Artis,
      l("I think I should report you to the crew members."), l_DamnYou;

  l_DamnYou:

    mesn;
    mesq l("Damn you! You better not tell anyone that you've seen me!");
    close;
}