• New Horizons on Maelstrom
    Maelstrom New Horizons


    Visit our website www.piratehorizons.com to quickly find download links for the newest versions of our New Horizons mods Beyond New Horizons and Maelstrom New Horizons!

Devlin Opera for the 65742th time

Try this one:
Code:
Logit("Location model: "+ locations[FindLocation(Pchar.location)].models.always.l1);

l1 is the most common but can be something else and then you'll get nothing. But in all fake cabins I've used it's l1.
 
Nevermind the picture, I solved the problem of this post.

But there's a new question...

Is there anything wrong with this? The idea is to reload to the ship deck (quest location) when entering the waters around a certain island, but it doesn't work.

Code:
        case "For_Nevis_newfin":
            AddQuestRecord("My Brother, Ladies and Gentlemen", 3);
            Pchar.quest.meet_Blaze_Guad.win_condition.l1 = "location";
            PChar.quest.meet_Blaze_Guad.win_condition.l1.character = Pchar.id;
            Pchar.quest.meet_Blaze_Guad.win_condition.l1.location = "Guadeloupe";
            Pchar.quest.meet_Blaze_Guad.win_condition = "meet_Blaze_Guad";
        break;

// Nevis finished -> Go to Guadeloupe

        case "meet_Blaze_Guad":
            DoQuestReloadToLocation("Family_deck", "goto", "goto7", "meet_Blaze_Guad2");
        break;
 

Attachments

  • weirdquestlocation.png
    weirdquestlocation.png
    310.7 KB · Views: 342
Last edited:
Is there anything wrong with this? The idea is to reload to the ship deck (quest location) when entering the waters around a certain island, but it doesn't work.
Check compile.log to see which quest cases actually get triggered.
My first question would be: does it get triggered and fail?
Or does it not get triggered at all?

Also, if it's a new quest location you added, normally you have to start a new game.
Otherwise it doesn't exist and the reload has nowhere to teleport you to.
 
I don't really get everything compile.log is trying to tell me, but meet_Blaze_Guad does get triggered, and I can also see that because
1) Screen message in game says meet_Blaze_Guad2 couldn't be triggered (because I don't have that one yet) which means meet_Blaze_Guad (with the location reload) DID get triggered
2) Reloading to Family_deck plays battle music (ok?) ever since I succesfully tested it with console. The same music DOES play when I reach Guadeloupe, but without the switch to Family_deck

Plus I always start a new game because right now I can get to my latest quest case in about 5 minutes depending on storms and enemy ships near Turks. Later I will try to create Jumpstarts for testing.

EDIT

I've got it... I finally found the right code in the Larrouse quest, where a similar reload happens to the canyon mines. Like several of the original Akella files, this code seems to be in a confusing order so I haven't found the code before. It's

Code:
        case "For_Nevis_newfin":
            AddQuestRecord("My Brother, Ladies and Gentlemen", 3);
            Pchar.quest.meet_Blaze_Guad.win_condition.l1 = "location";
            //PChar.quest.meet_Blaze_Guad.win_condition.l1.character = Pchar.id;
            Pchar.quest.meet_Blaze_Guad.win_condition.l1.location = "Guadeloupe";
            Pchar.quest.meet_Blaze_Guad.win_condition = "meet_Blaze_Guad";
        break;

// Nevis finished -> Go to Guadeloupe

        case "meet_Blaze_Guad":
            DoReloadFromSeaToLocation("Family_deck", "goto", "goto7");
            LAi_QuestDelay("meet_Blaze_Guad2", 0.1);
        break;
 
Last edited:
Is Guadeloupe really a location (id)? I have never used that block with an island name.
It works at least... I think yes, it refers to the waters around an island, the quest case is triggered as soon as you enter from the map.

I knew it was possible because in the "Strange things" quest when you fight the Mefisto there is a quest case based on entering "IslaMuelle" (= going to sea, thus entering the Isla Muelle waters) which triggers the quest case that makes the Mefisto appear and disables the world map for the duration of the battle. My code as posted above is based on the "Claire Larrouse" quest where you're transported to the canyon near the mines as soon as you get near Barbados (location "Oxbay").

What's interesting is that (based on the code for similar quest cases, but it also works for me now) the line with Pchar.id isn't required when you do a quest case based on entering the warers around an island. Notice how I've commented it out. So there's one line of code less than in quest cases based on entering a location like a house or a town.
 
I had no idea about that island thing.
But I have never used the pchar.id even for standard locations.
Code:
pchar.quest.meet_manowar.win_condition.l1 = "location";
            pchar.quest.meet_manowar.win_condition.l1.location = "at_sea_in_fog";
            pchar.quest.meet_manowar.win_condition = "meet_manowar";
 
Is Guadeloupe really a location (id)? I have never used that block with an island name.
Yes, it absolutely is.
It's for the 3D Sailing Mode location.
That way you can trigger quest events at sea too.

But I have never used the pchar.id even for standard locations.
It's probably implied that if you don't specify anything, it applies to the player.

