[1] | 1 | //===== eAthena Script ======================================= |
---|
| 2 | //= Archer Job Quest |
---|
| 3 | //===== By: ================================================== |
---|
| 4 | //= kobra_k88; L0ne_W0lf |
---|
| 5 | //===== Current Version: ===================================== |
---|
| 6 | //= 1.7a |
---|
| 7 | //===== Compatible With: ===================================== |
---|
| 8 | //= eAthena SVN |
---|
| 9 | //===== Description: ========================================= |
---|
| 10 | //= [Aegis Conversion] |
---|
| 11 | //= Job quest for Archer classes |
---|
| 12 | //===== Additional Comments: ================================= |
---|
| 13 | //= Fully working |
---|
| 14 | //= v1.1 Added instant job change for High Novice [Lupus] |
---|
| 15 | //= v1.3 Added Baby Class support [Lupus] |
---|
| 16 | //= v1.4 Optimised and moved first checker to Jfunc1-1 [massdriller] |
---|
| 17 | //= 1.5 Now saves/restores all quest skills [Lupus] |
---|
| 18 | //= 1.6 Merged back JFunc [Lupus] |
---|
| 19 | //= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf] |
---|
| 20 | //= Arrow reward is now equal to the type sof trunks brought. |
---|
| 21 | //= No longer uses function "F_ToHigh" |
---|
| 22 | //= 1.7a Fixed minor dialogue bug at Grade==25 [Lupus] |
---|
| 23 | //============================================================ |
---|
| 24 | |
---|
| 25 | payon_in02,64,71,4 script Archer Guildsman#archer 85,{ |
---|
| 26 | if (Upper == 1) { |
---|
| 27 | if (Class == Job_Novice_High && ADVJOB == Job_Sniper || ADVJOB == Job_Clown || ADVJOB == Job_Gypsy) { |
---|
| 28 | mes "[Archer Guildsman]"; |
---|
| 29 | mes "Hey, I know you."; |
---|
| 30 | mes "You took this test"; |
---|
| 31 | mes "before, didn't you?"; |
---|
| 32 | next; |
---|
| 33 | mes "[Archer Guildsman]"; |
---|
| 34 | mes "Ah, you must have been"; |
---|
| 35 | mes "to Valhalla and been reborn."; |
---|
| 36 | mes "Wow, that's so impressive!"; |
---|
| 37 | next; |
---|
| 38 | if (getskilllv("NV_BASIC") < 9) { |
---|
| 39 | mes "[Archer Guildsman]"; |
---|
| 40 | mes "Err..."; |
---|
| 41 | mes "You'd better learn all the Basic Skills first before you can become an Archer."; |
---|
| 42 | next; |
---|
| 43 | mes "[Archer Guildsman]"; |
---|
| 44 | mes "Alright, see you later."; |
---|
| 45 | close; |
---|
| 46 | } |
---|
| 47 | mes "[Archer Guildsman]"; |
---|
| 48 | mes "Well then. I don't"; |
---|
| 49 | mes "need to say anything else."; |
---|
| 50 | mes "I know you'll make a great Archer..."; |
---|
| 51 | next; |
---|
| 52 | skill 143,0,0; |
---|
| 53 | jobchange Job_Archer_high; |
---|
| 54 | skill 147,1,0; |
---|
| 55 | skill 148,1,0; |
---|
| 56 | mes "[Archer Guildsman]"; |
---|
| 57 | mes "Although there's no special"; |
---|
| 58 | mes "reward for you this time, I hope you understand. Take care of yourself."; |
---|
| 59 | close; |
---|
| 60 | } |
---|
| 61 | else { |
---|
| 62 | mes "[Archer Guildsman]"; |
---|
| 63 | mes "Oh...?"; |
---|
| 64 | mes "Hey, what are"; |
---|
| 65 | mes "you doing here...?"; |
---|
| 66 | next; |
---|
| 67 | mes "[Archer Guildsman]"; |
---|
| 68 | mes "I can tell that you're not cut out to be an Archer. It sort of feels like you're meant to do"; |
---|
| 69 | mes "something else..."; |
---|
| 70 | close; |
---|
| 71 | } |
---|
| 72 | } |
---|
| 73 | mes "[Archer Guildsman]"; |
---|
| 74 | mes "Good day. How may I help you?"; |
---|
| 75 | next; |
---|
| 76 | switch(select("I want to be an Archer.:I need the requirements, please.:Nothing, thanks.")) { |
---|
| 77 | case 1: |
---|
| 78 | if (BaseJob == Job_Archer) { |
---|
| 79 | mes "[Archer Guildsman]"; |
---|
| 80 | mes "You've already become an Archer..."; |
---|
| 81 | close; |
---|
| 82 | } |
---|
| 83 | else if (BaseJob != Job_Archer && BaseJob != Job_Novice) { |
---|
| 84 | mes "[Archer Guildsman]"; |
---|
| 85 | mes "Hmm..."; |
---|
| 86 | mes "You don't look much like a Novice at all..."; |
---|
| 87 | next; |
---|
| 88 | mes "[Archer Guildsman]"; |
---|
| 89 | mes "Anyway, whatever you are, you can't choose a job as an Archer because you have a job already."; |
---|
| 90 | close; |
---|
| 91 | } |
---|
| 92 | if (job_archer_q == 0) { |
---|
| 93 | mes "[Archer Guildsman]"; |
---|
| 94 | mes "Do you want to be an Archer?"; |
---|
| 95 | mes "If so, you need to fill out this application form."; |
---|
| 96 | next; |
---|
| 97 | if (select("Apply.:Cancel") == 1) { |
---|
| 98 | set job_archer_q,1; |
---|
| 99 | mes "[Archer Guildsman]"; |
---|
| 100 | mes "Okay, sign here. Alright, um, I'll promote you once you meet the requirements."; |
---|
| 101 | next; |
---|
| 102 | mes "[Archer Guildsman]"; |
---|
| 103 | mes "If you think you've met them already, we can check that now."; |
---|
| 104 | mes "Are you ready?"; |
---|
| 105 | next; |
---|
| 106 | if (select("Yes, I am.:No, not yet.") == 1) { |
---|
| 107 | mes "[Archer Guildsman]"; |
---|
| 108 | mes "Alright, let me check."; |
---|
| 109 | next; |
---|
| 110 | } |
---|
| 111 | else { |
---|
| 112 | mes "[Archer Guildsman]"; |
---|
| 113 | mes "I understand. Be my guest if you want to look at the requirements."; |
---|
| 114 | close; |
---|
| 115 | } |
---|
| 116 | } |
---|
| 117 | mes "[Archer Guildsman]"; |
---|
| 118 | mes "Well, alright."; |
---|
| 119 | mes "See you next time."; |
---|
| 120 | close; |
---|
| 121 | } |
---|
| 122 | mes "[Archer Guildsman]"; |
---|
| 123 | mes "Are you..." + strcharinfo(0) + "?"; |
---|
| 124 | next; |
---|
| 125 | if (getskilllv("NV_BASIC") < 9) { |
---|
| 126 | mes "[Archer Guildsman]"; |
---|
| 127 | mes "Well, you're not at the right job level. Please check the requirements again."; |
---|
| 128 | next; |
---|
| 129 | mes "[Archer Guildsman]"; |
---|
| 130 | 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."; |
---|
| 131 | close; |
---|
| 132 | } |
---|
| 133 | if (job_archer_q == 1) { |
---|
| 134 | set .@archer_item1,countitem(1066) * 5; |
---|
| 135 | set .@archer_item2,countitem(1067) * 3; |
---|
| 136 | set .@archer_item3,countitem(1068) * 2; |
---|
| 137 | set .@archer_item4,countitem(1019); |
---|
| 138 | set .@total_archer,.@archer_item1 + .@archer_item2 + .@archer_item3 + .@archer_item4; |
---|
| 139 | set .@total_archer2,(((.@archer_item2 + .@archer_item3) * 2) + .@archer_item4); |
---|
| 140 | mes "[Archer Guildsman]"; |
---|
| 141 | mes "Excellent!"; |
---|
| 142 | mes "Now then,"; |
---|
| 143 | mes "let's see..."; |
---|
| 144 | next; |
---|
| 145 | mes "[Archer Guildsman]"; |
---|
| 146 | mes "I will appraise the value of the various types of Trunks, needed to produce a Bow, that you've brought."; |
---|
| 147 | next; |
---|
| 148 | if (countitem(1066) == 0 && countitem(1067) == 0 && countitem(1068) == 0 && countitem(1019) == 0) { |
---|
| 149 | mes "[Archer Guildsman]"; |
---|
| 150 | mes "Um..."; |
---|
| 151 | mes "Unfortunately you didn't bring any of the required items. There's nothing for me to appraise."; |
---|
| 152 | close; |
---|
| 153 | } |
---|
| 154 | mes "[Archer Guildsman]"; |
---|
| 155 | if (countitem(1066) != 0) mes " Grade S : " + countitem(1066) + " ea, Grade: " + .@archer_item1 + " . "; |
---|
| 156 | if (countitem(1067) != 0) mes " Grade A : " + countitem(1067) + " ea, Grade : " + .@archer_item2 + " . "; |
---|
| 157 | if (countitem(1068) != 0) mes " Grade B : " + countitem(1068) + " ea, Grade : " + .@archer_item3 + " . "; |
---|
| 158 | if (countitem(1019) != 0) mes " Grade C : " + countitem(1019) + " ea, Grade : " + .@archer_item4 + " . "; |
---|
| 159 | if (.@total_archer < 25) { |
---|
| 160 | mes "Total Grades: ^FF0000" + .@total_archer + "^000000 / 40"; |
---|
| 161 | next; |
---|
| 162 | mes "[Archer Guildsman]"; |
---|
| 163 | mes "Less than 25!? You have to get a grade of at least 25! Come on, try harder!"; |
---|
| 164 | close; |
---|
| 165 | } |
---|
| 166 | else { |
---|
| 167 | mes "Total Grades: ^0000FF" + .@total_archer + "^000000 / 40"; |
---|
| 168 | next; |
---|
| 169 | mes "[Archer Guildsman]"; |
---|
| 170 | if (.@total_archer > 40) { |
---|
| 171 | mes "Wow! More than 40!"; |
---|
| 172 | mes "Excellent! Congratulations!"; |
---|
| 173 | } |
---|
| 174 | else if (.@total_archer > 30) { |
---|
| 175 | mes "More than 30! Nice job!"; |
---|
| 176 | mes "Congratulations!"; |
---|
| 177 | } |
---|
| 178 | else { |
---|
| 179 | mes "*Sigh* Well, you just barely passed... Anyway, well done."; |
---|
| 180 | } |
---|
| 181 | } |
---|
| 182 | next; |
---|
| 183 | mes "[Archer Guildsman]"; |
---|
| 184 | mes "I'll transfer these Trunks to our Bow Production Department. Now that you've met the requirements, let me promote you right away!"; |
---|
| 185 | if (countitem(1066) != 0) delitem 1066,countitem(1066); //Tree_Of_Archer_1 |
---|
| 186 | if (countitem(1067) != 0) delitem 1067,countitem(1067); //Tree_Of_Archer_2 |
---|
| 187 | if (countitem(1068) != 0) delitem 1068,countitem(1068); //Tree_Of_Archer_3 |
---|
| 188 | if (countitem(1019) != 0) delitem 1019,countitem(1019); //Wooden_Block |
---|
| 189 | } |
---|
| 190 | next; |
---|
| 191 | callfunc "Job_Change",Job_Archer; |
---|
| 192 | callfunc "F_ClearJobVar"; |
---|
| 193 | mes "[Archer Guildsman]"; |
---|
| 194 | mes "Congratulations!"; |
---|
| 195 | mes "You are now an Archer!"; |
---|
| 196 | next; |
---|
| 197 | mes "[Archer Guildsman]"; |
---|
| 198 | mes "Of course, we expect that you will help contribute towards the future of the Archer Guild with your efforts."; |
---|
| 199 | next; |
---|
| 200 | mes "[Archer Guildsman]"; |
---|
| 201 | mes "Ah, your bow has arrived from the Bow Production Department. Here, take it! It's yours~"; |
---|
| 202 | getitem 1702,1; //Bow_ |
---|
| 203 | getitem 1750,.@total_archer2; //Arrow |
---|
| 204 | next; |
---|
| 205 | mes "[Archer Guildsman]"; |
---|
| 206 | mes "Now, off you go. Hunt with pride, knowing you were trained by one of the best!"; |
---|
| 207 | close; |
---|
| 208 | case 2: |
---|
| 209 | mes "[Archer Guildsman]"; |
---|
| 210 | mes "I will explain the requirements for being an Archer."; |
---|
| 211 | if (BaseJob != Job_Novice) { |
---|
| 212 | if (BaseJob == Job_Archer) { |
---|
| 213 | next; |
---|
| 214 | mes "[Archer Guildsman]"; |
---|
| 215 | mes "But..."; |
---|
| 216 | mes "You're already an Archer. You should know these already..."; |
---|
| 217 | } |
---|
| 218 | else { |
---|
| 219 | next; |
---|
| 220 | mes "[Archer Guildsman]"; |
---|
| 221 | mes "Wait a second. You've chosen a different job already. You don't need to know this~"; |
---|
| 222 | } |
---|
| 223 | mes "So...Yeah...no real reason to tell you the requirements..."; |
---|
| 224 | } |
---|
| 225 | next; |
---|
| 226 | mes "[Archer Guildsman]"; |
---|
| 227 | mes "First of all, you have to the Job Level 9 as a Novice, and know all of the Basic Skills."; |
---|
| 228 | next; |
---|
| 229 | mes "[Archer Guildsman]"; |
---|
| 230 | mes "An Archer needs extremely high concentration and reflexes, so we do not accept those who have little patience."; |
---|
| 231 | next; |
---|
| 232 | mes "[Archer Guildsman]"; |
---|
| 233 | 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."; |
---|
| 234 | next; |
---|
| 235 | mes "[Archer Guildsman]"; |
---|
| 236 | 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."; |
---|
| 237 | close; |
---|
| 238 | case 3: |
---|
| 239 | close; |
---|
| 240 | } |
---|
| 241 | } |
---|
| 242 | |
---|