You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
249 lines
8.9 KiB
Plaintext
249 lines
8.9 KiB
Plaintext
4 months ago
|
//===== rAthena Script =======================================
|
||
|
//= Archer Job Quest
|
||
|
//===== By: ==================================================
|
||
|
//= kobra_k88; L0ne_W0lf
|
||
|
//===== Current Version: =====================================
|
||
|
//= 1.9
|
||
|
//===== Compatible With: =====================================
|
||
|
//= rAthena Project
|
||
|
//===== Description: =========================================
|
||
|
//= [Official Conversion]
|
||
|
//= Job quest for Archer classes
|
||
|
//===== Additional Comments: =================================
|
||
|
//= 1.0 Fully working.
|
||
|
//= 1.1 Added instant job change for High Novice [Lupus]
|
||
|
//= 1.3 Added Baby Class support [Lupus]
|
||
|
//= 1.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 (!callfunc("F_CanChangeJob")) {
|
||
|
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 "NV_TRICKDEAD",0,SKILL_PERM;
|
||
|
jobchange Job_Archer_high;
|
||
|
skill "AC_MAKINGARROW",1,SKILL_PERM;
|
||
|
skill "AC_CHARGEARROW",1,SKILL_PERM;
|
||
|
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;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
mes "[Archer Guildsman]";
|
||
|
mes "Well, alright.";
|
||
|
mes "See you next time.";
|
||
|
close;
|
||
|
}
|
||
|
}
|
||
|
mes "[Archer Guildsman]";
|
||
|
mes "Are you..." + strcharinfo(0) + "?";
|
||
|
next;
|
||
|
if (!callfunc("F_CanChangeJob")) {
|
||
|
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;
|
||
|
}
|
||
|
}
|
||
|
|