summaryrefslogblamecommitdiff
path: root/npc/005-1_Snake_desert/spirit.txt
blob: f51b242cafbeb8387709e38d8fce066a76af60b4 (plain) (tree)


















                                                            
                        
                
                               































































































                                                                                                                                                                                                                         
                                                                                                                                                                     





































































































































































                                                                                                                                                                                       
                                     
















                                                     
function	script	EarthImpTouch	{
	if (getskilllv(SKILL_MAGIC))
		goto L_message;
        close;

L_message:
        set @Q_MASK, NIBBLE_0_MASK;
        set @Q_SHIFT, NIBBLE_0_SHIFT;
        set @Q_status, (QUEST_MAGIC2 & @Q_MASK) >> @Q_SHIFT;

        set @Q_STATUS_INITIAL, 0;
        set @Q_STATUS_ONQUEST, 1;
        set @Q_STATUS_STUDENT0, 2;
        set @Q_STATUS_STUDENT1, 3;
        set @Q_STATUS_STUDENT2, 4;
        set @Q_STATUS_STUDENT3, 5;

        set @BRANCH, 732;

        set @s$, "girl";
        if (Sex)
		set @s$, "boy";

        if (MAGIC_FLAGS & MFLAG_KNOWS_IMP)
		goto L_wb;

        mes "[Well]";
        mes "Something is inside that well, and now that you have turned your attention towards it, it seems to be talking to you!";
        next;

        mes "[Well]";
        mes "\"Hey!  You there!  Yes, I'm talking to you!\"";
        mes "That strange voice seems to be coming from inside your head!";
        next;

        menu
		"Who, me?", -,
		"Leave me alone!", L_close,
		"Aaah! I'm hearing voices!", L_silly_close;

        mes "[Well]";
        mes "\"I'm in here, in the well, talking to you!  If I'm not very mistaken, you are a powerful wizard-to-be, except that nobody has showed you how to properly do magic yet!\"";
        next;

        menu
		"Who are you?", -,
		"Aaaah!  The voices are after me!", L_silly_close,
		"Whatever it is, I'm not interested.", L_close;

        mes "[Earth Spirit]";
        mes "\"I'm a forest spirit; my name isn't important... all that matters is that I like you, and that I will help you become a powerful wizard if you help me.  A fair deal, if you will...\"";
        next;

	set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_IMP;

        goto L_main;
L_wb:
        mes "[Earth Spirit]";
        mes "\"It's excellent to see you again!\"";
        next;

L_main:
        menu
		"How did you get trapped?", L_Q_trapped,
		"Can you teach me magic and spells?", L_Q_magic,
                "What do you know about...", L_Q,
                "Goodbye!", -;
	close;
        
L_Q_trapped:
        mes "[Earth Spirit]";
        mes "\"Oh, a wicked witch grew jealous of my power and locked me up in this well.\"";
        next;
        goto L_main;

L_Q:
        mes "[Earth Spirit]";
        mes "\"Stop bothering me with your questions, will you?  I'm trying to make you a powerful wizard, after all!\"";
        next;
        goto L_main;

L_Q_magic:
	if (@Q_status == @Q_STATUS_ONQUEST)
		goto L_Q_magic_1;
	if (@Q_status == @Q_STATUS_STUDENT0)
		goto L_Q_magic_2;
	if (@Q_status == @Q_STATUS_STUDENT1)
		goto L_Q_magic_3;
	if (@Q_status == @Q_STATUS_STUDENT2)
		goto L_Q_magic_4;

        mes "[Earth Spirit]";
        mes "\"Good, good... that's the right attitude!  Yes, I can teach you magic, but first you must prove that you are worthy to be my student!\"";
	next;

        mes "[Earth Spirit]";
        mes "\"North-west of here sits and old, dead tree.  Well, not completely dead, not yet, but almost.  It's nothing special.  Well, maybe a little, but not really.  I want you to cut off one of its branches.\"";
	next;

        menu
		"No way.", L_silly_close,
		"Sure.", L_Q_tree_ok,
		"Why that particular tree?", -;

        mes "[Earth Spirit]";
        mes "\"Oh, you and your questions!  Well, that tree was a druid once, so the branches contain a bit of its lifeforce.  And that's useful.\"";
	next;

        menu
		"Yuck.", L_silly_close,
		"Sure, whatever.", L_Q_tree_ok,
		"Isn't that like cutting off someone's arm?", -;

        mes "[Earth Spirit]";
        mes "\"Oooh... now come on!  Don't be so sentimental.  He turned himself into a tree, he can hardly expect everyone to leave him alone.\"";
	next;

        mes "[Earth Spirit]";
        mes "\"Besides, think of it like that:  if you want to bake a cake, you've got to break a few eggs.  Not everything's sweetness in life, my " + @s$ + "!.\"";
	next;

        menu
		"No way.", L_silly_close,
		"Alright, that makes sense.", L_Q_tree_ok;

L_Q_tree_ok:
        mes "[Earth Spirit]";
        mes "\"Good, good, good!  Yes, that will be very good!  So, come back when you have the branch.  Oh, and bring 100,000 GP, too, as an enrollment fee.\"";
        set @Q_status, @Q_STATUS_ONQUEST;
        callsub S_update_var;
        set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_CUTTREE;
        next;
        goto L_main;

L_Q_magic_1:
        mes "[Earth Spirit]";
        mes "\"Yes, yes, if you brought me the branch and the money, then I will!\"";
        next;
        menu
		"Here is the branch and the money.", -,
                "How much money did you want again?", L_Q_tree_howmuch,
		"How can I cut it?", L_Q_tree_how,
		"Where was the tree again?", L_Q_tree_where,
		"What is that tree?", L_Q_tree_what;

	if (countitem(@BRANCH) < 1)
		goto L_Q_tree_none;
	if (!(MAGIC_FLAGS & MFLAG_DID_CUTTREE))
		goto L_Q_tree_dry;
        if (zeny < 100000)
		goto L_Q_tree_nomoney;

        set zeny, zeny - 100000;
        delitem @BRANCH, 1;

        mes "[Earth Spirit]";
        mes "Following the earth sprite's instructions, you throw branch and GP into the well.";
        next;

        mes "[Earth Spirit]";
        mes "\"Well done, very well done!  Consider yourself my student now.\"";

        mes "[5000 experience points]";
        if (getskilllv(SKILL_MAGIC_NATURE) < 2)
                mes "[Level 2 in Nature Magic]";
        getexp 5000, 0;
        if (getskilllv(SKILL_MAGIC_NATURE) < 2)
        	skill SKILL_MAGIC_NATURE, 2;
        next;

        set @Q_status, @Q_STATUS_STUDENT0;
        callsub S_update_var;
	goto L_main;

L_Q_magic_finish:
        mes "[1000 experience points]";
        set @Q_status, @Q_status + 1;
        callsub S_update_var;
        getexp 1000,0;
        next;
	goto L_main;

L_Q_magic_2:
        mes "[Earth Spirit]";
        mes "\"Yes, of course!  For just 20,000 GP I will teach you your first spell!\"";
        next;

        menu
		"Here you are.", -,
		"No.", L_main;

        if (zeny < 20000)
		goto L_no20k;

        set zeny, zeny - 20000;

        mes "[Earth Spirit]";
        mes "\"Kekeke... excellent!  Yes, here goes your first spell, the flying backpack!  If you are overloaded, it will take the load off your shoulders.\"";
        next;

        mes "[Earth Spirit]";
        mes "\"Take a cocoon, living or dead, and suffuse it in magic.  Whisper '" + getspellinvocation("flying-backpack") + "', and feel it float!\"";
        goto L_Q_magic_finish;        

L_Q_magic_3:
        mes "[Earth Spirit]";
        mes "\"But yes, yes!  Only 20,000 GP, once again, and I will teach you a far more useful spell!\"";
        next;

        menu
		"Here you are.", -,
		"No.", L_main;

        if (zeny < 20000)
		goto L_no20k;

        set zeny, zeny - 20000;

        mes "[Earth Spirit]";
        mes "\"Yeees, good!  This one is a protection spell, making your skin harder.  You need a hard spike for it, though.  Hold that spike in your hands, and focus on it.\"";
        next;

        mes "[Earth Spirit]";
        mes "\"Next, say '" + getspellinvocation("protect") + "', and feel your skin grow rigid!  Very useful against stings and stabs and pokes and pricks and that sort of stuff.\"";
        goto L_Q_magic_finish;        

L_Q_magic_4:
        mes "[Earth Spirit]";
        mes "\"Naah, you're too weak now!  Come back later when you have grown!\"";
        next;
	goto L_main;

L_no20k:
        mes "[Earth Spirit]";
        mes "\"You can't pay me 20,000 if you don't have that much!\"";
        next;
        goto L_main;

L_Q_tree_none:
        mes "[Earth Spirit]";
        mes "\"Where is your branch?\"";
        next;
	goto L_main;

L_Q_tree_dry:
        mes "[Earth Spirit]";
        mes "\"That won't do.  This branch is completely dead; you'll have to get another.\"";
        next;
	goto L_main;

L_Q_tree_nomoney:
        mes "[Earth Spirit]";
        mes "\"No, you don't have enough money!  Come back when you have 100,000.\"";
        next;
	goto L_main;

L_Q_tree_howmuch:
        mes "[Earth Spirit]";
        mes "\"It's only 100,000 GP to become my student.\"";
        next;
        goto L_main;

L_Q_tree_how:
        mes "[Earth Spirit]";
        mes "\"Oh... right, the tree might be protected.  Only a bone knife will cut that.  No idea where you can find one, but I'm sure you will manage!\"";
        next;
	goto L_main;

L_Q_tree_where:
        mes "[Earth Spirit]";
        mes "\"North-west of here.\"";
        next;
	goto L_main;

L_Q_tree_what:
        mes "[Earth Spirit]";
        mes "\"Just some silly druid who turned himself into a tree; nothing important.\"";
        next;
	goto L_main;

L_silly_close:
        if (MAGIC_FLAGS & MFLAG_KNOWS_IMP)
        	mes "[Earth Spirit]";
        if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP))
        	mes "[Well]";
        mes "\"Silly " + @s$ + ".\"";
L_close:
        close;

S_update_var:
	set QUEST_MAGIC2,
		(QUEST_MAGIC & ~(@Q_MASK)
		| (@Q_status << @Q_SHIFT));
	return;
}

005-1.gat,118,70,0	script	#EarthImp0#_M	127,{
	callfunc "EarthImpTouch";
}

005-1.gat,119,70,0	script	#EarthImp1#_M	127,{
	callfunc "EarthImpTouch";
}