summaryrefslogtreecommitdiff
path: root/npc/026-2/werewolf.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/026-2/werewolf.txt')
-rw-r--r--npc/026-2/werewolf.txt176
1 files changed, 176 insertions, 0 deletions
diff --git a/npc/026-2/werewolf.txt b/npc/026-2/werewolf.txt
new file mode 100644
index 00000000..febc4149
--- /dev/null
+++ b/npc/026-2/werewolf.txt
@@ -0,0 +1,176 @@
+
+026-2,30,23,0 script Wolfgang NPC305,{
+ @Graveyard_Inn_MASK = NIBBLE_5_MASK;
+ @Graveyard_Inn_SHIFT = NIBBLE_5_SHIFT;
+
+ @state = ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT);
+
+ @ANIMALBONES_AMOUNT = 30;
+ @ANIMALBONES_EXP = 40000;
+ @money = 1000;
+ @minLevel = 80;
+
+ if (@state > 1) goto L_Happy;
+ if (@state == 1) goto L_Bones;
+
+ mes "[Wolfgang]";
+ mes "\"What a nice place here, isn't it?\"";
+ next;
+ mes "\"Just the stuff they call 'food' in here is awful, bah.\"";
+ if (BaseLevel < @minLevel)
+ goto L_close;
+ next;
+ mes "\"I like bones from big animals, the best would be with some raw flesh on it. But just the bones are fine too.\"";
+ next;
+ mes "\"Can you bring me " + @ANIMALBONES_AMOUNT + " of them?\"";
+ @state = 1;
+ callsub S_Update_Mask;
+ goto L_close;
+
+L_Bones:
+ mes "[Wolfgang]";
+ mes "\"Do you have " + @ANIMALBONES_AMOUNT + " bones of an animal for me?\"";
+ next;
+ if ((countitem("Bone") > 0)
+ && (countitem("AnimalBones") >= @ANIMALBONES_AMOUNT))
+ menu
+ "Yes, here they are.",L_Bring,
+ "What about this normal bone?",L_Human,
+ "Not yet.",L_close;
+ if (countitem("Bone") > 0)
+ menu
+ "What about this normal bone?",L_Human,
+ "Not yet.",L_close;
+ if (countitem("AnimalBones") >= @ANIMALBONES_AMOUNT)
+ menu
+ "Yes, here they are.",L_Bring,
+ "Not yet.",L_close;
+ menu
+ "Not yet.",L_close;
+
+L_Bring:
+ if (countitem("AnimalBones") < @ANIMALBONES_AMOUNT)
+ goto L_Not_Enough;
+ delitem "AnimalBones", @ANIMALBONES_AMOUNT;
+ getexp @ANIMALBONES_EXP, 0;
+ mes "[Wolfgang]";
+ mes "\"Ah! Wonderful! Thank you.\"";
+ @state = 2;
+ callsub S_Update_Mask;
+ goto L_close;
+
+L_Human:
+ mes "[Wolfgang]";
+ mes "\"What?! That's a humans bone! I don't eat humans. That brings only trouble.\"";
+ next;
+ mes "\"Besides, from that I heard, they taste bad.\"";
+ goto L_close;
+
+L_Not_Enough:
+ mes "[Wolfgang]";
+ mes "\"Are you trying to kid me? I can count.\"";
+ goto L_close;
+
+L_Happy:
+ mes "You see the werewolf happily crunching the bones you brought him.";
+ mes "[Wolfgang]";
+ mes "\"Delicious. Thanks again.\"";
+ next;
+ mes "\"By the way... would you be interested in a little round of blackjack?\"";
+ mes "He pulls a deck of cards out of his pocket.";
+ next;
+ mes "[Wolfgang]";
+ mes "\"You will need " + @money + " GP.\"";
+ menu
+ "Sure, why not?",L_Game,
+ "No, thanks.",L_close;
+
+L_Game:
+ if (Zeny < @money)
+ goto L_No_Money;
+ mes "[Wolfgang]";
+ mes "\"Very nice. Let's start.\"";
+ mes "He shuffles the cards.";
+ next;
+ Zeny = Zeny - @money;
+ @croupier = rand(0, 4);
+ @croupier = @croupier + 17;
+ @player = rand(4, 21);
+ mes "\"You got " + @player + " with your cards.";
+ if (@player == 21)
+ goto L_End;
+ mes "Do you want another card?\"";
+ next;
+ menu
+ "Yes.", L_Another,
+ "No.", L_End;
+
+L_Another:
+ @tempace = rand(2, 11);
+ if (@tempace == 11)
+ goto L_Ace;
+ @player = @player + @tempace;
+ if (@player > 21)
+ goto L_Lost;
+ if (@player == 21)
+ goto L_End;
+ mes "\"You got " + @player + " with your cards.";
+ mes "Do you want another card?\"";
+ next;
+ menu
+ "Yes", L_Another,
+ "No", L_End;
+
+L_End:
+ if (@player <= @croupier)
+ goto L_Lost;
+ mes "\"You won! Hrm, here is your money.\"";
+ Zeny = Zeny + (3 * @money);
+ goto L_close;
+
+L_No_Money:
+ mes "\"You need at least " + @money + " GP.\"";
+ goto L_close;
+
+L_Lost:
+ mes "[Wolfgang]";
+ mes "\"Fine! I won!";
+ mes "You got " + @player + " with your cards.";
+ mes "I had " + @croupier + ".\"";
+ goto L_close;
+
+L_Ace:
+ @player = @player + 11;
+ if (@player > 21)
+ @player = @player - 10;
+ if (@player > 21)
+ goto L_Lost;
+ if (@player == 21)
+ goto L_End;
+ mes "You got " + @player + " with your cards.";
+ mes "Do you want another card?";
+ next;
+ menu
+ "Yes", L_Another,
+ "No", L_End;
+
+L_close:
+ @Graveyard_Inn_MASK = 0;
+ @Graveyard_Inn_SHIFT = 0;
+ @state = 0;
+ @ANIMALBONES_AMOUNT = 0;
+ @ANIMALBONES_EXP = 0;
+ @money = 0;
+ @minLevel = 0;
+
+ @croupier = 0;
+ @player = 0;
+ @tempace = 0;
+ close;
+
+S_Update_Mask:
+ set QUEST_Graveyard_Inn,
+ (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK))
+ | (@state << @Graveyard_Inn_SHIFT);
+ return;
+}