But you could use a different character.
Then you can for example execute certain quests only if you have a certain companion with you.
Or you choose a certain character to be your officer ashore.
 
...or hopefully if a certain character reaches a specified spot. Which I have had a lot of timing issues with.
 
I managed to juggle three quest locations at sea and now have a hopefully funny scene where you pick up Blaze (he's hungover and thinks he's seeing double when he spots the twins).

Only thing missing is how to return to sea from that series of quest locations that have been triggered by entering "Guadeloupe".
- A normal reload door from the last cabin doesn't work currently
- If I fast travel to my ship it ends up at the last island I moored, which doesn't make sense story-wise because it should still be near Guadeloupe.
- Or is there a sort of reversed version of DoReloadFromSeaToLocation?
- The most promising would probably be DoQuestReloadToLocation("Guadeloupe", "", "", "quest_case_XY"); I'll try that later.

Another thing I don't quite get: Like I learned in the other thread a while ago I set pchar.quest.OPERA = "ask_Ines_for_Merchant" so I can ask a tavern keeper about a story specific question. Problem is, I can ask her the question over and over again. So in one of the next quest cases I set pchar.quest.OPERA = "asked_Ines_for_Merchant"; (notice the difference) but I can still ask her the question. Shouldn't changing the "value" of pchar.quest.OPERA remove the possibility to ask her the question, when the question is based on if (CheckQuestAttribute("OPERA", "ask_Ines_for_Merchant")) ?
 
DoReloadFromSeaToLocation
I'm pretty sure there is indeed a function that allows you to reload to 3D sailing mode at a specific locator.
I'm not sure if it is that one though; and I'm at work right now so can't check.

Shouldn't changing the "value" of pchar.quest.OPERA remove the possibility to ask her the question
Yes.
It should do exactly that.

You could experiment with console to see what's happening.
For example:
LogIt("Cur quest = " + pchar.quest.OPERA)
 
I'm pretty sure there is indeed a function that allows you to reload to 3D sailing mode at a specific locator.
I'm not sure if it is that one though; and I'm at work right now so can't check.
DoReloadFromSeaToLocation is the one that takes me from sea to the quest location. It's the one I use when I enter "Guadeloupe", so I go from 3D to deck (quest location).
For the moment I can't think of an example in an existing storyline to search for. The opposite that is, taking you back to 3D sailing mode.
 
There's a function in reload.c called
Not sure which mode it takes you to.
Until now, testing it takes me to some VERY weird locations. :rofl:rofl:rofl There's an example as a picture, but once I also ended up in a flooded Pirate settlement tavern, with three Beatrices and Bonnies each (!) running around to their waist in water.

I must figure that out next, then I can do some polish to the stuff I've done already, but after that the quest is gonna take me to Martinique, so then would probably be a good time to sort those Early Explorer updates out, because they affect the nationality of that island.
 

Attachments

  • Nooooooo.png
    Nooooooo.png
    1 MB · Views: 226
I haven't really done anything on the quest over the last week, right now I'm looking into this, mostly as prep for a future part of the story:

Locators with the TOOL

I get the idea, but

1) how would I add sit locators to chairs, benches etc. which I can't really reach myself, meaning I can't really figure out the exact coordinates? More specifically there would be more sit locators in the LargeTavern, those two tables left of the front door. I already tried if it worked with the free cam, but the console only gives the coordinates of the character, no matter where I am with the free cam?

2) Shouldn't there be more sit locators in the LargeTavern? At least in the stock game, random officers were randomly assigned to a specific table in the tavern, and in the large one, there are two possibilities: To the left when you enter and just upstairs. But there are no locators there at all!
 
You can sidestep out from the walking area. Sidestep has to be on in InternalSettings. (last part)
Then press F12 if your console.c is set to "2" and you get the coordinates.
 
More specifically there would be more sit locators in the LargeTavern, those two tables left of the front door. I already tried if it worked with the free cam, but the console only gives the coordinates of the character, no matter where I am with the free cam?

random officers were randomly assigned to a specific table in the tavern, and in the large one, there are two possibilities: To the left when you enter and just upstairs. But there are no locators there at all!

It might spare you some heartache to look at this thread

Fixed - Drinking and Gambling at the Tavern

Of course there may be a way....

Somewhere else I know I have referred to potential officers seemingly being placed without reference to locators but I never did trace where in the code it was controlled.
 
DoReloadFromSeaToLocation is the one that takes me from sea to the quest location. It's the one I use when I enter "Guadeloupe", so I go from 3D to deck (quest location).
For the moment I can't think of an example in an existing storyline to search for. The opposite that is, taking you back to 3D sailing mode.
I think I found it:
Code:
           QuestToSeaLogin_PrepareLoc("Oxbay", "Quest_Ships", "Quest_ship_23", true);  % string islandID, string locGroup, string locName, bool sailUP
           QuestToSeaLogin_Launch();

Looks to have been used only 3 times in the entire original game.
But some of the added storylines use it now, so it should work.
 
Back
Top