diff options
Diffstat (limited to 'npc/001-2-28/plush.txt')
-rw-r--r-- | npc/001-2-28/plush.txt | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/npc/001-2-28/plush.txt b/npc/001-2-28/plush.txt new file mode 100644 index 000000000..5600f2f24 --- /dev/null +++ b/npc/001-2-28/plush.txt @@ -0,0 +1,130 @@ +// Evol scripts. +// Author: +// Reid +// Description: +// Red, the Innkeeper. +// Variable: +// INN_REGISTER + +001-2-28,28,28,0 script Plush#001-2-28 NPC_RED,{ + + function narrator_explication { + narrator S_LAST_NEXT, + l("You will respawn at this place if defeated in combat."), + l("All you have to do is to select a bed in the upper level anytime after your reservation."), + l("Unlike other respawn points, an inn can fully restore your HP."), + l("Of course, you can select a bed somewhere else after your reservation, but you won't get your HP recovery until you choose to get some rest in the inn."), + l("You can also use your room to get some rest after a long battle. That will consume your reservation but your HP will be fully restored."); + return; + } + + function accepted_room { + .@price = getarg(0); + if (Zeny < .@price) + { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("You don't have enough money, bring @@ E.", .@price); + } + else + { + emotion E_HAPPY; + Zeny = Zeny - .@price; + INN_REGISTER = REDPLUSH_INN; + PC_IS_DEAD = false; + + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + lg("I registered you on the 4th room of the upper level.", + "I registered you on the 2nd room of the upper level."), + l("You can go upstairs and choose a different room if you want."); + savepoint "001-2-29", 29, g(49, 35); + } + } + + function register_room { + .@price = lognbaselvl(100, 10); + + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("That will be @@ E to set your respawn point", .@price), + l("This will remain your respawn point until set elsewhere."), + l("Is that okay?"); + + if (askyesno() == ASK_YES) + { + accepted_room(.@price); + } + else + { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("Come back later if you changed your mind!"); + } + + return; + } + + function lodge_check { + if (INN_REGISTER == NO_INN) + { + register_room; + } + else if (INN_REGISTER == REDPLUSH_INN) + { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + lg("You are already registered here."), + l("Go on the upper level if you want to change your room or to use it."); + } + else + { + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + lg("If you are registered somewhere else you will loose that reservation."), + l("Do you still want to lodge here?"); + + if (askyesno() == ASK_YES) + { + register_room; + } + } + return; + } + + speech S_LAST_NEXT, + l("Welcome to the Red Plush inn!"), + l("What do you need?"); + + do + { + .@q = select( + l("Could I lodge here for a while?"), + l("What service do you offer?"), + l("What is your tipiou trying to do?"), + l("Nothing.")); + + switch (.@q) + { + case 1: + lodge_check; + break; + case 2: + emotion E_WINK; + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("We offer a room for travelers passing by Artis, our beds are comfy and you can be guaranteed to be right as rain after a night here!"), + l("If you wake up at the inn after a harsh battle, you will find yourself revitalized in an instant unlike other places where you can rest."); + + narrator_explication; + break; + case 3: + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("That poor one is doing his best to fly... But his last meal and the gravity is not helping him so far!"); + break; + case 4: + break; + } + } while (.@q != 1 && .@q != 4); + + closedialog; + goodbye; + close; + +OnInit: + .sex = G_FEMALE; + .distance = 5; +} + |