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

Spoiler Cheats (Build 14)

DavyJack

Pirate Queen
Staff member
Storm Modder
UPDATED: 21 JULY 2019 (attached) :onya - complements and credits to Sire, Pieter Boelen and Grey Rogers:cheers
..just wanted to share these to me fellow pirates, after all, pirates are cheaters..hehehe..:aar
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
:ahoyMateys!
How can I cheat me rank to different nations? e.g Admiral, Commander, Capitán General, etc.
I figured out a way but it might not be the right way to do it. I changed the effects when buying a Letter of Marque. Using this code in PROGRAM\Characters\CharacterUtilite.c functionfloat SetRank(ref char, int iNation, int newrank):
Code:
//sets rank of char in service of iNation to newrank, and sets points to that rank
float SetRank(ref char, int iNation, int newrank)
{
    // PB: Rewritten to include ALL functionality here -->
    // Also, no longer resets relation to 0 if you already had a better relation
    string sNation = iNation;
    float points = GetActualRMRelation(iNation);

    if(sti(char.reputation) >= REP_COMEBACKMIN && newrank > 0)
    {
        char.nations.(sNation).Rank = newrank;
        //UpdateTitle(&char);
        points = RequiredNextRankDirect(newrank);
    }
// KK -->
    if (ENABLE_FLAGS == 1) {
        SetRMRelation(char, iNation, points);
        if(GetActualRMRelation(iNation)<points)
        {
            SetActualRMRelation(iNation, points);
        }
        ReceiveLetterOfMarque(iNation);
    }
    else
    {
        if(GetRMRelation(char, iNation)<points)    SetRMRelation(char, iNation, points);
    }
// <-- KK
    SetServedNation(iNation);
    // PB: Rewritten to include ALL functionality here <--
    return points;
}
Below this line:
Code:
  points = RequiredNextRankDirect(newrank);

    }
Adding:
Code:
if(points < 0) points = 0;
Then I changed the second zero to my liking so I can be promoted instantly.
(This one's actually a fix by Pieter Boelen when buying a LoM so you can serve several nations at the same time but be careful about their relationship with other nations if you do serve multiple nations and fly the correct flag when attacking or you're gonna be branded as a Pirate)
(The code may vary due to diff wip versions, this one is wip11)
 

Attachments

  • Cheat List.txt
    15.5 KB · Views: 274
Last edited:
Use a line like this:
Code:
SetRank(pchar, ENGLAND, 1);
That makes you an English midshipman.
Find the various ranks in PROGRAM\NATIONS\nations_init.c .
 
