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

Fixed Rewrite Musket on Shoulder Code

Could it be that one soldier not have fired yet? If so it's correct with the musket still on the hip.
 
Could it be that one soldier not have fired yet? If so it's correct with the musket still on the hip.
Indeed it does seem like it only switches on the first time firing and sometimes they just don't fire even if I try to convince them to do so by running away.
 
I have tested a lot by fighting soldier guards. They have always fired if they can get a
ok free angle to their target. Me. I'll test your file changes soon.
 
Looking at Wikipedia articles on the wheellock, snaphance[/u] and flintlock, the impression I get is that the wheellock should be very rare and very expensive in "Early Explorers" and "Spanish Main", and non-existent in later periods. Even in the late 16th century, Francis Drake's time, it was becoming obsolete. The mechanism was tricky to build, requiring a highly skilled gunsmith, which is why it would be expensive, and this combined with its obsolescence would also make it rare. Loading time should be longer than a flintlock because the wheel would need to be wound. I wouldn't expect Francis Drake to have used one, and a pair of them wouldn't be starting equipment for anyone - perhaps use a pair of wheellocks as a quest reward, or make it Clint Eastwood's weapon in "Early Explorers" and possibly "Spanish Main".

The snaplock and snaphance were earlier mechanisms similar to the flintlock. These would probably be more common than the wheellock in "Early Explorers" and "Spanish Main", and are most likely what Francis Drake would have been carrying. The snaplock and snaphance began to replace the wheellock in the 1540's.

Pirate guards should not have more advanced weapons than other guards. New weapons would have been designed in Europe, brought to the Caribbean by their forces or by people travelling from Europe, and so should be in service with soldiers or sea-going pirates before they get to pirate guards. If anything, I'd expect pirate guards to be using arquebuses while other guards are using snaphances or possibly wheellocks, though wheellocks were not mass-produced for general military use.

Wet powder was of more concern to a matchlock. Later weapons had a pan cover to help keep loaded powder dry. Beyond that, getting the powder into the weapon during rain would probably have been equally difficult for all weapons until cartridges were invented.
This is the way the weapons are given to town guards now:
Code:
  switch(GetCurrentPeriod())
   {
     case PERIOD_EARLY_EXPLORERS:
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade6";                 // ARF: Schiavona {pirate sword} (not available after colonial power)
         SoldierGun  = "pistol13";                 // JRH: Short wheellock musket
       }
       else
       {
         switch(iNation)
         {
           case ENGLAND:   SoldierBlade = "blade22";   break;   // ARF: Corsair's Pride (available all periods but guards get earlier)
           case FRANCE:   SoldierBlade = "blade9";   break;   // ARF: French Admiralty Rapier (not available after golden age of piracy)
           case SPAIN:     SoldierBlade = "blade16";   break;   // ARF: Tizona (not available after golden age of piracy)
           case PORTUGAL:   SoldierBlade = "blade15";   break;   // ARF: Iberian Longsword (not available after golden age of piracy)
           case HOLLAND:   SoldierBlade = "blade23";   break;   // ARF: Dutch Admiralty Sword (available all periods but guards get earlier)
           case AMERICA:   SoldierBlade = "blade10";   break;   // ARF: piranha {no faction} (not available after golden age of piracy anyway AMERICA doesnt exist early)
           // default:
           SoldierBlade = "blade10";               // ARF: hunting sword (all periods available) only for "non regular" nation
         }
         SoldierGun  = "Arguebuse";
       }
     break;
     case PERIOD_THE_SPANISH_MAIN:
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade6";                 // ARF: Schiavona {pirate sword} (not available after colonial power)
         SoldierGun  = "pistol13";
       }
       else
       {
         switch(iNation)
         {
           case ENGLAND:   SoldierBlade = "blade22";   break;   // ARF: Corsair's Pride (available all periods but guards get earlier)
           case FRANCE:   SoldierBlade = "blade9";   break;   // ARF: French Admiralty Rapier (not available after golden age of piracy)
           case SPAIN:     SoldierBlade = "blade16";   break;   // ARF: Tizona (not available after golden age of piracy)
           case PORTUGAL:   SoldierBlade = "blade15";   break;   // ARF: Iberian Longsword (not available after golden age of piracy)
           case HOLLAND:   SoldierBlade = "blade23";   break;   // ARF: Dutch Admiralty Sword (available all periods but guards get earlier)
           case AMERICA:   SoldierBlade = "blade10";   break;   // ARF: piranha {no faction} (not available after golden age of piracy anyway AMERICA doesnt exist early)
           // default:
           SoldierBlade = "blade10";               // ARF: hunting sword (all periods available) only for "non regular" nation
         }
         SoldierGun  = "Arguebuse";
       }
     break;
     case PERIOD_GOLDEN_AGE_OF_PIRACY:                 // JRH: Musket for Golden Age of Piracy & Colonial Powers
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "blade_mKnife";
         SoldierGun  = "pistolmket";
       }
     break;
     case PERIOD_COLONIAL_POWERS:                   // JRH: Musket for Golden Age of Piracy & Colonial Powers
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "blade_mKnife";
         SoldierGun  = "pistolmket";
       }
     break;
     case PERIOD_REVOLUTIONS:                     // JRH: Bayonet Musket for Revolutions & Napoleonic
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "bladeX4";
         SoldierGun  = "pistolmketB";
       }
     break;
     case PERIOD_NAPOLEONIC:                       // JRH: Bayonet Musket for Revolutions & Napoleonic
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "bladeX4";
         SoldierGun  = "pistolmketB";
       }
     break;
   }
