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

Fix in Progress Target cannot be found for a governor shiphunt mission

smrtwhkd

Master Mariner
I am playing John Paul Jones (Free Play). I got a mission from the governor to hunt down a British sloop. But instead, I found an Aura frigate outside the harbor, which I sank. Then I went around the whole island couldn't find the target I was supposed to sink.
1. The 1st screenshot show after I killed the British frigate. There are no more hostile ships around the island
2. The last screenshot shows the quest. I only saw an Aurora frigate name "Acorn", not a sloop named "Ajax".
 

Attachments

  • No_enemy.png
    No_enemy.png
    3.7 MB · Views: 67
  • compile.log
    18.3 KB · Views: 51
  • error.log
    434 bytes · Views: 70
  • system.log
    1 KB · Views: 63
  • FreePlay.7z
    711.8 KB · Views: 73
  • quest.png
    quest.png
    6.2 MB · Views: 82
Hey there! I'm not much of a help here, but just in case, somethng similar happened to me in my freeplay, and what fixed it was entering sea map and sailing to the island later again...
 
Nope, your way didn't help. Still cannot find the target. I believe the issue is not that the ship disappear, but the wrong ship was generated by the game. So instead of a sloop, it generates a frigate for me.
 
This is odd. The target for any governor ship-hunting quest is "Quest Pirate", who is given a new name, ship and nation by the quest and then set to appear somewhere near the island when you set sail. In your savegame at sea, he's no longer near the island - he's nowhere at all. I've no idea how that could have happened as "Quest Pirate" does not seem to be used in any other quest, and you can't take a second ship-hunting quest from another govenor until you've completed this one.

There's also a savegame with you standing in front of the governor. Using that, I was able to take a ship-hunting quest and complete it without any trouble, mainly because I used cheat mode to make myself indestructible so I could capture the ship easily. The point is, the ship did appear, the quest did complete, and it also turned me into a pirate.

This is because you're flying a French flag. America is at war with Britain. Probably due to a random relation change which can happen in FreePlay, France is at peace with Britain. The quest ship is automatically hostile anyway. So, flying a flag which is not hostile to Britain, I captured a British ship, and that's about the quickest way in the game to turn pirate!

I tried again - loaded the savegame in front of the governor, took a ship-hunting mission, hoisted an American flag as soon as I put to sea, and then went after the target. This time I completed the mission and did not turn pirate.

And you'll want to use the American flag if you want to continue attacking British ships on behalf of the US Navy.
 
So basically I am screwed with the savegame at sea? I can't complete the mission and can't take another one from the another governor. Anyway I am more interested in reproducing the bug for you guys. Let me tell you what I did:
1. I took the mission from the governor
2. set sail
3. Encountered 2 small pirate craft at the mouth of the harbor (so may need a bit of luck to reproduce)
4. Sank one and captured the other
5. sailed back to Governor's Harbor and sold the prize and made some repairs (I believe this is what is creating the bug)
6. set sail again
7. Encountered the British frigate (not the target sloop)
8. Sank the frigate and sailed back for repairs
9. Set sail again. Cannot find the target anywhere.

I used American flag throughout.
 
Attacking other ships on the way to find the quest ship should not be a problem; if there are random raiders around, it's almost inevitable unless you use "Sail To" to teleport straight to the quest ship. But returning to port may indeed have messed up the quest.

If you really want to continue from the savegame at sea, I could probably knock up a "console.c" which resets "Quest Pirate". What I can't figure out how to do is block you from returning to port until the quest is complete, since the quest can't predict the port from which you sailed, let alone whether there are any other ports on the same island which would also need to be blocked.
 
Attacking other ships on the way to find the quest ship should not be a problem; if there are random raiders around, it's almost inevitable unless you use "Sail To" to teleport straight to the quest ship. But returning to port may indeed have messed up the quest.

If you really want to continue from the savegame at sea, I could probably knock up a "console.c" which resets "Quest Pirate". What I can't figure out how to do is block you from returning to port until the quest is complete, since the quest can't predict the port from which you sailed, let alone whether there are any other ports on the same island which would also need to be blocked.

Could it be possible to save player's current location to a variable and assume that's the port from which he will set sail ? I wonder If the player travels to a different island and uses a different port the bug will still occur ?
 
The player's current location would be the town hall. From that it is possible to work out the town. From that it may be possible to work out the port from which the player will sail, assuming that he didn't walk from Alice Town to Governor's Harbour, for example. But even if the departure port is blocked, that doesn't prevent the player from sailing to another port on the same island. And indeed, if going ashore is what breaks the quest, going ashore on a different island would probably break it as well.

