• 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

Defined? Probably not, but how? This is what error.log says:

Code:
COMPILE ERROR - file: storyline\DevlinOpera\quests\quests_reaction.c; line: 4475
variable not found
COMPILE ERROR - file: storyline\DevlinOpera\quests\quests_reaction.c; line: 4475
invalid syntax

In the meantime, we are going into some slightly over-the-top fantasy territory here:

Bonnie Devlin, Shaman Iguani and Yayo (second year of Shaman apprenticeship)
vs.
Maximo, Peter Tork and three "grues"

forest_fight.png
 
teleporter.wav is not a stereo sound so try PlaySound("AMBIENT\Teno_inside\teleporter.wav");
 
Defined? Probably not, but how? This is what error.log says:

Code:
COMPILE ERROR - file: storyline\DevlinOpera\quests\quests_reaction.c; line: 4475
variable not found
COMPILE ERROR - file: storyline\DevlinOpera\quests\quests_reaction.c; line: 4475
invalid syntax

That's certainly an indication of an undeclared variable. You currently don't have many variables declared at the top of "quests_reaction.c", just the usual few character references:
Code:
ref PChar, NPChar, sld;
PChar = GetMainCharacter();
Add this at the top:
Code:
float u, v, w;

Have a look at the top of "quests_reaction.c", where you'll see a lot of variables declared. You don't need to copy any of them, just see how they're done. For example, in "PROGRAM\Storyline\standard\quests\quests_reaction.c":
Code:
int iPassenger, cidx, iHP, cc;
float locx, locy, locz;
string homelocation, homegroup, homelocator;
int canQty = 0;
int crewQty = 0;
This one - and most of the others - uses locx, locy, locz for position commands. You're using u, v and w instead.
 
teleporter.wav is not a stereo sound so try PlaySound("AMBIENT\Teno_inside\teleporter.wav");
I don't know what the difference is between PlaySound and PlayStereoSound. The sound file in this quest case always worked.

float u, v, w;
After writing a huge complaint here about my game not working anymore, I realised I forgot to turn on RivaTuner :modding

Added this definition and the effect works now well for my intended purposes. Thank you all.
 
Last edited:
1) Introduction and instructions
2) Some exploring and interaction with one choice at the shipwreck
3) Make your way to the forest
4) More interaction
5) Night search at the forest
6) Three different paths depending on the earlier choice and a new one, two of them involve some fighting, two or three of them involve a side-reward
7) Something more, which I'm thinking about
8) A choice with three slightly different outcomes
9) Wrapping everything up and bye bye Aruba

I'm currently at 6)
6) is finished. Things are moving slowly, but they're moving.

Now, what else could I do in this location... :read
 
At a guess, it's how long the character has to get close to you. Sometimes the character might not follow you around in the scene in which you met him, but he should appear when you go to another location and then follow you around. He really will follow you everywhere - ever played the "Missing Son of Spanish Admiral" sidequest and seen Lucas follow you around until you finally deliver him to his father? He'll follow you even to places where officers don't go, such as the tavern room at night.

You can use 'LAi_Type_Actor_Reset' to stop him following you when you find the second character.
More problems with ActorFollowEverywhere

@Pieter Boelen gave me an idea which I'm now working on. I had this line of code:

Code:
            LAi_ActorFollowEverywhere(CharacterFromID("Lyndon Aidoo"), "", 1.0);
...which originally had a 0 at the end, but with the 0, he only starts following me everywhere when I enter a location and then return. With 1, he follows immediately. So far, so good.

At a specific locator, stuff happens. He gets LAi_type_actor_Reset and then LAi_SetStayType. Because at this point, the player is set to ActorType so the player doesn't run away, and as far as I know, one of the two must always be ActorType to initiate a conversation. After said conversation, Lyndon Aidoo is set to ActorType again and given two ActorRunToLocator commands. And then, he is supposed to follow me everywhere again, but this time, he only does so when I enter and leave another location. It's the same line of code as before.

Even though it shouldn't make a difference, I even added one more quest case:

Code:
        case "monolith_over":
            LAi_SetPlayerType(pchar);
            GiveItem2Character(PChar, "human_skull");
            Pchar.monolith.over = "yes";
            Pchar.monolith_found.over = "yes";
            pchar.quest.MONOLITH = "done";
            Lai_ActorFollow(characterFromID("Lyndon Aidoo"), pchar, "monolith_fin", 8.0);
        break;

        case "monolith_fin":
            LAi_ActorFollowEverywhere(CharacterFromID("Lyndon Aidoo"), "", 1.0);
        break;
No he does run to me courtesy of the Lai_ActorFollow, but still does not follow me everywhere immediately.
 
@Pieter Boelen gave me an idea which I'm now working on. I had this line of code:

Code:
LAi_ActorFollowEverywhere(CharacterFromID("Lyndon Aidoo"), "", 1.0);
...which originally had a 0 at the end, but with the 0, he only starts following me everywhere when I enter a location and then return. With 1, he follows immediately. So far, so good.
That is to be expected. Remember how I said that the number is the time the character has to reach you? If it's 0, the character has exactly 0 time, so he can't reach you and follow you. 1.0 is fine if the character is very close. 8.0 gives him more time if he's further away.

No he does run to me courtesy of the Lai_ActorFollow, but still does not follow me everywhere immediately.
Play as far as that part, then upload "compile.log".

Also:
Code:
            Pchar.monolith.over = "yes";
            Pchar.monolith_found.over = "yes";
