//===== eAthena Script ======================================= //= Magican Class Tutorial and Job Specific Quest //===== By: ================================================== //= Fix up by Jukka //===== Current Version: ===================================== //= 1.1 //===== Compatible With: ===================================== //= eAthena SVN (Testet in Trunk 88xx) //===== Description: ========================================= //= //===== Additional Comments: ================================= //= 1.0 Fully working //= 1.1 Optimized [Lupus] //= TODO: Test, Add proper misceffects //============================================================ //=================================================Sign==================================================== //geffen.gat,61,174,4 script Sign#M 111,{ // Bad coordinates [Jukka] // mes "- Mage Job Change -"; // close; //} //=================================================New Mage Manager==================================================== geffen.gat,67,180,4 script New Mage Manager#M 102,{ mes "[Mana]"; if (Class == Job_Novice) { mes "[Mana]"; mes "You're not"; mes "ready yet."; mes "Come back after"; mes "you've trained more."; close; } if (BaseClass != Job_Mage) { mes "Be more confident in your job."; mes "Sometimes other jobs may seem"; mes "better but take a look back at yourself"; mes "a little more. You should regain confidence"; mes "by doing so."; close; } if (eaclass()&(EAJL_UPPER|EAJL_2) && tu_magician01 < 7) { mes "[Mana]"; mes "My training isn't very helpful to those that are already skilled in magic. I'm afraid you'll have to rely on yourself to improve your skills."; close; } switch(tu_magician01) { case 0: mes "Welcome!"; mes "I'm Mana, a trainer in charge of those who have justed joined the Mage Guild."; next; mes "[Mana]"; mes "I've only been doing this job for a little while, but I'm here to help you if you want to learn more about the Mage job."; next; if(select("Will you teach me?", "Perhaps later...")==2) { mes "[Mana]"; mes "Well, I guess"; mes "that should be fine."; mes "I look forward to"; mes "meeting you again~"; close; } mes "[Mana]"; mes "Of course!"; mes "And don't worry,"; mes "Everyone is a beginner"; mes "at one point or another."; mes "You can only get better!"; next; mes "[Mana]"; mes "Alright,"; mes "shall we start"; mes "with the basics then?"; next; mes "[Mana]"; mes "Instead of raw physical strength, Mages use the power of the elements: ^ff0000Fire^000000, ^5C4033Earth^000000, ^93DB70Wind^000000, ^0000FFWater^000000. Mages even have ^CFB53BGhost^000000 property spells."; next; mes "[Mana]"; mes "Now, if an enemy has an elemental property, it will be able to resist some elements and suspectible to others."; next; mes "[Mana]"; mes "Listen carefully."; mes "^FF0000Fire^000000 is strong against Earth but weak against Water. Now, ^5C4033Earth^000000 is strong against Wind, but weak against Fire."; next; mes "[Mana]"; mes "^0000FFWater^000000 is strong against Fire but weak against Wind. And finally, ^93DB70Wind^000000 is strong against Water but weak against Earth."; next; mes "[Mana]"; mes "Was I talking too much?"; mes "Let's take a break and continue later. I'm still new to this, so I'm a little bushed~!"; set tu_magician01, 1; set BaseExp,BaseLevel*30; set JobExp,BaseLevel*15; //misceffect EF_HIT5; close; break; case 1: mes "Are you ready"; mes "to continue our"; mes "discussion on the elements?"; next; mes "[Mana]"; mes "Remember that each monster has an elemental property and that each property has a level. Understanding the elements will help you win battles."; next; mes "[Mana]"; mes "In other words, even the same properties"; mes "have different features that must be considered."; mes "I will explain the properties now."; next; while((1)) { switch(select("^ff0000Fire^000000", "^5C4033Earth^000000", "^93DB70Wind^000000", "^0000FFWater^000000", "^CFB53BGhost^000000", "Quit.")) { case 1: mes "[Mana]"; mes "In general, monsters that have the '^ff0000Fire^000000'"; mes "property have strong attacks."; mes "Therefore, Mages who are generally physically weaker."; mes "Even the slightest hit can be critical."; next; mes "[Mana]"; mes "The skills with a '^ff0000fire^000000' property"; mes "are 'Sight', 'Fire Bolt' 'Fire Wall'"; mes "and 'Fire Ball'."; next; mes "[Mana]"; mes "When fighting '^ff0000fire^000000' property monsters"; mes "...Usually when alone?"; mes "Use 'Frost Diver' to freeze the monster first."; next; mes "[Mana]"; mes "If you fight '^ff0000fire^000000' with '^ff0000fire^000000'"; mes "it will do little or no damage at all."; next; mes "[Mana]"; mes "The most distinctive of the '^ff0000fire^000000' property"; mes "skills is 'Fire Wall'. It can be used"; mes "up to 3 times in one screen."; next; mes "[Mana]"; mes "The 'Fire Wall' remains on the ground"; mes "and any monster that runs into it will"; mes "be damaged. The monster then moves away"; mes "in the opposite direction from which"; mes "they approached."; next; mes "[Mana]"; mes "But 'Undead' monsters are only injured"; mes "slightly and still move in the same"; mes "direction so beware."; set tu_mana,tu_mana|1; next; break; case 2: mes "[Mana]"; mes "Usually, '^5C4033Earth^000000' property monsters"; mes "have good targeting. So no matter how"; mes "how high your dodge rate is, even Mages"; mes "have a hard time avoiding the attacks."; next; mes "[Mana]"; mes "'^5C4033Earth^000000'property spells include"; mes "'Stone Curse' but it is hard to"; mes "classify it as '^5C4033Earth^000000' but for now"; mes "we'll leave it as is."; next; mes "[Mana]"; mes "'^5C4033Earth^000000' property monsters are"; mes "generally weak against 'Fire Wall'."; next; mes "[Mana]"; mes "'^5C4033Earth^000000' is weak against '^ff0000fire^000000'"; mes "so 'Fire Wall' stops the monster and"; mes "does damage."; next; mes "[Mana]"; mes "In the same way '^ff0000fire^000000' property spells"; mes "such as 'Fire Ball' or 'Fire Bolt' can"; mes "be used to do damage the monsters also."; next; mes "[Mana]"; mes "Oh..and"; mes "When you 'Stone Curse' a monster"; mes "the monster becomes of '^5C4033earth^000000' property."; mes "If you use this point very well, you can do"; mes "much more damange when battling."; set tu_mana,tu_mana|2; next; break; case 3: mes "[Mana]"; mes "Generally '^93DB70wind^000000' property monsters"; mes "avoid attacks very well."; next; mes "[Mana]"; mes "But Mages never really attack directly"; mes "so there is no need to worry about"; mes "this aspect."; next; mes "[Mana]"; mes "But '^93DB70wind^000000' property monsters"; mes "are swift, so you must be careful when attacking."; next; mes "[Mana]"; mes "'^93DB70Wind^000000' property skills include"; mes "'Lightning Bolt' and 'Thunder Storm'."; next; mes "[Mana]"; mes "When attacking '^93DB70wind^000000' property monsters"; mes "it is good to use '^5C4033earth^000000' property skills."; mes "But while Wizards do have teh ability to do quite"; mes "some damage, Mages do not yet have the power to"; mes "'attack with an ^5C4033earth^000000' property skill."; next; mes "[Mana]"; mes "So it is good to use a '^ff0000fire^000000' element"; mes "skill. '^93DB70Wind^000000' property or"; mes "'^0000FFwater^000000' property skills do little"; mes "or no damage to '^93DB70wind^000000' property monsters."; set tu_mana,tu_mana|4; next; break; case 4: mes "[Mana]"; mes "'^0000FFWater^000000' property monsters have"; mes "strong health. When battling such monsters"; mes "it usually takes longer than others."; next; mes "[Mana]"; mes "But '^0000FFwater^000000' property monsters are"; mes "affected more by level then monsters of other"; mes "properties."; next; mes "[Mana]"; mes "In other words a monster that is level 2 of the '^93DB70wind^000000'"; mes "property gets hit '150' by a '^5C4033earth^000000' property skill,"; mes "a level 2 '^0000FFwater^000000' property monster"; mes "will receive '175' damage from a '^93DB70wind^000000' property skill."; next; mes "[Mana]"; mes "If you use these properties well you should be"; mes "able to fight '^0000FFwater^000000' property monsters quickly."; next; mes "[Mana]"; mes "'^0000FFWater^000000' property skills include 'Cold Bolt'"; mes "and 'Frost Driver'."; mes "'^ff0000Fire^000000' property monsters are weak against these attacks."; mes "Oh, and 'Frost Diver' has a special characteristic."; next; mes "[Mana]"; mes "When attacking a monster with 'Frost Driver'"; mes "there is a chance that the monster can be frozen."; mes "At that time the monster temporarily turns into a"; mes "'^0000FFwater^000000' property."; next; mes "[Mana]"; mes "If you use this idea, then it should be easier to"; mes "fight the monsters."; set tu_mana,tu_mana|8; next; break; case 5: mes "[Mana]"; mes "Let me explain a little about the '^CFB53Bghost^000000' property."; mes "There aren't many '^CFB53Bghost^000000' property monsters"; mes "so it is a bit tedious."; next; mes "[Mana]"; mes "'^CFB53BGhost^000000' property magic includes"; mes "'Napalm Beat' and 'Soul Strike' and also"; mes "the hard to classify 'Safety Wall'."; next; mes "[Mana]"; mes "The first two are very useful when attacking '^CFB53Bghost^000000' property"; mes "monsters, but if the monster has no property, "; mes "the skills may not do any damage whatsoever."; next; mes "[Mana]"; mes "So be careful when you choose to use them."; mes "Mmm.. and 'Safety Wall' is a slightly different"; mes "skill. It makes a are surrounded by a wall where"; mes "one person can enter and be protected from "; mes "close physical attacks."; next; mes "[Mana]"; mes "But it cannot protect you from distant"; mes "attacks or strong monster's property attacks"; mes "so be careful when using the skill."; set tu_mana,tu_mana|16; next; break; case 6: mes "[Mana]"; mes "Really?"; mes "I'm a li~~~ ttle busy too so I can't explain it several times."; mes "So listen carefully until you have absorbed all the"; mes "information this time."; next; if(select("Then the explanation..", "Quit for sure.")==2) { mes "[Mana]"; mes "I'll move onto the next subject then."; mes "Hoho.."; set tu_magician01, 2; //misceffect EF_HIT5; if (tu_mana&1) { set BaseExp, BaseExp + 150; set JobExp,JobExp+70; } if (tu_mana&2) { set BaseExp, BaseExp + 150; set JobExp,JobExp+70; } if (tu_mana&4) { set BaseExp, BaseExp + 150; set JobExp,JobExp+70; } if (tu_mana&8) { set BaseExp, BaseExp + 150; set JobExp,JobExp+70; } if (tu_mana&16) { set BaseExp, BaseExp + 150; set JobExp,JobExp+70; } set tu_mana,0; } close; break; } } break; case 2: mes "Do you understand the concept of properties now?"; mes "It may be a bit confusing, but over time"; mes "you should be able to get the hang of it."; mes "Now I will explain about magic and skills."; //next; //misceffect EF_SIGHT; next; mes "[Mana]"; mes "I'll first explain the basic skills."; mes "'Fire Bolt' 'Cold Bolt'"; mes "'Lightning Bolt' 'Napalm Beat'"; mes "These are the four basic ones."; //next; //misceffect EF_NAPALMBEAT; next; mes "[Mana]"; mes "These can damage one opponent or monster."; mes "Most of the other skills require the"; mes "knowledge of these basic skills first."; //next; //misceffect EF_LIGHTBOLT; next; mes "[Mana]"; mes "'Fire Bolt' has the '^ff0000fire^000000' property,"; mes "'Cold Bolt' has the '^0000FFwater^000000' property,"; mes "Lightning Bolt' has the '^93DB70wind^000000' property,"; mes "and 'Napalm Beat' has the '^CFB53Bghost^000000' property."; //next; //misceffect EF_STONECURSE; next; mes "[Mana]"; mes "The damage that these skills can do"; mes "grows as the level of gets higher."; mes "And there are some other basic skills"; mes "such as 'Sight', 'Stone Curse' and"; mes "'Increase SP Recovery'."; next; mes "[Mana]"; mes "'Sight' reveals hidden enemies but the"; mes "range is not that great so be careful."; next; mes "[Mana]"; mes "'Stone Curse', as mentioned before can"; mes "curse a target with a certain chance."; mes "But be aware that you need a 'Red Gemstone'"; mes "for the skill to work."; next; mes "[Mana]"; mes "Opponents that are cursed with 'Stone Curse'"; mes "become '^5C4033earth^000000' properties."; mes "And a cursed enemy can't move on its"; mes "own free will."; next; mes "[Mana]"; mes "'Increase SP Recovery' is sort of hard"; mes "to call a magic skill. It increases the"; mes "amount of SP you recover when sitting"; mes "down to rest."; next; mes "[Mana]"; mes "So it will reduce the time you need to"; mes "sit and rest. It doesn't help you directly"; mes "when battling, but makes things a lot easier."; next; mes "[Mana]"; mes "Mmm...."; mes "This should be enough explaining about the"; mes "basic skills. Now before we move onto the"; mes "higher level skills, here is an assignment"; mes "for you. Hoho.."; next; mes "[Mana]"; mes "If you go north of here, Geffen, there is"; mes "a big bridge and monsters called a 'Pupa'."; mes "They don't move and do not attack when"; mes "attacked."; next; mes "[Mana]"; mes "Attack these 'Pupa' and gather 10 'Chrysalis'."; mes "Be careful because these 'Pupa' may turn"; mes "into a 'Creamy'."; next; mes "[Mana]"; mes "It may be hard for you to fight a 'Creamy' yet"; mes "so if the 'Pupa' is acting weird be extra careful."; set tu_magician01, 3; set BaseExp, BaseExp + 400; set JobExp,JobExp+200; //misceffect EF_HIT5; break; case 3: mes "Ah~ You're here?"; mes "Let's see if you gathered all that's needed."; next; if (countitem(915) < 10) { mes "[Mana]"; mes "Not quite enough."; mes "Come back when you have gathered some more."; mes "This is a bonus."; set tu_magician01, 4; percentheal 100,0; percentheal 0,100; close; } else { mes "[Mana]"; mes "Oh you gathered them all."; mes "Now are you more used to using these skills?"; mes "Once you have trained more, you can"; mes "combine different skills to form stronger attacks."; next; mes "[Mana]"; mes "Let's take a break now before we"; mes "move on to explain the other skills."; set tu_magician01, 5; set BaseExp, BaseExp + 400; set JobExp,JobExp+200; //misceffect EF_HIT5; close; } break; case 4: mes "Ah~ You're here?"; mes "Let's see if you gathered all that's needed."; next; if (countitem(915) < 10) { mes "[Mana]"; mes "You need a little bit more."; mes "You can do it!"; mes "'10 ^ff0000Chrysalis^000000', ok?"; close; } else { mes "[Mana]"; mes "Oh you gathered them all."; mes "Now are you more used to using these skills?"; mes "Once you have trained more, you can"; mes "combine different skills to form stronger attacks."; next; mes "[Mana]"; mes "Let's take a break now before we"; mes "move on to explain the other skills."; set tu_magician01, 5; set BaseExp, BaseExp + 400; set JobExp,JobExp+200; //misceffect EF_HIT5; close; } break; case 5: mes "Now shall we discuss the more advanced skills?"; next; while(1) { switch(select("Soul Strike", "Safety Wall", "Fire Ball", "Frost Diver", "Thunderstorm", "Fire Wall", "Energy Coat", "Quit.")){ case 1: mes "[Mana]"; mes "'Soul Strike' is a '^CFB53Bghost^000000' property"; mes "skill. Once you have leared a certain amount of"; mes "'Napalm Beat' you can learn it as well."; //next; //misceffect EF_SOULSTRIKE; next; mes "[Mana]"; mes "When you train more the power of your"; mes "'Soul Strike' will become stronger and "; mes "you will be able to cast it faster."; set tu_mana,tu_mana|1; next; break; case 2: mes "[Mana]"; mes "'Safety Wall' can be learned after you have "; mes "trained a certain amount of 'Napalm Beat'"; mes "and 'Soul Strike'. As mentioned before, it"; mes "blocks most close range attacks."; //next; //misceffect EF_GLASSWALL; next; mes "[Mana]"; mes "But it does not block infinitely. It will only"; mes "provide a shield for a certain amount of"; mes "attacks and time. Of course this varies"; mes "depending on how much you train."; set tu_mana,tu_mana|2; next; break; case 3: mes "[Mana]"; mes "'Fire Ball' is a '^ff0000fire^000000' property skill"; mes "and can be learned after a certain amount of 'Fire Bolt'."; //next; //misceffect EF_FIREBALL; next; mes "[Mana]"; mes "If 'Fire Bolt' attacks one opponent 'Fire Ball'"; mes "attacks several within a certain range."; next; set tu_mana,tu_mana|4; break; case 4: mes "[Mana]"; mes "'Frost Diver' is a '^0000FFwater^000000' property"; mes "skill and can learned after training with 'Cold Bolt'"; mes "While it can damage the opponent, the main"; mes "purpose is to freeze the enemy."; //next; //misceffect EF_FROSTDIVER; //misceffect EF_FROSTDIVER2; next; mes "[Mana]"; mes "Enemies hit by 'Frost Diver' will be damaged"; mes "and freeze at the same time by a certain"; mes "amount of chance."; next; mes "[Mana]"; mes "When the enemy is frozen it will change to"; mes "have the '^0000FFwater^000000' property."; mes "The amount of damage and chance to be"; mes "frozen increases the more you train."; set tu_mana,tu_mana|8; next; break; case 5: mes "[Mana]"; mes "'Thunderstorm' is a '^93DB70wind^000000' property"; mes "skill and can be learned after training 'Lightning Bolt'."; //next; //misceffect EF_THUNDERSTORM; next; mes "[Mana]"; mes "While 'Lightning Bolt' attacks one particular"; mes "enemy, 'Thunderstorm' attacks all enemies"; mes "within a certain range. It is somewhat similar"; mes "to how 'Fire Ball' works."; set tu_mana,tu_mana|16; next; break; case 6: mes "[Mana]"; mes "'Fire Wall' is a '^ff0000fire^000000' property"; mes "skill that can be learned after training 'Fire Ball'"; mes "and 'Sight'."; //next; //misceffect EF_FIREWALL; next; mes "[Mana]"; mes "'Fire Wall' works differently from the"; mes "the other skills. While other skills attack"; mes "one particular opponent, 'Fire Wall'"; mes "targets an area."; next; mes "[Mana]"; mes "So it is like...."; mes " opponent"; mes " *********"; mes " me"; next; mes "[Mana]"; mes "The target is not the enemy but rather the"; mes "space between yourself and the enemy."; mes "or the floor. You can use it to make a "; mes "'Fire Wall' between yourself and the enemy"; mes "and block its path."; next; mes "[Mana]"; mes "During that time, you can go ahead and use"; mes "a skill that will cause more damage safely."; mes "Depending on how you use 'Fire Wall'"; mes "it can be very powerful."; set tu_mana,tu_mana|32; next; break; case 7: mes "[Mana]"; mes "'Energy Coat' is mmm....."; mes "a unique skill and cannot be learned"; mes "in a normal way. You can only learn"; mes "the skill from 'Blizardis' who is at"; mes "the Mage Job Change Place."; //next; //misceffect EF_ENERGYCOAT ; next; mes "[Mana]"; mes "'Blizardis' will tell you the details."; set tu_mana,tu_mana|64; next; break; case 8: mes "[Mana]"; mes "Did you understand the explanation?"; mes "Mmm....I wanted to give you something more"; mes "like a mission, but we need more information"; mes "before we do anything else."; mes "I'll let you know when we are done."; next; mes "[Mana]"; mes "Oh and this is a present."; mes "Become a great Wizard~"; set tu_magician01, 6; getitem 1604, 1; //misceffect EF_HIT5; if (tu_mana&1){ set BaseExp, BaseExp + 300; set JobExp,JobExp+100; } if (tu_mana&2){ set BaseExp, BaseExp + 300; set JobExp,JobExp+100; } if (tu_mana&4){ set BaseExp, BaseExp + 300; set JobExp,JobExp+100; } if (tu_mana&8){ set BaseExp, BaseExp + 300; set JobExp,JobExp+100; } if (tu_mana&16){ set BaseExp, BaseExp + 300; set JobExp,JobExp+100; } if (tu_mana&32){ set BaseExp, BaseExp + 300; set JobExp,JobExp+100; } if (tu_mana&64){ set BaseExp, BaseExp + 300; set JobExp,JobExp+100; } set tu_mana,0; close; default: break; } } close; break; case 6: mes "Oh good, you came."; mes "There are a lot of strange things going"; mes "on these days and we've been short on"; mes "hands. Recently something happened in Morroc."; next; mes "[Mana]"; mes "So we received a couple requests from the Thief Guild."; mes "But everyone is out doing work so we're having trouble."; next; mes "[Mana]"; mes "If possible, do you think you can go?"; mes "Of course you will be compensated when you"; mes "return and we will give you some things to support you."; mes "What would you like to do?"; next; if(select("Do it.", "Don't do it.")==1) { mes "[Mana]"; mes "Hoho..of course..."; mes "I shall send you to Morroc."; mes "Go meet 'Eirhan' in front of the Morroc Pyramid."; mes "Thank you~"; next; mes "[Mana]"; mes "Oh and when you're done, make sure you come back."; mes "Hoho.."; set tu_magician01, 7; emotion e_heh; warp "morocc.gat",182,286; close; } else { mes "[Mana]"; mes "Mmm...."; mes "Oh well. If you want to help later"; mes "feel free to come back. We're very"; mes "short on hands these days."; close; } break; case 7: mes "I'm not sure what it may be."; mes "But keep up the good work."; mes "Hoho.."; close; break; case 27: mes "I was told ahead of time that you"; mes "accomplished your mission very"; mes "well.. hoho."; next; mes "[Mana]"; mes "It seems like a problemthe two"; mes "organizations that are secretly active "; mes "may have caused.. "; mes "I thought they were separate...."; next; mes "[Mana]"; mes "But it seems the two may have a deeper"; mes "relationship than I had thought."; mes "Any more is out of your range.."; mes "so leave the rest to the guild."; mes "Thank you very much."; next; mes "[Mana]"; mes "Oh, and this is in appreciation"; mes "for helping the guild."; mes "Hoho.."; set tu_magician01, 28; getitem 2321, 1; set Zeny, Zeny + 3000; set BaseExp, BaseExp + 3000; set JobExp, JobExp + 1000; close; break; default: if (tu_magician01 < 27) { mes "Hmm...."; mes "I see...."; mes "There is something going on in the Rune"; mes "Midgard kingdom for sure. That is why our"; mes "guild is busy as well."; next; mes "[Mana]"; mes "Keep up with the good work please."; mes "...."; mes "Ah..and 'Eirhan' is doing well also, right?"; mes "Hoho..."; close; } else { mes "You seemed to have trained very well."; mes "There is nothing much I can teach you."; mes "You must seek your own ways of training now."; close; } } }