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

Mod Release The Smart Start Mod Version 72: New starting gear for Charles! (CHEAT CODES TOO!) (dlc compatible)

most of the time chat goes clear is you forgot ; are a ) are something in the right place..make sure ever thing is right..like one time i changed the starting ship forgot to add ) at the end game would not start always make a back up before editing to compare and see what you did wrong
 
well, the number of item receive from the abbot is simple and correct because I simply change 1 into the number desire and it work fine. So I guess it's about the officers (Russian and French). I simply copy and paste what I edit in the RPGUtilite file (it work fine). Skill stats are change from 25 to 75. Can you have a look to see what's wrong? I don't see ; or ) missing.

SetShipSkill(sld, 75+rand(25), 75+rand(25), 75+rand(25), 75+rand(25), 75+rand(25), 75+rand(25), 75+rand(25), 75+rand(25), 75+rand(25));
SetSelfSkill(sld, 75+rand(25), 75+rand(25), 75+rand(25), 75+rand(25), 75+rand(25));
LAi_SetHP(sld, 4500.0, 4500.0);
sld.dialog.FileName = "Quest\Sharlie\Goldberg.c";
sld.dialog.currentnode = "Osmanov_Officer";
sld.greeting = "patrol";
SetCharacterPerk(ch, "Ciras");
SetCharacterPerk(ch, "BasicDefense");
SetCharacterPerk(ch, "AdvancedDefense");
SetCharacterPerk(ch, "CriticalHit");
SetCharacterPerk(ch, "HPPlus");
SetCharacterPerk(ch, "Tireless");
SetCharacterPerk(ch, "EnergyPlus");
SetCharacterPerk(ch, "Sliding");
SetCharacterPerk(ch, "SwordplayProfessional");
SetCharacterPerk(ch, "HardHitter");
SetCharacterPerk(ch, "BladeDancer");
SetCharacterPerk(ch, "Gunman");
SetCharacterPerk(ch, "GunProfessional");
SetCharacterPerk(ch, "Grus");
SetCharacterPerk(ch, "ByWorker");
SetCharacterPerk(ch, "ByWorker2");
SetCharacterPerk(ch, "IronWill");
SetCharacterPerk(ch, "ShipEscape");
SetCharacterPerk(ch, "SharedExperience");
SetCharacterPerk(ch, "Medic");
SetCharacterPerk(ch, "Trustworthy");
SetCharacterPerk(ch, "Rush");
SetCharacterPerk(ch, "FastReload");
SetCharacterPerk(ch, "HullDamageUp");
SetCharacterPerk(ch, "SailsDamageUp");
SetCharacterPerk(ch, "CrewDamageUp");
SetCharacterPerk(ch, "CriticalShoot");
SetCharacterPerk(ch, "LongRangeShoot");
SetCharacterPerk(ch, "CannonProfessional");
SetCharacterPerk(ch, "ShipDefenseProfessional");
SetCharacterPerk(ch, "ShipSpeedUp");
SetCharacterPerk(ch, "ShipTurnRateUp");
SetCharacterPerk(ch, "Alchemy");
SetCharacterPerk(ch, "Brander");
SetCharacterPerk(ch, "Troopers");
SetCharacterPerk(ch, "LongRangeGrappling");
SetCharacterPerk(ch, "GrapplingProfessional");
SetCharacterPerk(ch, "MusketsShoot");
SetCharacterPerk(ch, "BasicCommerce");
SetCharacterPerk(ch, "AdvancedCommerce");
SetCharacterPerk(ch, "ProfessionalCommerce");
SetCharacterPerk(ch, "FastReload");
SetCharacterPerk(ch, "ImmediateReload");
SetCharacterPerk(ch, "Carpenter");
SetCharacterPerk(ch, "LightRepair");
SetCharacterPerk(ch, "Builder");
SetCharacterPerk(ch, "BasicBattleState");
SetCharacterPerk(ch, "AdvancedBattleState");
SetCharacterPerk(ch, "SelfRepair");
SetCharacterPerk(ch, "InstantRepair");
SetCharacterPerk(ch, "StormProfessional");
SetCharacterPerk(ch, "WindCatcher");
SetCharacterPerk(ch, "SailsMan");
SetCharacterPerk(ch, "Turn180");
SetCharacterPerk(ch, "SailingProfessional");
SetCharacterPerk(ch, "Doctor1");
SetCharacterPerk(ch, "Doctor2");
SetCharacterPerk(ch, "SeaDogProfessional");
SetCharacterPerk(ch, "Energaiser");
SetCharacterPerk(ch, "MapMaker");
RemoveAllCharacterItems(sld, true);
GiveItem2Character(sld, "blade_19");
EquipCharacterbyItem(sld, "blade_19"); // 151012
AddItems(sld, "cartridge", 25);
AddItems(sld, "Spyglass3", 1);
AddItems(sld, "pistol5", 2);
AddItems(sld, "potion2", 25);
AddItems(sld, "cirass4", 1);
EquipCharacterbyItem(sld, "pistol5"); // 151012
EquipCharacterbyItem(sld, "cirass4"); // 151012
EquipCharacterbyItem(sld, "Spyglass3");
LAi_SetCharacterUseBullet(sld, "cartridge");
ChangeCharacterAddressGroup(sld, "FortFrance_tavern_upstairs", "goto", "goto1");
DialogExit();
 
