// TMW2 scripts.
// Authors:
// Jesusalva
// Description:
// One of the Mana Magic Leaders
// Planned, there are only the five Mana Wizards: Auldsbel (Tulimshar), Sagratha (Woodlands), Morgan (Candor), Blue Sage (Nivalis), Lalica (LoF).
// Gives #parum
// Gives #mkpot
// TODO: Make dye? Make Lifestone?
003-0-1,81,27,0 script Auldsbel NPC_AULDSBEL,{
mesn l("Auldsbel the Wizard");
mesq l("Welcome back, Padric!");
mesq l("Do you believe I've lost my @@? I can't see anything well without that! %%a", getitemlink(Googles));
if (countitem(Googles))
mesq l("I'm not interested in yours, by the way.");
next;
mesn;
mesq l("Anyway, I am one of the few Mana Wizard, and I love Transmutation!");
next;
L_Main:
select
rif(MAGIC_LVL, l("What's the difference from a Mana Wizard and a Mage?")),
l("Who are you? Where are you from?"),
rif(MAGIC_LVL, l("How do I advance in Mana Magic? How it works?")),
rif(MAGIC_LVL, l("What do you know about other Mana Magic Professors?")),
rif(MAGIC_LVL, l("Can you teach me Mana Magic?")),
l("Do you still need help with your experiments?"),
l("Actually, I gotta go, see ya!");
mes "";
switch (@menu) {
case 1: // What's the difference from a Mana Wizard and a Mage?
if (MAGIC_LVL < 2) {
mesn;
mesn;
mesq l("%%4 Haven't you read your Grimorium yet?!");
next;
mesn;
mesq l("%%@ You can get Magic by joining class and subclass, and with some NPCs. These work out-of-box. Easy.");
next;
mesn;
mesq l("And there is the Mana Magic, for the pro %%e You'll waste your life on that, as it have an experience system.");
next;
mesn;
mesq l("%%G Just like normal magic, you need power from the Mana Stone, which is based on your levels, intelligence, and mana.");
next;
mesn;
mesq l("I like Mana Magic the best, as we can both summon creatures as transmutate stuff. %%N");
next;
} else {
mesn;
mesq l("Well, long story short, we have two magic systems. One works out of box. The later one, is the Mana Magic.");
next;
mesn;
mesq l("Mana Magic is less reliable and have an experience system. It's the most common for summoning and transmutation.");
next;
mesn;
mesq l("I could explain this better, but you are just a noob at magic, if you understand me.");
next;
}
mesn;
mesq l("To be honest, you should use both. And remember, all Mana Magic skills can be used like they were @sk-commands. %%H");
next;
break;
case 2: // Who are you? Where are you from?
mesn;
mesq l("Well, speaking a bit about myself can't hurt. I am a member from the Magic Council, but one day I decided to take a vacations.");
next;
mesn;
mesq l("I moved to Hurnscald, stayed there for over a decade, until Lord Transmogrifier Pontorias the Plaid (May His Shape Reflect His Soul Forever) died.");
next;
mesn;
mesq l("Then I returned to Tulimshar. Now I do research, vote on the Magic Council meetings, and I also teach young mages about Transmutation magic.");
next;
break;
case 3: // How do I advance in Mana Magic? How it works?
mesn;
mesq l("Mana Magic works similar to regular magic: You can find it on your skill window, and can drag it to your shortcut list.");
next;
mesn;
mesq l("To get more experience and magic power, you must practice magical spells. Make sure to vary them; you will learn nothing if you cast the same spell over and over. Also, spells that consume no components seem not to be very instructive in practice.");
next;
mesn;
mesq l("Usually, you can find magic on these buildings, but watch out, there is magic to be found elsewhere, and some items are bound with it!");
next;
mesn;
mesq l("While on normal magic you must take care with all attributes, on mana magic, you usually only need to worry with reagents and intelligence.");
next;
mesn;
mesq l("Also, unlike regular magic which may cause delay before and after, Mana Magic usually only have a cooldown. But it is hard to know how long that cooldown is..."); // We may use addtimer() on one or other spell.
next;
break;
case 4: // What do you know about Sagratha?
mesn;
mesq l("Lemme see... Sagratha is often regarded as a kind and rather powerful elf lady mage... who hate people.");
next;
mesn;
mesq l("And I'm not talking only about humans here! But perhaps, if you build a good reputation, she teaches you something.");
next;
mesn;
mesq l("There's also Morgan, who lives in Candor. She is a Redy, and is married with Zitoni. They are great alchemists.");
next;
mesn;
mesq l("By last, there was the Blue Sage, living on Nivalis... I never met him.");
next;
mesn;
mesq l("As you see, you can count the mages with the fingers of one hand. It's not just Mana Magic, either - Magic in overall is almost dead, with almost every Mana Stone on the power of the Monster King.");
next;
mesn;
mesq l("Defeating him would not only stop monster invasions, but it would also bring magic back... And probably another war, over the mana stones. %%S");
next;
break;
// Teaching and helping are bound one to other, to save space on variable e.e
case 5: // Can you teach me Mana Magic?
case 6: // Do you still need help with your experiments?
goto L_Magic;
break;
default: // Actually, I gotta go, see ya!
goodbye;
closedialog;
close;
}
goto L_Main;
L_Magic:
.@q=getq(General_Auldsbel);
switch (.@q) {
// Help on research to gain his favor
case 0:
mesn;
mesq l("I actually need help. Padric and I were doing some research with catalysts, you see.");
next;
mesn;
mesq l("Now I need 20 @@, 20 @@ and 60 @@ to finish my research. Easy materials, except for the Shadow Herb.", getitemlink(MauveHerb), getitemlink(ShadowHerb), getitemlink(SilkCocoon));
next;
mesn;
mesq l("Shadow Herb only grows on dangerous places, and is mostly found on the Land Of Fire, or underground of very very deep caves.");
next;
select
l("I'll try to find them."),
l("I actually have them, here.");
if (@menu == 2) {
mes "";
mesn;
mesq l("Excellent! Let me see...");
next;
if (
countitem(MauveHerb) < 20 ||
countitem(ShadowHerb) < 20 ||
countitem(SilkCocoon) < 60)
goto L_Lie;
delitem MauveHerb, 20;
delitem ShadowHerb, 20;
delitem SilkCocoon, 60;
getexp 2500, 0;
Zeny=Zeny+250;
setq General_Auldsbel, 1;
mesn;
mesq l("Yes, many thanks. This will help me a lot.");
mesc l("Gained 2500 XP and 250 GP");
}
break;
// Learn #parum
case 1:
if (MAGIC_LVL < 1)
goto L_Magicless;
mesn;
mesq l("Hmm, I think I can teach you a basic Mana Skill now. That one is pretty simple.");
next;
skill(TMW2_PARUM,1,0);
setq General_Auldsbel, 2;
mesn;
mesq l("This is the @@ skill. It transmutes a single @@ in a @@.", "##B@sk-parum##b", getitemlink(RawLog), getitemlink(MoubooFigurine));
next;
mesn;
mesq l("It may also create some @@ or a @@, with enough skill.", getitemlink(Arrow), getitemlink(WoodenLog));
next;
mesn;
mesq l("So! Please transmute a @@ and bring it to me. You may need to switch with another mana skill, until you are successful.", getitemlink(MoubooFigurine));
break;
// Bring the Mouboo figurine back
case 2:
mesn;
mesq l("Have you managed to transmute the @@ I asked for?", getitemlink(MoubooFigurine));
next;
if (askyesno() == ASK_YES) {
if (!countitem(MoubooFigurine)) goto L_Lie;
if (!MAGIC_EXP) goto L_Lame;
delitem MoubooFigurine, 1;
getexp 5000, 0;
setq General_Auldsbel, 3;
mesn;
mesq l("Very well - Congratulations! That was very easy, though, and this one is full of imperfections.");
mesc l("Gained 5000 XP");
next;
mesn;
mesq l("That skill was only to allow you to practice. Now listen well: Transmutation is ##BNOT##b crafting!");
next;
mesn;
mesq l("Magic is sacred. With transmutation, you can create convenience items, specially reagents for other magic skills.");
next;
mesn;
mesq l("But if you try to create equipment, assuming magic doesn't backfire, YOU WILL BE BANNED from this school, and lose your class. Permanently.");
next;
mesn;
mesq l("This is just a friendly advise. We don't take magic lightly. And you shouldn't, either.");
}
break;
// Help on research to gain his favor
case 3:
mesn;
mesq l("I actually need help. I am a mage, and I'm feeling lazy to get the stuff I need.");
next;
mesn;
mesq l("You don't seem to have anything better to do, anyway.");
mesq l("Now please bring me @@/2 @@, @@/20 @@, @@/30 @@ and @@/70 @@ so I don't need to leave here and start travelling everywhere...", countitem(IcedBottle), getitemlink(IcedBottle), countitem(Root), getitemlink(Root), countitem(Potatoz), getitemlink(Potatoz), countitem(Moss), getitemlink(Moss));
next;
select
l("I'll try to find them."),
l("I actually have them, here.");
if (@menu == 2) {
mes "";
mesn;
mesq l("Excellent! Let me see...");
next;
if (
countitem(IcedBottle) < 2 ||
countitem(Root) < 20 ||
countitem(Potatoz) < 30 ||
countitem(Moss) < 70)
goto L_Lie;
delitem IcedBottle, 2;
delitem Root, 20;
delitem Potatoz, 30;
delitem Moss, 70;
getexp 28692, 0;
Zeny=Zeny+550;
setq General_Auldsbel, 4;
mesn;
mesq l("Yes, many thanks. This will help me a lot.");
}
break;
// Learn #mkpot
case 4:
if (MAGIC_LVL < 2)
goto L_Magicless;
mesn;
mesq l("Hmm, I think I can teach you a basic Mana Skill now. This one is more advanced, though.");
next;
skill(TMW2_TRANSMIGRATION,1,0);
setq General_Auldsbel, 5;
mesn;
mesq l("This is the @@ skill. It transmutes stuff into other stuff. I'll teach you some more recipes as class drag on.", "##B@sk-trans##b");
next;
mesn;
mesq l("It may fail, and you might end up with something entirely unexpected, or nothing at all!");
next;
mesn;
mesq l("Unlike Parum, you can use the skill points you get every time your job level rises. That will lower the mana cost and increase success chances.");
next;
mesn;
mesq l("But please be picky with how you spend job points. They are hard to come by, and I'm not entirely sure you can change it later.");
next;
mesn;
mesq l("Also, job levels get really hard to obtain after a while. The decision is up to you, just be aware there's that possibility.");
break;
// Help on research to gain his favor
case 5:
mesn;
mesq l("Well, I decided to resume an old research of mine, now that I have a minion (you) to gather stuff for me.");
next;
mesn;
mesq l("Now please be a good helper, and aid me by bringing:");
mesc l("* @@/@@ @@", countitem(HastePotion), 10, getitemlink(HastePotion));
mesc l("* @@/@@ @@", countitem(StrengthPotion), 10, getitemlink(StrengthPotion));
mesc l("* @@/@@ @@", countitem(HerbalTea), 10, getitemlink(HerbalTea));
mesc l("* @@/@@ @@", countitem(RedScorpionStinger), 25, getitemlink(RedScorpionStinger));
mesc l("* @@/@@ @@", countitem(SilkCocoon), 100, getitemlink(SilkCocoon));
next;
select
l("I'll try to find them."),
l("I actually have them, here.");
if (@menu == 2) {
mes "";
mesn;
mesq l("Excellent! Let me see...");
next;
if (!transcheck(
HastePotion, 10,
StrengthPotion, 10,
HerbalTea, 10,
RedScorpionStinger, 25,
SilkCocoon, 100))
goto L_Lie;
getexp 7500, 0;
Zeny=Zeny+1250;
setq General_Auldsbel, 6;
mesn;
mesq l("Thanks. I'm actually conducting experiments with scorpions. Please come back later.");
mesc l("Gained 7500 XP and 1250 GP");
}
break;
// Learn transmigration: Scorpion Stinger and Claw
case 6:
if (MAGIC_LVL < 2)
goto L_Magicless;
mesn;
mesq l("Well, I'm currently researching scorpions, as you can imagine.");
next;
setq General_Auldsbel, 7;
mesn;
mesq l("I'll teach you how to transmute some parts of theirs. You can use it to convert a @@ into a @@, but not the other way around, for example.", getitemlink(BlackScorpionStinger), getitemlink(RedScorpionStinger));
next;
mesn;
mesq l("This have many uses. Maybe. Anyway, I'm soon done with my experiment, so please come back later.");
close; // On purpose
break;
// Help on research to gain his favor
case 7:
mesn;
mesq l("Hmm... See, the thing is that transmuting living beings is not normally something that transmutation magic can do.");
next;
mesn;
mesq l("But I will not give up on my little experiment. Incidentally, Snakes are shaddy enough for my experiment. I promise you, I'll succeed this time.");
next;
mesn;
mesq l("Oh. And don't mention anyone what I'm researching here. No need to fuss over minor things, don't you agree? It's totally not shaddy. Not shaddy at all!");
next;
mesn;
mesq l("Now please be a good helper, and aid me by bringing:");
mesc l("* @@/@@ @@", countitem(MountainSnakeTongue), 15, getitemlink(MountainSnakeTongue));
mesc l("* @@/@@ @@", countitem(SnakeTongue), 15, getitemlink(SnakeTongue));
mesc l("* @@/@@ @@", countitem(CaveSnakeTongue), 15, getitemlink(CaveSnakeTongue));
mesc l("* @@/@@ @@", countitem(MountainSnakeEgg), 15, getitemlink(MountainSnakeEgg));
mesc l("* @@/@@ @@", countitem(SnakeEgg), 15, getitemlink(SnakeEgg));
mesc l("* @@/@@ @@", countitem(CaveSnakeEgg), 15, getitemlink(CaveSnakeEgg));
next;
select
l("I'll try to find them."),
l("I actually have them, here.");
if (@menu == 2) {
mes "";
mesn;
mesq l("Excellent! Let me see...");
next;
if (!transcheck(
MountainSnakeTongue, 15,
SnakeTongue, 15,
CaveSnakeTongue, 15,
MountainSnakeEgg, 15,
SnakeEgg, 15,
CaveSnakeEgg, 15))
goto L_Lie;
getexp 20000, 0;
Zeny=Zeny+2500;
setq General_Auldsbel, 8;
mesn;
mesq l("Thanks. Snakes seems promising indeed! Maybe they work where scorpions failed. If I succeed, I promise I'll teach you the spell. But for now...");
mesc l("Gained 20000 XP and 2500 GP");
}
break;
// Learn transmigration: Snake Egg, Tongue, Skin
case 8:
if (MAGIC_LVL < 3)
goto L_Magicless;
mesn;
mesq l("Well, I have not finished my research on snakes yet, but I'm pretty sure in how to transmute their parts.");
next;
setq General_Auldsbel, 9;
mesn;
mesq l("Here, look at how it is done. Focus. You can use it to convert a @@ into a @@, but not the other way around, for example.", getitemlink(MountainSnakeSkin), getitemlink(SnakeSkin));
next;
mesn;
mesq l("Be careful as not everybody likes transmuted monster parts. Some may even see it as a foul thing. Anyway. Come back later.");
close; // On purpose
break;
// Help on research to gain his favor
case 10:
mesn;
mesq l("So... I think I'm almost done! My plan is to force a @@ into being a pretty Butterfly. Hey, I like cute things!", getitemlink(SilkWorm));
next;
mesn;
mesq l("Besides, there are no Butterflies in Tulimshar, and they could help the farm in getting producing food.");
next;
mesn;
mesq l("This time, I only a few last reagents and I'll finally attempt it... I want you to witness it. I'll teach you the spell later, of course.");
mesc l("* @@/@@ @@", countitem(ManaPiouFeathers), 5, getitemlink(ManaPiouFeathers));
mesc l("* @@/@@ @@", countitem(IceCube), 1, getitemlink(IceCube));
mesc l("* @@/@@ @@", countitem(OceanCrocClaw), 1, getitemlink(OceanCrocClaw));
next;
select
l("I'll try to find them."),
l("I actually have them, here.");
if (@menu == 2) {
mes "";
mesn;
mesq l("Excellent! Let me see...");
next;
if (!transcheck(
ManaPiouFeathers, 5,
IceCube, 1,
OceanCrocClaw, 1))
goto L_Lie;
mesn;
mesq l("Now lo and behold... The ultimate... TRANSMUTATION!");
// Pray that you don't get disconnected now
next;
getexp 10000, 500;
setq General_Auldsbel, 11;
npctalk l("@@... I think something went wrong... RUN!!", strcharinfo(0));
.@mob=monster(.map$, .x, .y, "Failed Experiment", GrassSnake, 1, .name$+"::OnSnakeDeath");
specialeffect FX_MAGIC, SELF, getcharid(3);
specialeffect FX_MGWARP, SELF, .name$;
specialeffect FX_ATTACK, AREA, .@mob;
closeclientdialog;
close;
}
break;
// Learn Halhiss, completing Audsbel Quest
case 11:
// Actually, that's lv 60... Learning a lv 40 spell '-'
if (MAGIC_LVL < 3)
goto L_Magicless;
if (mobcount(.map$, .name$+"::OnSnakeDeath")) {
mesn;
mesq l("Could you please dispose my failed experiment, first?");
close;
}
mesn;
mesq l("*sigh* Yet another failure... Transmutation and Nature Magic doesn't marry well.");
next;
skill(TMW2_HALHISS,1,0);
setq General_Auldsbel, 12;
mesn;
mesq l("Next time, I'll ask Sagratha to help. Heh. I doubt that's going to happen. By the way, this is the @@ spell. It summons snakes...", b("@sk-halhiss"));
next;
mesn;
mesq l("You need a @@ for it. Ah, back to research I guess...", getitemlink(SnakeEgg));
next;
break;
default:
mesn;
mesq l("Uhm, no, not really. Maybe later, who knows?");
break;
}
next;
goto L_Main;
// Fallbacks
L_Magicless:
mesn;
mesq l("Well, you helped me. That's great! One hand washes the other, so, I'm willing to share knowledge with you.");
next;
mesn;
mesq l("But unless you touch a Mana Stone and get stronger magic, that would be as useful as teaching magic to a wall. No offense.");
next;
mesn;
mesq l("So, please, come to me with stronger magic powers. And then, I'll teach you a new magic spell.");
close;
L_Lie:
mesn;
mesq l("Really interesting, how I am NOT seeing the items I asked for...");
next;
mesn;
mesq l("Say, what do you think if I transmuted your head into the missing materials? I can warrant your soul won't return to the Soul Menhir, either!");
close;
L_Lame:
setparam(MaxHp, readparam(MaxHp)-50); // I want to see how permanent this is
setparam(MaxSp, readparam(MaxSp)-25); // I want to see how permanent this is
//setparam(Karma, readparam(Karma)-1); // testing
mesn;
mesq l("%%3 You sadden me. That was so, so lame. I will need to punish you. Sorry. Superior orders. %%S");
next;
mesn strcharinfo(0);
mesq l("%%i What, my maximum life and mana just decreased! Noooo!!");
next;
mesn;
mesq l("%%1 Cheer up, these should go back to normal when you level up. Just don't do that again!");
// If that is true or not, remains to be checked. Uh... I never used setparam() before! :D
close;
OnSnakeDeath:
end;
OnInit:
.sex=G_MALE;
.distance=5;
end;
}