• 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

That's exactly what I was looking for! (the locator radius) Thanks a lot. The stairs are quite wide at this point, but this will ensure the quest case gets triggered.

This means Bonnie's route on Santiago de Cuba (including three different little routes in itself, lots of wine, an angry captain, impending gallows, tall tales and a comfy robe) will soon be finished.

Animation view... what? where? Seems my limitations when looking at models in GM viewer are not the only thing I still need to learn...
Animation View:
http://piratesahoy.bowengames.com/Cloud/Tools/Modeling+Texturing/Animation View.7z
Useful for looking at basic character models, which is most of them. It doesn't work for composite models such as "50_33Petra.gm" or "spa_adm_18_2". For those you'll need to use TOOL, and you'll also need to use TX Convertor to convert their texture files from the game's ".tga.tx" to standard ".tga" format because TOOL uses ".tga". Character models don't show up properly in GM Viewer but it does show you which texture files they use.
 
Right now it is "Animistsf", the model which is also used for the character "Estrella Disguised" in the side quest "Help the Lady". It may look a bit too feminine, I chose it because it's a blue cloak and there is a nice interface picture to make the blue robe an inventory item. I don't know yet how the character will look without the cloak.

The other character who will then put on the cloak currently has the model of innkeeper Simon Hanpool on Barbados (can't tell you the model name, I'm at the office). It's not the 100% definitive model for him yet, I might keep it, but I might also change it if I find something better. When he turns "Animistsf", his goatee will disappear. He's supposed to be a spanish navigator.
 
there is a nice interface picture to make the blue robe an inventory item
:onya


Right now it is "Animistsf".
Think you mean AnimistsE which is blue. There is also Animist_Elting: blue robe and masculine head.
Maybe change to it? If so I can find the corresponding head.
 
The blue model is "Animistse" and is also the model used by "Estrella Disguised". "Animistf" is nearly identical except with a black cloak.

Simon Hanpool uses character model "Corsair1_4". who has reddish hair. As an alternative, you could use "Lucas2", who has black hair, moustache and goatee. He's an alternative version of Lucas da Saldanha for use in later periods in which Lucas' normal gold Conquistador armour is outdated. Lucas won't be needing this outfit in "Early Explorers", leaving it free for you to use. Then look at "AnimistEdmundo", who is supposed to be Edmundo de la Vega in disguise for use in a couple of scenes in "Ardent" and who also has black hair, so could reasonably pass for "Lucas2" in a cloak.

There's then just the matter of a black version of the blue cloak interface picture, which shouldn't be too hard to make.
 
I now use "AnimistEdmundo" taking off his cloak and turning into "man5_1" for the moment. Is it right that he gets the top left icon from the african model?

Page 13 of this thread, post #256, I still don't know how to properly look at locations in GM viewer. Might be useful some day.

And @Grey Roger , somehow I can't savely download Animation View from your link.

Sorry, many questions and problems at once... :shrug
 
Last edited:
I now use "AnimistEdmundo" taking off his cloak and turning into "man5_1" for the moment. But strange things are going on in the archipelago. He doesn't switch model, but he gets the top left icon of the female africa model!

Try out

C:
SetModel(characterFromID("Dragan van Mourik"), "man5_1", "man", "man", 1.8, false);
SetModelFromID(CharacterFromID("Dragan van Mourik"), "man5_1");

One of these should work.

Edit:

What's the difference?

Take a look at the arguments to understand the function better:

SetModel(chref, chref.model, chref.model.animation, chref.sex, stf(chref.model.height), FindLoadedLocation() );

SetModelFromID(chr, id , chr. model);
 
Last edited:
From the same post, I still don't know how to properly look at locations in GM viewer. Might be useful some day.

Make sure you point it to the textures folder to see the correct texures. Screenshot attached.

Use mouse buttons to zoom in or out.
 

Attachments

  • texture.png
    texture.png
    597.4 KB · Views: 39
Almost forgot to mention, from the last time i have played your story, i couldn't get Rocoso Balboa to spawn after talking to both Blaze and Bonnie on the docks. I will attach my save. I really like Blaze's dialogue btw, portrays his character well!

The Navigator (top)​

  • When you reach Santa Înes, go to the tavern and ask the innkeeper about the 'Villa de Malaga'. He won't be able to help you.
  • The Mystery Messenger enters and talks to you.
  • Sail to Santiago de Cuba, Isla Juana.


  • Upon reaching Isla Juana, you are transported to your deck. Blaze talks to you and tells about the early history of the island.
  • At the jetty of Santiago de Cuba, Bonnie and Blaze talk to you, as does your crewmember. Choose which of the three characters is going to talk to the navigator.

Beatrice's path (top)​

  • Go to the tavern and talk to Rocoso Balboa. Agree to find the five sailors.
  • Ask for a description of the sailors, otherwise you won't get any hints at all.
  • You can do the tasks of the search in any order.

I was here in your story. I think the crewman does not spawn correctly.
 

Attachments

  • -=Player=- Isla Juana. Santiago de Cuba port.rar
    625.2 KB · Views: 34
