• 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 Vigila Mendez

I have found the reason I was having problems with Vigila Mendes. There is a building in Martinique where kidnappers hang out and I am in the habit of visiting it for goodies. When I do not go there VM works fine. When I do he does not work. So I was creating my own problem.
That's peculiar. Have you tried looting any other chests? There's one next to the port gate at San Juan; or there's a house next to the church in St. Pierre which features in the "Patric and the Idols" quest, though that house is likely to be occupied whether or not you're doing that quest... Basically, is it only the chest in the kidnapper's house which messes up Vigila Mendes, or does any chest do it?
 
It seems to be only the kidnappers house that messes Mendes up although I have not tried that other house. I always hit all the normal places and they don't seem to be causing a problem. That kidnappers house seems to be a problem whether I have completed that quest or not. The last 2 times I did Mendes I avoided that place and he worked fine.
 
So even if that particular quest isn't started, in progress OR completed, it still messes things up?
And that is only IF you open that box? Or when you visit that location altogether? Or perhaps that isn't quite clear.
 
When I go in there I open both chests. Now I just do not go in there but do hit all the other spots. 2 on the waterfront, 1 in the slums, and 2 in the town.
 
I discovered yesterday that if a ship is fully loaded it is reported as being unstable and may capsize. This happened to Vigila Mendes's ship when leaving St. Pierre. I solved it by going to the world map and when we went back to direct sail a few days later all was well, as they had eaten some rations.
 
I discovered yesterday that if a ship is fully loaded it is reported as being unstable and may capsize. This happened to Vigila Mendes's ship when leaving St. Pierre. I solved it by going to the world map and when we went back to direct sail a few days later all was well, as they had eaten some rations.
Fully loaded shouldn't have that effect. Only if there is a ship MORE than fully loaded.
For the next update, I made some changes that will hopefully prevent this. But this is a complicated mod so it is very likely more work is required. :facepalm
 
LOL. My ship was overloaded and got that message. I had to go back and sell some stuff. But Mendes's ship was exactly on the mark for load.
 
I moved this to the Mendez thread just so that I remember to check out his cargo capacity when I get round to checking his sidequest.

French ships could randomly get lower cargo capacities than they should, but that no longer happen now.
If that was indeed the cause of this, then possibly this problem will already be resolved with my next upload.
 
So could someone else try the bigila mendez quest also?
 
We know it generally does work. If I can find the time, I do want to rewrite the code that puts the guy at the destination locations to hopefully make it a bit more reliable.
 
Here's the original code for this sidequest:
Code:
    case "Mendes_go_away_from_muelle_store":
       pchar.quest.death_of_vigila_mendes.win_condition.l1 = "NPC_death";
       pchar.quest.death_of_vigila_mendes.win_condition.l1.character = "Vigila Mendes";
       pchar.quest.death_of_vigila_mendes.win_condition = "death_of_vigila_mendes_complete";
       
       LAi_SetActorType(characterFromID("Vigila Mendes"));

       Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "locator2", "Mendes_go_away_from_muelle_store_complete", 2.0);
     break;

     case "Mendes_go_away_from_muelle_store_complete":
       SetCompanionIndex(pchar,-1, GetCharacterIndex("Vigila Mendes"));
       SetCharacterRemovable(characterFromID("Vigila Mendes"), false);
       //ChangeCharacterAddress(CharacterFromID("Zaid Murro"), "none", "none"); //NK disabled 1
       ChangeCharacterAddress(characterFromID("Vigila Mendes"), "Falaise_De_Fleur_Store", "goto5");
       LAi_ActorWaitDialog(characterFromID("Vigila Mendes"), pchar);
       AddCharacterGoods(CharacterFromID("Vigila Mendes"), GOOD_EBONY, 500);
     break;

     case "Mendes_go_away_from_falaise_de_fleur_store":
       Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "reload1", "Mendes_go_away_from_falaise_de_fleur_store_complete", 2.0);
     break;
If you see, the next case isn't executed until Mendes has left the location.
Which means that possibly if you leave before he does, he won't be at the destination.

@Hylie Pistof, do you reckon that might have been affecting you?
 
