summaryrefslogtreecommitdiff
path: root/npc/pre-re/jobs/1-1/archer.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/pre-re/jobs/1-1/archer.txt')
-rw-r--r--npc/pre-re/jobs/1-1/archer.txt245
1 files changed, 175 insertions, 70 deletions
diff --git a/npc/pre-re/jobs/1-1/archer.txt b/npc/pre-re/jobs/1-1/archer.txt
index 985b6c0f8..754d874cf 100644
--- a/npc/pre-re/jobs/1-1/archer.txt
+++ b/npc/pre-re/jobs/1-1/archer.txt
@@ -1,22 +1,36 @@
//===== rAthena Script =======================================
-//= Renewal Archer Job Change
+//= Archer Job Quest
//===== By: ==================================================
-//= Kisuka
+//= kobra_k88; L0ne_W0lf
//===== Current Version: =====================================
-//= 1.1
+//= 1.9
//===== Compatible With: =====================================
//= rAthena SVN
//===== Description: =========================================
-//= Job Change to Archer Class
+//= [Aegis Conversion]
+//= Job quest for Archer classes
//===== Additional Comments: =================================
-//= 1.0 First Version. [Kisuka]
-//= 1.1 Added Baby job change support. [Masao]
+//= 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 85,{
+
+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)) {
+ 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";
@@ -37,7 +51,7 @@ payon_in02,64,71,4 script Archer Guildsman 85,{
mes "need to say anything else.";
mes "I know you'll make a great Archer...";
next;
- skill 143,0,1;
+ skill 143,0,0;
jobchange Job_Archer_high;
skill 147,1,0;
skill 148,1,0;
@@ -46,96 +60,187 @@ payon_in02,64,71,4 script Archer Guildsman 85,{
mes "reward for you this time, I hope you understand. Take care of yourself.";
close;
}
- 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;
+ 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 "Nice to meet you. How may I help you?";
+ mes "Good day. How may I help you?";
next;
- switch (select("I want to be an Archer.:I need the requirements, please.:Nothing, thanks.")) {
+ switch(select("I want to be an Archer.:I need the requirements, please.:Nothing, thanks.")) {
case 1:
- if (Class == Job_Baby || Class == Job_Novice) {
+ 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 "You are..." + strcharinfo(0) + " right?";
+ mes "Hmm...";
+ mes "You don't look much like a Novice at all...";
next;
- if (getskilllv("NV_BASIC") < 9) {
+ 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 "Well, you don't have the right skill level. ";
- mes "Your job level must be at least ^4d4dff10^000000";
- mes "and your Basic Skill level should reach ^4d4dfflevel 9^000000";
+ mes "Okay, sign here. Alright, um, I'll promote you once you meet the requirements.";
next;
mes "[Archer Guildsman]";
- mes "Because an Archer needs";
- mes "extremely high concentration,";
- mes "so we do not accept ";
- mes "those who have little patience.";
- close;
+ 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 "You seem to have learned the basic skills..";
- mes "....Hm~~ you are now ready to become an Archer. I will take the step right away.";
- next;
- skill 143,0,1;
- if(Class == Job_Baby){
- jobchange Job_Baby_Archer;
- } else {
- jobchange Job_Archer;
- }
+ 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 "Congratulations! You are now an Archer! Also, we hope that you actively participate in many programs for the revival of the Archer Guild.";
- mes "Ah, items have arrived from the Production Department. Here, take these! These are all yours!";
- getitem 1742,1; //N_Composite_Bow
- getitem 12004,1; //Arrow_Container
- getitem 12009,1; //Silver_Arrow_Container
- getitem 12008,1; //Fire_Arrow_Container
+ mes "Well, you're not at the right job level. Please check the requirements again.";
next;
mes "[Archer Guildsman]";
- mes "Having a bow and arrows, now you've become a real Archer.";
- mes "If you open the arrow quiver, there will be arrows in it that you can equip.";
- mes "Well, I expect to hear good news from you. It's time to say goodbye. Bye.";
+ 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 (Class == Job_Baby_Archer || Class == Job_Archer || Class == Job_Archer_High) {
+ 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 "Haha, you are kidding me..";
- close;
+ 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 "Wait a second. You've chosen a different job already. You don't need to know this~";
+ mes "Now, off you go. Hunt with pride, knowing you were trained by one of the best!";
close;
case 2:
mes "[Archer Guildsman]";
- mes "An Archer has skills using a bow and has various talents.";
- mes "The greatest ability of an Archer is attacking enemies from a long distance.";
+ 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 "Although an Archer has weaker HP,";
- mes "he or she can shoot enemies";
- mes "at a long range,";
- mes "so an Archer is safer in a real battle.";
+ 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 "Although an Archer in Ragnarok has lower HP,";
- mes "he or she has high accuracy and attack rate";
- mes "so that the archer can kill monsters";
- mes "before they get close to an Archer.";
+ mes "An Archer needs extremely high concentration and reflexes, so we do not accept those who have little patience.";
next;
mes "[Archer Guildsman]";
- mes "^8E2323An Archer can change";
- mes "^8E2323jobs to a Hunter.";
- mes "^8E2323Other than Hunter, if you are a man, you can change your job to Bard";
- mes "^8E2323and if you are a woman, you can change your job to Dancer.^000000";
+ 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:
- mes "[Archer Guildsman]";
- mes "If you have any questions, feel free to come and ask me.";
close;
}
-} \ No newline at end of file
+}
+