I should say this is more historically accurate than it was before these updates, but of course if you have any specific suggestions on how to tweak this further, that might help. :doff
 
I have checked your changes Pieter and
thanks for finding my miss of musketbullets in per 1 - 2. :onya
 
The reason for

Code:
if(GunCurCharge == 1.0)
                {
   
                    }
                else
                {

was that I didn't get it to work with what you suggest.

Code:
if(GunCurCharge < 1.0)
                {

But I'll test it ingame.
 
The reason for

Code:
if(GunCurCharge == 1.0)
                {
  
                    }
                else
                {

was that I didn't get it to work with what you suggest.

Code:
if(GunCurCharge < 1.0)
                {

But I'll test it ingame.
Should technically do the same. But you never do know with this crazy game. :facepalm
 
I have found why officers with muskets not always behave.
Those that have fired were mostly ok because code from LAi_events.c

Those that not fired had no code for resetting.
The place in LAi_fight.c where NPC:s sheath their blades was not used for officers.
(But in the same file where they draw their blades is ok for all.)

New place for officers in LAi_officers.c
Now this works in 93,4 %. (The reset via pchar sheath his blade works always)
 

Attachments

  • muskets add.7z
    2.5 KB · Views: 132
This is the way the weapons are given to town guards now:
<code deleted>
I should say this is more historically accurate than it was before these updates, but of course if you have any specific suggestions on how to tweak this further, that might help. :doff
No soldiers ought to be using wheellocks. Those were rare and expensive; if any military unit had them at all, it was probably an elite unit of some sort, not town guards. Pirates certainly wouldn't have got them before national soldiers. So I'd just make "Arguebuse" the default weapon for all town guards in "Early Explorers" and "Spanish Main". Maybe use wheellocks for quest soldiers, some specific characters, and perhaps make them available but rare for ship's crews - the captain, in particular, might be rich enough to afford a wheellock pistol. They could also be available for sale, rare and very expensive, preferably only from the gunsmiths.
 
No soldiers ought to be using wheellocks.
They are not.

So I'd just make "Arguebuse" the default weapon for all town guards in "Early Explorers" and "Spanish Main".
If you mean pirate guards fine with me. Soldiers are already equipped with Arguebuse.

Are the wheellock pistols actually substantially better in stats than the Arguebuse is?
No, the Arguebuse is the best of these early weapons.
 
Last edited:
I thought earlier of leaving the short wheellock musket and the fine pair of wheellocks as
possible future quest (reward) guns. That would mean only the Arguebuse and the simple wheellock pistol
are available for more common use. (Like sold etc)
 
So the "Short wheellock musket" would go unused by any guards and the pirates get an Arguebuse as well?
Would certainly be the simplest solution. But where would it be put to use then?

Which one is the "Simple Wheellock Pistol" again? Can't remember now. :facepalm

Also @Jack Rackham: Did you see the various lines I commented out in quests_common.c?
I thought that wouldn't make a difference, but have you been able to confirm that it still works like you think it should?
 
The arquebus was a longarm, an early form of musket. I'd expect it to be harder hitting than any pistol, though not particularly accurate. Standard military tactic with these things was to have a whole line of soldiers fire a volley, then some of them ought to hit something. Especially since another part of standard military tactic was to have all the soldiers in a line marching towards the enemy, so even an arquebus was likely to hit someone.

The main advantage of a wheellock, whether pistol or musket, would have been reliability, especially in rain. Also, you wouldn't want to put a loaded matchlock pistol onto your belt. xD

The short wheellock musket would be a good reward for a quest, or it could be occasionally used by enemy boarders on ships, or you could put it into the Maltese Abbey instead of the rifle during earlier periods.
 
The short wheellock musket would be a good reward for a quest, or it could be occasionally used by enemy boarders on ships, or you could put it into the Maltese Abbey instead of the rifle during earlier periods.
Not actually a bad idea. Though for the quest and everything to remain functional, we'd need another special two-component weapon there.
If not, then that functionality has to be disabled altogether which would be a bit of a shame.
 
Which one is the "Simple Wheellock Pistol" again? Can't remember now.
pistol11. pistol12 is the fine pair and pistol13 the short wheellock musket.

Did you see the various lines I commented out in quests_common.c?
I thought that wouldn't make a difference, but have you been able to confirm that it still works like you think it should?
Yes, I used your files while testing this morning. I had no trouble at all because of these changes so the // lines could be cleared out now.
Together with my added Lai_officers.c I got the best results so far.

I'd expect it to be harder hitting than any pistol, though not particularly accurate.
Which is exactly what it does.

Though for the quest and everything to remain functional, we'd need another special two-component weapon there.
If not, then that functionality has to be disabled altogether which would be a bit of a shame.
POTEHO has also a long wheellock musket with a telescope. Unfortuneatle it's a one-component item. Help will be needed to
remove the telescope. I have thought about it but didn't think it's worth the effort. Still possible.

I say just leave one of pistol12/13 and maybe make the other one very rare. It's good to have a quest reward item already prepared.
 
POTEHO has also a long wheellock musket with a telescope. Unfortuneatle it's a one-component item. Help will be needed to
remove the telescope. I have thought about it but didn't think it's worth the effort. Still possible.
As far as I'm concerned, we can leave everything as-is, then.
Replace the special pirate pistol with the Arguebuse and leave the other ones as general weapons (possibly rare/valuable) or as quest-only ones.
Do you reckon you can edit initItems.c for that?
 
This is the way the weapons are given to town guards now:
Code:
  switch(GetCurrentPeriod())
   {
     case PERIOD_EARLY_EXPLORERS:
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade6";                 // ARF: Schiavona {pirate sword} (not available after colonial power)
         SoldierGun  = "pistol13";                 // JRH: Short wheellock musket
       }
       else
       {
         switch(iNation)
         {
           case ENGLAND:   SoldierBlade = "blade22";   break;   // ARF: Corsair's Pride (available all periods but guards get earlier)
           case FRANCE:   SoldierBlade = "blade9";   break;   // ARF: French Admiralty Rapier (not available after golden age of piracy)
           case SPAIN:     SoldierBlade = "blade16";   break;   // ARF: Tizona (not available after golden age of piracy)
           case PORTUGAL:   SoldierBlade = "blade15";   break;   // ARF: Iberian Longsword (not available after golden age of piracy)
           case HOLLAND:   SoldierBlade = "blade23";   break;   // ARF: Dutch Admiralty Sword (available all periods but guards get earlier)
           case AMERICA:   SoldierBlade = "blade10";   break;   // ARF: piranha {no faction} (not available after golden age of piracy anyway AMERICA doesnt exist early)
           // default:
           SoldierBlade = "blade10";               // ARF: hunting sword (all periods available) only for "non regular" nation
         }
         SoldierGun  = "Arguebuse";
       }
     break;
     case PERIOD_THE_SPANISH_MAIN:
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade6";                 // ARF: Schiavona {pirate sword} (not available after colonial power)
         SoldierGun  = "pistol13";
       }
       else
       {
         switch(iNation)
         {
           case ENGLAND:   SoldierBlade = "blade22";   break;   // ARF: Corsair's Pride (available all periods but guards get earlier)
           case FRANCE:   SoldierBlade = "blade9";   break;   // ARF: French Admiralty Rapier (not available after golden age of piracy)
           case SPAIN:     SoldierBlade = "blade16";   break;   // ARF: Tizona (not available after golden age of piracy)
           case PORTUGAL:   SoldierBlade = "blade15";   break;   // ARF: Iberian Longsword (not available after golden age of piracy)
           case HOLLAND:   SoldierBlade = "blade23";   break;   // ARF: Dutch Admiralty Sword (available all periods but guards get earlier)
           case AMERICA:   SoldierBlade = "blade10";   break;   // ARF: piranha {no faction} (not available after golden age of piracy anyway AMERICA doesnt exist early)
           // default:
           SoldierBlade = "blade10";               // ARF: hunting sword (all periods available) only for "non regular" nation
         }
         SoldierGun  = "Arguebuse";
       }
     break;
     case PERIOD_GOLDEN_AGE_OF_PIRACY:                 // JRH: Musket for Golden Age of Piracy & Colonial Powers
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "blade_mKnife";
         SoldierGun  = "pistolmket";
       }
     break;
     case PERIOD_COLONIAL_POWERS:                   // JRH: Musket for Golden Age of Piracy & Colonial Powers
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "blade_mKnife";
         SoldierGun  = "pistolmket";
       }
     break;
     case PERIOD_REVOLUTIONS:                     // JRH: Bayonet Musket for Revolutions & Napoleonic
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "bladeX4";
         SoldierGun  = "pistolmketB";
       }
     break;
     case PERIOD_NAPOLEONIC:                       // JRH: Bayonet Musket for Revolutions & Napoleonic
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "bladeX4";
         SoldierGun  = "pistolmketB";
       }
     break;
   }
