• 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!

Need Help Several minor bugs + questions

So, I can visit something on Cozumnel? I suppose I didn't find where to shore, but there is a place. Also, fast travel is disabled here? Becausse I've got no locations to sail

And how to set interface picture & any thoughts about wrong ships in place of correct ones at Vanderdecken's?
 
To think about Artois. Could it be that I assidentally pressed F11 when he was on other ship and game consider him dead then? Because I remember that I did once or twice.
 
Any way to start on Isla de Muerta so I can test if this will work properly in NG? I mean, maybe one of the characters starts there
Put this into "console.c", just below 'init limit;':
Code:
 DoQuestReloadToLocation("IslaDeMuerte_shore_02", "reload", "sea_back", "_");
 PChar.location.from_sea = "IslaDeMuerte_shore_02";
 SetFleetInTown(GetTownIDFromLocID(pchar.location.from_sea), "PChar");
That should teleport you to the beach with Vanderdecken's shipwreck office. For some reason, when I tried this, my ship didn't appear on the sea and neither did the boat, but the locator to take me to my ship was active - it was just harder to find because there's no boat next to it. This may be because Isla de Muerte isn't properly set up unless you go and get the Aztec compass, but in any case, it allows you to go straight to Vanderdecken after starting a new game.
 
Alright, it's ok now with Vanderdecken even in old game. Actually, this was because I executed F11 while was on Isla de Muerta it seems.

Can't find that secret shore on Cozumnel( I'm not sure is it intended that there are no fast travel locations there or something wrong with my save?
 
And how to set interface picture & any thoughts about wrong ships in place of correct ones at Vanderdecken's?
Interface pictures: unzip and put "shipsTM.tga.tx" into "RESOURCE\Textures\INTERFACES". Put "pictures.ini" into "RESOURCE\INI\TEXTS\ENGLISH". Then edit "Ships_init.c" and change this line:
Code:
refShip.BigPicTexName   = "SHIPS2"; // Armada
Replace "SHIPS2" with "SHIPS5". That should give you the interface picture.

I can't see anything obvious wrong with "Ships_init.c". If I do what I'd normally do when creating a new ship - what I did, in fact, when creating my new fast galleon version - which is copy and paste an existing similar ship and change the 'refShip.Name' line, then run a comparison with yours, the only differences are some stat changes, the addition of 'refShip.Nation = PIRATE;' and 'refShip.unique = true;', and the changes of 'refShip.CanEncounter' and 'refShip.CanBuy' to false. None of those should do anything to mess up Vanderdecken, and changing 'refShip.CanEncounter' and 'refShip.CanBuy' to false is what puts the ship into his collection. The only thing I can think of is that pressing F11 doesn't re-initialise ships properly, or at least doesn't do enough to correct Vanderdecken's list. Try starting a new game and using that console command.

I've no idea what made the game think Artois is dead. Transferring him to command of a ship and pressing F11 shouldn't do it, unless the re-init process changes all quest officers in ships into generic clones. (If it does, it's liable to break more quests than just Artois Voysey.) This is the code which happens when the game thinks he's dead:
Code:
       case "Artois_dead":
           Pchar.quest.Artois_Voysey.over = "yes";
           pchar.quest.shoot_in_artois.over = "yes";
           pchar.quest.shoot_in_artois1.over = "yes";
           pchar.quest.shoot_in_artois2.over = "yes";
           pchar.quest.shoot_in_artois3.over = "yes";
           pchar.quest.shoot_in_artois4.over = "yes";
           pchar.quest.shoot_in_artois5.over = "yes";
           AddQuestRecord("artois", 21);
           CloseQuestHeader("Artois");
       break;
It closes off several quest conditions so dead Artois can't respawn when you go to various places, then adds the line to the questbook and closes that. The only way that quest case is triggered is this, when you first hire him:
Code:
           PChar.quest.Artois_dead.win_condition.l1 = "NPC_Death";
           PChar.quest.Artois_dead.win_condition.l1.character = "Artois Voysey";
           PChar.quest.Artois_dead.win_condition = "Artois_dead";
And even that is cancelled when he tells you about the treasure. After that, the quest doesn't care whether he lives or dies because you know where the treasure is. He gets the standard officer dialog and nothing special happens if he dies.
 

Attachments

  • shipsTM.tga.tx.zip
    2.6 MB · Views: 184
  • pictures.ini
    185.6 KB · Views: 172
Put this into "console.c", just below 'init limit;'
Maybe add
GiveItem2Character(pchar, "aztec_compass"); first?

Didn't switch(4) already contain all needed code for the teleport?
I've got some faint memory of that...

unless the re-init process changes all quest officers in ships into generic clones.
It does nothing like that. :no
 
Picture appeared and looks amazing) Only one detail, now do I change ship type name on it to "Cursed corsair frigate"? :ship
 
