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

Discussion Some of the general feedbacks

smrtwhkd

Master Mariner
I have spent many hours in the game for the past few weeks. Already finished one storyline and well-into the 2nd one. Just some of the comments and feedbacks:

1. This mod IS GREAT. Feel like just bought a new game, rather than simple modification to the original game

2. Some inconsistency to ship tiers. Some of the ships such as "fast war galleon" and "black pearl" have very high stats and spacious battleship-like captain cabins, but are classified at Tier 4. These ships can easily overpower some of the Tier 3's. Some of the powerful frigates such as "The United States" class should be thrown into Tier 2 and be given a first-class captain cabin. They are much larger warship and can afford a bit luxury =). Haven't you noticed the only tier that is missing on Vanderdecken's roster is Tier 2? My thoughts are frigates(30guns) should be T4, heavy frigates(40guns+) should be T3 and "super" frigate(50guns+) should be T2. One defining characteristic for T2 and T1 are spacious cabins

3. Town size vs visible population: Some of the big towns such as Havana and Santiago are sparsely populated while small towns such as Philipsburg are overcrowded. I know big towns already eat up a lot of memory and perhaps an increased population in big towns would severely degrade game performance.

4. Very difficult to level up "Melee" skill in current game context. I don't know all the contributing factors to Melee skill advance. But it looks like the number of hits your sword lands on an enemy. However, as your progress, the number of hits each percentage point requires goes up. But the number of melee encounters goes down as the number of unfinished quests winds down. Unless you intentionally go jungle or grind dungeons repeatedly, there are very few opportunities for you to level up your melee. In both of my storylines, melee is the one of the few that couldn't reach 10 without being supplemented by items. Maybe we need something additional for melee advance. Maybe for each foe you killed (you land the killing blow), you earn a set of bonus percentage points increase (like 10% or 5% for each foe)

5. The number of crew (non-officer) on deck. When the ship is docked or moored, I often find the number of crew patrolling on deck is lacking. I often need to flip through several parts of the ship multiple times to find a crew to ask for time. I believe this may be depended on ship types. But overall we need more "non-officer" crew on deck. Or maybe, we can add "ask time" option to officers as well.

6. Need more quests that can help you mend the relation with pirates. I know you can suddenly become a super pirate favorite by doing crazy things, but sometimes you don't want to become an enemy to everyone while hoping to reduce the hostility with pirates so that you can access their shipyards and stores. Maybe we can add some relation bonus to some of the existing quests. Maybe each time you release a pirate captive you reduce some hostility. Each time you have successful smuggling trade, you earn some points with pirates.

These are just some of my personal thoughts and opinions to make the game play more enjoyable.
 
This mod IS GREAT. Feel like just bought a new game, rather than simple modification to the original game
Thanks for saying that! Really appreciate it. :bow

Some inconsistency to ship tiers. Some of the ships such as "fast war galleon" and "black pearl" have very high stats and spacious battleship-like captain cabins, but are classified at Tier 4. These ships can easily overpower some of the Tier 3's. Some of the powerful frigates such as "The United States" class should be thrown into Tier 2 and be given a first-class captain cabin. They are much larger warship and can afford a bit luxury =). Haven't you noticed the only tier that is missing on Vanderdecken's roster is Tier 2? My thoughts are frigates(30guns) should be T4, heavy frigates(40guns+) should be T3 and "super" frigate(50guns+) should be T2. One defining characteristic for T2 and T1 are spacious cabins
Ship Tier is linked directly to the maximum crew number; and nothing else.
We kept fiddling with those numbers as they'd never quite be right until we got fed up and @Armada suggested simplifying the hell out of it.

If you think a ship has a too small cabin though, that's easily changed in ships_init.c .

Town size vs visible population: Some of the big towns such as Havana and Santiago are sparsely populated while small towns such as Philipsburg are overcrowded. I know big towns already eat up a lot of memory and perhaps an increased population in big towns would severely degrade game performance.
While it would make sense, those two variables aren't at all related.