ENTER ANY BUILDING AT NIGHT(if you don't want spending night at the tavern):
PROGRAM\Locations\init, select a location and find the lines with:
Code:
close_for_night
Best remove the entire lines. e.g
Code:
    Locations[n].reload.l13.close_for_night = 1;
NOTE: Read comments first, I think there is one there that you might not want to remove for quest purpose.
 
MAKE ALL OFFICERS VISIBLE ON SHIP DECK
Look at PROGRAM\SEA_AI\BOAL_Deck.c and find:
EDIT: Look at PROGRAM\Loc_ai\LAi_deck.c (There has been changes about the files lately):
Code:
                            case "ShipDeck":
                                if(GetCharacterShipCabin(mchr)=="Cabin_none")
                                {
                                    CharacterIntoLocationLocator(_curCharIdx, mchr.location);
                                    LAi_SetCivilianPatrolType(tmpChr);
                                }
                                else
                                {
                                    if(tmpChr.quest.officertype==OFFIC_TYPE_ABORDAGE || tmpChr.quest.officertype==OFFIC_TYPE_CANNONEER || tmpChr.quest.officertype==OFFIC_TYPE_CAPNAVY) // KK
                                    {
                                        CharacterIntoLocationLocator(_curCharIdx, mchr.location);
                                        LAi_SetCivilianPatrolType(tmpChr);
                                    }
                                }
                            break;
Replace with:
Code:
    case "ShipDeck":
        CharacterIntoLocationLocator(_curCharIdx, mchr.location);
        LAi_SetCivilianPatrolType(tmpChr);
    break;
 
Last edited:
INSTA-SINK
Open PROGRAM\CCCdirectsail.c and find:
Code:
if (MINES && GetCurrentPeriod() >= PERIOD_REVOLUTIONS) {
Replace with:
Code:
if (MINES) {
-This will allow you to use one barrel of gunpowder to drop a mine in the water behind
your ship by pressing the [9]-key.
Any ship that runs into that mine will be sunk instantly.
 
I want to use Vanderdecken's Cabin. How can I do that? I tried:
Code:
"IslaDeMuerte_Cabin"

..but it's all just BLACK when the game loads.
 
What are you trying to do with it? Put it on your ship? Make a copy of the entry in PROGRAM\Locations\init\IslaDeMuerte.c and put it into Ship.c ?
Compare to the existing cabin options and adjust as required? I'm sure it'll require some figuring out.
 
Hehehe:p ..I just want my cabin to look like Hendrick's. Is that possible? How can I do that?
 
You have to compare to the existing cabin code; make sure you make them as similar as possible.
DON'T use the original location ID; change it to "cabin6" or something.
 
What does it say? Anything about GM files that cannot be loaded? Those cause black screens.
 
im not exactly sure..but as i was comparing, there are lines here that ain't there and lines there that ain't here. and I don't know what to put. very confusing.

Ship.c
Code:
    //ID
    Locations[n].id = "Cabin5"; // KK
    locations[n].id.label = "Captain's cabin";
    //Info
    Locations[n].filespath.models = "locations\decks\cabin\cabin01"; // KK
    Locations[n].image = "deck_cabin1.tga"; // KK
    //Sound
    Locations[n].type = "own_deck";
    Locations[n].lockCamAngle = 0.4;
    Locations[n].camshuttle = 1;
    Locations[n].fastreload = "ship";
    Locations[n].monsters = 0; // KK
 
    //Models
    //Always
    Locations[n].models.always.locators = "cabin01_ld"; // KK
    Locations[n].models.always.l1 = "cabin01";
    Locations[n].models.always.window.tech = "LocationWindows";
    Locations[n].models.always.window.level = 65531;
    //Day
    Locations[n].models.day.charactersPatch = "cabin01_patch";
    Locations[n].models.day.fonar = "cabin01_fonar"; // KK
    //Night
    Locations[n].models.night.charactersPatch = "cabin01_patch";
    Locations[n].models.night.fonar = "cabin01_fonar"; // KK
    //Environment
    Locations[n].environment.weather = "true";
    Locations[n].environment.sea = "true";
    Locations[n].environment.curse = "false"; // PB: Cursed Coins
 
// KK -->
    //Reload map
    Locations[n].reload.l1.name = "reload1";
    Locations[n].reload.l1.go = "";
    Locations[n].reload.l1.emerge = "";
    Locations[n].reload.l1.autoreload = "0";
// <-- KK
 
    n = n + 1;

IslaDeMuerte.c
Code:
    //  -------------------------------------------------
    locations[n].id = "IslaDeMuerte_Cabin";
    locations[n].id.label = "Captain's Cabin";
    locations[n].filespath.models = "locations\Inside\ShipyardPirates";
    locations[n].image = "Inside_ShipyardPirates.tga";
 
    //Town sack
    Locations[n].townsack = "Redmond"; // PB: Otherwise Vanderdecken doesn't sell ships
 
    //Sound
    locations[n].type = "music_pirate_governor";
 
    //Models
    //Always
    locations[n].models.always.locators = "ShipyardPirates_locators";
    locations[n].models.always.shipyard = "ShipyardPirates";
    locations[n].models.always.window = "ShipyardPirates_fn";
    Locations[n].models.always.window.tech = "LocationWindows";
    Locations[n].models.always.window.level = 65532;
 
    //Day
    locations[n].models.day.charactersPatch = "ShipyardPirates_patch";
    //Night
    locations[n].models.night.charactersPatch = "ShipyardPirates_patch";
 
 
    //Environment
    locations[n].environment.weather = "true";
    locations[n].environment.sea = "true";
    Locations[n].lockWeather = "IslaDeMuerte";
 
    //Reload map
    locations[n].reload.l1.name = "reload1_back";
    locations[n].reload.l1.go = "IslaDeMuerte_shore_02";
    locations[n].reload.l1.emerge = "reload1_cabin";
    locations[n].reload.l1.autoreload = "0";
    locations[n].reload.l1.label = "Dead Man's Bay";
 
    locations[n].reload.l2.name = "reload2_back";
    locations[n].reload.l2.go = "IslaDeMuerte_shore_02";
    locations[n].reload.l2.emerge = "reload2_cabin";
    locations[n].reload.l2.autoreload = "0";
    locations[n].reload.l2.label = "Dead Man's Bay";
 
    Locations[n].island = "IslaDeMuerte";
    n = n + 1;
 

Attachments

  • error.log
    146 bytes · Views: 251
  • system.log
    1.9 KB · Views: 249
These lines are important to KEEP:
Code:
    Locations[n].type = "own_deck";
    Locations[n].lockCamAngle = 0.4;
    Locations[n].camshuttle = 1;
    Locations[n].fastreload = "ship";
    Locations[n].monsters = 0; // KK
These too:
Code:
    //Environment
    Locations[n].environment.weather = "true";
    Locations[n].environment.sea = "true";
    Locations[n].environment.curse = "false"; // PB: Cursed Coins
 // KK -->
    //Reload map
    Locations[n].reload.l1.name = "reload1";
    Locations[n].reload.l1.go = "";
    Locations[n].reload.l1.emerge = "";
    Locations[n].reload.l1.autoreload = "0";
// <-- KK
These are lines you should LOSE:
Code:
    //Reload map
    locations[n].reload.l1.name = "reload1_back";
    locations[n].reload.l1.go = "IslaDeMuerte_shore_02";
    locations[n].reload.l1.emerge = "reload1_cabin";
    locations[n].reload.l1.autoreload = "0";
    locations[n].reload.l1.label = "Dead Man's Bay";
 
    locations[n].reload.l2.name = "reload2_back";
    locations[n].reload.l2.go = "IslaDeMuerte_shore_02";
    locations[n].reload.l2.emerge = "reload2_cabin";
    locations[n].reload.l2.autoreload = "0";
    locations[n].reload.l2.label = "Dead Man's Bay";
 
    Locations[n].island = "IslaDeMuerte";

Why is your game trying to load this file?
Code:
resource\models\locations\Inside\ShipyardPirates\Inside_ShipyardPirates.gm: can't open geometry file
It doesn't exist. Looks like that is the name of the loading screen, but you've got the game WELL confused that it tries to load it as a model file. :shock
 
How 'bout these lines?
Code:
 Locations[n].models.always.l1 = "cabin01";
    Locations[n].models.day.fonar = "cabin01_fonar"; // KK
    Locations[n].models.night.fonar = "cabin01_fonar"; // KK
should I add these lines:
Code:
Locations[n].lockWeather = "IslaDeMuerte";
locations[n].models.always.shipyard = "ShipyardPirates";
locations[n].models.always.window = "ShipyardPirates_fn";
 
Back
Top