1. Dismiss Notice
  2. GOG.com logo

    Thanks to YOUR votes, GOG.com now sells:
    - Sea Dogs - Sea Dogs: Caribbean Tales
    - Sea Dogs: City of Abandoned Ships

    Vote now to add Pirates of the Caribbean to the list!

    Dismiss Notice
  3. Under the Crossbones Podcast

    A Pirate Podcast with Interviews
    Music, Comedy and all things Pirate!

    - Episode Guide - About - Subscribe -
    - Twitter - Facebook - iTunes - Android -
    - Youtube - Fill the Coffers -

    Dismiss Notice
  4. New Horizons logo

    Quick links for PotC: New Horizons
    - Download latest version
    - Wiki - FAQ - Report bugs here
    - ModDB profile

  5. GOF logo

    Quick links for AoP2: Gentlemen of Fortune 2
    - Downloads and info
    - Historical Immersion Supermod
    - ModDB Profile

Dismiss Notice
New to the forum?
Please take a moment to read our Welcome Message and Forum Rules.

Need Help Dialogue Gender Overhaul

Discussion in 'POTC: New Horizons Mod' started by DeathDaisy, Sep 18, 2017.

  1. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    If you want to do some quest writing, there are (at least) two openings. "Devlin Opera" has been unfinished for a long time. Or, for something smaller to get you started, have you tried playing the "Help the Lady" sidequest? That's the one in which you meet Armand Delacroix, meaning you get to try out his new dialog. It ends with him telling you to look for a letter back at the Pirate Settlement, presumably leading to another quest with Armand and Estrella - but at present there is no letter and no follow-up quest...

    I'd advise not making sweeping changes to the "standard" storyline. It's the original PoTC game storyline and is still recognisable. Being something of a traditionalist, I for one would rather like it to stay that way. ;) But apparently the original game writers wanted to make it playable as Danielle, so making the dialog use placeholders and having the main NPC change to Nathaniel Hawk if you're female would fit in well.

    You could also try copying an existing sidequest. Change names and locations, change dialogs to make your version more distinct, and go on from there. (Ever talked to Rys Bloom? Ever talked to Fred Bob? Rather similar, aren't they? ;))
     
    Pieter Boelen likes this.
  2. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Haven't been able to keep up with all the rapid progress here, but I want to pitch in anyway to say I really enjoy seeing stuff happening here.
    Keep up the good work! :woot
     
  3. DeathDaisy

    DeathDaisy Freebooter Storm Modder

    Joined:
    Aug 18, 2017
    Messages:
    266
    Gender:
    Female
    Alright, that's fair enough, I won't make any drastic changes (maybe just for personal use) xD Gonna have a look at the smaller scale quests and see if I can make sense of it!

    Thanks! xD It's really fun; I've hardly been able to tear myself from the screen send help

    Also found another "sir" I missed in Thomas O'Reileys dialog, uploading the updated files! Either I've been really lucky in finding all the mistakes in just a few hours of play, or there are a lot of mistakes :shock EDIT: Another mistake in the same file, updated it againEDIT2: Found another 30 sec later, gonna go with "lots of mistakes"
     

    Attached Files:

    Last edited: Sep 22, 2017
    Pieter Boelen likes this.
  4. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    Another correction in "Peter Blowhorn_dialog.h". "brake" is what you do to stop a car, it's not what you do to a pirate's bones. :D
     

    Attached Files:

  5. DeathDaisy

    DeathDaisy Freebooter Storm Modder

    Joined:
    Aug 18, 2017
    Messages:
    266
    Gender:
    Female
    That is very true xD added another file to my last post too about 1 second before you posted, in case you missed it. I was so thorough too, and yet.. :p
     
  6. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    I know the feeling. The reason you didn't need to do much work on the priests is that I already did them while I was playing the "Strange Things Going On" sidequest. The reason you had to do anything at all to "Father Bernard_dialog" is that I missed one or two things to be corrected. :oops:
     
  7. DeathDaisy

    DeathDaisy Freebooter Storm Modder

    Joined:
    Aug 18, 2017
    Messages:
    266
    Gender:
    Female
    I'm finally not finding errors in every other conversation anymore :p but I encountered another pronoun I missed in the distasteful Enc_rapers, uploading the updated files! :checklist
     

    Attached Files:

  8. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Distasteful indeed. :ko

    That was originally a stock game feature, that was unfinished and disabled in the released game.
    Considering it's a Disney game, that definitely makes sense....
     
  9. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    A few more needed corrections:
    "Friedrich Corleis_dialog.c", "Cabinfight_dialog.c", "anacleto_dialog.c", "Artois Voysey_dialog.c": missing ")"
    "Jacobus Colijn_dialog.c": missing ","
    "Gunsmith_dialog.c": doesn't use the usual "PChar" and "NPChar" variables.

    It occurs to me that "Devlin Opera" is particularly suited to your talents. Apart from being an unfinished storyline which needs someone to finish it, as far as I can tell it's an attempt to import the storyline from "Age of Pirates: Caribbean Tales". That one gives you the choice of playing Beatrice or Blaze Devlin. Whichever one you play, you'll meet the other one during the story. The PoTC version assumes you're playing Beatrice and the dialog is written accordingly, which puts it in need of the same sort of overhaul, albeit in the other direction, so to speak.
     

    Attached Files:

    Pieter Boelen likes this.
  10. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    That is how it started when @konradk added it to test the concept of the "Storylines" system for the New Horizons mod.
    Then @Short Jack Gold took the opening scene and took it in all sorts of interesting new directions.
    Then he continued to made most of the Jack Sparrow and Hornblower storylines instead, leaving Devlin as just the opening.
     
  11. DeathDaisy

    DeathDaisy Freebooter Storm Modder

    Joined:
    Aug 18, 2017
    Messages:
    266
    Gender:
    Female
    I'd probably have kept it out if it were up to me, but it is what it is :shrug

    Syntax symbols are the worst, I knew I mustve missed some :modding I did know about the gunsmith one, but I must have missed fixing it when I did the blacksmith ones which have the same quirk

    I'll definitively have a look at Devlin opera! gonna see how far it's gotten and what I can do with the story, I haven't played caribbean tales yet. did Short Jack Gold deviate enough to take it other directions? :p

    Oh, another question I had on my mind! Is it possible to make an actorless dialog, i.e. a dialog with yourself? To like describe a scene to the player without using LogIt, but without an exposition fairy telling you what you see?
     
    Last edited: Sep 25, 2017
  12. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    Yes. 'LAi_ActorSelfDialog' works very much like 'LAi_ActorDialog' but has no timing parameters. Example:
    Code:
               LAi_SetActorType(pchar);
               Pchar.dialog.filename = "LaCroix_dialog.c";
               Pchar.dialog.currentnode = "logbook";
               LAi_ActorSelfDialog(Pchar, "player_back");
    
    The line 'PChar.dialog.filename = "<filename>";' is optional. If no such line is included, the files used by the dialog are "blaze_dialog.c" and "blaze_dialog.h". 'currentnode' points to a case in "blaze_dialog.c" just as it does for any other dialog. Case "player_back" is defined in "PROGRAM\QUESTS\quests_common.c"; it puts you back to player mode and resets the dialog filename to "blaze_dialog.c".

    You can trigger a different quest case instead of "player_back", provided that quest case is defined somewhere. If you do, your quest case must also put you back to player mode, otherwise you'll be stuck to the spot forever! If you changed the dialog filename, you should also reset it to "blaze_dialog.c" because sidequests also use 'LAi_ActorSelfDialog' and will break if you've left the dialog filename set to something else. I often use dialogs to trigger quest cases - look at the "Ardent" storyline for examples of that.
     
  13. DeathDaisy

    DeathDaisy Freebooter Storm Modder

    Joined:
    Aug 18, 2017
    Messages:
    266
    Gender:
    Female
    Right, thanks :D Not sure I 100% got it, but now that I know what I'm looking for I can probably figure it out! :p otherwise I'll come crawling back for more help I guess :type1
     
  14. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    It was restored before I ever joined this forum, so somewhere in the first year.
    I'm no big fan of removing content that other people added.
    But if somebody wants to link it to the "Brothel Mod" that defaults to OFF, that is perfectly fine by me. :doff
     
  15. DeathDaisy

    DeathDaisy Freebooter Storm Modder

    Joined:
    Aug 18, 2017
    Messages:
    266
    Gender:
    Female
    Yeah, that is definitely not a battle I wanna take :p

    I can't be sure I read the functions right since I'm still very new at this, but would something like this work?
    Code:
        LandEncTemplate[n].enc2.type = "ENC_RAPERS";
        LandEncTemplate[n].enc2.chance = 0.1;
        LandEncTemplate[n].enc2.StartTime = 16;
        LandEncTemplate[n].enc2.EndTime = 6;
        switch(IsBrothelEnabled){
            case 0:
                LandEncTemplate[n].enc2.chance = 0;
            break;
        }
     
  16. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    There's nobody left to battle with. I suppose I'm kind-of the person "in charge" these days and I'm OK with it. ;)

    Very close. Try this:
    Code:
        LandEncTemplate[n].enc2.type = "ENC_RAPERS";
        LandEncTemplate[n].enc2.StartTime = 16;
        LandEncTemplate[n].enc2.EndTime = 6;
        if(IsBrothelEnabled())
                LandEncTemplate[n].enc2.chance = 0.1;
        else
                LandEncTemplate[n].enc2.chance = 0;
    
    'IsBrothelEnabled' is a function without inputs and therefore requires the extra '(' and ')' after it.
    Replacing the 'switch' with 'if' is just a choice. Either should work equally well. :doff
     
  17. DeathDaisy

    DeathDaisy Freebooter Storm Modder

    Joined:
    Aug 18, 2017
    Messages:
    266
    Gender:
    Female
    sorry if I came across as a bit combative, I'm damaged from less friendly modding communities :love while I'm being sincere anyway I gotta praise how very good this community really is:flower

    Aaah, so that's how it works! I've looked at the inputless functions and wondered how in the world to use them.
    The if/else looks nice and clean, but for the sake of learning, would a switch version still use "case 0:" and "case 1:" since it's a bool, or how do I tell it what to look for?

    Anyway, I'm attaching the LandEnc_init with the brothel check. it's a teeny tiny change, but I hope it's of use :)


    This is kinda turning into "Teach Daisy to Code" instead of the original topic :p I'll create a new thread for the quest coding when it's got some more meat I guess, but for now I hope it's fine; another thing I came across are NPChar.quest.help or PChar.quest.alignment, which don't seem to be defined anywhere but in the characters themselves, frex ch.quest.help in officers for Fred Bob and Rys. Are they not tied to a quest per se?
     

    Attached Files:

    Pieter Boelen likes this.
  18. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands
    Thank you for the kind words!
    I will admit we don't have a perfect track record here either, but we do aim to make this an actual good place to be. :cheers

    I think your proposed switch would work perfectly fine. :yes

    I think "help" is related to those specific quests.

    "alignment" is virtually meaningless, but could become very crucial if ever the Reputation idea I've got leaves my brain and makes its way into the game.
    As it is, it is part of unfinished stock game functionality that should technically work after @pedrwyth fixed it up, but it basically never triggered.
     
  19. Grey Roger

    Grey Roger Sea Dog Staff Member Storm Modder

    Joined:
    Feb 12, 2007
    Messages:
    6,383
    Adding to @DeathDaisy's dialog upgrades, try these for a slight new twist to "Tales of a Sea Hawk". "StartStoryline.c" goes into "PROGRAM\Storyline\standard". "Greetings_alias.ini" goes into "RESOURCE\INI\ALIASES" and contains a definition for "Gr_Nathaniel" needed by "StartStoryline.c".

    "StartStoryline.c" does this:
    Code:
        if (PChar.sex == "woman")
       {
           ch = CharacterFromID("Danielle");
           ch.name = TranslateString("","Nathaniel");
           ch.lastname = TranslateString("","Hawk");
           ch.model.animation = "man";
           ch.sex = "man";
           ch.greeting = "Gr_Nathaniel";
           switch(Rand(4))           // For a bit of fun, give Nathaniel a random choice of "Blaze" outfit
               {
               case 0: SetModelFromID(ch, "Blaze"); break;
               case 1: SetModelFromID(ch, "Blaze4"); break;
               case 2: SetModelFromID(ch, "Blaze5"); break;
               case 3: SetModelFromID(ch, "Blaze6"); break;
               case 4: SetModelFromID(ch, "Blaze7"); break;
               }
       }
    If you're playing a female character, "Danielle" becomes Nathaniel Hawk, who gets a choice of clothes. There are several "Blaze" models differing only in the colour of the vest and trousers.

    I haven't played the storyline far enough yet for Nathaniel to make a scheduled appearance, but for test purposes, a bit of console magic allows him to make a very early unscheduled appearance:
    nathaniel_danielle.jpg

    The irony is not lost on me. By definition the player character ID is always "Blaze", and I didn't bother changing the NPC's ID so it's still "Danielle". Pick the right model for yourself and "Blaze" becomes Danielle while "Danielle" becomes Blaze. xD
     

    Attached Files:

    DeathDaisy and Pieter Boelen like this.
  20. Pieter Boelen

    Pieter Boelen (Not So) Old Seadog Staff Member Administrator Storm Modder Hearts of Oak Donator

    Joined:
    Nov 11, 2004
    Messages:
    66,575
    Gender:
    Male
    Occupation:
    Maritime Research: Project Engineer (Analysis)
    Location:
    Wageningen, The Netherlands

Share This Page