There are two types of residents walking around: fixed ones and random ones.
More fixed ones could be added in the character init files.
The random ones are generated on the fly and their number is probably linked to the amount of "random spots" (known as "locators") available in a location model.

Very difficult to level up "Melee" skill in current game context. I don't know all the contributing factors to Melee skill advance. But it looks like the number of hits your sword lands on an enemy. However, as your progress, the number of hits each percentage point requires goes up. But the number of melee encounters goes down as the number of unfinished quests winds down. Unless you intentionally go jungle or grind dungeons repeatedly, there are very few opportunities for you to level up your melee. In both of my storylines, melee is the one of the few that couldn't reach 10 without being supplemented by items. Maybe we need something additional for melee advance. Maybe for each foe you killed (you land the killing blow), you earn a set of bonus percentage points increase (like 10% or 5% for each foe)
How often do you board enemy ships? I imagine that's a regularly occurring kind of melee encounter...

You can talk to your crew on deck and ask them for some training excercises.

Whatever you focus your efforts on at the low levels is what you quickly develop.
Once you reach level 5 (or was it 10?), skill increases should slow down substantially.

If you're having a hard time surviving fights, take some good fighters with you ashore.

The number of crew (non-officer) on deck. When the ship is docked or moored, I often find the number of crew patrolling on deck is lacking. I often need to flip through several parts of the ship multiple times to find a crew to ask for time. I believe this may be depended on ship types. But overall we need more "non-officer" crew on deck. Or maybe, we can add "ask time" option to officers as well.
That number is probably also determined by the amount of "random locators" in a ship deck location.

Need more quests that can help you mend the relation with pirates. I know you can suddenly become a super pirate favorite by doing crazy things, but sometimes you don't want to become an enemy to everyone while hoping to reduce the hostility with pirates so that you can access their shipyards and stores. Maybe we can add some relation bonus to some of the existing quests. Maybe each time you release a pirate captive you reduce some hostility. Each time you have successful smuggling trade, you earn some points with pirates.
On the high seas, there are two types of pirating: the regular kind and the REALLY EVIL kind.
Regular would be if you hoist a pirate flag and then start boarding or sinking enemy ships.
This will slightly reduce your points with the nations you attack while slightly increasing your points with the pirates.
As long as you do this only with actual enemies (and not nations that are technically your friends) and only occasionally, you should be able to get outside the enemy range with the pirates.
If you also do things that give you points with your friendly nations, you shouldn't end up at war with them either.
 
If you think a ship has a too small cabin though, that's easily changed in ships_init.c .
By the looks of it, several ships were changed to give them smaller cabins and boarding decks.

While it would make sense, those two variables aren't at all related.

There are two types of residents walking around: fixed ones and random ones.
More fixed ones could be added in the character init files.
The random ones are generated on the fly and their number is probably linked to the amount of "random spots" (known as "locators") available in a location model.
Adding more characters probably also means adding more locators where they can be placed. I'm not so sure that the number of random walkers is based on the number of locators. @Jack Rackham and I went through this for Santiago - he created a bunch of new locators and I added some more permanent residents to use a couple of them, along with a new street trader and the archipelago's only outdoor blacksmith. There does not seem to be any increase in the number of random walkers and none appear on the new locators at the far end of town.

How often do you board enemy ships? I imagine that's a regularly occurring kind of melee encounter...
And is probably why I'm at melee 10 by the end of some storylines. :duel: Get decent armour and weapons for yourself, your officers and preferably your boarders as well - they'll use any weapons or armour that you leave in the ship's locker. Start by boarding merchant ships as their crews are weaker.

You can talk to your crew on deck and ask them for some training excercises.
Which leads neatly onto the problem with crew not showing up... Anyway, if you want to practice melee, go into a dungeon. The denizens aren't as tough as thugs in the jungle and you can loot their weapons.

If you're having a hard time surviving fights, take some good fighters with you ashore.
If you're having a hard time surviving fights, do not ask the crew to join you ashore! This causes more combat encounters. But do take officers with you. At the very least, they'll keep some enemies occupied until you can deal with them, as opposed to you having to take on a whole gang of thugs by yourself.

