summaryrefslogtreecommitdiff
path: root/npc/029-2/tanisha.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/029-2/tanisha.txt')
-rwxr-xr-xnpc/029-2/tanisha.txt286
1 files changed, 286 insertions, 0 deletions
diff --git a/npc/029-2/tanisha.txt b/npc/029-2/tanisha.txt
new file mode 100755
index 00000000..4e5abe42
--- /dev/null
+++ b/npc/029-2/tanisha.txt
@@ -0,0 +1,286 @@
+
+029-2,110,88,0 script Tanisha NPC114,{
+ callfunc "PCtoNPCRange";
+ if(@npc_check) end;
+
+ if (isin("029-2", 98, 84, 106, 89))
+ goto L_Fighting;
+
+ if (QL_BEGIN >= 8) goto L_Tut_Done;
+ if (QL_BEGIN == 7) goto L_Stats;
+ if (QL_BEGIN == 6) goto L_Fail;
+ if (QL_BEGIN == 5) goto L_Maggots;
+
+ mes "[Tanisha]";
+ mes "\"Hey! You're up again!\"";
+ emotion EMOTE_HAPPY, strcharinfo(0);
+ mes "\"Are you feeling better?\"";
+ menu
+ "Yes, thank you.",L_Next,
+ "Yeah, but everything is gone. My stuff and memories..",L_Next;
+
+L_Next:
+ mes "[Tanisha]";
+ mes "\"I'm glad you're feeling better. It was really bad luck what happened to you.";
+ mes "Hey, I have an idea.\"";
+ QL_BEGIN = 5;
+ goto L_Maggots;
+
+L_Maggots:
+ mes "[Tanisha]";
+ mes "\"There are some maggots eating the goods and I'm supposed to get rid of them.";
+ mes "But they're so yucky!\"";
+ mes "\"If you kill them, I'll give you my knife.";
+ mes "What do you say?\"";
+ menu
+ "I guess it's the least I can do.",L_Next1;
+
+L_Next1:
+ mes "[Tanisha]";
+ mes "\"Wonderful.";
+ // since the check happens here, it is actually possible to have
+ // more than $@Maggot_MaxHunters in the area at one time
+ // but that's not a BIG problem
+ if (getareausers("029-2", 98, 84, 106, 89) >= $@Maggot_MaxHunters)
+ goto L_Crowded;
+ next;
+ goto L_Fight_Again;
+
+L_Fight_Again:
+ mes "[Tanisha]";
+ mes "\"Ok, listen what to do.";
+ mes "Equip a weapon and kill the maggots.\"";
+ mes "\"Press [###keyTargetMonster;] to focus on a monster. With [###keyTargetAttack;] you can focus and start attacking the same time.";
+ mes "But it also works to click on the monster with your mouse.\"";
+ next;
+ mes "\"If you press the [###keyTarget;], you can abort your attack.\"";
+ next;
+ mes "\"Maggots aren't aggressive, so they won't harm you until you attack them first. Take them out one by one.\"";
+ next;
+ mes "\"Sometimes dead monsters leave some useful things. You can pick them up by pressing [###keyPickup;] or clicking on the items with your mouse.\"";
+ close2;
+ // The getitem must be in the same place as set QL_BEGIN, 2;
+ // since it was moved to after L_Fight_Again, add it conditionally
+ if (QL_BEGIN == 5)
+ goto L_GetFightItems;
+ goto L_ContinueFight;
+
+L_GetFightItems:
+ QL_BEGIN = 6;
+ getitem "Knife", 1;
+ getitem "SlingShot", 1;
+ getitem "SlingBullet", 500;
+ goto L_ContinueFight;
+
+L_ContinueFight:
+ QL_BEGIN = 6;
+ @Maggot_Kills = 0;
+ @time = 0;
+ if (getareausers("029-2", 98, 84, 106, 89) == 0)
+ initnpctimer;
+ warp "029-2", 101, 87;
+ goto L_Summon;
+
+L_Summon:
+ areamonster "029-2", 98, 84, 106, 89, "", 1002, 1, "Tanisha::OnMaggotDeath";
+ end;
+
+L_Stats:
+ mes "[Tanisha]";
+ mes "\"That was great! Like a professional exterminator!\"";
+ mes "\"And it seems you became stronger and more experienced.";
+ mes "That means you got some status points which you can use to increase your abilities.\"";
+ mes "\"Press [###keyWindowStatus;] or click the Status button in the bar at the upper right to see your status window. There you can distribute your points on six different properties.\"";
+ mapmask getmask() | 2;
+ next;
+ goto L_StatsRe;
+
+L_StatsRe:
+ mes "\"Strength makes you hit harder and you can carry more weight.\"";
+ mes "\"Agility increases your attack speed and your ability to dodge attacks.\"";
+ mes "\"Vitality gives you more hit points and more defense against physical attacks.\"";
+ mes "\"Intelligence is useful for magic attack and defense.";
+ mes "But as long as you don't know any magic, you shouldn't use your points on this.\"";
+ mes "\"Dexterity is needed to hit monsters. It's also very important for the damage if you use a ranged weapon.\"";
+ mes "\"Luck gives you the chance to do critical hits and lowers the chance to receive a critical hit from your opponent.\"";
+ next;
+ mes "\"Think about how you want to play before assigning the points.\"";
+ mes "\"My Uncle sitting at the counter knows a spell to help the younglings reset their stats.\"";
+ mes "\"He can also change your hair style and color, along with your gender.\"";
+ mes "\"Furthermore, he knows of mages with even more powerful reset spells for your stats.\"";
+ next;
+ if (QL_BEGIN == 7)
+ goto L_Money;
+ goto L_Advice;
+
+L_Money:
+ next;
+ mes "[Tanisha]";
+ mes "\"Hey, you are so smart taking out all that yucky maggots for me.";
+ mes "You can have my pocket money. Here.\"";
+ QL_BEGIN = 8;
+ Zeny = Zeny + 5;
+ next;
+ goto L_Advice;
+
+L_Advice:
+ mes "\"When you go to Hurnscald, you should see Bernard. He can make a delicious soup!";
+ mes "Good luck!\"";
+ emotion EMOTE_HAPPY, strcharinfo(0);
+ goto L_close;
+
+L_Explain:
+ menu
+ "... how to fight?",L_Fight,
+ "... monsters?",L_Mob,
+ "... status points?",L_StatsRe,
+ "... what to do in Hurnscald?",L_Advice,
+ "... nevermind.",L_close;
+
+L_Fight:
+ mes "[Tanisha]";
+ mes "\"Press [###keyTargetMonster;] to focus on a monster. With [###keyTargetAttack;] you can focus and attack.";
+ mes "But it also works to click on the monster with your mouse.\"";
+ next;
+ mes "\"If you press the [###keyTarget;] button, you can abort your attack.\"";
+ next;
+ mes "\"Sometimes dead monsters leave some useful things. You can pick them up with pressing [###keyPickup;] or clicking on the items with your mouse.\"";
+ next;
+ mes "\"If you feel exhausted from battle you can sit down by pressing [###keyBeingSit;] to recover faster.\"";
+ goto L_close;
+
+L_Mob:
+ mes "[Tanisha]";
+ mes "\"I don't know much about monsters, I'm just a little girl. But I know a few things.";
+ mes "There are several types of monsters...Aggressive, Neutral, and Assistants.\"";
+ next;
+ mes "\"Aggressive monsters will attack you as soon as they see you.\"";
+ next;
+ mes "\"Neutral monsters are peaceful until they get attacked.\"";
+ next;
+ mes "\"Assistants are monsters who help each other.\"";
+ goto L_close;
+
+L_Tut_Done:
+ mes "[Tanisha]";
+ mes "\"These yucky maggots! They're eating our goods!";
+ mes "No matter how many of them you kill, they always come back.\"";
+ mes "She sighs.";
+ mes "[Tanisha]";
+ mes "\"Do you have any questions?\"";
+ menu
+ "Yes, could you explain about...", L_Explain,
+ "No, thanks.", L_close;
+
+L_Crowded:
+ mes "[Tanisha]";
+ mes "\"That's great! But...";
+ mes "it seems a little crowded in there.\"";
+ mes "\"Let's wait a short while.\"";
+ goto L_close;
+
+L_Sleep:
+ warp "029-2", 101, 87;
+ mes "[Tanisha]";
+ mes "\"What are you doing in there?";
+ mes "Sleeping?";
+ mes "Come back when you're serious.\"";
+ @Maggot_Kills = 0;
+ @time = 0;
+ close2;
+ if (getareausers("029-2", 98, 84, 106, 89) == 0)
+ goto L_CleanUp;
+ end;
+
+L_Fail:
+ mes "Tanisha seems to be trying hard to supress laughter.";
+ mes "[Tanisha]";
+ mes "\"The maggots defeated you.\"";
+ mes "She bursts out with laughter.";
+ mes "\"Oops, I'm sorry. It's just too funny.";
+ mes "Do you want to try it again?\"";
+ menu
+ "Sure!", L_Next2,
+ "No, I need a rest.", L_close;
+
+L_Next2:
+ if (getareausers("029-2", 98, 84, 106, 89) >= $@Maggot_MaxHunters)
+ goto L_Crowded;
+ goto L_Fight_Again;
+
+L_Fighting:
+ npctalk strnpcinfo(0), "##3I believe in you!", strcharinfo(0);
+ end;
+
+OnTimer1000:
+ setnpctimer 0;
+ if (getareausers("029-2", 98, 84, 106, 89) == 0)
+ goto L_CleanUp;
+ // This is needed because multiple players can be in the area at once
+ areatimer 0, "029-2", 98, 84, 106, 89, 0, "Tanisha::OnTick";
+ end;
+
+L_CleanUp:
+ killmonster "029-2", "Tanisha::OnMaggotDeath";
+ $@Maggot_Hunters = 0;
+ stopnpctimer;
+ areamonster "029-2", 98, 84, 106, 89, "", 1002, 1, "Tanisha::OnMaggotDeath";
+ end;
+
+OnTick:
+ @time = @time + 1;
+ if (@time > 300)
+ goto L_Sleep;
+ if (ispcdead())
+ end;
+ if (Hp > 20)
+ end;
+ heal MaxHp, 0;
+ npctalk strnpcinfo(0), "##3You're doing good!", strcharinfo(0);
+ end;
+
+OnMaggotDeath:
+ if (@Maggot_Kills == 1)
+ npctalk strnpcinfo(0), "##3Aaahhhh... another one! It will crawl up your legs!", strcharinfo(0);
+ if (@Maggot_Kills == 2)
+ npctalk strnpcinfo(0), "##3Ohh... Irrhk... Eeeeww... They just appear from nowhere!", strcharinfo(0);
+ if (@Maggot_Kills == 3)
+ npctalk strnpcinfo(0), "##3Yuck... I think I am getting sick.", strcharinfo(0);
+ if (isin("029-2", 98, 84, 106, 89))
+ @Maggot_Kills = @Maggot_Kills + 1;
+ if (@Maggot_Kills < 5)
+ goto L_Summon;
+ // else, complete
+ warp "029-2", 110, 88;
+ QL_BEGIN = 7;
+ @Maggot_Kills = 0;
+ @time = 0;
+ if (getareausers("029-2", 98, 84, 106, 89) == 0)
+ goto L_CleanUp;
+ end;
+
+L_close:
+ close;
+
+OnInit:
+ $@Maggot_MaxHunters = 4;
+ areamonster "029-2", 98, 84, 106, 89, "", 1002, 1, "Tanisha::OnMaggotDeath";
+ end;
+}
+029-2,114,93,0 script #DoorOutTut2 NPC45,0,0,{
+ end;
+
+OnTouch:
+ if (QL_BEGIN >= 8)
+ goto L_Warp;
+ goto L_Block;
+
+L_Warp:
+ mapmask getmask();
+ warp "029-1", 32, 100;
+ end;
+
+L_Block:
+ npctalk "Tanisha", "##3##BPlease come here. ##bI'd like some help!", strcharinfo(0);
+ end;
+}