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

Solved Beta 3 - Hard Labors of an Assassin Side Quest

Talisman

Smuggler
Storm Modder
In the Hard Labous of an Assassin ( Hitman) side-quest

The timers for the hits seem to have been changed and now don't work ( the timers close the quest if you look at the quest book after being given the target OR immediately you exit Mateus Santos' house )

I think the timers should be as follows:

In quest_reactions.c

Code:
     case "Hit_timer1":
       PChar.quest.Hit_timer1.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer1.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0);  //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer1.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0);  //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer1.win_condition = "Hit_END_timer";
     break;

     case "Hit_timer2":
       PChar.quest.Hit_timer2.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer2.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0);   //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer2.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer2.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0);   //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer2.win_condition = "Hit_END_timer";
     break;

     case "Hit_timer3":
       PChar.quest.Hit_timer3.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer3.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0);   //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer3.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer3.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0);   //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer3.win_condition = "Hit_END_timer";
     break;

     case "Hit_timer4":
       PChar.quest.Hit_timer4.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer4.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0);   //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer4.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer4.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0);   //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer4.win_condition = "Hit_END_timer";
     break;

     case "Hit_timer5":
       PChar.quest.Hit_timer5.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer5.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0);   //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer5.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer5.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0);   //TALISMAN was 0,1,0 which closes quest when player exits Santos house right after being given task
       PChar.quest.Hit_timer5.win_condition = "Hit_END_timer";
     break;


This will give you the 3 months to do the tasks as stated in the dialog.

Don't know when it got changed.:shrug


:drunk
 
I seem to remember some comments about that not long ago. :thumbs1


:yes

I can't remember if it was about the version in the Assassin ( Johan Elting story ) or this one. Had a look at Elting and that code seems Ok

Here is a save in the shipyard next to Santos' house just before going to meet him for the 1st time - if anyone wants to test this in their game. :duel:
 

Attachments

  • -=Player=- Puerto Rico.7z
    530 KB · Views: 320
0,1,0 shouldn't close imediatly....you should get a month to do it.
But I think a little bit more time isn't such a problem. Especially if you use the larger worldmap you really need it.

So this problem is fixed?
 
0,1,0 shouldn't close imediatly....you should get a month to do it.
But I think a little bit more time isn't such a problem. Especially if you use the larger worldmap you really need it.

So this problem is fixed?

I agree that it should not close immediately - but where the original timer has
Code:
case "Hit_timer1":
       PChar.quest.Hit_timer1.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer1.win_condition.l1.date.day = GetAddingDataDay(0, 1, 0); 
       PChar.quest.Hit_timer1.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.year = GetAddingDataYear(0, 1, 0); 
       PChar.quest.Hit_timer1.win_condition = "Hit_END_timer";
     break;


it does cause it to do so, for some reason. ( I think the code means - 1 month - 3 months - 1 month - But am not sure )

I think having the 2 different numbers in the month position in the code causes the problems - closes the quest when you exit the location or press F2.

I don't know why this is :shrug

I just put the 3 months in there since that is what is in the dialog. but agree you can need that time since the world map has expanded.

Also helps if you have to do a lot of ship repairs.


:drunk
 
oh yeah, having 2 different number will make it behave bad :p.
 
Thanks, Talisman! :cheers

Indeed I remember this problem mentioned before, but that was for the Elting storyline.
But when I tested, I was unable to confirm it. :modding
 
If i'd want to implement this fix in my existing build 14 beta 3 without patching it with a newer version, how would i do it? I'd rather not lose my savegames, you see.
 
You'll find the relevant code in one of two places, depending on how old a version of the game you have. It's probably either in "PROGRAM\Storyline\Standard\quests\quests_reaction.c" or in "PROGRAM\QUESTS\quests_side.c". (Or possibly in "PROGRAM\Storyline\Assassin\quests\quests_reaction.c", if you're playing the "Assassin" storyline version of this quest, which is known there as "A Worm in the Apple").

Find 'case "Hit_timer1":'. It probably looks like this:
Code:
    case "Hit_timer1":
       PChar.quest.Hit_timer1.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer1.win_condition.l1.date.day = GetAddingDataDay(0, 1, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.year = GetAddingDataYear(0, 1, 0);
       PChar.quest.Hit_timer1.win_condition = "Hit_END_timer";
     break;

You want it to look like this:
Code:
    case "Hit_timer1":
       PChar.quest.Hit_timer1.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer1.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition = "Hit_END_timer";
     break;
Replace the "1" with "3" in 'GetAddingDataDay(0, 1, 0);' and 'GetAddingDataYear(0, 1, 0);'.

You will also need to make the same change at 'case "Hit_timer2"', 'case "Hit_timer3"', 'case "Hit_timer4"' and 'case "Hit_timer5"'.

Editing any of these files won't cause enough of a change to require a new game. You will, however, need to reload a savegame from before you accepted the first assassination mission, because the timer will already be wrongly set in any savegame after you accepted the mission.
 
You'll find the relevant code in one of two places, depending on how old a version of the game you have. It's probably either in "PROGRAM\Storyline\Standard\quests\quests_reaction.c" or in "PROGRAM\QUESTS\quests_side.c". (Or possibly in "PROGRAM\Storyline\Assassin\quests\quests_reaction.c", if you're playing the "Assassin" storyline version of this quest, which is known there as "A Worm in the Apple").

Find 'case "Hit_timer1":'. It probably looks like this:
Code:
    case "Hit_timer1":
       PChar.quest.Hit_timer1.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer1.win_condition.l1.date.day = GetAddingDataDay(0, 1, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.year = GetAddingDataYear(0, 1, 0);
       PChar.quest.Hit_timer1.win_condition = "Hit_END_timer";
     break;

You want it to look like this:
Code:
    case "Hit_timer1":
       PChar.quest.Hit_timer1.win_condition.l1 = "Timer";
       PChar.quest.Hit_timer1.win_condition.l1.date.day = GetAddingDataDay(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.month = GetAddingDataMonth(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition.l1.date.year = GetAddingDataYear(0, 3, 0);
       PChar.quest.Hit_timer1.win_condition = "Hit_END_timer";
     break;
Replace the "1" with "3" in 'GetAddingDataDay(0, 1, 0);' and 'GetAddingDataYear(0, 1, 0);'.

You will also need to make the same change at 'case "Hit_timer2"', 'case "Hit_timer3"', 'case "Hit_timer4"' and 'case "Hit_timer5"'.

Editing any of these files won't cause enough of a change to require a new game. You will, however, need to reload a savegame from before you accepted the first assassination mission, because the timer will already be wrongly set in any savegame after you accepted the mission.

Sorry for the late response, but i had a look at this, and it was apparently already fixed in my version. Thanks for the help!
 
Back
Top