That number is probably also determined by the amount of "random locators" in a ship deck location.
I'm not so sure. Sometimes I can find random crew, sometimes I can't - on the same deck of the same ship!

On the high seas, there are two types of pirating: the regular kind and the REALLY EVIL kind.
Regular would be if you hoist a pirate flag and then start boarding or sinking enemy ships.
This will slightly reduce your points with the nations you attack while slightly increasing your points with the pirates.
As long as you do this only with actual enemies (and not nations that are technically your friends) and only occasionally, you should be able to get outside the enemy range with the pirates.
If you also do things that give you points with your friendly nations, you shouldn't end up at war with them either.
The quickest way to make friends with the pirates without upsetting other nations is to visit the governors of Tortuga (alias La Tortue) or Turks Island. Bring money. For a price, they'll set pirates to be neutral to you. They don't enlist you into the Brotherhood, which is what turns everyone hostile - you do that at Nevis Pirate Settlement.
 
I went to talk to the governor at Turk, but there is no conversation option for reducing hostility with money. That's why I am frustrated with not being able to use pirate shipyards. Btw, how many pirate shipyards are there? I only know the ones at Turk and Nevis. Bonaire and Smugglers lair on La Grenada don't have shipyards, correct? Another few suggestions:
1. can we at least reduce the number of officers in crew quarter? Every time I go there, it seems all your officers are crowded there. At late game when you have more officers, that place is so overcrowded and FPS really tanks.
2. For female main characters such as Helen Ardent, can we take away her conversation option to sleep with Tavern girls? I find it sometimes screw up with the effort of getting patrol schedule with soldiers. One time, the guy gave me a really wide time interval. Also, I am sure Helen doesn't need sample charms from them ;)
3. Can we put in the game some more swords that are better than or at least on par with Nicholas Sharp? It seems once you complete that quest you get the end game sword. That quest is not difficult at all. Having one variety of end sword is kinda boring. I would suggest making Drake's sword better than Nicholas Sharp. Moulin's Father quest is much more difficult and takes a lot more effort than "Toff's daughter". Or make some bad ass enemies to drop good swords.
 
2: Have a look at this thread:
Improving gameplay for female player characters