I should say this is more historically accurate than it was before these updates, but of course if you have any specific suggestions on how to tweak this further, that might help. :doff
Simplified version for @Jack Rackham's and @Grey Roger's approval:
Code:
  switch(GetCurrentPeriod())
   {
     case PERIOD_EARLY_EXPLORERS:
       switch(iNation)
       {
         case ENGLAND:   SoldierBlade = "blade22";   break;     // ARF: Corsair's Pride (available all periods but guards get earlier)
         case FRANCE:   SoldierBlade = "blade9";   break;     // ARF: French Admiralty Rapier (not available after golden age of piracy)
         case SPAIN:     SoldierBlade = "blade16";   break;     // ARF: Tizona (not available after golden age of piracy)
         case PIRATE:   SoldierBlade = "blade6";   break;     // ARF: Schiavona {pirate sword} (not available after colonial power)
         case HOLLAND:   SoldierBlade = "blade23";   break;     // ARF: Dutch Admiralty Sword (available all periods but guards get earlier)
         case PORTUGAL:   SoldierBlade = "blade15";   break;     // ARF: Iberian Longsword (not available after golden age of piracy)
         case AMERICA:   SoldierBlade = "blade10";   break;     // ARF: piranha {no faction} (not available after golden age of piracy anyway AMERICA doesnt exist early)
         // default:
         SoldierBlade = "blade10";                 // ARF: hunting sword (all periods available) only for "non regular" nation
       }
       SoldierGun  = "Arguebuse";
     break;
     case PERIOD_THE_SPANISH_MAIN:
       switch(iNation)
       {
         case ENGLAND:   SoldierBlade = "blade22";   break;     // ARF: Corsair's Pride (available all periods but guards get earlier)
         case FRANCE:   SoldierBlade = "blade9";   break;     // ARF: French Admiralty Rapier (not available after golden age of piracy)
         case SPAIN:     SoldierBlade = "blade16";   break;     // ARF: Tizona (not available after golden age of piracy)
         case PIRATE:   SoldierBlade = "blade6";   break;     // ARF: Schiavona {pirate sword} (not available after colonial power)
         case HOLLAND:   SoldierBlade = "blade23";   break;     // ARF: Dutch Admiralty Sword (available all periods but guards get earlier)
         case PORTUGAL:   SoldierBlade = "blade15";   break;     // ARF: Iberian Longsword (not available after golden age of piracy)
         case AMERICA:   SoldierBlade = "blade10";   break;     // ARF: piranha {no faction} (not available after golden age of piracy anyway AMERICA doesnt exist early)
         // default:
         SoldierBlade = "blade10";                 // ARF: hunting sword (all periods available) only for "non regular" nation
       }
       SoldierGun  = "Arguebuse";
     break;
     case PERIOD_GOLDEN_AGE_OF_PIRACY:                 // JRH: Musket for Golden Age of Piracy & Colonial Powers
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "blade_mKnife";
         SoldierGun  = "pistolmket";
       }
     break;
     case PERIOD_COLONIAL_POWERS:                   // JRH: Musket for Golden Age of Piracy & Colonial Powers
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "blade_mKnife";
         SoldierGun  = "pistolmket";
       }
     break;
     case PERIOD_REVOLUTIONS:                     // JRH: Bayonet Musket for Revolutions & Napoleonic
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "bladeX4";
         SoldierGun  = "pistolmketB";
       }
     break;
     case PERIOD_NAPOLEONIC:                       // JRH: Bayonet Musket for Revolutions & Napoleonic
       if(iNation == PIRATE)
       {
         SoldierBlade = "blade50";
         SoldierGun  = "pistolbbuss";
       }
       else
       {
         SoldierBlade = "bladeX4";
         SoldierGun  = "pistolmketB";
       }
     break;
   }

Yes, I used your files while testing this morning. I had no trouble at all because of these changes so the // lines could be cleared out now.
Done. :doff
 
Back
Top