Picture appeared and looks amazing) Only one detail, now do I change ship type name on it to "Cursed corsair frigate"?
Change this line:
Code:
refShip.SName           = "FrigateP";
Replace "FrigateP" with something else - perhaps "FrigateC", or "CursedFrigate". Then edit "RESOURCE\INI\TEXTS\ENGLISH\common.ini". Search through it to make sure it doesn't already contain what you put into that "refShip.SName" line. Add a line:
Code:
string = FrigateC,"Cursed corsair Frigate"
Replace "FrigateC" with whatever you used. You can put the new line pretty well anywhere, but the logical place would probably be just below this line:
Code:
string = FrigateP,"Corsair Frigate"

And now one of Ghost Galleons at Vanderdecken's has no picture :8q
Ah. :oops: That would be because the new version of "pictures.ini" is set to use the new version of the cursed Mariana. I've now uploaded my newest update archive here:
http://piratesahoy.bowengames.com/potc/Grey Roger/post_25May_updates.zip
If you download that, you'll need to put back all your changes, and you'll get to see that new version of the Mariana. Otherwise edit "RESOURCE\INI\INTERFACES\pictures.ini", find the line which includes "CursedMariana", and change that to "La_Marianna".
 
That's all then, ship displaying correctly ingame. And thank both of you guys for really great help :cheers

Ah. :oops: That would be because the new version of "pictures.ini" is set to use the new version of the cursed Mariana. I've now uploaded my newest update archive here:
There is new locations in this update? Perhaps I won't see them in current game then, right?

And what about Cozumnel? I'm just need to find where to shore (no beaches) or something wrong? And, if Artois is actually himself, any easy way to reinitialize the quest? (I don't care much about it, but still that's awkward )
 
Also, when dividing plunder there is no time delay like it should be. Any way to make couple of weeks to be lost (just changing game date actually) due to resting ashore after talking to loanshark and confirming divide?

And one more question about the ship. When you in 3rd person view mode on the deck. Where textures and models for different decks are in game files? I thought about changing it and attach other to the ship if I'll find more suitable one.

Newermind. Those textures affect inside too)
 
Last edited:
Also, when dividing plunder there is no time delay like it should be. Any way to make couple of weeks to be lost (just changing game date actually) due to resting ashore after talking to loanshark and confirming divide?
No new locations, no. Just a few new ships, some character model updates, and a bit of bug-fixing.

There will be no time delay after dividing plunder if I can help it! If you need to divide plunder while a quest is in progress which involves a time limit, forcing a delay while dividing plunder will break the quest. Realistically, dividing plunder shouldn't even involve a loanshark, you should do the dividing on your own deck. The only reason a pirate would go into a bank would be to rob it! But the loanshark is where the interface for dividing plunder is, so unless someone rewrites it to happen on the quarterdeck, that's where it stays.

And one more question about the ship. When you in 3rd person view mode on the deck. Where textures and models for different decks are in game files? I thought about changing it and attach other to the ship if I'll find more suitable one.
Models are in "RESOURCE\MODELS\Locations\decks", in various subfolders. To find out which decks your ship uses:
  • Look in the ship's definition in "Ships_init.c". At present your ship is a clone of "PiratFrigateSup". The relevant lines are:
    Code:
    refShip.QDeck = "ShipDeck1";
    Code:
    refShip.Cabin = "Cabin_medium";
  • Look in "PROGRAM\Locations\init\Ship.c" and find the definitions for those locations. Look for the 'Locations[n].models.always.l1' line for each location. That's the model which the location uses. Also look for the 'Locations[n].filespath.models' line, which tells you where that model can be found. So, for example, "ShipDeck1" has:
    Code:
    Locations[n].filespath.models = "locations\Decks\qdeck";
    Code:
    Locations[n].models.always.l1 = "qdeck";
    So you'll find its model in "RESOURCE\MODELS\Locations\Decks\qdeck", and the model file is "qdeck.gm".
  • Use GM Viewer to see which textures that model is using. Those textures may be in "RESOURCE\Textures" or in one of the subfolders - I've seen some in the top level and some in "RESOURCE\Textures\Ships", for example.