I have now rewritten it to hopefully be a bit more reliable:
Code:
    case "Mendes_go_away_from_muelle_store":
       pchar.quest.death_of_vigila_mendes.win_condition.l1 = "NPC_death";
       pchar.quest.death_of_vigila_mendes.win_condition.l1.character = "Vigila Mendes";
       pchar.quest.death_of_vigila_mendes.win_condition = "death_of_vigila_mendes_complete";
      
       LAi_SetActorType(characterFromID("Vigila Mendes"));
       Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "locator2", "Mendes_Leaves", 2.0);

       SetCompanionIndex(pchar,-1, GetCharacterIndex("Vigila Mendes"));
       SetCharacterRemovable(characterFromID("Vigila Mendes"), false);
       AddCharacterGoods(CharacterFromID("Vigila Mendes"), GOOD_EBONY, 500);

       pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition.l1 = "ExitFromLocation";
       pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition.l1.location = "Muelle_store";
       pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition = "Mendes_go_away_from_muelle_store_complete";
     break;

     case "Mendes_go_away_from_muelle_store_complete":
       //ChangeCharacterAddress(CharacterFromID("Zaid Murro"), "none", "none"); //NK disabled 1
       ChangeCharacterAddress(characterFromID("Vigila Mendes"), "Falaise_De_Fleur_Store", "goto5");
       LAi_ActorWaitDialog(characterFromID("Vigila Mendes"), pchar);
     break;

     case "Mendes_go_away_from_falaise_de_fleur_store":
       Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "reload1", "Mendes_Leaves", 2.0);

       RemoveCharacterGoods(characterFromID("Vigila Mendes"), GOOD_EBONY, 500);
       AddCharacterGoods(characterFromID("Vigila Mendes"), GOOD_LINEN, 500);

       pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition.l1 = "ExitFromLocation";
       pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition.l1.location = "Falaise_De_Fleur_Store";
       pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition = "Mendes_go_away_from_falaise_de_fleur_store_complete";
     break;

     case "Mendes_Leaves":
       ChangeCharacterAddress(characterFromID("Vigila Mendes"), "None", "");
     break;
I tested it and it still works for me. But hopefully it doesn't break so easily now.
The difference with before is that the next quest executes when YOU leave the location instead of when Mendes does.

I'll consider this "Fixed" for now until I hear otherwise.
 
Here's the original code for this sidequest:
Code:
    case "Mendes_go_away_from_muelle_store":
       pchar.quest.death_of_vigila_mendes.win_condition.l1 = "NPC_death";
       pchar.quest.death_of_vigila_mendes.win_condition.l1.character = "Vigila Mendes";
       pchar.quest.death_of_vigila_mendes.win_condition = "death_of_vigila_mendes_complete";
      
       LAi_SetActorType(characterFromID("Vigila Mendes"));

       Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "locator2", "Mendes_go_away_from_muelle_store_complete", 2.0);
     break;

     case "Mendes_go_away_from_muelle_store_complete":
       SetCompanionIndex(pchar,-1, GetCharacterIndex("Vigila Mendes"));
       SetCharacterRemovable(characterFromID("Vigila Mendes"), false);
       //ChangeCharacterAddress(CharacterFromID("Zaid Murro"), "none", "none"); //NK disabled 1
       ChangeCharacterAddress(characterFromID("Vigila Mendes"), "Falaise_De_Fleur_Store", "goto5");
       LAi_ActorWaitDialog(characterFromID("Vigila Mendes"), pchar);
       AddCharacterGoods(CharacterFromID("Vigila Mendes"), GOOD_EBONY, 500);
     break;

     case "Mendes_go_away_from_falaise_de_fleur_store":
       Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "reload1", "Mendes_go_away_from_falaise_de_fleur_store_complete", 2.0);
     break;
If you see, the next case isn't executed until Mendes has left the location.
Which means that possibly if you leave before he does, he won't be at the destination.

@Hylie Pistof, do you reckon that might have been affecting you?

Probably not. In San Juan I wait for him to leave the store before buying goods for my ship, and at St. Pierre I do not fast travel but go through town talking to people and such. I would guess only fast travel could break it at that point as Vigila Mendes stays in the store there until you leave. But even then I always stop and save before boarding the ship so that would give him time to get there too, shouldn't it?
 