Thanks, it's far from being a character study but I hope to make the basic personalities of the siblings and their dynamic somewhat clear through the dialogue and their individual quest routes.

Your save worked for me. The solution:
The crewman deliberately takes an eternity to run up to you after you've spoken to Bonnie-Blaze-Bonnie. If I remember correctly, first it was simply because the locator I chose for him was further away than I thought. Then I kept it as a gag about how oversized the town is. The player is set to actor type to wait for him, but I guess that isn't yet the case in your version.
 
Thanks, it's far from being a character study but I hope to make the basic personalities of the siblings and their dynamic somewhat clear through the dialogue and their individual quest routes.

Your save worked for me. The solution:
The crewman deliberately takes an eternity to run up to you after you've spoken to Bonnie-Blaze-Bonnie. If I remember correctly, first it was simply because the locator I chose for him was further away than I thought. Then I kept it as a gag about how oversized the town is. The player is set to actor type to wait for him, but I guess that isn't yet the case in your version.

Indeed, i waited a bit and assumed i had to go to the tavern!

DisableFastTravel(true);

Would help to fix it as well, as i'm playing on arcade mode.

I'm not trying to nitpick the story, it's just my expirience as a player who does not know the ins and outs of your story, but please don't let it discourage you from continuing, the story is cool and ironing out the small things will just make it better!

Edit:

The town is indeed oversized and pretty empty feeling due to character amount limitation, i wish there was a workaround for it so we can make the town lively....
 
A DisableFastTravel(true); certainly wouldn't hurt either. I think in actor mode you could still fast travel...

Now you'll get to the part that takes place at night, doesn't really work or make sense in broad daylight, and thus may need a solution to either make sure it stays night OR "punish" the player when he waits until daylight.
 
A DisableFastTravel(true); certainly wouldn't hurt either. I think in actor mode you could still fast travel...

Now you'll get to the part that takes place at night, doesn't really work or make sense in broad daylight, and thus may need a solution to either make sure it stays night OR "punish" the player when he waits until daylight.

As far as i have tested it, player would have to wait around on X20 time for a really long time and then save-reload for time of day to change, what i would suggest is disable entering the tavern again so you can't sleep through the night, if player has missed the tips it's his/her fault ;) maybe disable some other unwanted reloads as well, but keep in mind to revert them back when your after tavern scene is over...

C:
Locations[FindLocation("Santiago_town_01")].reload.l7.disable = 1;
 
Something like this could work too if you want to get fancy about it, but i did not test it yet...

C:
case "time_loop":
                if (makeint(environment.time) > 24.0 || makeint(environment.time) < 4.0)
                {
                    SetCurrentTime(22.00, 0);
                    LAi_QuestDelay("time_loop", 20.0);
                }
            break;

            PChar.quest.time_loop.over = "yes";

PChar.quest.time_loop.over = "yes"; use when you need to break the loop quest/case, but as i have mentioned this is just an idea. :napoleon
 
Ignore my previous solution(s), after a few minutes of testing, this is what you can do, you should make it a little bit less "harsh" but i think you will get the idea...

C:
case "Sailor_search_start":
            Characters[GetCharacterIndex("Rocoso Balboa")].Dialog.CurrentNode = "workinprogress";

            SetCurrentTime(22.00, 0);

            ChangeCharacterAddressGroup(characterFromID("Santiago_soldier_09"), "none", "", "");            // Remove Guards
            ChangeCharacterAddressGroup(characterFromID("Santiago_soldier_10"), "none", "", "");            // Remove Guards

            ChangeCharacterAddressGroup(characterFromID("Chorizo"), "Santiago_town_01", "goto", "goto44");

            ChangeCharacterAddressGroup(characterFromID("Juan"), "Santiago_town_01", "goto", "goto38");
            ChangeCharacterAddressGroup(characterFromID("Jorge"), "Santiago_church", "sit", "sit1");
            ChangeCharacterAddressGroup(characterFromID("Paolo"), "Santiago_port", "goto", "goto41");

            Locations[FindLocation("Santiago_town_01")].reload.l5.close_for_night = 0;                      // Open Church
            Locations[FindLocation("Santiago_town_01")].reload.l2.close_for_night = 1;                      // Close Jungle Gate in town
            Locations[FindLocation("Santiago_port")].reload.l5.close_for_night = 1;                         // Close Jungle Gate in port

                        bQuestDisableSeaEnter = true
            DisableFastTravel(true);

            pchar.quest.Ricardo_gate.win_condition.l1 = "locator";
            pchar.quest.Ricardo_gate.win_condition.l1.location = "Santiago_port";
            pchar.quest.Ricardo_gate.win_condition.l1.locator_group = "reload";
            pchar.quest.Ricardo_gate.win_condition.l1.locator = "reload4";
            pchar.quest.Ricardo_gate.win_condition = "Ricardo_gate";

            pchar.quest.JUAN = "loose";
            pchar.quest.PAOLO = "loose";
            pchar.quest.JORGE = "loose";
            pchar.quest.RICARDO = "loose";
            pchar.quest.PEDRO = "loose";
    
            LAi_QuestDelay("time_loop", 0.1);
        break;
 
        case "time_loop":
                if (GetTime() != 24.0)
                {
                    SetCurrentTime(22.00, 0);
                    LAi_QuestDelay("time_loop", 1.0);
                }
            break;

