summaryrefslogtreecommitdiff
path: root/npc/pre-re/jobs/1-1/archer.txt
blob: 754d874cf3249479665ad09a06754d017dba1c5a (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
246
//===== rAthena Script ======================================= 
//= Archer Job Quest
//===== By: ================================================== 
//= kobra_k88; L0ne_W0lf
//===== Current Version: ===================================== 
//= 1.9
//===== Compatible With: ===================================== 
//= rAthena SVN
//===== Description: ========================================= 
//= [Aegis Conversion]
//= Job quest for Archer classes
//===== Additional Comments: ================================= 
//= Fully working
//= v1.1 Added instant job change for High Novice [Lupus]
//= v1.3 Added Baby Class support [Lupus]
//= v1.4 Optimised and moved first checker to Jfunc1-1 [massdriller]
//= 1.5 Now saves/restores all quest skills [Lupus]
//= 1.6 Merged back JFunc [Lupus]
//= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
//=	Arrow reward is now equal to the type sof trunks brought.
//=	No longer uses function "F_ToHigh"
//= 1.7a Fixed minor dialogue bug at Grade==25 [Lupus]
//= 1.8 Fixed mistake in condition check. [L0ne_W0lf]
//= 1.9 Added Quest Log commands. [L0ne_W0lf]
//============================================================ 

payon_in02,64,71,4	script	Archer Guildsman#archer	85,{
	if (Upper == 1) {
		if (Class == Job_Novice_High && (ADVJOB == Job_Sniper || ADVJOB == Job_Clown || ADVJOB == Job_Gypsy)) {
			mes "[Archer Guildsman]";
			mes "Hey, I know you.";
			mes "You took this test";
			mes "before, didn't you?";
			next;
			mes "[Archer Guildsman]";
			mes "Ah, you must have been";
			mes "to Valhalla and been reborn.";
			mes "Wow, that's so impressive!";
			next;
			if (getskilllv("NV_BASIC") < 9) {
				mes "[Archer Guildsman]";
				mes "Err...";
				mes "You'd better learn all the Basic Skills first before you can become an Archer.";
				next;
				mes "[Archer Guildsman]";
				mes "Alright, see you later.";
				close;
			}
			mes "[Archer Guildsman]";
			mes "Well then. I don't";
			mes "need to say anything else.";
			mes "I know you'll make a great Archer...";
			next;
			skill 143,0,0;
			jobchange Job_Archer_high;
			skill 147,1,0;
			skill 148,1,0;
			mes "[Archer Guildsman]";
			mes "Although there's no special";
			mes "reward for you this time, I hope you understand. Take care of yourself.";
			close;
		}
		else {
			mes "[Archer Guildsman]";
			mes "Oh...?";
			mes "Hey, what are";
			mes "you doing here...?";
			next;
			mes "[Archer Guildsman]";
			mes "I can tell that you're not cut out to be an Archer. It sort of feels like you're meant to do";
			mes "something else...";
			close;
		}
	}
	mes "[Archer Guildsman]";
	mes "Good day. How may I help you?";
	next;
	switch(select("I want to be an Archer.:I need the requirements, please.:Nothing, thanks.")) {
	case 1:
		if (BaseJob == Job_Archer) {
			mes "[Archer Guildsman]";
			mes "You've already become an Archer...";
			close;
		}
		else if (BaseJob != Job_Archer && BaseJob != Job_Novice) {
			mes "[Archer Guildsman]";
			mes "Hmm...";
			mes "You don't look much like a Novice at all...";
			next;
			mes "[Archer Guildsman]";
			mes "Anyway, whatever you are, you can't choose a job as an Archer because you have a job already.";
			close;
		}
		if (job_archer_q == 0) {
			mes "[Archer Guildsman]";
			mes "Do you want to be an Archer?";
			mes "If so, you need to fill out this application form.";
			next;
			if (select("Apply.:Cancel") == 1) {
				set job_archer_q,1;
				setquest 1004;
				mes "[Archer Guildsman]";
				mes "Okay, sign here. Alright, um, I'll promote you once you meet the requirements.";
				next;
				mes "[Archer Guildsman]";
				mes "If you think you've met them already, we can check that now.";
				mes "Are you ready?";
				next;
				if (select("Yes, I am.:No, not yet.") == 1) {
					mes "[Archer Guildsman]";
					mes "Alright, let me check.";
					next;
				}
				else {
					mes "[Archer Guildsman]";
					mes "I understand. Be my guest if you want to look at the requirements.";
					close;
				}
			}
			mes "[Archer Guildsman]";
			mes "Well, alright.";
			mes "See you next time.";
			close;
		}
		mes "[Archer Guildsman]";
		mes "Are you..." + strcharinfo(0) + "?";
		next;
		if (getskilllv("NV_BASIC") < 9) {
			mes "[Archer Guildsman]";
			mes "Well, you're not at the right job level. Please check the requirements again.";
			next;
			mes "[Archer Guildsman]";
			mes "Your job level must be at least 10, and don't forget you should learn all of the Basic Skills. Once you've done that, come back.";
			close;
		}
		if (job_archer_q == 1) {
			set .@archer_item1,countitem(1066) * 5;
			set .@archer_item2,countitem(1067) * 3;
			set .@archer_item3,countitem(1068) * 2;
			set .@archer_item4,countitem(1019);
			set .@total_archer,.@archer_item1 + .@archer_item2 + .@archer_item3 + .@archer_item4;
			set .@total_archer2,(((.@archer_item2 + .@archer_item3) * 2) + .@archer_item4);
			mes "[Archer Guildsman]";
			mes "Excellent!";
			mes "Now then,";
			mes "let's see...";
			next;
			mes "[Archer Guildsman]";
			mes "I will appraise the value of the various types of Trunks, needed to produce a Bow, that you've brought.";
			next;
			if (countitem(1066) == 0 && countitem(1067) == 0 && countitem(1068) == 0 && countitem(1019) == 0) {
				mes "[Archer Guildsman]";
				mes "Um...";
				mes "Unfortunately you didn't bring any of the required items. There's nothing for me to appraise.";
				close;
			}
			mes "[Archer Guildsman]";
			if (countitem(1066) != 0) mes " Grade S : " + countitem(1066) + " ea, Grade: " + .@archer_item1 + " . ";
			if (countitem(1067) != 0) mes " Grade A : " + countitem(1067) + " ea, Grade : " + .@archer_item2 + " . ";
			if (countitem(1068) != 0) mes " Grade B : " + countitem(1068) + " ea, Grade : " + .@archer_item3 + " . ";
			if (countitem(1019) != 0) mes " Grade C : " + countitem(1019) + " ea, Grade : " + .@archer_item4 + " . ";
			if (.@total_archer < 25) {
				mes "Total Grades: ^FF0000" + .@total_archer + "^000000 / 40";
				next;
				mes "[Archer Guildsman]";
				mes "Less than 25!? You have to get a grade of at least 25! Come on, try harder!";
				close;
			}
			else {
				mes "Total Grades: ^0000FF" + .@total_archer + "^000000 / 40";
				next;
				mes "[Archer Guildsman]";
				if (.@total_archer > 40) {
					mes "Wow! More than 40!";
					mes "Excellent! Congratulations!";
				}
				else if (.@total_archer > 30) {
					mes "More than 30! Nice job!";
					mes "Congratulations!";
				}
				else {
					mes "*Sigh* Well, you just barely passed... Anyway, well done.";
				}
			}
			next;
			mes "[Archer Guildsman]";
			mes "I'll transfer these Trunks to our Bow Production Department. Now that you've met the requirements, let me promote you right away!";
			if (countitem(1066) != 0) delitem 1066,countitem(1066); //Tree_Of_Archer_1
			if (countitem(1067) != 0) delitem 1067,countitem(1067); //Tree_Of_Archer_2
			if (countitem(1068) != 0) delitem 1068,countitem(1068); //Tree_Of_Archer_3
			if (countitem(1019) != 0) delitem 1019,countitem(1019); //Wooden_Block
		}
		next;
		callfunc "Job_Change",Job_Archer;
		callfunc "F_ClearJobVar";
		completequest 1004;
		mes "[Archer Guildsman]";
		mes "Congratulations!";
		mes "You are now an Archer!";
		next;
		mes "[Archer Guildsman]";
		mes "Of course, we expect that you will help contribute towards the future of the Archer Guild with your efforts.";
		next;
		mes "[Archer Guildsman]";
		mes "Ah, your bow has arrived from the Bow Production Department. Here, take it! It's yours~";
		getitem 1702,1; //Bow_
		getitem 1750,.@total_archer2; //Arrow
		next;
		mes "[Archer Guildsman]";
		mes "Now, off you go. Hunt with pride, knowing you were trained by one of the best!";
		close;
	case 2:
		mes "[Archer Guildsman]";
		mes "I will explain the requirements for being an Archer.";
		if (BaseJob != Job_Novice) {
			if (BaseJob == Job_Archer) {
				next;
				mes "[Archer Guildsman]";
				mes "But...";
				mes "You're already an Archer. You should know these already...";
			}
			else {
				next;
				mes "[Archer Guildsman]";
				mes "Wait a second. You've chosen a different job already. You don't need to know this~";
			}
			mes "So...Yeah...no real reason to tell you the requirements...";
		}
		next;
		mes "[Archer Guildsman]";
		mes "First of all, you have to the Job Level 9 as a Novice, and know all of the Basic Skills.";
		next;
		mes "[Archer Guildsman]";
		mes "An Archer needs extremely high concentration and reflexes, so we do not accept those who have little patience.";
		next;
		mes "[Archer Guildsman]";
		mes "You also have to gather ^FF0000Trunks^000000. There are 4 different types of Trunks, each of differing quality. You'll be given different grades for your Trunks, depending on their quality.";
		next;
		mes "[Archer Guildsman]";
		mes "In order to become an Archer, you must receive a grade of at least ^0000FF25^000000 points out of 40. You can get Trunks from 'Willow,' the tree. Be careful, though. They can be tough monsters.";
		close;
	case 3:
		close;
	}
}