I have now rewritten it to hopefully be a bit more reliable:
...
I tested it and it still works for me. But hopefully it doesn't break so easily now.
I wonder if that really will make a difference. Either way, you're still standing in San Juan and Mendes has teleported to St. Pierre. On the return trip, you meet Mendes in St. Pierre store, then you're still standing in St. Pierre while he's teleported to San Juan. The question then becomes, can something else mess with Vigila Mendes so that he's not where he's supposed to be when you get there? For example, doing another side quest; or in my most recent attempt, upgrading my ship at St. Pierre shipyard. That had the effect that Mendes' ship, having no food of its own, promptly made an emergency purchase of food, and sold some of its linen to make room for that food. When I got to San Juan, Mendes was not there. Having suspected that it might foul up the quest, on grounds that all sorts of things seem able to foul up the quest, I saved game before going into the shipyard, so I reloaded that savegame, didn't upgrade the ship, went straight to San Juan, and Mendes was there.

Now that you've got Mendes' teleport to St. Pierre dependent on the player's action, how about making the win condition that you're in the section of St. Pierre where the store is located? And for the return trip, make the win condition for "Mendes_go_away_from_falaise_de_fleur_store_complete" that you're in San Juan in the section where the store is located? That way, you should be able to do whatever you like in between because Mendes doesn't make his move until you're standing outside the store ready to complete that part of the quest.
 
Indeed there might be reasons that teleport him away again; for example, you might be able to break that sidequest just by trying to talk to him in his cabin.
After all, then he's probably teleported into his cabin and won't be in the store anymore.

A better idea would probably be to set the location condition on the actual destination store.
I'll try that later. In the meantime: Issue reopened.
 
If this doesn't work, I don't know what will:
Code:
    case "Mendes_go_away_from_muelle_store":
       pchar.quest.death_of_vigila_mendes.win_condition.l1 = "NPC_death";
       pchar.quest.death_of_vigila_mendes.win_condition.l1.character = "Vigila Mendes";
       pchar.quest.death_of_vigila_mendes.win_condition = "death_of_vigila_mendes_complete";
       
       LAi_SetActorType(characterFromID("Vigila Mendes"));
       Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "locator2", "Mendes_Leaves", 2.0);

       SetCompanionIndex(pchar,-1, GetCharacterIndex("Vigila Mendes"));
       SetCharacterRemovable(characterFromID("Vigila Mendes"), false);
       AddCharacterGoods(CharacterFromID("Vigila Mendes"), GOOD_EBONY, 500);

       pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition.l1 = "location";
       pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition.l1.location = "Falaise_De_Fleur_Store";
       pchar.quest.Mendes_go_away_from_muelle_store_complete.win_condition = "Mendes_go_away_from_muelle_store_complete";
     break;

     case "Mendes_go_away_from_muelle_store_complete":
       //ChangeCharacterAddress(CharacterFromID("Zaid Murro"), "none", "none"); //NK disabled 1
       ChangeCharacterAddress(characterFromID("Vigila Mendes"), "Falaise_De_Fleur_Store", "goto5");
       LAi_ActorWaitDialog(characterFromID("Vigila Mendes"), pchar);
     break;

     case "Mendes_go_away_from_falaise_de_fleur_store":
       Lai_ActorGoToLocator(characterFromID("Vigila Mendes"), "reload", "reload1", "Mendes_Leaves", 2.0);

       RemoveCharacterGoods(characterFromID("Vigila Mendes"), GOOD_EBONY, 500);
       AddCharacterGoods(characterFromID("Vigila Mendes"), GOOD_LINEN, 500);

       pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition.l1 = "location";
       pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition.l1.location = "Muelle_store";
       pchar.quest.Mendes_go_away_from_falaise_de_fleur_store_complete.win_condition = "Mendes_go_away_from_falaise_de_fleur_store_complete";
     break;

     case "Mendes_Leaves":
       ChangeCharacterAddress(characterFromID("Vigila Mendes"), "None", "");
     break;
Mendes isn't teleported until you get there yourself.
 
Back
Top