diff options
Diffstat (limited to 'world/map/npc/027-2/werewolf.txt')
-rw-r--r-- | world/map/npc/027-2/werewolf.txt | 256 |
1 files changed, 128 insertions, 128 deletions
diff --git a/world/map/npc/027-2/werewolf.txt b/world/map/npc/027-2/werewolf.txt index 87d93173..41870095 100644 --- a/world/map/npc/027-2/werewolf.txt +++ b/world/map/npc/027-2/werewolf.txt @@ -1,158 +1,158 @@ -027-2.gat,118,23,0 script Wolfgang 305,{ - set @Graveyard_Inn_MASK, NIBBLE_5_MASK; - set @Graveyard_Inn_SHIFT, NIBBLE_5_SHIFT; - - set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT); - - set @ANIMALBONES_AMOUNT, 30; - set @ANIMALBONES_EXP, 40000; - set @money, 1000; - - 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 < 80) 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?\""; - set @state, 1; - callsub S_Update_Mask; - close; +027-2.gat,118,23,0|script|Wolfgang|305,{ + set @Graveyard_Inn_MASK, NIBBLE_5_MASK; + set @Graveyard_Inn_SHIFT, NIBBLE_5_SHIFT; + + set @state, ((QUEST_Graveyard_Inn & @Graveyard_Inn_MASK) >> @Graveyard_Inn_SHIFT); + + set @ANIMALBONES_AMOUNT, 30; + set @ANIMALBONES_EXP, 40000; + set @money, 1000; + + 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 < 80) 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?\""; + set @state, 1; + callsub S_Update_Mask; + 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.",-; - close; + 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.",-; + 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.\""; - set @state, 2; - callsub S_Update_Mask; - close; + if (countitem("AnimalBones") < @ANIMALBONES_AMOUNT) + goto L_Not_Enough; + delitem "AnimalBones", @ANIMALBONES_AMOUNT; + getexp @ANIMALBONES_EXP, 0; + mes "[Wolfgang]"; + mes "\"Ah! Wonderful! Thank you.\""; + set @state, 2; + callsub S_Update_Mask; + 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.\""; - close; + 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.\""; + close; L_Not_Enough: - mes "[Wolfgang]"; - mes "\"Are you trying to kid me? I can count.\""; - close; + mes "[Wolfgang]"; + mes "\"Are you trying to kid me? I can count.\""; + 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.",-; - close; + 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.",-; + close; //The game mechanics is copied from casino.txt L_Game: - if(zeny < @money) goto L_No_Money; - mes "[Wolfgang]"; - mes "\"Very nice. Let's start.\""; - mes "He shuffles the cards."; - next; - set zeny, zeny - @money; - set @croupier, rand(0, 4); - set @croupier, @croupier + 17; - set @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; + if(zeny < @money) goto L_No_Money; + mes "[Wolfgang]"; + mes "\"Very nice. Let's start.\""; + mes "He shuffles the cards."; + next; + set zeny, zeny - @money; + set @croupier, rand(0, 4); + set @croupier, @croupier + 17; + set @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: - set @tempace, rand(2, 11); - if (@tempace == 11) goto L_Ace; - set @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; + set @tempace, rand(2, 11); + if (@tempace == 11) goto L_Ace; + set @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.\""; - set zeny, zeny + (3 * @money); - close; + if (@player <= @croupier) goto L_Lost; + mes "\"You won! Hrm, here is your money.\""; + set zeny, zeny + (3 * @money); + close; L_No_Money: - mes "\"You need at least " + @money + " GP.\""; - close; + mes "\"You need at least " + @money + " GP.\""; + close; L_Lost: - mes "[Wolfgang]"; - mes "\"Fine! I won!"; - mes "You got " + @player + " with your cards."; - mes "I had " + @croupier + ".\""; - close; + mes "[Wolfgang]"; + mes "\"Fine! I won!"; + mes "You got " + @player + " with your cards."; + mes "I had " + @croupier + ".\""; + close; L_Ace: - set @player, @player + 11; - if (@player > 21) set @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; - close; + set @player, @player + 11; + if (@player > 21) set @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; + close; L_Close: - close; + close; S_Update_Mask: set QUEST_Graveyard_Inn, - (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK)) + (QUEST_Graveyard_Inn & ~(@Graveyard_Inn_MASK)) | (@state << @Graveyard_Inn_SHIFT); return; } |