summaryrefslogtreecommitdiff
path: root/npc/017-1/paxel.txt
blob: 53d87b047269faab260fabba01aeba54186682af (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
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
// TMW2/LoF Script
// This is from LoF Forums, to replace LoF Paxel
//----------------------------------------------------
// PRSM Helmet quest (seasonal quest)
// Create Quest: Darlord (Depredador)
//----------------------------------------------------

// Old Paxel turned Raw Coal in Coal... But we don't have Raw Coal.
// He probably used the nice furnace NPC too... We will need another NPC to use that...

017-1,131,22,0	script	Paxel	NPC_PLAYER,0,0,{
	.@q=getq(SQuest_Paxel);
	if(.@q == 2) goto L_Done;
	if (season() != SPRING && !$@GM_OVERRIDE) goto L_OutOfSeason;
	if(.@q == 1) goto L_Ask2;

	if (BaseLevel >= 55) goto L_Ask1;

L_OutOfSeason:
	mesn;
	mesq l("Hello! Calm wind today!");
	menu
		l("Yes, but I like windy days."), L_Wind,
		l("Hmm... sorry but gotta go..."), L_Go;
	close;

L_Go:
	mesn;
	mesq l("Ok, good trip then.");
	close;

L_Wind:
	mesn;
	mesq l("I don't like them, I can't fly straight.");
	next;
	mesn;
	if (BaseLevel < 55)
		mesq l("Well, not like you could understand that with your level! %%a");
	else
		mesq l("This is why I love spring!");
	close;

// ----------------------------------------------------
// Desert Helmet quest start
// ----------------------------------------------------
L_Ask1:
	mesn;
	mesq l("Hello @@! Do you have some @@ with you?", strcharinfo(0), getitemlink(TerraniteOre));

	menu
		rif(countitem(TerraniteOre),l("Yes... right... what about Terranite Ore?")), L_Quest1,
		rif(countitem(TerraniteOre),l("Yes, but I have grown attached to Terranite Ore...")), L_No,
		l("Right, but now I have business in other places."), L_Rude;
	close;

L_Quest1:
	mesn;
	mesq l("Terranite Ore is a really special item. People without helmets can't understand @@'s real power, anyway if you could give me some of them you would understand why they are so special.", getitemlink(TerraniteOre));

	menu
		l("Certainly, you can have all my Terranite Ore."), L_Check1,
		l("Sorry but I am not interested in that."), L_No;
	close;

L_No:
	mesn;
	mesq l("Ok, come back me when you want to know the @@ real power!", getitemlink(TerraniteOre));
	close;

L_Rude:
	mesn;
	mesq l("Well, good luck with your business.");
	close;


// ----------------------------------------------------
// Arc 1: Terranite Ores
// ----------------------------------------------------
L_Check1:
	if (countitem(TerraniteOre) < 4)
		goto L_More_Needed1;

	delitem TerraniteOre, 4;
	getexp 15000, 150;
	setq SQuest_Paxel, 1;
	mesn;
	mesq l("Perfect! you have enough Terranite Ore, I will take them for now but I need other items in order to bring them to life.");
    next;

L_Ask2:
	mesn;
	mesq l("I need a suitable base helmet, some herbs to use my magical dye, and gold:");
	mesc l("@@/1 @@", countitem(MinerHat), getitemlink(MinerHat));
    mesc l("@@/5 @@", countitem(GrassSeeds), getitemlink(GrassSeeds));
	mesc l("@@/100 @@", countitem(PinkAntenna), getitemlink(PinkAntenna));
	mesc l("@@/?? @@", countitem(CobaltHerb), getitemlink(CobaltHerb));
	mesc l("@@/@@ GP", format_number(Zeny), format_number(10000));

	menu
		l("Please have a look, I have what you asked"), L_Check2,
		l("On my way to get what you need."), -;
	close;


// ----------------------------------------------------
// Arc 2: Prsm Helmet
// ----------------------------------------------------
L_Check2:
	if (countitem(PinkAntenna) < 100 || countitem(MinerHat) < 1 || countitem(GrassSeeds) < 5 || countitem(CobaltHerb) < 60)
		goto L_More_Needed2;
	if (Zeny < 10000) {
		mesn;
		mesq l("You can't afford my work! Do some odd jobs and come back.");
		close;
	}

	inventoryplace PrsmHelmet, 1;
	delitem PinkAntenna, 100;
	delitem MinerHat, 1;
	delitem GrassSeeds, 5;
	delitem CobaltHerb, 60;
	//delitem TerraniteOre, 20;
	getexp 60000, 0;
	getitem PrsmHelmet, 1;
	setq SQuest_Paxel, 2;
	mesn;
	mesq l("There you go, a special and rare @@!", getitemlink(PrsmHelmet));
	close;

// ----------------------------------------------------
// Failure: Insufficient material
// ----------------------------------------------------
L_More_Needed1:
	mesn;
	mesq l("Your @@ is not enough, please look for more.", getitemlink(TerraniteOre));
	close;

L_More_Needed2:
	mesn;
	mesq l("I am sorry but I can see that you don't have all that I asked you.");
	next;
	mesn;
	mesq l("Please bring me that or I won't be able to make something really special for you.");
	close;


// ----------------------------------------------------
// Quest complete
// ----------------------------------------------------
L_Done:
	mesn;
	mesq l("Hello winged friend! How is the wind today?");

	menu
		rif(season() == SPRING || $@GM_OVERRIDE, l("It's spring, when the wind is always good.")), L_Spring,
		l("Calm, perfect for a fly!"), L_Fly,
		l("Gale, not good to fly."), L_Wind2;
	close;

L_Fly:
	mesn;
	mesq l("Haha yes, you are right!");
	close;

L_Wind2:
	mesn;
	mesq l("Yep, I never fly in these days.");
	close;

// TODO: Maybe we can add something else here
L_Spring:
	mesn;
	mesq l("Hahah, good to hear! Do you know some items are only dropped on spring? You should go after them!");
	close;

// Saulc/Omatt/Prsm minigame
OnTouch:
    if (BaseLevel < 20)
        percentheal -100, -100; // Shouldn't be here
    addtimer(100, "Paxel::OnOmattizator");
    end;

OnOmattizator:
    if (!isin("017-1", 131, 22, 0))
        end;
    if (!issit())
        addtimer(100, "Paxel::OnOmattizator");
    npctalk3 l("Unsit me at once!");
    emotion E_FURIOUS;
    addtimer(1000, "Paxel::OnOmattizator2");
    end;

OnOmattizator2:
    if (!isin("017-1", 131, 22, 0))
        end;
    if (!issit())
        addtimer(100, "Paxel::OnOmattizator");
    npctalk3 l("Unsit me OR I'LL KILL YOU in name of my father, Prsm!");
    emotion E_FURIOUS;
    addtimer(3000, "Paxel::OnOmattizator3");
    end;

OnOmattizator3:
    if (!isin("017-1", 131, 22, 0))
        end;
    if (!issit())
        addtimer(100, "Paxel::OnOmattizator");
    npctalk3 l("I HAVE WARNED YOU!!!!!");
    emotion E_FURIOUS;
    addtimer(1000, "Paxel::OnOmattizator4");
    end;

OnOmattizator4:
    if (!isin("017-1", 131, 22, 0))
        end;
    if (!issit())
        addtimer(100, "Paxel::OnOmattizator");
    .@q=getq(General_EasterEggs);
    npctalk3 l("DIE!");

    if (!(.@q & EE_PRSM)) {
        setq General_EasterEggs, .@q|EE_PRSM;
        dispbottom l("For finding an Easter Egg, you got Strange Coins!");
        getitem StrangeCoin, 3;
    }

    slide 130, 23;
    emotion E_FURIOUS;
    percentheal -100, -100;
    end;

OnInit:
    .@npcId = getnpcid(.name$);
    setunitdata(.@npcId, UDT_HEADTOP, PrsmHelmet);
    setunitdata(.@npcId, UDT_HEADMIDDLE, WarlordPlate);
    setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
    setunitdata(.@npcId, UDT_WEAPON, JeansChaps);
    setunitdata(.@npcId, UDT_HAIRSTYLE, 24);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 14);

    .sex=G_MALE;
    .distance=5;
    end;

}