PChar.quest.time_loop.over = "yes"; still applies to break the loop and you don't have to limit the player from using tavern or entering any locations if you don't need to...

Also i would suggest to disable reload to sea from the docks while player is supposed to wait for the crewman, as disabling fast travel does not fix this and it's an easy way to break your quest by accident (i think i have missed some of it in the beggining of my storyline as well)

Locations[FindLocation("Santiago_port")].reload.l3.disable = 1;
Locations[FindLocation("Santiago_port")].reload.l2.disable = 1;

Don't forget to re enable them later :doff

C:
//=========================== SANTIAGO ===========================================//

        case "Santiago_start":
            if (PChar.location.from_sea == "Santiago_port")
            {
                    Pchar.quest.Santiago_start.over = "yes";
                    Locations[FindLocation("Santiago_port")].reload.l3.disable = 1;
                    Locations[FindLocation("Santiago_port")].reload.l2.disable = 1;
                    SetOfficersIndex(Pchar, 1, getCharacterIndex("Bonnie Devlin"));    // Force Bonnie and Blaze back to being officers
                    SetOfficersIndex(Pchar, 2, getCharacterIndex("Blaze Devlin"));    // in case player hired new officers on the way here

                ChangeCharacterAddressGroup(characterFromID("Bonnie Devlin"), "Santiago_port", "officers", "reload2_1");
                ChangeCharacterAddressGroup(characterFromID("Blaze Devlin"), "Santiago_port", "officers", "reload2_2");

                ChangeCharacterAddressGroup(characterFromID("Crewmember Devlin"), "Santiago_port", "goto", "goto20");
                    LAi_SetActorType(characterFromID("Crewmember Devlin"));

                    LAi_SetActorType(characterFromID("Bonnie Devlin"));
                    LAi_ActorWaitDialog(pchar, characterFromID("Bonnie Devlin"));
                    Lai_ActorFollow(characterFromID("Bonnie Devlin"), pchar, "Santiago_start2", 2.0);
            }
        break;
 
Last edited:
@Sebrian To be honest, I don't really want to think too much about details while I am still working on the base quest (Bonnie's route almost finished, Blaze's route then should be relatively simple). Your input is appreciated, but I'd rather look at all those things in a separate state as soon as all the quest stuff in Santiago is finished. I hope you understand. :onya

@Grey Roger can you help me out again with the "AnimistEdmundo" model? I had one of the following two lines, which didn't do anything. Then I added the other one, but forgot the first one in the code and also forgot which one is which. Right now, this idiot Balboa simply becomes completely invisible when he's supposed to put on the cloak. o_O

Code:
            SetModelfromID(CharacterFromID("Rocoso Balboa"), "AnimistEdmundo");
                        SetModelfromArray(CharacterFromID("Rocoso Balboa"), GetModelIndex("AnimistEdmundo"));
 
And here's another problem (the last for today, I promise ;))

I have absolutely no clue what the game wants from me here. There seems to be an error regarding the first line of dialogue / the DLG_TEXT[0] that references it. Eh? What's the problem?
 

Attachments

  • problem.zip
    6.4 KB · Views: 36
And here's another problem (the last for today, I promise ;))

I have absolutely no clue what the game wants from me here. There seems to be an error regarding the first line of dialogue / the DLG_TEXT[0] that references it. Eh? What's the problem?

You forgot to add a comma here, so the array is not readable by the game when called

Code:
"..." // 11

Should be

"...", // 11
 
@Sebrian To be honest, I don't really want to think too much about details while I am still working on the base quest (Bonnie's route almost finished, Blaze's route then should be relatively simple). Your input is appreciated, but I'd rather look at all those things in a separate state as soon as all the quest stuff in Santiago is finished. I hope you understand. :onya

I have finished your questline to where it ends so far, there are two more little details (screenshots attached) First you might want to disable enterance to the jungle where you are supposed to talk trough the door and let the guy in using a key later, as it doesn't make much sense for it to be open in this situation ;)

And second, you can just add the quest case that is called after you finish the story, and print out smething like "story to be continued" in the case, so it does not lead into an error message.

I completely understand, it is your story, and you decide how to tackle it, and you don't have to do anything with my suggestions right away, and come back to them when you feel it's suitable for you...

But as this will be a public release in the update and we already have a guide for it in the wiki, getting some simple foolproofing things out now will save @Grey Roger some unneeded headache when someone decides to play it and breaks something by accident (like i did) :D

But, of course, it's up to @Grey Roger himself to decide, i'm just trying to help, and the quest is pretty solid and interesting so far!
 

Attachments

  • error1.png
    error1.png
    1.1 MB · Views: 37
  • gate.png
    gate.png
    1.5 MB · Views: 30
Back
Top