From d2c226ac9cc5ffbfa493b5fb17fd21dcf0f19d9e Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Sat, 7 Apr 2018 15:06:33 -0300 Subject: Magic final, of course, entirely untested --- npc/003-0-1/colin.txt | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++- npc/003-0-1/luca.txt | 55 ++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 110 insertions(+), 5 deletions(-) (limited to 'npc/003-0-1') diff --git a/npc/003-0-1/colin.txt b/npc/003-0-1/colin.txt index 8bac9f960..fc81b5d8d 100644 --- a/npc/003-0-1/colin.txt +++ b/npc/003-0-1/colin.txt @@ -12,7 +12,65 @@ mesq l("I am the Wizard Mages master."); if (!MAGIC_LVL) goto L_NoMagic; if (getskilllv(MAGIC_WARRIOR) && !is_admin()) close; - // will grant MG_FIREBALL probably, or MG_THUNDERSTORM, or we will figure something out. + + // Sanity check + if (getskilllv(MG_FIREBALL) >= 1) mesq l("Are you using my skill?"); + if (getskilllv(MG_FIREBALL) >= 1) close; + // could grant MG_THUNDERSTORM perhaps, oh, I don't care. + + if (getskilllv(WIZARD_MAGE) == 0) goto L_SignUp; + close; + +L_SignUp: + next; + mesn; + mesq l("You have some magic power. Do you want to join the Wizard Mages? ##BThis cannot be undone##b."); + next; + mesn; + mesq l("We use sheer magic to destroy, explode, burn, freeze, and in overall kill our opponents!"); + next; + menu + l("What do I need to do to join?"), L_JoinReq, + l("I'm not interested, sorry."), -; + close; + +L_JoinReq: + mesn; + mesq l("Ah, nothing too major, as you already have magic."); + next; + mesn; + mesq l("We only require a small fee of 1 @@, or 40 @@", getitemlink(DivineApple), getitemlink(SnakeEgg)); + next; + switch(select( + rif(countitem(DivineApple) >= 1, l("I got the apple.")), + rif(countitem(SnakeEgg) >= 40, l("I got the eggs.")), + l("I will apply later."))) { + + case 1: + delitem DivineApple, 1; + goto L_Tier1Ok; + break; + case 2: + // If player had 40 eggs, and eat 1 - they are clearly cheating. + // It will delete all 39 eggs, and when it tries to delete the 40th, + // it won't find and will terminate the script. No lame cheating. + // Of course, all 39 eggs are gone for and I can't do anything about it. + delitem SnakeEgg, 40; + goto L_Tier1Ok; + break; + default: + break; + } + + close; + +L_Tier1Ok: + // The last argument is duration: 0 - permanent 1- temporary. If omitted, defaults to 1. + skill(MG_FIREBALL,1,0); + skill(WIZARD_MAGE,1,0); + mes ""; + mesn; + mesq l("Here, learn the ##BFireball##b. It is on Magical skills tab. You can drag it to the shortcut list. Use it to protect people!"); close; L_NoMagic: diff --git a/npc/003-0-1/luca.txt b/npc/003-0-1/luca.txt index 3cf3c00b6..fa4a0ebdf 100644 --- a/npc/003-0-1/luca.txt +++ b/npc/003-0-1/luca.txt @@ -13,16 +13,63 @@ if (!MAGIC_LVL) goto L_NoMagic; if (getskilllv(WIZARD_MAGE) && !is_admin()) close; + // Sanity check if (getskilllv(SM_BASH) >= 1) mesq l("Are you using my skill?"); if (getskilllv(SM_BASH) >= 1) close; - if (!MAGIC_LVL && !is_staff()) close; - mesq l("Hey, you are strong! But still, so, so GREEN! You're PATHETIC! I mean, look your skill list! Empty!"); + if (getskilllv(MAGIC_WARRIOR) == 0) goto L_SignUp; + close; + +L_SignUp: + next; + mesn; + mesq l("You have some magic power. Do you want to join the Magic Warriors? ##BThis cannot be undone##b."); + next; + mesn; + mesq l("We use swords and bows to protect the people, and we use magic to spice things up! Because we're strong even without it!"); + next; + menu + l("What do I need to do to join?"), L_JoinReq, + l("I'm not interested, sorry."), -; + close; + +L_JoinReq: + mesn; + mesq l("Ah, nothing too major, as you already have magic."); + next; + mesn; + mesq l("We only require a small fee of 1 @@, or 40 @@", getitemlink(DivineApple), getitemlink(SnakeEgg)); next; + switch(select( + rif(countitem(DivineApple) >= 1, l("I got the apple.")), + rif(countitem(SnakeEgg) >= 40, l("I got the eggs.")), + l("I will apply later."))) { + + case 1: + delitem DivineApple, 1; + goto L_Tier1Ok; + break; + case 2: + // If player had 40 eggs, and eat 1 - they are clearly cheating. + // It will delete all 39 eggs, and when it tries to delete the 40th, + // it won't find and will terminate the script. No lame cheating. + // Of course, all 39 eggs are gone for and I can't do anything about it. + delitem SnakeEgg, 40; + goto L_Tier1Ok; + break; + default: + break; + } + + close; + +L_Tier1Ok: // The last argument is duration: 0 - permanent 1- temporary. If omitted, defaults to 1. skill(SM_BASH,1,0); - mesq l("Here, learn the ##BFalkon Punch##b. It is on Physical skills tab. You can drag it to the shortcut list. Thanks me later, man!"); - + skill(MAGIC_WARRIOR,1,0); + mes ""; + mesn; + mesq l("Here, learn the ##BFalkon Punch##b. It is on Physical skills tab. You can drag it to the shortcut list. Use it to protect people!"); close; L_NoMagic: -- cgit v1.2.3-60-g2f50