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

WIP Improve the Crewmembers on Shore Mod

I need some kind of condition that checks if you are flying your personal flag. Any ideas? If i got that, i may very well have this dialogue file finished.
 
if(GetCurrentFlag() == PERSONAL_NATION)
:doff

Great! After another review, i think the tavern sailor's dialog is now also finished. Now all that needs doing is the soldier patrols, but that'll have to wait until the next build version.
 

Attachments

  • PROGRAM.zip
    13.5 KB · Views: 197
Also, I think you missed a bracket somewhere.
Please compare attached version with yours using WinMerge.
 

Attachments

  • Random_sailors_sit_tavern_dialog.zip
    2.8 KB · Views: 209
@morgan terror: Is there point in keeping "random_sailors_group_dialog" at all? I could just remove it to prevent confusion.

Not really. We did check if it was still being used somewhere, after all.

Also, I think you missed a bracket somewhere.
Please compare attached version with yours using WinMerge.

Oh yes, i did. Thanks for correcting. Still, that's not bad. Now it's just a matter of waiting for the complaints. :p
 
Gone it is. :doff


Hopefully people actually USE it. :cheeky

Weren't you guys planning on using these NPC's in more places than just for crewmembers on shore? I think this round of fixes could end up being quite useful.

And just for the record, i doubt i broke anything of Levis. I left the smuggler code itself alone.
 
Weren't you guys planning on using these NPC's in more places than just for crewmembers on shore? I think this round of fixes could end up being quite useful.
I was indeed thinking of doing that, yes. But I'm not sure yet on how or when.
This will certainly be a great help for when we do though! :cheers
 
I've encountered a bit of faulty dialogue today originating in Enc_Walker.c. It seems like some of the functionality of the random sailors not only got copied over to Random_sailors_sit_tavern_dialog.c, but to the walkers as well. I'll look into this. What i saw was someone accusing me of raising the pirate flag at some point, while in truth i never did. Or if i did, it was very very long ago indeed.
 
Ahh, nevermind. I see this code got changed in beta 4. We do seem to have lost a bit of functionality there though. I don't think you can still be recognised on land for hoisting a hostile flag when in sight of a previously friendly or neutral ship. That functionality could have been moved to somewhere else though, i don't know.
 
Ahh, nevermind. I see this code got changed in beta 4.
Yes, it did. :cheeky

We do seem to have lost a bit of functionality there though. I don't think you can still be recognised on land for hoisting a hostile flag when in sight of a previously friendly or neutral ship. That functionality could have been moved to somewhere else though, i don't know.
No, that's completely gone on purpose. Originally that happened ONLY when hoisting a pirate flag through the on-sea [Enter] menu.
Then when I was getting the [Enter] menu and F2>Nations Relations in line, I made it apply to NON-pirate hostile flags too.
But I think that was not overly appreciated and caused all sorts of unpleasant surprised for players.

When I did my rewrite of Nations Relations this summer, I linked it to "being marked as a pirate" instead.
That seemed to fit in better with the rest of the game logic.
 
@morgan terror: Here is another somewhat corrected file.
I replaced the most obviously wrong code; be sure to use WinMerge to see what I did.

I'm pretty sure the logic in there still isn't right though and there seems to be too much "stuff" going on.
But I'd prefer to avoid spending more time investigating that as you're already working on it. :cheeky

