• 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 Jack Sparrow - Errors with Henry Dialog

Talisman

Smuggler
Storm Modder
When Cutler Beckett gives you the Wicked Wench - in the past it came with a full crew and 30 days Food & Rum & a standard load of Ammo, gunpowder, etc. The player also lost their original ship and any goods it was carrying.

In Beta 4 when you get the Wicked Wench - it appears the crew & cargo from the players original ship are kept. - Is this correct ? :sparrow

See Images

Also there is something wrong with Henry the beggar's dialog. In game it appears OK , but there are entries in the error.log :shrug

:pirateraft
 

Attachments

  • PotC Original Ship1.jpg
    PotC Original Ship1.jpg
    272.8 KB · Views: 89
  • PotC Original Ship2.jpg
    PotC Original Ship2.jpg
    263.3 KB · Views: 84
  • PotC WickedWench2.jpg
    PotC WickedWench2.jpg
    273.4 KB · Views: 84
  • PotC WickedWench1.jpg
    PotC WickedWench1.jpg
    261.3 KB · Views: 93
  • error.log
    402 bytes · Views: 131
  • compile.log
    7.6 KB · Views: 109
  • system.log
    3.4 KB · Views: 115
When Cutler Beckett gives you the Wicked Wench - in the past it came with a full crew and 30 days Food & Rum & a standard load of Ammo, gunpowder, etc. The player also lost their original ship and any goods it was carrying.

In Beta 4 when you get the Wicked Wench - it appears the crew & cargo from the players original ship are kept. - Is this correct ? :sparrow
In the Jack Sparrow quests_reaction.c:
Code:
    case "prepare_for_Antigua_run2":
       Characters[GetCharacterIndex("Cutler Beckett")].dialog.currentnode = "First time"; // CTM
       GiveModel2Player("47_Sparrow_Eitc_lt", true);
       PChar.Flags.Personal = 3; // PB: EITC Flag
       PChar.Flags.Personal.texture = 3;
       AddQuestRecord("Beckett",11);
       DisableFastTravel(false);
       SetShipRemovable(pchar, true);
       GiveShip2Character(pchar,"WickedWench","Wicked Wench",-1,ENGLAND,false,false);
That last line should end with true,true for the supplying and crewing.
It IS correct for all other methods of getting the Wench, but not that one.
I'll correct it for the next update. Thanks for noticing! :cheers

Also there is something wrong with Henry the beggar's dialog. In game it appears OK , but there are entries in the error.log :shrug
In his dialog file:
Code:
    case "Node_29":
       if (pchar.quest.henry_talk == "henry_quest_gotidols")
       {
         dialog.snd1 = "Voice\HENR\HENR020";
         dialog.snd2 = "Voice\HENR\HENR021";
         dialog.snd3 = "Voice\HENR\HENR022";
         d.text = DLG_TEXT[216];
         Link.l1 = DLG_TEXT[217];
         Link.l1.go = "Have Idols Sell Ship";
       }
       if (CheckQuestAttribute("henry_talk", "henry_quest_gotidols"))
       {
         dialog.snd1 = "Voice\HENR\HENR020";
         dialog.snd2 = "Voice\HENR\HENR021";
         dialog.snd3 = "Voice\HENR\HENR022";
         d.text = DLG_TEXT[216];
         Link.l1 = DLG_TEXT[217];
         Link.l1.go = "Have Idols Sell Ship";
       }
There you see the same section of code TWICE! The first doesn't contain a CheckAttribute, but the second one does have an implicit one.
I have got NO clue why it is like that, so I'll just get rid of that first section.
That should solve the problem and is much cleaner coding too. :cheeky

Again, thanks for paying attention to these details. :bow
 
The Wicked Wench is now all OK - get full crew + 30 days supplies:onya

Henry dialog has now thrown up another error :facepalm

