diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-04-09 11:00:49 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-04-09 11:00:49 -0300 |
commit | 8a4bf716002a017de77fe7df301ef8e4aaf00a2e (patch) | |
tree | 4947d0b015baad639fa07133369e9a09c8a468bc /npc/001-2-28/plush.txt | |
download | serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.gz serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.bz2 serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.tar.xz serverdata-8a4bf716002a017de77fe7df301ef8e4aaf00a2e.zip |
Initial commit
Diffstat (limited to 'npc/001-2-28/plush.txt')
-rw-r--r-- | npc/001-2-28/plush.txt | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/npc/001-2-28/plush.txt b/npc/001-2-28/plush.txt new file mode 100644 index 00000000..695bd7c6 --- /dev/null +++ b/npc/001-2-28/plush.txt @@ -0,0 +1,127 @@ +// 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 -= .@price; + INN_REGISTER = REDPLUSH_INN; + PC_IS_DEAD = false; + + speech S_FIRST_BLANK_LINE | S_LAST_NEXT, + l("I registered you on one of the rooms of the upper level."), + l("You can go upstairs and choose a different room if you want."); + savepoint "001-2-29", 29, any(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, + l("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, + l("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); + + closeclientdialog; + goodbye; + close; + +OnInit: + .distance = 5; +} |