I also added this code to turn the soldiers hostile as I suggested before:
Code:
       LAi_group_SetRelation(LAI_GROUP_GUARDS, LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
       LAi_group_SetRelation(GetSoldiersName(sti(NPChar.nation))+"_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
Might be worth thinking if we should want the same to be added to the other dialogs where soldiers turn hostile.
Also, should only the existing ones turn hostile or should new ones be triggered as well?
For simplicity's sake, maybe we can remove some of those 'Random_Raid' calls altogether and keep only those two lines above?
 

Attachments

  • random_patrol_dialog.zip
    1.4 KB · Views: 196
@morgan terror: Here is another somewhat corrected file.
I replaced the most obviously wrong code; be sure to use WinMerge to see what I did.

I'm pretty sure the logic in there still isn't right though and there seems to be too much "stuff" going on.
But I'd prefer to avoid spending more time investigating that as you're already working on it. :cheeky

I also added this code to turn the soldiers hostile as I suggested before:
Code:
       LAi_group_SetRelation(LAI_GROUP_GUARDS, LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
       LAi_group_SetRelation(GetSoldiersName(sti(NPChar.nation))+"_SOLDIERS", LAI_GROUP_PLAYER, LAI_GROUP_ENEMY);
Might be worth thinking if we should want the same to be added to the other dialogs where soldiers turn hostile.
Also, should only the existing ones turn hostile or should new ones be triggered as well?
For simplicity's sake, maybe we can remove some of those 'Random_Raid' calls altogether and keep only those two lines above?

Oh, i'm sure that file's buggy. It's the one file i haven't touched yet. Nice cleanup though.

As for soldiers turning hostile, i believe it only regards a patrol that occasionally shows up in an area. They're enough of a pain as it is, so spawning even more afterwards might be too annoying, although realistic.

Removing the random_raid calls wouldn't work, i think, since they're only used in taverns, where the required enemies have to be spawned in first. They're not normally present. Unless you're thinking of just not spawning anything in a tavern and making the quards outside hostile instead, even though i don't know how the people outside would have heard the alarm call. Do you want to turn the patrons hostile instead? There's a lot of them walking around nowdays. Would also get rid of the tavernbrawl summoning.
 
Removing the random_raid calls wouldn't work, i think, since they're only used in taverns, where the required enemies have to be spawned in first. They're not normally present. Unless you're thinking of just not spawning anything in a tavern and making the quards outside hostile instead
That is indeed what I was thinking of.

Do you want to turn the patrons hostile instead? There's a lot of them walking around nowdays. Would also get rid of the tavernbrawl summoning.
Not sure if the patrons should care about what the soldiers decide to do.
My main considerations are "consistency" and ESPECIALLY all of this not becoming too annoying.

Maybe.... If a soldier catches you as being hostile, he'll sound the alarm and all guards turn hostile
If there are some in the tavern, they'll join the fight as soon as the dialog closes. Otherwise it will just be outside.
Question: Would THIS or having soldiers generated IN the tavern be considered harder/more annoying?
Should this "ambush" behaviour change depending on Difficulty Level?

If a NON-soldier catches you for being hostile, the consequences should probably be less severe in some way.
At least a "Tavern Brawl" should NOT involve the soldiers outside. And if they have fists only, then it should never be "too hard".
So maybe don't have those sailors call the soldiers at all?
 
Maybe.... If a soldier catches you as being hostile, he'll sound the alarm and all guards turn hostile
If there are some in the tavern, they'll join the fight as soon as the dialog closes. Otherwise it will just be outside.
Question: Would THIS or having soldiers generated IN the tavern be considered harder/more annoying?
Should this "ambush" behaviour change depending on Difficulty Level?

That sounds okay, i think, as long as the guards outside aren't hostile everywhere. Just in the area immediately outside the tavern. Only problem is that the tavern guards have a tendency to automatically adress the player, meaning the risk is of being caught is very high indeed. As for which is more annoying, i don't know. Spawning soldiers in the tavern does mean you can get outside without difficulties, but if both the tavern guards and the spawned soldiers attack, it'll get awfully cramped, and tavernbrawls alone are annoying enough as it is. I constantly get errant shots causing all kinds of idiocy, like one of my officers randomly deciding to murder Peter Blood or the barkeep. I think having to deal with just the guards in the tavern and some outside would be better.

If a NON-soldier catches you for being hostile, the consequences should probably be less severe in some way.
At least a "Tavern Brawl" should NOT involve the soldiers outside. And if they have fists only, then it should never be "too hard".
So maybe don't have those sailors call the soldiers at all?

Maybe the guards in the tavern should be turned hostile instead of spawning in a group of soldiers as tavernbrawl?
 
That sounds okay, i think, as long as the guards outside aren't hostile everywhere. Just in the area immediately outside the tavern.
With the current game code, that is quite impossible. It is either all or nothing.
Of course the whole "LAi groups" code is most definitely messed up in several ways, so better keep things as simple as possible for now.

Maybe the guards in the tavern should be turned hostile instead of spawning in a group of soldiers as tavernbrawl?
That assumes that there ARE standing guards in the tavern. Sometimes there aren't.
 
Back
Top