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

Rogers' guards suddenly got Muskets?

Jack Rackham

ex train dispatcher
Quest Writer
Storm Modder
All Rogers' guards are equipped with muskets (in hip mode). They should have pistols and they are all staytype.
Their lastname is "crew".
Some are ok at first visit but change as well to muskets at next.
What can this be? Some general code for "soldiers"? Any idea Pieter? It looks awful.
 
Check the bottom of PROGRAM\Periods.c . I thought we set up an attribute that you can add to characters to prevent them getting automatic soldier-weapons?
You used that before, right?
 
You used that before, right?
Ehrmm, it has my signature...? :oops:
1) Ok so I have to set that to each one of the 60-70 guards? :modding

I tried
if(HasSubStr(curchar.id,"wr_")) return; but that will cover only some of my characters.

2) Is it normal these days that musket are in hip mode?
 
Ok, I think I fixed it:

I set ch.auto_weapons = "off";
at the very beginning of my TempQuetsChar file and it seems to go for all in there.
 
2) Is it normal these days that musket are in hip mode?
Not intentionally, no. Is that ALL the time? Can anyone confirm?
I did observe some weirdness with the muskets again a few days back, but assumed that was just the normal problem.

Is there already a Bug Tracker issue for the muskets? One day, we should really rewrite it to use EventHandlers instead.

Ok, I think I fixed it:

I set ch.auto_weapons = "off";
at the very beginning of my TempQuetsChar file and it seems to go for all in there.
What does the file look like then? That sounds like a really strange solution.

Only LAi_SetGuardianType and LAi_SetPatrolType should trigger soldier behaviour.
There are Civilian versions available for both to avoid this.
 
What does the file look like then?
Here's the start of the file:


void CreateTempQuestCharacters(ref n)
{

object chobj;
ref ch;

makeref(ch, chobj);

ch.auto_weapons = "off";

ch.old.name = "Richard";
ch.old.lastname = "Bolitho";
ch.name = TranslateString("","Richard");
ch.lastname = TranslateString("","Bolitho");
ch.id = "Bolitho";
etc etc

Only LAi_SetGuardianType and LAi_SetPatrolType should trigger soldier behaviour.
Yes it's strange because these guys are Staytypes.
 
Are they getting set to another type elsewhere?
That solution looks like it shouldn't even work, but if it does, you won't hear me complaining.
Still, the individual ch.auto_weapons = "off"; would probably be safer.

If they really ARE treated as soldiers, then their character models should be overridden from what you set too.
Is that happening? If not, perhaps something else is going on.

You can also do a DumpAttributes on one of the offending characters and see if he actually DOES have the .issoldier attribute.
If he doesn't, you have discovered that the problem comes from somewhere else.
 
Are they getting set to another type elsewhere?
I found it. When spoken to they change to actortype. So they can "actorturntocharacter" (pchar).
Talk to one and all got muskets.
I had reset them to Guardiantype (the standing ones). So the strange fix was no fix at all but now
it works. By resetting them to staytype.
 
So they DID get reset to Guardiantype some time later? Indeed if that happens, they would be given a musket on the next location reload. :facepalm
 
In regular game play the muskets behave like they always have. They are normally on your shoulder but the soldiers sometimes get them on their hips. When that happens I draw my sword and then sheath it again. When I move to the next map the soldiers have their muskets on their shoulders again.
 
Back
Top