lol thats alot..ok did you back that up i hope so...put the old one back in and add the files i uploaded to the cheat ini...interface\Debuger.c....._LSC_on_off.h...in game the first time will screw up your controls..option reset default..put a officer in navigator slot hit F11..then with the poiter hit f1 in the debugger 20 times hit the X to close not not ok...this will add points to your officer now you can add and subtract points..rinse repeat on any officer
 

Attachments

  • PROGRAM.zip
    9.9 KB · Views: 556
I only add perk, and change skill stats. I post it on so you can see whether I miss something or not. I can replace with the orginal any time I want, I simply don't understand why it's like that. ^_^
So your debugger increase perk point for navigator huh? Neat. ^_^ I'll try it out later. Thanks man. I edit the ship too and it work fine, just the officers are screwed (not sure why)
 
the debuger will give points so you can lvl your officers freely..they just need to be in navagtion spot for it to work they can be removed after..the code points to the officer in that slot
 
added the file as you've instructed, the debugger menu is shown, click F1 panel and got the message "Officer-skipper +1 rang (35 skills)" successfully executed, click X to close. When i check character menu, the navigator doesn't get any increase in rank or perk point. So is there something wrong???
 
not perk points look to the right click on say luck and you can move it up are down..what you are doing is lvling them up and in return they get perk points
 
I've got it, thanks. Can it do the same to the main character? I want to decrease or freeze my rank so I don't have too many pop up quest. I got 1 month to complete the pearl diving quest given by indian chief, False trace quest by an English pirate. I manage to complete pearl diving but fail the false trace quest because as I only have 6 days to complete it. But as I depart and wait near Saint Martin, no Purple ship come and after Januay 7 the quest failed. I even tried to sail to Cartagena to intercept it, but still no sight of the purple ship.
 
ok for carry weight its in rpgUtilite.c you already have that you look for this line.. if (IsCharacterPerkOn(_chref, "Grus")) iBonus = 30;..change 30 to what ever you want..but you need the perk grus
 
yeah, I figured it out and it work, now I have a question about the code line