Are those trying to cancel quest case triggers? If so, perhaps they should be:
Code:
            Pchar.quest.monolith.over = "yes";
            Pchar.quest.monolith_found.over = "yes";
Except that you're using "PChar.quest.monolith" as a tracking attribute:
Code:
pchar.quest.MONOLITH = "done";
 
That is to be expected. Remember how I said that the number is the time the character has to reach you? If it's 0, the character has exactly 0 time, so he can't reach you and follow you. 1.0 is fine if the character is very close. 8.0 gives him more time if he's further away.
Ah, this might be the solution. I think I get it. At the very first ActorFollowEverywhere, he is really close, since it is initiated from a dialog exit. The one in the case monolith_fin, he is much further away due to a ActorRunToLocator command. I'll set the time much higher.

Play as far as that part, then upload "compile.log"
...and upload compile.log this evening if it still doesn't work.

Are those trying to cancel quest case triggers? If so, perhaps they should be:
That is indeed a bit chaotic! I want three strings of quest action that could be played in any order. So just like with the five sailors in Santiago (and many times since then) I'll check if all the other have been fulfilled at the end of each. Thus pchar.quest.MONOLITH = "done";. The other two are indeed quest trigger cases within that string of cases. That needs some renaming.

Also, the missing "quest"s I probably deleted accidentaly when copying and renaming.
 
If the player does something wrong, is there an alternative questbook "Miss the Rains Down in Aruba"? :D
 
If the player does something wrong, is there an alternative questbook "Miss the Rains Down in Aruba"? :D
No, and Toto actually say "bless" if that's what you mean. ;)

Thinking about it, I am actually quite close to the end of the main story I have set myself as a goal many years ago (there's always room for bonus material).

Beach and maps are going to be tricky, other than that I could/should/maybe would be able to finish within the next few weeks if not days.

I'm only just realising this.
 
No, and Toto actually say "bless" if that's what you mean. ;)
I know, but a lot of people mishear it as "miss". Hence the idea that you get the "Miss the Rains" questbook if you do something wrong. ;)

Thinking about it, I am actually quite close to the end of the main story I have set myself as a goal many years ago (there's always room for bonus material).

Beach and maps are going to be tricky, other than that I could/should/maybe would be able to finish within the next few weeks if not days.
Now I'm looking forward to trying it! :onya
 
Now I'm looking forward to trying it! :onya
Great to hear! :onya

If you (or anybody else) want to get a glimpse at how much I've coded over the past few weeks - I just updated the Devlin Opera walkthrough and the Aruba section is still not entirely finished. But of course, this contains some spoilers.
 
I played Devlin a little bit and met 2 strange things. Don't think it has anything to do with Devlin though.

Clint Eastwood fought without a blade and so did some bandits that appeared in Charlestown tavern.
 

Attachments

  • Clint_no_blade.jpg
    Clint_no_blade.jpg
    1.4 MB · Views: 27
  • bandits_no_blades.jpg
    bandits_no_blades.jpg
    1.1 MB · Views: 44
Both of those are normal in any game. Clint Eastwood has fists and a big gun. In the tavern, you probably had an on-screen message "Tavern brawl!". Brawlers also use fists. Talking to someone at a table can trigger a brawl.
 
Thanks for clarification, @Grey Roger . I haven't visited Eastwood in a while.

@Jack Rackham my quest doesn't involve Charlestown. There should be a fisherman at QC port who then leads to Ines Diaz, who then leads to her nephew.

As I warned, the quest is not finished and a bit rough in the early section, but should be playable until a certain point, except for the maps that are missing as items and are just talked about.
 
The beach I need would be the destination at the very end of the storyline, where all the combined maps (that still need to go into into the game at some point) lead to. So it wouldn't make much sense for it to be on Aruba, where you just spent an entire chapter. It would need to pass as an uninhabited or somewhat hidden place. Initially I thought it could just be the central american mainland and I would use the beach near Cartagena that isn't connected to any place. But since you have created the sidequest with the snake in the swamp, that one is now actually connected to locations and to the town.
This is now turning into a necessary topic. Again: I would need a quest beach on an uninhabited island or - would be nice to have - on the main land. I have already looked a little bit into the code of @Bartolomeu o Portugues "Family story" beach, but found mainly how the reload is hust unlocked when you play as Almeida. While playing Woodes Rogers, I also noticed @Jack Rackham somehow removed Devil's Throat and Rocky Shore from Jamaica and instead added the farmhouse port and the cave shore. Perhaps something similar could also be done in Devlin Opera?
 
Perhaps repurpose "Colombia_shore", alias "Dolphin Sands"? You'd also need to remove character "Cartagena_Smuggler" because you won't be able to smuggle to Cartagena if the normal beach doesn't exist.

The only uninhabited islands I can think of are Petit Tabac, Isla Mona and Cozumel. Of those, unless you already have something going on there, Cozumel is probably the easiest.
 
This would also affect the Cartagena silver side quest, wouldn't it?

Theoretically, Antigua and St. Martin are uninhabited as well I think.
 
There should be a fisherman at QC port who then leads to Ines Diaz, who then leads to her nephew.
Thanks, I have found the walkthrough now.

Both of those are normal in any game. Clint Eastwood has fists and a big gun. In the tavern, you probably had an on-screen message "Tavern brawl!". Brawlers also use fists. Talking to someone at a table can trigger a brawl.
Ok for that but it sounded like they were using (metal) blades. Maybe something can be done.
 
Back
Top