I wonder if a new type of quest check can be defined to check if you're on land. There's already one to check if you're at sea. A check if you're on land - any land, anywhere, not interested in a specific location - could be useful for various purposes, including this one. Going to sea triggers a quest case which puts "Quest Pirate" into place ready for you to attack; it would then just be necessary to check for being on land, at which point reset the trigger for "Quest Pirate" being placed when you're at sea near the island.
 
If there is a check for when the player is at sea maybe we could just do something like "if (!bSeaActive)" and assume player has gone ashore then, can't check how the function really works right now, just throwing some ideas if that's ok :D
 
Looking at some of the other code, it would be a bit more complicated than that. The check for "SeaEnter" is:
Code:
return bSeaActive && !bAbordageStarted;

And from "MapEnter":
Code:
return IsEntity(&worldMap);
"MapEnter" also checks something else for DirectSail, which probably won't matter here - if you're DirectSailing then 'bSeaActive' should be true. But checking for land certainly doesn't want to trigger if you're on worldmap as opposed to 3D sailing, and also doesn't want to trigger when you're off the sea due to being in a boarding action. So I'm going to try:
Code:
return !bSeaActive && !bAbordageStarted && !IsEntity(&worldMap);
 
I am not too familiar to the coding. But not sure if blocking player from getting back to port is a good idea. What happens if the player gets heavily damaged en route to the target? Then you are still screwed because you are too weak to kill the target and still cannot finish the mission. Might be a better idea to add an option to the conversation with governor to cancel the mission. You will get reprimanded and some points get deducted from the relations with that nation as a penalty.
 
I am not too familiar to the coding. But not sure if blocking player from getting back to port is a good idea. What happens if the player gets heavily damaged en route to the target? Then you are still screwed because you are too weak to kill the target and still cannot finish the mission. Might be a better idea to add an option to the conversation with governor to cancel the mission. You will get reprimanded and some points get deducted from the relations with that nation as a penalty.

The general idea above is not to block player from going on land, but to code something that will let the game know when player is ashore so it can do what's needed to fix/not cause the bug.
 
Checking for being on land proved not to be that simple. The "SeaLogin" process triggers that check before it's finished setting up the sea and presumably setting 'bSeaActive'. In the end, the only way that seemed to work reliably was to check that you're at a location which contains either "port" or "shore".

But I haven't tried using it to change the ship-hunting quest. This is because I can't make "Quest Pirate" disappear! Starting from the savegame in front of the governor, I took a mission, then sailed to Alice Town to check something else. Then I sailed to Turks Island, landed on a beach, put to sea again, and captured a prize ship. I returned to Governor's Harbor, sold the prize ship, did a little shopping, and then went to sea. Basically, I tried to do everything which could make "Quest Pirate" disappear. Nevertheless, he was still there and I completed the mission.

Since I can't make "Quest Pirate" disappear reliably, or for that matter at all, I can't do anything to the quest as there's no way for me to check if it makes any difference. The one thing I might try is to add a bit to the governor's dialog so that you can report that you can't find the target.. He'll tell you that while you were failing to find the enemy, the enemy was plundering some more shipping and then escaped, and your failure to prevent this will go on your record. -1 to your status with the nation, unless it would remove your LoM.
 
The one thing I might try is to add a bit to the governor's dialog so that you can report that you can't find the target.. He'll tell you that while you were failing to find the enemy, the enemy was plundering some more shipping and then escaped, and your failure to prevent this will go on your record. -1 to your status with the nation, unless it would remove your LoM.
Done. Try this - just unzip it and copy it into place. You don't need a new game for it to take effect. But it won't rescue the savegame at sea because it sets an attribute when you first go to sea after accepting the mission, then the governor's dialog checks that attribute. That means you can't accept the mission, then talk to the governor and immediately report failure; you must make at least a token effort to find the target. It also means that the savegame at sea is at a point after the attribute would be set, so the option to report failure won't show up.

I've tested it - accepted a mission, went to sea, docked right away, then talked to the governor to report failure. Then I tried again, this time accepted a ship hunt and also took a smuggling mission; went to the beach to deal with the smugglers; went back to sea and found the target ship; then returned to the governor, where the option to report failure was correctly no longer available because I was reporting success on both missions.

Your turn to see if it works for you. :D
 

Attachments

  • report_hunt_fail.zip
    57.2 KB · Views: 50
Back
Top