3: Drake's sword is better than Sharp's sword. It might not have quite such good stats but it never wears out (and if you're not already up to Melee 10, it gives a bonus to your Melee skill). Even when I do have Melee 10, I use Drake's sword in preference to Sharp's sword. For another nifty sword, find your way to Isla de Muerte and look for a beach inhabited by Blackbeard - make sure you have a borgiablade first...

Additional: La Tortue is officially French. However, it tolerates pirates. If you approach La Tortue port while under a pirate flag, the fort will not shoot at you. (If you've already been there or if you have a map of Hispaniola, and you use the "Sail-To" command, La Tortue will appear as a fort because France is hostile to pirates, but you can "Sail-To" La Tortue fort and not be attacked.) If you join the Pirate Brotherhood at Nevis, the pirates take over La Tortue, which becomes Tortuga. (And if you play the "Hoist the Colours" storyline, it is pirate Tortuga right from the start.)
 
Last edited:
Adding more characters probably also means adding more locators where they can be placed. I'm not so sure that the number of random walkers is based on the number of locators. @Jack Rackham and I went through this for Santiago - he created a bunch of new locators and I added some more permanent residents to use a couple of them, along with a new street trader and the archipelago's only outdoor blacksmith. There does not seem to be any increase in the number of random walkers and none appear on the new locators at the far end of town.
PROGRAM\Loc_ai\LAi_monsters.c search for 'maxMonsters' in 'void LAi_CreateMonsters'.

Looks like the maximum number of random citizens in a town location is either 8 at day or 4 at night:
Code:
    if(location.type == "town")
   {
       if(IsDay()) // NK
       {
           //if(maxMonsters > LAi_numloginedcharacters /2) maxMonsters = LAi_numloginedcharacters/2; // NK
           if(maxMonsters > 8) maxMonsters = 8;
           //if(20 - LAi_numloginedcharacters >=4 && maxMonsters < 4) maxMonsters = 4; // NK
       }
       else // NK -->
       {
           maxMonsters = maxMonsters/2;
           if(maxMonsters > 8) maxMonsters = 8;
           if(20 - LAi_numloginedcharacters >=4 && maxMonsters < 4) maxMonsters = 4;
       }
       // NK <--
   }

The total number of characters is between 20 and 26 maximum; depending on whether "Crewmembers on Shore" is active.

The quickest way to make friends with the pirates without upsetting other nations is to visit the governors of Tortuga (alias La Tortue) or Turks Island. Bring money. For a price, they'll set pirates to be neutral to you. They don't enlist you into the Brotherhood, which is what turns everyone hostile - you do that at Nevis Pirate Settlement.
Joining the pirates officially is handled literally in the same way as if you "joined their navy". :rofl

(Who wrote it like that?!?!? Yep, that would be me...)

I went to talk to the governor at Turk, but there is no conversation option for reducing hostility with money.
That's a bit odd; his default dialog file is Nathan Kell (GOV)_dialog.c and his first dialog case should either explain the Relation Agent functionality or allow you to use it:
Code:
       case "First time":
           Dialog.defAni = "dialog_stay2";
           Dialog.defCam = "2";
           Dialog.defSnd = "dialogs\0\017";
           Dialog.defLinkAni = "dialog_1";
           Dialog.defLinkCam = "1";
           Dialog.defLinkSnd = "dialogs\woman\024";
           Dialog.ani = "dialog_stay2";
           Dialog.cam = "1";
           
           if(Pchar.quest.RelationAgentMet == "0")
           {
               Dialog.snd = "voice\REDI\REDI001";
               d.Text = DLG_TEXT[0] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[1];
               Link.l1 = DLG_TEXT[2];
               Link.l1.go = "Tutorial";
               NPC_Meeting = "1";
               Pchar.quest.RelationAgentMet = "1"; // NK
           }
           else
           {
               if(NPChar.quest.meeting == "0")
               {
                   Dialog.snd = "voice\REDI\REDI002";
                   d.Text = DLG_TEXT[3];
                   Link.l1 = DLG_TEXT[4] + Pchar.name + DLG_TEXT[5];
                   Link.l1.go = "Service";
                   Link.l2 = DLG_TEXT[6];
                   Link.l2.go = "Exit";                   
               }
               else
               {
                   Dialog.snd = "voice\REDI\REDI003";
                   d.Text = DLG_TEXT[7]; // NK
                   Link.l1 = DLG_TEXT[8];
                   Link.l1.go = "Service";
                   Link.l2 = DLG_TEXT[9];
                   Link.l2.go = "exit";

               }
           }

       break;
What dialog are you getting from him instead?
 
Another thing has just occurred to me. Adding lots of new characters, whether random walkers or permanent residents, may break things. There's a limit of 32 characters maximum in any location. Tortuga has lots of characters wandering around which is why a lot of quests which go there need to 'vcskip' it, otherwise quest characters fail to show up.
 
Another thing has just occurred to me. Adding lots of new characters, whether random walkers or permanent residents, may break things. There's a limit of 32 characters maximum in any location. Tortuga has lots of characters wandering around which is why a lot of quests which go there need to 'vcskip' it, otherwise quest characters fail to show up.
Increasing the maximum TOTAL number by the same amount as the maximum per-location number should not cause any more or less quests to break.
But performance might be a thing. Certainly when you just load into a new location; and Levelling is still crawling through all characters in the scene...
 
I have one idea for town population if the performance is a issue. We can have in the "game preference" 2 options: performance and max quality. Let the player pick what they want. If you have low performance rig, you can go for performance then the towns would have less people wondering around. If you have very good machine then you can afford to have more people.

Btw, I changed the cabin from "Cabin_medium" to "Cabin3", but I don't see any changes to my ship. I mean the change would only affect new ship purchase? Something that's already purchased would not be affected?

-------------------------------------------------------------------------
// USS Constitution (United States class Frigate) by ZarethPL
// Further model and texture work by Captain Armstrong and Armada; rigging by Hylie Pistof
// <SWS - Willemstad Builders' Trials Winter 09 S/N 016> (WBT4)
//-------------------------------------------------------------------------
makeref(refShip,ShipsTypes[n]);
n++;
refShip.Name = "USS_Constitution";
refShip.All = "Frigate1";
refShip.nation = AMERICA;
refShip.id = refShip.Name;
refShip.Walk = "Constitution";
refShip.SName = "Constitution";
refShip.Class = 4;
refShip.Cannon = CANNON_TYPE_LONG_LBS24;
refShip.MaxCaliber = 24;
refShip.Weight = Tonnes2CWT(2200);
refShip.Capacity = 2500;
refShip.CannonsQuantity = 56;
// NK cannon qtys 05-04-18 -->
refShip.Cannons.Borts.cannonf.qty = 2; // Chasers added by Armada
refShip.Cannons.Borts.cannonb.qty = 2;
// NK <--
refShip.MaxCrew = 540;
refShip.MinCrew = 108;
refShip.Price = 282000;
refShip.HP = 5500;
refShip.SP = 200;

refShip.BigPicTexName = "SHIPS4"; //Armada
refShip.BI.Tex = 14;
refShip.BI.Pic = 8;
refShip.QDeck = "ShipDeck1";
refShip.CannonsDeck = 1;
refShip.CargoHold = 1;
refShip.Cabin = "Cabin3";
 
...Btw, I changed the cabin from "Cabin_medium" to "Cabin3", but I don't see any changes to my ship. I mean the change would only affect new ship purchase? Something that's already purchased would not be affected?...
Press F11 while in the game and away from the cabin then check again.
 
PROGRAM\Loc_ai\LAi_monsters.c search for 'maxMonsters' in 'void LAi_CreateMonsters'.

Looks like the maximum number of random citizens in a town location is either 8 at day or 4 at night:
Code:
    if(location.type == "town")
   {
       if(IsDay()) // NK
       {
           //if(maxMonsters > LAi_numloginedcharacters /2) maxMonsters = LAi_numloginedcharacters/2; // NK
           if(maxMonsters > 8) maxMonsters = 8;
           //if(20 - LAi_numloginedcharacters >=4 && maxMonsters < 4) maxMonsters = 4; // NK
       }
       else // NK -->
       {
           maxMonsters = maxMonsters/2;
           if(maxMonsters > 8) maxMonsters = 8;
           if(20 - LAi_numloginedcharacters >=4 && maxMonsters < 4) maxMonsters = 4;
       }
       // NK <--
   }
No, the maximum is 8, day or night. Then, if there is enough room for at least 4 more characters and maxMonsters is currently less than 4, it's set to 4. The same code is in the day section but commented out.

There would need to be a switch based on location. Doubling the number of random walkers in Havana town centre would make it a bit more lively. Doubling the number of random walkers in Havana port would probably make it overcrowded. The town centre is one of the new, large, ex-VCO locations, while the port is a clone of Port Royale's with some added features. So we only want to increase the maximum in the town centres for Havana, Santiago, Cartagena, and maybe Santo Domingo, and not necessarily the same maximum for all of them.

And the town centres will probably then need a few more "goto" locators so that the new walkers don't spawn on top of each other.
 
I changed the cabin from "Cabin_medium" to "Cabin3", but I don't see any changes to my ship. I mean the change would only affect new ship purchase? Something that's already purchased would not be affected?
You need to Reinit first (F11, as @DavyJack already mentioned).
Then new ships of that type generated afterwards would be affected.
So indeed the ship you already have would remain as it is.

You can use console to GiveShip2Character(pchar.ship.type and then you get a brand new copy of the ship you already have.
Fully repaired and with the new cabin.

No, the maximum is 8, day or night. Then, if there is enough room for at least 4 more characters and maxMonsters is currently less than 4, it's set to 4. The same code is in the day section but commented out.
I simplified the meaning a bit.
It should be true that you get less random characters at night than during day.

There would need to be a switch based on location. Doubling the number of random walkers in Havana town centre would make it a bit more lively. Doubling the number of random walkers in Havana port would probably make it overcrowded. The town centre is one of the new, large, ex-VCO locations, while the port is a clone of Port Royale's with some added features. So we only want to increase the maximum in the town centres for Havana, Santiago, Cartagena, and maybe Santo Domingo, and not necessarily the same maximum for all of them.
Exactly true.
Maybe link it to location model? Instead of ID?
Or add a new attribute for "max monsters" to the location init entries?
If it's not defined, then use the current default. If it is, then use the new value instead.

And the town centres will probably then need a few more "goto" locators so that the new walkers don't spawn on top of each other.
Depends on how many were already added; but could very well be.
 
Exactly true.
Maybe link it to location model? Instead of ID?
Or add a new attribute for "max monsters" to the location init entries?
If it's not defined, then use the current default. If it is, then use the new value instead.

Nice idea but it doesn't work. I tried it and soon found that it doesn't matter what value you assign to "maxMonsters" because the real limit is the line 'int maxMonsters = 20 - LAi_numloginedcharacters;'. There will be at least two soldiers, some permanent citizens, maybe a street trader or two, plus you and any officers in your shore party. Add that lot together for "LAi_numloginedcharacters" and you're lucky if "maxMonsters" is even as high as 8. You can easily check this. Edit "globals.c", set "DEBUGINFO" to 1, start a new game (or put 'DEBUGINFO = 1;' into "console.c"), and whenever you enter a new location you get a display of total characters before monsters are added, along with the value of "maxMonsters" before the day cap of 8 or night cap of 4 is applied.

Havana town centre is the best case. 6 soldiers, 3 citizens, no street traders, plus you, so if you didn't bring any officers then "maxMonsters" can go up to 10, which means there can be 2 more random walkers than normal - good luck finding them! At the other end of the scale, Santiago town center has 6 soldiers, 6 citizens, a street trader and an outdoor blacksmith, plus you without officers is a total of 15 - there can never be more than 5 random walkers, and only 2 if you brought a full party. (It used to have 3 citizens. @Jack Rackham added some new locators and I added some new citizens plus the trader and blacksmith in the hope of making the town look more active because we hadn't found how random walkers were generated. The main effect is that the new citizens start off at the far end of town, which was previously deserted.)

So unless the absolute limit of 32 characters can be raised, we're probably stuck with large town locations looking sparsely populated.
 
So unless the absolute limit of 32 characters can be raised, we're probably stuck with large town locations looking sparsely populated.
What limit of 32 characters is that?

My first thought would be to swap this:
Code:
int maxMonsters = 20 - LAi_numloginedcharacters;
For this:
Code:
int maxMonsters = 30 - LAi_numloginedcharacters;
For 10 more.
 
What limit of 32 characters is that?
The one which causes quest characters not to appear at Tortuga unless it has a vcskip. If a 33rd character tries to spawn, it fails, and there's a message in "compile.log" about too many characters.

My first thought would be to swap this:
Code:
int maxMonsters = 20 - LAi_numloginedcharacters;
For this:
Code:
int maxMonsters = 30 - LAi_numloginedcharacters;
For 10 more.
And then the town in question will probably have the same problem as Tortuga...
 
The one which causes quest characters not to appear at Tortuga unless it has a vcskip. If a 33rd character tries to spawn, it fails, and there's a message in "compile.log" about too many characters.
Another one of which we don't know where it is then...?

Hmm...
If it's not that...
Could it be hardcoded on the engine side?
That would be unfortunate... :facepalm
 
Could it be hardcoded on the engine side?
That would be unfortunate... :facepalm
It seems that it is indeed the case.
I tried my best to fix the PROGRAM code to support higher numbers.
But as soon as character 33 is attempted to load, it triggers:
Code:
RUNTIME ERROR - file: characters\characters.c; line: 134
Cant create class: NPCharacter

Still... I ended up "cleaning up" the code a little bit more.
(And adding some random comments here and there.)

So for @Grey Roger's attention: here is some stuff of mine for you to look at. :doff

Main change: all relevant '32' numbers were recoded to use the #define @konradk apparently already started adding for that purpose.
Unfortunately this only served to prove once and for all that we cannot get around this one.
Unless someone conjures up an engine upgrade one day; or figures out how to HEX-edit the MODULES folder to increase the number on that side too. :facepalm
 

Attachments

  • PROGRAM_PB.7z
    145.3 KB · Views: 181
Unless someone conjures up an engine upgrade one day; or figures out how to HEX-edit the MODULES folder to increase the number on that side too. :facepalm

It is hardcoded into the engine.

Presumably, 2.0 uses 32, but 2.8 looks like it was limiting to 64 (that is what I found in the 2.8 source)

So, today I just eliminated that constraint for Maelstrom and one can add as many characters as they want during a location load, assuming the limit is also taken out of the scripts (they still all contain 32 or 64, as originally written). Though I supposed a log entry might be in order if it exceeds 128...but do big deal, it will allow as many as desired, but of course machine limitations might grind things down.
 
It is hardcoded into the engine.
Thanks for confirming! :woot

Presumably, 2.0 uses 32
Yep; that's for certain now.

but 2.8 looks like it was limiting to 64 (that is what I found in the 2.8 source)
64 is a nice number!

So, today I just eliminated that constraint for Maelstrom and one can add as many characters as they want during a location load, assuming the limit is also taken out of the scripts (they still all contain 32 or 64, as originally written). Though I supposed a log entry might be in order if it exceeds 128...but do big deal, it will allow as many as desired, but of course machine limitations might grind things down.
Sounds like a pretty cool upgrade. :onya

@konradk and me replaced the hardcoded 32's on the engine side with a variable 'MAX_LOGINED_CHARACTERS_IN_LOCATION' .
I think it's mainly limited to these four files that I assume CoAS has too:
characters_login.c
LAi_login.c
LAi_monsters.c
LAi_utils.c

In case it helps you, attached are the most recent copies of those files.
If you look for all instances of 'MAX_LOGINED_CHARACTERS_IN_LOCATION', you can probably quickly find what changes to make to the CoAS PROGRAM folder. :doff

(PotC:NH also has it in CCCFunctions.c, quests_common.c and quests_side.c, but I expect that wouldn't apply for you.)
 

Attachments

  • LAi_utils.c
    23.8 KB · Views: 173
  • LAi_monsters.c
    31.4 KB · Views: 211
  • LAi_login.c
    8.7 KB · Views: 159
  • characters_login.c
    11 KB · Views: 171
It seems that it is indeed the case.
I tried my best to fix the PROGRAM code to support higher numbers.
But as soon as character 33 is attempted to load, it triggers:
It is hardcoded into the engine.

Presumably, 2.0 uses 32, but 2.8 looks like it was limiting to 64 (that is what I found in the 2.8 source)
Shame, even of it was somewhat expected.

Still... I ended up "cleaning up" the code a little bit more.
(And adding some random comments here and there.)

So for @Grey Roger's attention: here is some stuff of mine for you to look at. :doff

Main change: all relevant '32' numbers were recoded to use the #define @konradk apparently already started adding for that purpose.
Unfortunately this only served to prove once and for all that we cannot get around this one.
Unless someone conjures up an engine upgrade one day; or figures out how to HEX-edit the MODULES folder to increase the number on that side too. :facepalm
So, today I just eliminated that constraint for Maelstrom and one can add as many characters as they want during a location load, assuming the limit is also taken out of the scripts (they still all contain 32 or 64, as originally written). Though I supposed a log entry might be in order if it exceeds 128...but do big deal, it will allow as many as desired, but of course machine limitations might grind things down.
At least two good things came out of this. :onya
 
Back
Top