if (isSelfTypeSkill(_skill))
{
if(CheckAttribute(_chref,"perks.FreePoints_self_exp"))
{
_chref.perks.FreePoints_self_exp = sti(_chref.perks.FreePoints_self_exp) + _addValue;
}
else
{ _chref.perks.FreePoints_self_exp = _addValue;
}
if (sti(_chref.perks.FreePoints_self_exp) >= GetFreePoints_SelfRate(_chref))
{
_chref.perks.FreePoints_self_exp = 0;
if(CheckAttribute(_chref,"perks.FreePoints_self"))
{
_chref.perks.FreePoints_self = sti(_chref.perks.FreePoints_self) + 1;
}
else
{ _chref.perks.FreePoints_ship = 1;
}
if (sti(_chref.index) == GetMainCharacterIndex())
{
Log_SetStringToLog(XI_ConvertString("Personal abilities") + " + 1");
}
}
}
else
{
if(CheckAttribute(_chref,"perks.FreePoints_ship_exp"))
{
_chref.perks.FreePoints_ship_exp = sti(_chref.perks.FreePoints_ship_exp) + _addValue;
}
else
{ _chref.perks.FreePoints_ship_exp = _addValue;
}
if (sti(_chref.perks.FreePoints_ship_exp) >= GetFreePoints_ShipRate(_chref))
{
_chref.perks.FreePoints_ship_exp = 0;
if(CheckAttribute(_chref,"perks.FreePoints_ship"))
{
_chref.perks.FreePoints_ship = sti(_chref.perks.FreePoints_ship) + 1;
}
else
{ _chref.perks.FreePoints_ship = 1;
}
if (sti(_chref.index) == GetMainCharacterIndex())
{
Log_SetStringToLog(XI_ConvertString("Ship abilities") + " + 1");
}
}
}

I can change "chref.perks.FreePoints_self = sti(_chref.perks.FreePoints_self) + 1;" into "chref.perks.FreePoints_ship = sti(_chref.perks.FreePoints_ship) + 1;" Now instead of personal perk point, I get ship perk point instead (it work fine). So my question is can I add "chref.perks.FreePoints_ship = sti(_chref.perks.FreePoints_ship) + 1;" behind "chref.perks.FreePoints_self = sti(_chref.perks.FreePoints_self) + 1;" so I get get both personal and ship perk points whenever I level up personal or ship stat.
If my thinking is correct, it's should be separated by a comma.
 
just back it up and try it ..alot that worked in coas does not work in theo i am finding out they word stuff a tad diffrent..let me know if it worked
 
I'm happy to report it's a success, use this "_chref.perks.FreePoints_ship = sti(_chref.perks.FreePoints_ship) + 1, _chref.perks.FreePoints_self = sti(_chref.perks.FreePoints_self) + 1;" to replace the _chref.perks.FreePoints_self = sti(_chref.perks.FreePoints_self) + 1; and the _chref.perks.FreePoints_ship = sti(_chref.perks.FreePoints_ship) + 1;
And if you want more than 1, change 1 into any number you want,and i mean all the number 1 in this

if (isSelfTypeSkill(_skill))
{
if(CheckAttribute(_chref,"perks.FreePoints_self_exp"))
{
_chref.perks.FreePoints_self_exp = sti(_chref.perks.FreePoints_self_exp) + _addValue;
}
else
{ _chref.perks.FreePoints_self_exp = _addValue;
}
if (sti(_chref.perks.FreePoints_self_exp) >= GetFreePoints_SelfRate(_chref))
{
_chref.perks.FreePoints_self_exp = 0;
if(CheckAttribute(_chref,"perks.FreePoints_self"))
{
_chref.perks.FreePoints_self = sti(_chref.perks.FreePoints_self) + 1;
}
else
{ _chref.perks.FreePoints_ship = 1;
}
if (sti(_chref.index) == GetMainCharacterIndex())
{
Log_SetStringToLog(XI_ConvertString("Personal abilities") + " + 1");
}
}
}
else
{
if(CheckAttribute(_chref,"perks.FreePoints_ship_exp"))
{
_chref.perks.FreePoints_ship_exp = sti(_chref.perks.FreePoints_ship_exp) + _addValue;
}
else
{ _chref.perks.FreePoints_ship_exp = _addValue;
}
if (sti(_chref.perks.FreePoints_ship_exp) >= GetFreePoints_ShipRate(_chref))
{
_chref.perks.FreePoints_ship_exp = 0;
if(CheckAttribute(_chref,"perks.FreePoints_ship"))
{
_chref.perks.FreePoints_ship = sti(_chref.perks.FreePoints_ship) + 1;
}
else
{ _chref.perks.FreePoints_ship = 1;
}
if (sti(_chref.index) == GetMainCharacterIndex())
{
Log_SetStringToLog(XI_ConvertString("Ship abilities") + " + 1");
}
}
}

