From c66bfb7ddd988675449e2ac1ec691397a5b66990 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Thu, 17 Sep 2020 13:52:24 +0000 Subject: Use smuggler tunnels for rowboat --- maps/re/001-3-2.mcache | Bin 347 -> 351 bytes npc/001-1/koga.txt | 14 ++++++-- npc/001-1/rowboat.txt | 19 ++++++++--- npc/001-1/rowboathelper.txt | 40 +++++++++++++++++------ npc/001-1/sophialla.txt | 14 ++++++-- npc/001-3-2/_import.txt | 1 + npc/001-3-2/smuggler.txt | 78 ++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 147 insertions(+), 19 deletions(-) create mode 100644 npc/001-3-2/smuggler.txt diff --git a/maps/re/001-3-2.mcache b/maps/re/001-3-2.mcache index a3747e0f..4ac90083 100644 Binary files a/maps/re/001-3-2.mcache and b/maps/re/001-3-2.mcache differ diff --git a/npc/001-1/koga.txt b/npc/001-1/koga.txt index e0c7eece..57d0938d 100644 --- a/npc/001-1/koga.txt +++ b/npc/001-1/koga.txt @@ -9,7 +9,7 @@ .@q=getq(General_Narrator); speech l("Ah, whom did you bring here?"), - l("Isnt that the one Nard found on a float in the sea, with the sign of the Legion on his chest?"); + l("Isn't that the one Nard found on a raft in the sea, with the sign of the Legion on it?"); next; mesc l("Travel to woodlands?"); if (askyesno() == ASK_YES) @@ -18,6 +18,7 @@ l("I hope they know what they are doing. So, come on board. I am looking forward to go back to Woodland, haven't been there for a while."); next; closeclientdialog; + setpcblock(PCBLOCK_MOVE, false); setmount 0; if (.@q == 1) { warp "000-0-1", 26, 28; @@ -26,12 +27,19 @@ warp "008-1-1", 33, 63; dispbottom l("After a tiring, yet fast, travel by Koga, you arrive at @@.", l("Woodlands")); } + else + { + // Return you to beach + setpcblock(PCBLOCK_MOVE, false); + setmount 0; + slide 200, 62; + } close; OnInit: .bodytype = BODYTYPE_3; - .distance = 4; - .alwaysVisible = true; + .distance = 6; + //.alwaysVisible = true; end; } diff --git a/npc/001-1/rowboat.txt b/npc/001-1/rowboat.txt index 6400cc7d..a067b711 100644 --- a/npc/001-1/rowboat.txt +++ b/npc/001-1/rowboat.txt @@ -3,10 +3,16 @@ // Micksha, Toams // Description: // The rowboat, picking up the player on small beach in order to bring it to Koga. -// TODO: -// Check if the player who wants to enter the boat is the same as the one who called for the boat. 001-1,192,25,0 script #Rowboat NPC_ROWBOAT_STAND_WE,{ + if (.caller != getcharid(3)) { + mesn; + mesq l("Oh, hello. I am just observing the whales."); + next; + mesn; + mesq l("Nobody told me anything about you, unfortunately."); + close; + } speech S_LAST_BLANK_LINE | S_LAST_NEXT, l("Oh, hi."), @@ -14,10 +20,13 @@ l("Perhaps, and only perhaps, if you bring me the latter, I can bring you to a ship that will perhaps, and only perhaps, be able to bring you to Woodland."), l("Do you have this commendatory letter?"); closeclientdialog(); - if (askyesno() == 1) { + if (askyesno() == ASK_YES) { if (getq(General_Brotherhood) >= 2) { - slide 204, 62; + slide 227, 62; + //slide 204, 62; + .caller=0; + .clocks=gettimetick(2); movenpc("#Rowboat", 192, 25); setmount 1; } @@ -42,6 +51,8 @@ OnInit: .bodytype = BODYTYPE_3; .distance = 3; .speed = 175; + .caller = 0; + .clocks = 0; initpath "move", 202, 27, "move", 213, 58, diff --git a/npc/001-1/rowboathelper.txt b/npc/001-1/rowboathelper.txt index a2311efb..efb93e8b 100644 --- a/npc/001-1/rowboathelper.txt +++ b/npc/001-1/rowboathelper.txt @@ -3,21 +3,24 @@ // Toams // Description: // helper scripts for rowboat usage -// TODO: -// make the script dialog different if there is no rowboat present at the cave +// Notes: +// Curious Hole bypass the cutscenes // calling the Rowboat 001-1,200,60,0 script Curious Hole NPC_NO_SPRITE,{ - .@monadad = getq(ArtisQuests_MonaDad); + .@q = getq(General_Narrator); - narrator(S_LAST_BLANK_LINE | S_LAST_NEXT, - l("You see a curious hole behind some rocks"), - l("'Hey anyone there?'"), - l("..."), - l("Altough you can't get rid of the feeling someone is listening on the other side, you don't get any replies")); - if (.@monadad < 3) + mesc l("You see a curious hole behind some rocks."); + next; + mesn strcharinfo(0); + mesq l("Hey, anyone there?"); + next; + mesc l("..."); + next; + if (.@q < 2) { + mesc l("Altough you can't get rid of the feeling someone is listening on the other side, you don't get any replies."); close; } else @@ -31,9 +34,26 @@ mesc l("Sagratha is great."); next; + if (getvariableofnpc(.caller, "#Rowboat")) { + // Can you use it, or is it in grace time? + if (getvariableofnpc(.clocks, "#Rowboat") > gettimetick(2)) { + mesn; + mesq l("Please be patient. Someone else is using the rowboat right now."); + close; + } + // Rowboat already there, so change owner + mesn; + mesq l("Hello, a rowboat is already on the beach. You can use it."); + set(getvariableofnpc(.caller, "#Rowboat"), getcharid(3)); + set(getvariableofnpc(.clocks, "#Rowboat"), gettimetick(2)+15); + close; + } + // Rowboat is at hideout, send it to you speech S_FIRST_BLANK_LINE | S_LAST_NEXT, l("Hello, a rowboat is on his way to the beach. Please wait for a while for it to arrive."); + set(getvariableofnpc(.caller, "#Rowboat"), getcharid(3)); + set(getvariableofnpc(.clocks, "#Rowboat"), gettimetick(2)+30); doevent("#Rowboat::OnMoveToBeach"); close; } @@ -45,7 +65,7 @@ OnInit: .distance = 1; } - +// UNUSED //unmounting the rowboat at eastern beach 001-1,202,62,0 script unmountrowboateast NPC_HIDDEN,1,1,{ diff --git a/npc/001-1/sophialla.txt b/npc/001-1/sophialla.txt index 2e0a5c58..c26c3cbe 100644 --- a/npc/001-1/sophialla.txt +++ b/npc/001-1/sophialla.txt @@ -12,6 +12,7 @@ speech l("Hello."), l("Can't you see I am reading? Please go, please."); + // Please go, please? What? close; } speech @@ -26,7 +27,6 @@ mes ""; if (@menu == 2) { - // TODO: Tell to look for Henry TODO: Change curious eye conditional speech l("If you visit the sewers again... You'll find secret passages..."), l("Look for the hideout, but tell no one about this. Then, say the password again."); @@ -41,7 +41,17 @@ mesq l("I'm afraid you'll need to figure that out on your own."); next; mesn; - mesq l("This password is very secret. I don't think you would learn it even if you rescued someone missing for weeks."); // FIXME: Provide a decent hint. + mesq l("This password is very secret. I don't think you would learn it even if you rescued someone missing for weeks."); + // Extra hint (TODO: Logic is crappy) + if (@sophiahalla_needhelp) { + next; + mesn; + mesq l("Actually, there is an ex-legion member whose daughter used to play nearby... How was she called? Mona I think?"); + next; + mesn; + mesq l("...Ah! Nevermind, I was talking to myself."); + } + @sophiahalla_needhelp=true; next; mesc l("%s sighs.", .name$); } diff --git a/npc/001-3-2/_import.txt b/npc/001-3-2/_import.txt index d70ece30..e627928d 100644 --- a/npc/001-3-2/_import.txt +++ b/npc/001-3-2/_import.txt @@ -2,3 +2,4 @@ // This file is generated automatically. All manually added changes will be removed when running the Converter. "npc/001-3-2/_warps.txt", "npc/001-3-2/henry.txt", +"npc/001-3-2/smuggler.txt", diff --git a/npc/001-3-2/smuggler.txt b/npc/001-3-2/smuggler.txt new file mode 100644 index 00000000..ccb0a31d --- /dev/null +++ b/npc/001-3-2/smuggler.txt @@ -0,0 +1,78 @@ +// Evol scripts. +// Author: +// Micksha, Toams, Jesusalva +// Description: +// The rowboat, picking up the player on the fake pier and bringing them to +// Argaes Westport. + +001-3-2,71,85,6 script Smuggler NPC_ROWBOAT_STAND_WE,{ + function smugglerNotAuthorized; + function smugglerBoarding; + mesn; + mesq l("Hey dude, we actually have a pretty cool ship near Artis."); + next; + mesn; + mesq l("This lake may look natural, but it is not quite so. We're at sea level."); + next; + .@q=getq(ThiefQuests_Artis); + if (.@q < 3) + smugglerNotAuthorized(); + mesn; + mesq l("Cool, right?"); + next; + select + l("Yes."), + l("So? Will you bring me to Argaes?"); + mes ""; + if (@menu == 2) + smugglerBoarding(); + close; + +function smugglerNotAuthorized { + mesn; + mesq l("We smuggle not only goods, but people too. If Henry gives me the word..."); + next; + mesn; + mesq l("Hehehe... I've heard Hurnscald is wonderful at this time of the year!"); + close; + return; +} + +function smugglerBoarding { + mesn; + mesq l("Sure! Hold tight."); + next; + while (.lock) + { + mesn; + mesq l("Just let me finish this first..."); + next; + } + setcam (76*32), (85*32); + closeclientdialog; + .lock=true; + setpcblock(PCBLOCK_MOVE, true); + npcwalkto(76, 85); + sleep2(1000); + setmount 1; + warp "001-1", 227, 62; + detachrid(); + .dir = 2; + npcwalkto(71, 85); + sleep(1000); + .dir = 6; + .lock=false; + end; + return; +} + +OnInit: + .bodytype = BODYTYPE_3; + .distance = 4; + .speed = 175; + .alwaysVisible = true; + .lock = false; + end; + +} + -- cgit v1.2.3-60-g2f50