//===== 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,{
mes "~sign reads...~";
mes "Greetings!! This is the Geffen Magic Academy. Come in if you have an interest in all things magic!";
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;
}
}
}