//===== eAthena Script ======================================= //= Mage Job Quest //===== By: ================================================== //= kobra_k88 //===== Current Version: ===================================== //= 1.5 //===== Compatible With: ===================================== //= eAthena 1.0 + //===== Description: ========================================= //= //===== Additional Comments: ================================= //= Fully working //= 1.1 Fixed input ingridients bug [Lupus] //= v1.2 Added instant job change for High Novice [Lupus] //= 1.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] //============================================================ // -- Expert Mage -- geffen_in.gat,164,124,4 script Expert Mage 123,{ callfunc "F_ToHigh",Job_Mage_High,"High Mage",Job_High_Wizard,"Expert Mage"; if(BaseJob==Job_Novice && job_magician_q >= 1) goto L_BeMage; mes "[Expert Mage]"; mes "Hi hi! What can I help you with today?"; M_Menu: next; menu "I'm in love with magic, make me a Mage!",M_0,"Tell me the Requirements.",M_1,"Nothing thanks.",M_End; M_0: mes "[Expert Mage]"; mes "You wanna be a Mage? Hmmm....."; next; mes "[Expert Mage]"; callfunc "Mag_check"; mes "The only thing left to do is to pass the official Geffen Mage Test. Let me give you the details of the test."; next; set job_magician_q, rand(1,4); L_Explain: mes "[Expert Mage]"; if(job_magician_q == 1) mes "Your test is to make ^0000ff'Mixed Solution No.1'^000000 and bring it back to me."; if(job_magician_q == 2) mes "Your test is to make ^00aa00'Mixed Solution No.2'^000000 and bring it back to me."; if(job_magician_q == 3) mes "Your test is to make ^ff0000'Mixed Solution No.3'^000000 and bring it back to me."; if(job_magician_q == 4) mes "Your test is to make ^ffbb00'Mixed Solution No.4'^000000 and bring it back to me."; next; if(countitem(1092) == 0) getitem 1092,1;//Items: Empty_Test_Tube, mes "[Expert Mage]"; mes "You can get the necessary ingredients in the ^5533FF'Guide Book'^000000 in this room."; mes "Refer to it to get a list of the proper ingredients for the solution."; next; mes "[Expert Mage]"; mes "When you are ready to mix it, use the ^ff0000'Mixing Machine'^000000 in the center to mix the solution."; next; mes "[Expert Mage]"; mes "Good Luck! I'll be waiting."; close; M_1: mes "[Expert Mage]"; mes "First of all, you have to reach Novice Level 9 and have learned all of the Basic Skills."; mes "Secondly, you have to pass the Mage Test."; goto M_Menu; M_End: mes "[Expert Mage]"; mes "Okays. Bye bye."; close; L_BeMage: mes "[Expert Mage]"; mes "Oh, you're back. Lets see...."; next; mes "[Expert Mage]"; if(countitem(1090) >= 1) goto L_Retry;//Items: Unknown_Test_Tube, if((countitem(1071)<1) && (countitem(1085)<1) && (countitem(1086)<1) && (countitem(1087)<1)) goto L_NoSol;//Items: Unknown_Test_Tube, Unknown_Test_Tube, Unknown_Test_Tube, Unknown_Test_Tube, if(SkillPoint > 0) mes "You need to use up all of your skill points before I can make you a Mage."; if(SkillPoint > 0) close; mes ".....The color's not quit right.... there is a little to much precipitate..... hmmm......"; next; mes "[Expert Mage]"; mes "Well it's not perfect but it seems you worked very hard on this so...... alright! I'll let you pass! You are now officially qualified to become a mage!"; emotion e_no1; next; mes "[Expert Mage]"; mes "Abra-kadabra and hocus pocus, turn this young novice into a ^00aa00MAGE^000000!!"; next; callfunc "Job_Change",Job_Mage; set Zeny,Zeny+500; if(job_magician_q == 1) delitem 1071,1;//Items: Unknown_Test_Tube, if(job_magician_q == 2) delitem 1085,1;//Items: Unknown_Test_Tube, if(job_magician_q == 3) delitem 1086,1;//Items: Unknown_Test_Tube, if(job_magician_q == 4) delitem 1087,1;//Items: Unknown_Test_Tube, callfunc "F_ClearJobVar"; // clears all job variables for the current player mes "[Expert Mage]"; mes "'Welcome to My World~ teh hehe. I've always wanted to say that. Anyways, congratulations! You're one of us now so let's be friends okays!"; emotion e_heh; next; mes "[Expert Mage]"; mes "Good luck to ya and take care!"; close; L_Retry: mes "I'm sorry but the solution you have is no good. I'm afraid that you didn't pass the test. You can try again though."; mes "Let me explain the test for you once more okays."; emotion e_swt; next; delitem 1090,1;//Items: Unknown_Test_Tube, goto L_Explain; L_NoSol: mes "Where is the solution I asked for? I'm sorry but I can't check the solution when you don't have it. Let me remind you what solution you need."; emotion e_what; next; goto L_Explain; } // -- Solutions Guide Book -- geffen_in.gat,177,112,1 script Solutions Guide Book 111,{ mes "[Solutions Guide Book]"; mes "I belong to Geffen Magic Academy. Please handle with care."; next; menu "Solution No. 1.",Sol1,"Solution No. 2.",Sol2,"Solution No. 3.",Sol3,"Solution No. 4.",Sol4,"Close.",Cancel; Sol1: mes "[Mage Test Solution No. 1]"; mes "* Ingredients list *"; mes " - Jellopy 2 ea"; mes " - Fluff 3 ea"; mes " - Milk 1 ea"; next; mes "[Mage Test Solution No. 1]"; mes "* Solvent Agent *"; mes " Payon Solution"; mes " Where to find: A Small Spring in"; mes " Archer Village, Payon."; next; mes "[Mage Test Solution No. 1]"; mes "* Chemical ingredients *"; mes " - 8472"; next; mes "[Mage Test Solution No. 1]"; mes "* A Catalyst *"; mes " - Yellow Gemstone"; mes " (Mixing Machine Will provide"; mes " this item.)"; close; Sol2: mes "[Mage Test Solution No. 2]"; mes "* Ingredients list *"; mes " - Jellopy 3 ea"; mes " - Fluff 1 ea"; mes " - Milk 1 ea"; next; mes "[Mage Test Solution No. 2]"; mes "* Solvent Agent *"; mes " - Not Appliable."; next; mes "[Mage Test Solution No. 2]"; mes "* Chemical ingredients *"; mes " - 3735"; next; mes "[Mage Test Solution No. 2]"; mes "* A Catalyst *"; mes " - Red Gemstone"; mes " (Mixing Machine Will provide"; mes " this item.)"; close; Sol3: mes "[Mage Test Solution No. 3]"; mes "* Ingredients list *"; mes " - Jellopy 6 ea"; mes " - Fluff 1 ea"; next; mes "[Mage Test Solution No. 3]"; mes "* Solvent Agent *"; mes " Payon Solution"; mes " Where to find: A Small Spring in"; mes " Archer Village, Payon."; next; mes "[Mage Test Solution No. 3]"; mes "* Chemical ingredients *"; mes " - 2750"; next; mes "[Mage Test Solution No. 3]"; mes "* A Catalyst *"; mes " - Blue Gemstone"; mes " (Mixing Machine Will provide"; mes " this item.)"; close; Sol4: mes "[Mage Test Solution No. 4]"; mes "* Ingredients list *"; mes " - Jellopy 2 ea"; mes " - Fluff 3 ea"; next; mes "[Mage Test Solution No. 4]"; mes "* Solvent Agent *"; mes " Morroc Solution"; mes " Where to find: A Small Spring"; mes " Near the Enterance of Pyramid"; mes " in Morroc."; next; mes "[Mage Test Solution No. 4]"; mes "* Chemical ingredients *"; mes " - 5429"; next; mes "[Mage Test Solution No. 4]"; mes "* A Catalyst *"; mes " - 1 carat Diamond"; mes " (Mixing Machine Will provide"; mes " this item.)"; close; Cancel: close; } // -- Mixing Machine -- geffen_in.gat,164,112,1 script Mixing Machine 111,{ mes "[Mixing Machine]"; mes "This is the unique Mixing Machine designed only for making magic solutions. It is the property of the Geffen Magic Academy."; next; mes "[Mixing Machine]"; mes "Would you like to use this machine?"; next; menu "Yes.",M_Start, "No.",M_End; M_Start: mes "[Mixing Machine]"; mes "Please specify the ingredients you will be using."; next; sM_Menu: menu "Jellopy",sM_0, "Fluff",sM_1, "Milk",sM_2, "Move on to the next step.",sM_3; sM_0: input @JELLOPY; if (@JELLOPY<0 || @JELLOPY>100) set @JELLOPY,0; //set 0 if wrong input goto sM_Menu; sM_1: input @FLUFF; if (@FLUFF<0 || @FLUFF>100) set @FLUFF,0; //set 0 if wrong input goto sM_Menu; sM_2: input @MILK; if (@MILK<0 || @MILK>100) set @MILK,0; //set 0 if wrong input goto sM_Menu; sM_3: mes "[Mixing Machine]"; mes "Please specify a solvent."; next; menu "Payon Solvent.",ssM_0, "Morroc Solvent",ssM_1, "No Solvent.",ssM_2; ssM_0: set @SOLVENT, 1089; set @SOLVENT$, "Payon"; goto L_Cont; ssM_1: set @SOLVENT, 1088; set @SOLVENT$, "Morroc"; goto L_Cont; ssM_2: set @SOLVENT, 0; set @SOLVENT$, "No"; L_Cont: mes "[Mixing Machine]"; mes "Here is your current list of ingredients:"; mes "^4444FF"+@JELLOPY+"^000000 Jellopy,"; mes "^4444FF"+@FLUFF+"^000000 Fluff,"; mes "^4444FF"+@MILK+"^000000 Milk,"; mes "and ^4444FF"+@SOLVENT$+"^000000 Solvent."; mes "Is this correct?"; next; menu "Yes.",-, "No.",M_Start; mes "[Mixing Machine]"; mes "Please put all of the items into the drum. Now enter the magic serial number."; next; L_Input: input @INPUT; mes "[Mixing Machine]"; mes "You have inputted the number ^5555FF"+@INPUT+". Is this correct?"; next; menu "Yes.",-, "No.",L_Input; mes "[Mixing Machine]"; mes "For the last item, choose a catalyst stone."; next; menu "Yellow Gemstone.",ssM_Yell, "Red Gemstone.",ssM_Red, "Blue Gemstone.",ssM_Blue, "1 Carat Diamond.",ssM_Diamd; ssM_Yell: if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF || countitem(519)<@MILK) goto sL_NotEnuf;//Items: Jellopy, Fluff, Milk, if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf; mes "[Mixing Machine]"; mes "All set. Initiating the mixing process. Please wait."; next; mes "[Mixing Machine]"; mes "~rumble~rumble~rumble~"; next; mes "[Mixing Machine]"; if(job_magician_q != 1 || @INPUT != 8472 || @JELLOPY!=2 || @FLUFF!=3 || @MILK!=1 || @SOLVENT!=1089) goto sL_FAIL; delitem 909,2;//Items: Jellopy, delitem 914,3;//Items: Fluff, delitem 519,1;//Items: Milk, delitem 1089,1;//Items: Payon_Solution, delitem 1092,1;//Items: Empty_Test_Tube, mes "Mixing complete."; getitem 1071,1;//Items: Unknown_Test_Tube, close; ssM_Red: if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF || countitem(519)<@MILK) goto sL_NotEnuf;//Items: Jellopy, Fluff, Milk, mes "[Mixing Machine]"; mes "All set. Initiating the mixing process. Please wait."; next; mes "[Mixing Machine]"; mes "~rumble~rumble~rumble~"; next; mes "[Mixing Machine]"; if(job_magician_q != 2 || @INPUT != 3735 || @JELLOPY!=3 || @FLUFF!=1 || @MILK!=1 || @SOLVENT!=0) goto sL_FAIL; delitem 909,3;//Items: Jellopy, delitem 914,1;//Items: Fluff, delitem 519,1;//Items: Milk, delitem 1092,1;//Items: Empty_Test_Tube, mes "Mixing complete."; getitem 1085,1;//Items: Unknown_Test_Tube, close; ssM_Blue: if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF) goto sL_NotEnuf;//Items: Jellopy, Fluff, if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf; mes "[Mixing Machine]"; mes "All set. Initiating the mixing process. Please wait."; next; mes "[Mixing Machine]"; mes "~rumble~rumble~rumble~"; next; mes "[Mixing Machine]"; if(job_magician_q != 3 || @INPUT != 2750 || @JELLOPY!=6 || @FLUFF!=1 || @MILK!=0 || @SOLVENT!=1089) goto sL_FAIL; delitem 909,6;//Items: Jellopy, delitem 914,1;//Items: Fluff, delitem 1089,1;//Items: Payon_Solution, delitem 1092,1;//Items: Empty_Test_Tube, mes "Mixing complete."; getitem 1086,1;//Items: Unknown_Test_Tube, close; ssM_Diamd: if(countitem(909)<@JELLOPY || countitem(914)<@FLUFF) goto sL_NotEnuf;//Items: Jellopy, Fluff, if(@SOLVENT$!=("No") && countitem(@SOLVENT)<1) goto sL_NotEnuf; mes "[Mixing Machine]"; mes "All set. Initiating the mixing process. Please wait."; next; mes "[Mixing Machine]"; mes "~rumble~rumble~rumble~"; next; mes "[Mixing Machine]"; if(job_magician_q != 4 || @INPUT != 5429 || @JELLOPY!=2 || @FLUFF!=3 || @MILK!=0 || @SOLVENT!=1088) goto sL_FAIL; delitem 909,2;//Items: Jellopy, delitem 914,3;//Items: Fluff, delitem 1088,1;//Items: Morroc_Solution, delitem 1092,1;//Items: Empty_Test_Tube, mes "Mixing complete."; getitem 1087,1;//Items: Unknown_Test_Tube, close; sL_FAIL: delitem 909, @JELLOPY;//Items: Jellopy, delitem 914, @FLUFF;//Items: Fluff, delitem 519, @MILK;//Items: Milk, delitem @SOLVENT,1; mes "Mixing complete."; getitem 1090,1;//Items: Unknown_Test_Tube, close; sL_NotEnuf: mes "[Mixing Machine]"; mes "You do not have enough ingredients to mix into a solution."; close; M_End: close; } // -- Morroc Solution -- moc_ruins.gat,91,150,5 script Ponka-Hontas 93,{ mes "[Mage Guildsman]"; mes "You want the Solution? Then give me 50 Zeny and at least 1 Empty Testube."; next; menu "Allright, Deal",L0,"Nah, forget it.",L1; L0: if(countitem(1092)<1) goto L0NoT;//Items: Empty_Test_Tube, if(Zeny<50) goto L0NoZ; mes "[Mage Guildsman]"; mes "Ok, you have the money and a empty Testube, that's good!"; delitem 1092,1;//Items: Empty_Test_Tube, set Zeny,Zeny-50; next; mes "[Mage Guildsman]"; getitem 1088,1;//Items: Morroc_Solution, mes "Thank you, I think you will be a great mage, you are so generous."; mes "I hope i'll see you soon again here"; emotion e_no1; close; L0NoT: mes "[Mage Guildsman]"; mes "You can't Carry on Fluid without a bottle, are you sure you want to become a mage?"; mes "Bring an Empty Testube"; close; L0NoZ: mes "[Mage Guildsman]"; mes "Pfff, You are too poor to buy our noble Solution!"; mes "Bring 50 Zeny, go to the mercant sell something, it will not be too hard I hope"; close; L1: mes "[Mage Guildsman]"; close; } // -- Payon Solution -- pay_arche.gat,122,100,5 script Dollshoi 88,{ mes "[Mage Guildsman]"; mes "You want the Solution? Then give me 50 Zeny and at least 1 Empty Testube."; next; menu "Allright, Deal",L0,"Nah, forget it.",L1; L0: if(countitem(1092)<1) goto L0NoT;//Items: Empty_Test_Tube, if(Zeny<50) goto L0NoZ; mes "[Mage Guildsman]"; mes "Ok, you have the money and a empty Testube, that's good!"; delitem 1092,1;//Items: Empty_Test_Tube, set Zeny,Zeny-50; next; mes "[Mage Guildsman]"; getitem 1089,1;//Items: Payon_Solution, mes "Thank you, I think you will be a great mage, you are so generous."; mes "I hope i'll see you soon again here"; emotion e_no1; close; L0NoT: mes "[Mage Guildsman]"; mes "You can't Carry on Fluid without a bottle, are you sure you want to become a mage?"; mes "Bring an Empty Testube"; close; L0NoZ: mes "[Mage Guildsman]"; mes "Pfff, You are too poor to buy our noble Solution!"; mes "Bring 50 Zeny, go to the mercant sell something, it will not be too hard I hope"; close; L1: mes "[Mage Guildsman]"; close; }