I also change the penalty on the amour, so no more - 1 endurance or - 20 Stealth. They become bonus instead.
 
Now i'm looking to increase rank, wonder if I can increase my rank exp or just rank and perk point.

case "help_bespoke_bless_stats_1a2":
NextDiag.CurrentNode = "first time";
Log_Info("You've given "+ToStr(COST_BLESS_STATS)+" doubloons. Suddenly, you hear the church bell toll and your head rushes with newfound wisdom...");
Log_Info("+5 Personal Skill Points Added");
PlaySound("interface\important_item.wav");
RemoveItems(pchar, "gold_dublon", COST_BLESS_STATS);
pchar.perks.FreePoints_self = sti(pchar.rank) + 1;
DialogExit();
break;

I'll test it tomorrow
 
I failed with the rank since it did nothing, but I found this line "LAi_SetImmortal(ch, true);", it seem to work on main character by adding it to RPGUtilite.c I was thinking to apply it to some of the officer like the indian and the navigator we got from the story, you know where I can edit those two Nita??
PS: I found the place to edit money of merchant. They are at script folder utils.c Also can increase doubloon available in the bank.
 
Last edited:
@Nelsonliang I noticed one minor problem you were having trying to add the perks. Example : SetCharacterPerk(ch, "Carpenter"); needs to be changed to SetCharacterPerk(sld, "Carpenter");.... Found this out myself by trial and error. the 'sld' is for changing NPCs and the 'ch' is for changing Charles.... One other thing more of a heads up. Setting the Immortal flag makes the ship Charles is on immortal too. You will take sail & rigging damage in storms but not from battle. Your crew is safe as well, you might hear people dying on your ship but they aren't while you're exchanging cannon fire. Once you board though it's a different story, they can die just like normal.
 
I was wondering if anyone had a list of Ship.Type names. I really like this mod but I'd much rather use another ship other than the Spanish man of war for the warship option from the priest/monk.
 
Get the ship type from ships_init.c, then you can change it. Search for the line pchar.Ship.Type = GenerateShipHand in the Benua.c and change the type of ship you desire, you can also change the stats too.
 

Attachments

  • ships_init.c
    124.1 KB · Views: 290
Thanks Mika, I only want to have my loyal officer not to get killed, so I'm looking for the file in which to edit their stats and set them immortal, because in boarding action, my body guard always got surrounded and kill with ease.

I use the line LAi_SetImmortal(ch, true); to set my character immortal (ship still take damage from battle and storm(, what about you? what did you use to make your ship immortal???
 
There is actually a line inside the section for both the french guy and the russian guy. It's toggled to false by default. I don't think that I did anything special to make the ship immortal. I tested it out by going into the harbor in the starting town and attacking the fort, fired a couple salvos at the fort then let the ship just sit there for about a hour of real time... No crew died and the ship didn't take any damage.

How are you adding the immortal flag to your character? I've got it set in my game that as soon as I get released from the jail it gets set. I don't bother going to the priest to set it.
Also this might help with setting your perks too. I added it to what happens to my character when he gets released from jail.

pchar.perks.FreePoints_ship = sti(pchar.perks.FreePoints_ship) + 50;
pchar.perks.FreePoints_self = sti(pchar.perks.FreePoints_self) + 30;

I really wish I could edit the indian guy. He gets swarmed and dies.
 
Last edited:
Sorry didn't see it when I 1st looked. Thanks so much for the ship file. It was driving me nuts trying to find the one ship that I wanted to replace the spanish warship with. Where do I need to stick the file if I want to make any changes?
 
Back
Top