Be careful - other ships probably use the same decks, so if you change the deck model and textures, those other ships will have your new deck as well. You'll probably need to define new deck locations in "PROGRAM\Locations\init\Ship.c", copy their models and use Hex Editor to make them use new textures.
 
Can I put new textures for new deck/captain's cabin model to textures/locations/decks/"shipid" like Black Pearl ones which stored there?
 
That might work, provided you've noticed that the definition for the ship "BlackPearl" includes this:
Code:
refShip.DeckTexturesDir = "BlackPearl";
You could try adding that into your definition for "PiratFrigateCur", replacing "BlackPearl" with the name of the folder where you put your textures. I've never tried that myself, so I'm not sure how well it works - presumably well enough for the Black Pearl at least.
 
Nice) it's just more convenient this way then search them in main folders

Another one х) This is what I need for full immersion, I think. Is it possible to set different skeleton model for specific char in FreePlay? And, is it possible to actually edit original one because all that needed is head replacement (hands and body covered with clothes)
 
Wow, great! :keithactual tutorials
thank you)

For cargo hold and gundeck I need to define separate models too exact same way?
 
Defining separate models probably won't work. The hold and gundecks are generic models used by all ships. You might get a custom appearance using that 'refShip.DeckTexturesDir' line to make them use different textures. I'm pretty sure the Black Pearl has blackened gundeck and hold when you board it, and if it's using the standard gundecks and holds then 'refShip.DeckTexturesDir' is the only way I can think of that those decks can be black.
 
By the way, you might want to remove this line from your ship's definition:
Code:
refShip.Model = "Rossiya";

If you've been in a shipyard and clicked the "Appearance" tab, you may have seen that you can repaint the ship a different colour. What you're actually doing is switching to a different ship with a different model. Provided both ships have the same stats, and the models are identical except for textures, it looks as though you've repainted the ship.

Any two ships which have the same 'refShip.Model' line can be repainted into each other in the shipyard. "Frigate1", "Frigate2", "NL_Frigate47", "PirateFrigateSup", "FR_Frigate" and "RN_Frigate" are all the same except for their textures, all have the 'refShip.Model = "Rossiya";' line, so if you acquire any "Kreyser" class frigate or the corsair frigate, you can repaint it into any of the others.

If your ship also has the 'refShip.Model = "Rossiya";' line then any of those frigates can be repainted into your cursed ship. But your ship is not the same, with different crew and cargo capacity. So someone repainting a French frigate into a cursed frigate is going to get an increase in crew - and someone repainting the cursed frigate into a French one is going to lose crew. This can cause the status icon in sailing mode to do silly things.

Something similar happened in an earlier version of the game because a special caravel used by a storyline had the same 'refShip.Model' line as a standard caravel, so you could repaint one into the other. The problem was solved by disabling the 'refShip.Model' line so that the only way you get the special caravel is by playing the storyline.
 
I've done something wrong) If I use
refShip.DeckTexturesDir = "PiratFrigateCur";
should I only add textures with basic names in folder or should I create separate models and apply these textures to them after changing it names? I did the second way now and game don't see them. No textures in cargo/gundeck and standart one on deck and in captain cabin. Reference to models names in ShipInit should be fine, models themselves too. About Ship file with decks definitions I'm not so sure, but it seems everything is ok.
So, what method should I use when creating separate texture folder like Black Pearl's? Do I rename textures in it and should I use separate deck model or not?
 

Attachments

  • error.log
    402 bytes · Views: 171
Last edited:
Back
Top