Code:
RUNTIME ERROR - file: storyline\JackSparrow\dialogs\Henry_dialog.c; line: 477
missed attribute: henry_talk
RUNTIME ERROR - file: storyline\JackSparrow\dialogs\Henry_dialog.c; line: 477
no rAP data

It is the same case - but further down -- it also appears at the end of the compile log. :type1


The Henry dialog appears to be about a quest for a Twin of Cutler Beckett that was never written / implemented .

:duel:
 

Attachments

  • error.log
    201 bytes · Views: 105
  • compile.log
    17 KB · Views: 116
  • system.log
    7 KB · Views: 126
The Wicked Wench is now all OK - get full crew + 30 days supplies:onya
Cool! Half the problem fixed then.
Thread renamed accordingly. :doff

Henry dialog has now thrown up another error :facepalm
More similar errors and double/messy code here:
Code:
    case "Node_29":
       if (CheckQuestAttribute("henry_talk", "henry_quest_gotidols"))
       {
         dialog.snd1 = "Voice\HENR\HENR020";
         dialog.snd2 = "Voice\HENR\HENR021";
         dialog.snd3 = "Voice\HENR\HENR022";
         d.text = DLG_TEXT[216];
         Link.l1 = DLG_TEXT[217];
         Link.l1.go = "Have Idols Sell Ship";
       }
       if (CheckQuestAttribute("henry_talk", "henry_decide_on_Interceptor"))
       {
         dialog.snd1 = "Voice\HENR\HENR020";
         dialog.snd2 = "Voice\HENR\HENR021";
         dialog.snd3 = "Voice\HENR\HENR022";
         d.text = DLG_TEXT[224];
         Link.l1 = DLG_TEXT[225];
         Link.l1.go = "Interceptor_talk";
       }     
       If (CheckQuestAttribute("henry_talk", "henry_new_dialog"))
       {
         dialog.snd1 = "Voice\HENR\HENR020";
         dialog.snd2 = "Voice\HENR\HENR021";
         dialog.snd3 = "Voice\HENR\HENR022";
         d.text = DLG_TEXT[195];
         Link.l1 = DLG_TEXT[196];
         Link.l1.go = "quest choice";
       }
       if (pchar.quest.henry_talk == "henry_decide_on_Interceptor")
       {
         dialog.snd1 = "Voice\HENR\HENR020";
         dialog.snd2 = "Voice\HENR\HENR021";
         dialog.snd3 = "Voice\HENR\HENR022";
         d.text = DLG_TEXT[224];
         Link.l1 = DLG_TEXT[225];
         Link.l1.go = "Interceptor_talk";
       }       
       else
       {
         dialog.snd1 = "Voice\HENR\HENR039";
         dialog.snd2 = "Voice\HENR\HENR040";
         dialog.snd3 = "Voice\HENR\HENR041";
         d.Text = RandPhrase(DLG_TEXT[143] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[144], DLG_TEXT[145], DLG_TEXT[146] + GetMyAddressForm(NPChar, PChar, ADDR_CIVIL, false, false) + DLG_TEXT[147], &dialog, dialog.snd1, dialog.snd2, dialog.snd3);
         Link.l1 = DLG_TEXT[148];
         Link.l1.go = "Exit";
         Link.l2 = DLG_TEXT[149];
         Link.l2.go = "Node_30";
       }
     break;
Note how "henry_decide_on_Interceptor" is in there TWICE.
And I think whatever "henry_quest_gotidols" and "henry_new_dialog" are supposed to do,
they won't work because they'd get overridden by the 'else' of the second "henry_decide_on_Interceptor" section.

Extract attached to PROGRAM\Storyline\JackSparrow\dialogs and see if that works any better.
I changed that whole section into nested if-statements so hopefully it DOES work as it was intended.

Not sure what effect this is going to have. Looks like those particular sections COULD be accessed through different dialog choices, so it might not make all that much difference.
 

Attachments

  • Henry_dialog.zip
    3.6 KB · Views: 96
Back
Top