Jump to content

cmorgan

Gibberlings
  • Posts

    7,198
  • Joined

  • Last visited

Posts posted by cmorgan

  1. Cool stuff - and good to think about. And my stuff was *definitely* not giving legal advice - it was completely my own speculation and example! And I am going to go look up Fair Use Exception, as that sounds like something I would like to know more about...

  2. I'm silly - and I should change my license to Creative Commons Commercial use restricted BY-NC - but it was fun writing it. In retrospect I should have said something like "Hey - talk to me before writing for my stuff" in louder form than a whole tutorial blog post thread on how to proceed with crossmod without hurting other modder's feelings or accidentally stealing the entirety of another author's work, as time passes and not many folks read stuff they don't want to know about.

    So, I wrote this up as my "license":

    Quote

    This mod is not developed, supported, or endorsed by BioWare, BeamDog, Overhaul, or Interplay/BlackIsle. It is not released under any license at all, because it is a EULA-breaking Law-shirking Free Random Expression Of Fun(tm), and the only "license" it could fit under is probably not enforceable in any way shape or form. I hereby grant anyone the freedom to do anything they want with it. If you rip off large parts of it, contact Aran Sorkin, Joss Whedon, and any number of other sci-fi and fantasy authors and pay them, because any good stuff in here is probably rephrases of their work that have been floating about in my brain for years, only "Forgotten Reams-Ized". If there are any copyright issues or this statement needs revision then please contact me and advise me what to do about it. This mod was created to be freely enjoyed, mercilessly hated, or stalwartly ignored by all Baldur's Gate II players. If you are looking to make a buck or two off of it, you really have not played the mod. I'd advise you to do so, especially the naughty bits, because that will kill any ideas you had about actually, you know... profiting :) .

     

     

    And the only phrase I would probably change is change "anything they want with it" to "anything they want with it as long as no one is restricted from using it behind a paywall, no one makes any money off of it, and they assume any and all liability when an angry company comes hunting for copyright infringement and cash."

    But truly, almost any license you use is just about the same as just admitting "I can't stop you from ripping off my stuff because I don't have money for lawyers, and even more importantly because while I worked my butt off and the creativity and work is mine, I was doing it on an already copyrighted piece of intellectually protected code without paying a license fee or even asking their formal legal permission to write my fanfic into a commercially available product".

     

    It does serve as something that modding sites can point to and say "ok, that is what the modder wanted". The modding community takes a dim view of other folks taking over a mod/copying most of a mod/rewriting content for other folk's mods without permission. And the license can help determine to the modding sites and the community what the author wanted.

  3. ...aaaaand back to "on topic" - a quick adjustment to the regexp, as the initial files are C-ARANJ and then the second drops the middle A (and I don''t trust my regexp-foo at all). I will gladly take my 6-to-2 reduction and run with it rather than the more efficient 6-to-1 reduction for an odd but specific reason -

    when I mod I use "find in files" with NotePad++ and when I look for stuff that touches "C-ARN25J" or similar, I won't find this a match without including this in the find. The rest of the timer I'd look for with  RealSetGlobalTimer( and see what pops up before filtering, as a way to look for typos and mismatches across whatever I am looking for.

    REPLACE_ACTION_TEXT_REGEXP C-ARANJ ~RealSetGlobalTimer("c-aran\(friend\|rom\|flirt\)timer","GLOBAL",[^)]+)~ ~RealSetGlobalTimer("c-aran\1timer","GLOBAL",5405)~
    
    REPLACE_ACTION_TEXT_REGEXP C-ARN25J ~RealSetGlobalTimer("c-aran\(friend\|rom\|flirt\)timer","GLOBAL",[^)]+)~ ~RealSetGlobalTimer("c-aran\1timer","GLOBAL",5405)~
    
    
  4. Cool discussion, though - lots of good ideas. I can see building a mod from scratch that follows @subtledoctor's posting, especially for an NPC mod.  

    @Ardanis and @CamDawg  I think are correct on the modder front - grab a simple set of ideas, build in a way for advanced users to tweak which content they want, and spend the time on developing new content. In Aran W  I enjoyed doing crazy stuff back in the day, trying to look for situations to use WeiDU in non-standard ways, because the mod was supposed to also be a "blog" about problem solving and choosing as a modder - and pushing stuff that worked in BiggDu that I saw coming through the testing stuff but didn't see out there in (many) other mods. That time has long since passed, and much of the code used is handled much better in simpler ways now. That leaves me free to just tweak what I have and write new content.

    ( @jastey, I suspect also that CamDawg is gently reminding me that I can get easily distracted from content by looking at cool shiny new-to-me coding ideas and spend weeks playing about with that - and that most of us have dress shoes older than my as-yet-unfinished mods "development time"...)

    For this project, since I decided to move to SUBCOMPONENT and GROUP, I might even use several of these ideas, since I have spent a week rebuilding the portraits and timers into default->sc choice patched->sc choice patched. I still have to deal with the multiple .cre dual class, equipment, and weapon choices, so after a week working on content I can come back, poke around, and make a choice on some of the ideas presented here. The idea would be to make distinctions between "meaningless choices introduced by pushing overdone code examples" and "meaningful and targeted player options".

    I still enjoyed (most of) the discussion, though probably it should have been under a separate post like

    "Auto-Installers - Their Problem Or Ours?"

    or perhaps

    "Ways To Make Auto|Mega|Player|Multi|Ancient -Friendly Mods And Be Everything To Everyone While Coding A Mod" :D

  5. Dang, @CamDawg - I need to go refresh my (very limited) regexp knowledge - that is sweeeeeet - I will implement that on the next pass!

     

    Wow, @subtledoctor -  mind... blown.  So flip the traditional mod structure on its head. Instead of installing a base mod and then editing it, create a workflow that makes a decision up front and then adds the rest of the mod down the chain.

    It would even work with Alien's mod install tool.

    For me, though, there is way too much player choice to work it out without my brain going nuts. I would have to think backwards - and the initial subcomponents to establish the workflow would be

    BEGIN ~Twelve Hour Timers, Aran to Dual Class to Cleric, Portrait #9, Poor Equipment, Scale Armor, Long Sword, Shield, Long Bow~
    	SUBCOMPONENT ~How many Torm-Kissed Choices Do You Want Me To Go Through You Silly Modder?~
    	OUTER_SET ARAN_LTT = 3600
        INCLUDE ~mod/outer_set_choice_pattern_176_or_a_zillion.tpa~
    	INCLUDE ~mod/rest_of_mod.tpa~
    
    BEGIN ~Twelve Hour Timers, Aran to Dual Class to Cleric, Portrait #9, Poor Equipment, Scale Armor, Long Sword, Shield, Crossbow~
    	SUBCOMPONENT ~How many Torm-Kissed Choices Do You Want Me To Go Through You Silly Modder?~
        INCLUDE ~mod/outer_set_choice_pattern_177_or_a_zillion.tpa~
    	INCLUDE ~mod/rest_of_mod.tpa~
    

    although come to think of it that might be a cool way to handle it after all. I would just need to pare down the choices I am allowing.

     @jastey I know setting the values to 'non-standard" ones takes care of the problem but is overkill after using regexp to blow away the original value  (I am not adding values to gtimes.ids the way we were, just trying to patch the darned stuff :)  )  - I am just going to make very sure I can see the changes, and that the changes were made by my mod not something else. Or did I not understand you?

  6. 10 hours ago, cmorgan said:

    I will retest, but this brings up a rather awkward problem. If I am installing BG2 Fixpack, I am working with a clean GTIMES.IDS and can do R_A_T without fear of other entries in the .ids.

    If, on the other hand, I am an NPC mod that has other folks going first, I am not sure what values match the same entries. Since we have had mods in the field for years that use the .ids entries as shortcuts for timers. 3600 = a bunch of entries. And I can't account for what would be on a mega install...

    And to answer my own question in another way - devSin and Smoketest spent some time really explaining all this symbolic referent to me, but it has taken over a decade for the lesson to sink in.

    In a nutshell, if you want to make sure that an .ids or something doesn't accidentally interfere on compilation/decompilation, then...

    get this...

    use a nonstandard value. 🙄

    So final .d for me is a series of files with different values, and set my initial .bcs as a non-standard value so that it can be easily picked up and sorted.

    file c-arantimer1h30min.d

    /* Change the installed timers in .dlg to values that are a minimum of 1 hour 30 minutes real time before the next talk can trigger */
    /* all timers (after initial .bcs) in the project are set through dialog, and they all are the same length - the initial .bcs block staggers the start out to try to make it less likely that multiple events align */
    
    REPLACE_ACTION_TEXT C-ARANJ ~RealSetGlobalTimer("c-aranfriendtimer","GLOBAL",\([^)]+\))~ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",5405)~
    REPLACE_ACTION_TEXT C-ARANJ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",\([^)]+\))~ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",5405)~
    REPLACE_ACTION_TEXT C-ARANJ ~RealSetGlobalTimer("c-aranflirttimer","GLOBAL",\([^)]+\))~ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",5405)~
    REPLACE_ACTION_TEXT C-ARN25J ~RealSetGlobalTimer("c-aranfriendtimer","GLOBAL",\([^)]+\))~ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",5405)~
    REPLACE_ACTION_TEXT C-ARN25J ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",\([^)]+\))~ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",5405)~
    REPLACE_ACTION_TEXT C-ARN25J ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",\([^)]+\))~ ~RealSetGlobalTimer("c-aranflirttimer","GLOBAL",5405)~

     

     

  7. Found the workaround for printing to the log - 

    DOSOMETHING @52 /* ~myTraline~ */

          OUTER_SPRINT myVar @52

           APPEND ~myFile~ %myVar%

    Don’t know if that helps, but the original idea was to create a user readable log of what banters were actually installed. 

  8. Heh. So, leave it to me to try to reverse engineer a nuclear weapon to swat a fly...

    1. that array won't work as the first column needs to have unique entries - the simplest answer would be to process each file once for each variable.

    2. since the timers are setting in the dialog using the same value, I don't need to be careful about only replacing a very specific set without touching others

    3. the wicked cool code above has the simplest answer - a regexp for "find all the flies and eat them".

    So using

    REPLACE_ACTION_TEXT C-ARANJ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",\([^)]+\))~ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",4000)~

    does the job, bypassing the problem of parsing the .ids

    .bcs is another matter, but there are only two script blocks to manipulate, and they (hopefully) will not have the same problem. If they do, then I can always false() and rebuild.

     

    Thank you for getting me on the right track, @CamDawg

  9. Cool - that definitely worked! 😀

    And, Dammit, that definitely worked. 😒

    I will retest, but this brings up a rather awkward problem. If I am installing BG2 Fixpack, I am working with a clean GTIMES.IDS and can do R_A_T without fear of other entries in the .ids.

    If, on the other hand, I am an NPC mod that has other folks going first, I am not sure what values match the same entries. Since we have had mods in the field for years that use the .ids entries as shortcuts for timers. 3600 = a bunch of entries. And I can't account for what would be on a mega install...

    unless I parse the gtimes.ids for the value that the local install is going to use as the decompiled label?

    So which is more stable, using the "heck just slap MYNPC_TIMER in there and then edit the .ids to the new value", or "do it right by setting a static value, then try to account for what weidu is going to see when it decompiles my dialog?"

     

    I am looking carefully at what you do in Tweaks, here:

    ACTION_PHP_EACH cd_romances_timers AS script => variable BEGIN
    
      ACTION_IF FILE_EXISTS_IN_GAME ~%script%.bcs~ THEN BEGIN
      
        COPY_EXISTING ~%script%.bcs~ ~override~
    	  DECOMPILE_AND_PATCH BEGIN
    	    REPLACE_EVALUATE ~RealSetGlobalTimer("%variable%","GLOBAL",\([^)]+\))~ BEGIN
              PATCH_IF IS_AN_INT MATCH1 BEGIN
    		    SET time = MATCH1
    		  END ELSE BEGIN
                SET time = IDS_OF_SYMBOL (~GTIMES~ ~%MATCH1%~) // should convert stuff like EIGHT_HOURS to numeric value
              END
              SET time = ((time * romance_speed_factor) / 100) 
            END ~RealSetGlobalTimer("%variable%","GLOBAL",%time%)~	
    	  END
    	  BUT_ONLY
    	  
      END
    
    END

    Just not sure of some stuff. Like, can that array have multiple passes at the same dialog file, such that

    
    C-ARANJ => c-aranBG2romtimer
    C-ARANJ => c-aranBG2friendtimer
    C-ARANJ => choseninitialflirt
    C-ARANJ => anothervalue
    C-ARN25J => etc. etc. etc.

    It looks promising, so I will go play about - unless someone comes along and fixes it all up for me.

     

     

     

     

  10. Hello, oh fellow Weidu-ites - I am having a little trouble messing about with R_A_T.

    Problem:

    I have timers as variables set by ACTION_READLN. I want to move that to individual SUBCOMPONENT to make it easier for unattended installs.

     

    Currently, I use OUTER_SET ARAN_LTT = 3600 to build the "default install values".  The timers I need to adjust later are set almost exclusively through dialogue:

    IF ~Global("c-aranbg2rom","GLOBAL",7)~ THEN BEGIN a111
      SAY @3864
      ++ @3865 DO ~SetGlobal("c-aranbg2rom","GLOBAL",8) RealSetGlobalTimer("c-aranromtimer","GLOBAL",%ARAN_LTT%)~ + a112
    

    I compile the file with E_B and things go fine: resulting file in NI shows a valid action RealSetGlobalTimer("c-aranromtimer","GLOBAL",3600)

    So everything is fine for creating the default! Now comes the part where oddity ensues...

    To test changing the timer values through patching the default settings, I create a second component that compiles a file timertest.d with only the following contents:

    REPLACE_ACTION_TEXT C-ARANJ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",3600)~ ~RealSetGlobalTimer("c-aranromtimer","GLOBAL",4000)~

    It installs fine... unfortunately, there is no change to C-ARANJ.  NI shows the original timer unchanged.

    Checked the usual: NI is not running on install,  no typos, DLTCEP is not running, I am in the correct directory - .debug says the dialog file was loaded, but saved untouched.

    Perhaps I misunderstand how R_A_T is supposed to be formed? Doesn't it pick up all instances of that text in the .d and replace it with the second value?

     

     

     

  11. Thanks for the followup on the typo - I will get it fixed and up in the next batch (struggling with trying to get a way of changing the way the mod asks for user input to selected subcomponents right now and failing miserably :) )

    I think, then, what is happening is the SoA import to ToB on EET is letting him use his SoA script. You can check on your imported .cre after ToB, and see what his script is - my bet is it is C-ARAN instead of C-ARN25. This is where i need to study an EET install myself; I need to do some work, setting up some different files and following the directions EET provides to cover this.

     

     

  12. On 1/23/2019 at 8:36 PM, amellg said:

    And then in ToB, Aran's SoA PID keep popping up instead of FT/LTs every few seconds. I solved it for myself by adding a condition "GlobalLT("Chapter","GLOBAL",%bg2_chapter_8%)" to the SoA PID trigger. Looks like the problem can be fixed by this.

    That... shouldn't happen. They are in two separate dialog files.

    Wait a sec...

    EET docs...

    yep. Dammit. EET came to the same conclusion Acsension64 did with BGT, and stacked files.

    OK. well. The good news is that your solution will work well with those SoA PiDs.

     

    Unfortunately the inside of my head just exploded, with a million swearwords running around - I have no idea if the weighting and construction of the two dialogue files merger has any odd results on the project here. I know EET is well coded, but I don't know about my stuff, since they were build without interaction except where parts are duplicated with different variables (like Watcher's Keep). The old "fix" back in my BG1NPC days was to set a variable on BGT content that did not exist in BG only on BGT games - wait...

    yep. They kept that. Plus a new one: " InToB - vanilla variable that is set to 1 in the first area of Throne of Bhaal expansion (AR4000.BCS)". I probably need to play around with this.

    And the transition is covered here : " As mentioned in readme file EET uses new system for NPC transition from Siege of Dragonspear expansion to Shadows of Amn and from Shadows of Amn to Throne of Bhaal expansion. In order to make modder's life easier we've prepared a function designed to automatically add both types of transition to any kind of NPC mod. All you need to do to make your NPC fully compatible with EET is disabling your normal patching code for AR4000.BCS, AR4500.BCS, FATESP.DLG and using EET_NPC_TRANSITION function instead ".

  13. On 1/23/2019 at 8:36 PM, amellg said:

    If Aran stay in party from the ending of SoA to ToB, his ToB FT/LTs will not fire automatically, unless I send him back to Amn via Fate Spirit, and summon a new Aran by choosing "Bring me Aran Whitehand / my former lover / my lover Aran...".

    I *think* this is the same problem we just fixed in the post above this one... but we will have to re-test. I don't know enough about how EET keeps the party together to say for certain.

  14. On 1/23/2019 at 8:36 PM, amellg said:

    Another question about ToB romance: According to c-arn25.baf, one of the conditions to active ToB romance is Global("c-aranmatch","GLOBAL",0). But c-aranmatch is already 1 since SoA.

    This one is a little more awkward - a strictly EET thing I think (but might be BG2EE-SoA->BG2EE-ToB as I know moving your party to the expansion in the EEs has improved dramatically over Ye Olden Days of Yore).

    BG2 SoA did not have much functional "move between the parts". So much so that BGT was born. And it still didn't have much portability (though more than traditional stuff). So, the assumption is that an NPC is going to be summoned through the Fate Spirit. If it is, then the Fate Spirit dialog is used to set all the relevant variables - basically, a new PC or one brought up from SoA can "rewrite history" by stating that the NPC was her lover, or is her lover, or is just a friend.

    BUT.

    for the materials for Aran in ToB to be consistent, the romance check needs to run so that a newly created PC has the same opportunities to develop the relationship - especially the flirting and such.

    BUT.

    Apparently the new games bring over those variables (or you wouldn't be reporting a halt in the process).

    So the simplest solution is to split the blocks up to fire one at a time - one that sets the match if it is not set, the other that fires when it is set (it won't run in SoA as the .cre there is assigned the SoA script and this second check is run on the ToB script). Basically, if the variables are persisting and Aran is running his correct scripts for ToB, he should do his stuff. If the variables are not, then the first block catches that and sets it.

    Untested (other than the usual "it installs without error and NI and DLTCEP agree everything looks right) but activated:

    IF
      Global("c-aranmatch","GLOBAL",0)
      Global("c-arantobrom","GLOBAL",0)
      InParty(Myself)
      !StateCheck(Myself,CD_STATE_NOTVALID)
      !StateCheck(Player1,CD_STATE_NOTVALID)
      Gender(Player1,FEMALE)
      !HasItemEquiped("belt05",Player1)  // Girdle of Gender
    THEN
      RESPONSE #100
        SetGlobal("c-aranmatch","GLOBAL",1)
        RealSetGlobalTimer("c-aranromtimer","GLOBAL",EIGHT_HOURS)
        RealSetGlobalTimer("c-aranflirttimer","GLOBAL",FOUR_HOURS)
    END
    
    IF
      Global("c-aranmatch","GLOBAL",1)
      Global("c-arantobrom","GLOBAL",0)
      InParty(Myself)
      !StateCheck(Myself,CD_STATE_NOTVALID)
      !StateCheck(Player1,CD_STATE_NOTVALID)
      Gender(Player1,FEMALE)
      !HasItemEquiped("belt05",Player1)  // Girdle of Gender
    THEN
      RESPONSE #100
        SetGlobal("c-arantobrom","GLOBAL",1)
        RealSetGlobalTimer("c-aranromtimer","GLOBAL",EIGHT_HOURS)
        RealSetGlobalTimer("c-aranflirttimer","GLOBAL",FOUR_HOURS)
    END

    Going to recheck the IDS I am using as that EIGHT_HOURS and FOUR_HOURS is certainly not intended, unless it is the values for in-game time, rather than real time. Darn it - forgetting things. I used to know this.

    Commit code here.

  15. 22 hours ago, amellg said:

    This one is a question: In ToB, When I ask "What do you think our "relationship" is?" from PID, Aran answers and says "why do you be askin'?", the option "I was just wondering." disappears from the PC reply list because my c-aranrom is 2 but it requires Global("c-aranrom","GLOBAL",0). Why it has trigger conditions like this while there's none in SoA?

    Hmmm.... I am not sure 🤔 -  checking against all other variants of this, it looks like a typo.

      D:\BeamDog\00783\aranw\dialog\c-arandialog.d (2 hits)
        Line 29603: ++ @11286 EXIT  
        Line 29637: ++ @11286 EXIT
      D:\BeamDog\00783\aranw\dialog\c-arantobdialog.d (3 hits)
        Line 10761: ++ @11286 EXIT
        Line 10828: ++ @11286 EXIT
        Line 10907: ++ @11286 EXIT
      D:\BeamDog\00783\aranw\tra\english\C-ARANW.TRA (1 hit)
        Line 11670: @11286 = ~[PC] I was just wondering.~

    Behavior now matches the SoA J and P files, and the other two ToB (A25 and P25) files. Commit made Here.

     

     

     

  16. 9 hours ago, amellg said:
    • The first time I talk to Salvanas in Copper Coronet, Aran wil make a comment like "Persistant little bastard, eh?..."
      The second time I talk to Salvanas, the same place shows a "NO VALID REPLIES OR LINKS". 

    Edit: Found this one was already mentioned in another thread years ago.

    Well, I found one possible source - I had one trigger on LOCALS and set GLOBAL. So that is fixed.

    IF ~~ THEN BEGIN 24 // from: 23.0 22.0 21.0
      SAY #25178 /* ~It saddens me, but if it must be so, I shall worship my goddess from afar! Farewell, my goddess!~ */
      IF ~  OR(4)
    Global("c-aransalvanas","GLOBAL",1)
    !InParty("c-aran")
    !InMyArea("c-aran")
    StateCheck("c-aran",CD_STATE_NOTVALID)
    ~ THEN EXIT
      IF ~  InParty("c-aran")
    InMyArea("c-aran")
    !StateCheck("c-aran",CD_STATE_NOTVALID)
    Global("c-aransalvanas","GLOBAL",0)
    ~ THEN EXTERN ~C-ARANJ~ 3144
    END

    So the only condition that I could find that might lead to failure is that one condition on state 24:

    IF ~  OR(4) Global("c-aransalvanas","LOCALS",1) !InParty("c-aran") !InMyArea("c-aran") StateCheck("c-aran",CD_STATE_NOTVALID) ~ THEN EXIT

    as the LOCALS would be 0 and the GLOBAL would be 1.

    Untested in-game (installed and inspected with NI and DLTCEP) but repair is up  right here on GitHub

    Also, thank you for the typos - all repaired and about to go up - since some are the adult stuff, not linking the commit, but it is on GitHub.

  17. 2 hours ago, amellg said:

    About the format conversion of chapter numbers, I think the "GlobalGT("Chapter","GLOBAL"," and "GlobalLT("Chapter","GLOBAL"," may need to be converted too.

    Search ""Chapter"" (96 hits in 4 files)
    D:\BeamDog\00783\aranw\baf\c-aran.baf (12 hits)
    D:\BeamDog\00783\aranw\baf\c-arand.baf (1 hit)
    D:\BeamDog\00783\aranw\dialog\c-arandialog.d (56 hits)
    D:\BeamDog\00783\aranw\dialog\c-arantobdialog.d (27 hits)

    All repaired to EET variable substitution

    Confirming .tp2 C E_B usage to make sure we really cover these files:
    Line 275: COMPILE EVALUATE_BUFFER ~aranw/dialog/c-arandialog.d~   
    Line 281: COMPILE EVALUATE_BUFFER ~aranw/dialog/c-arantobdialog.d~
    Line 1069: COMPILE EVALUATE_BUFFER ~aranw/baf/c-aran.baf~ /* override script */
    Line 1071: COMPILE ~aranw/baf/c-arand.baf~ /* SoA dreamscript */

    Successful install on BG2EE + Gavin (latest)

    And NI says...

    in the DreamScript,


    GlobalLT("Chapter","GLOBAL",127514)


    OK. That looks... wrong.

    in dialogue files, no worries - IsGabber(Player1) Global("chapter","GLOBAL",5) shows up just fine for the underdark PiD.


    So I need to investigate that script.

    All instances repaired and integrated, though - commit linked here.

     

    Edit: AHA!! Modding While Drinking Scotch Is Fun But Silly(tm). Found it. No E_B on C-ARAND.BAF - right in front of my eyes. Repaired, test installed, NI and DLTCEP show a happier global!

    Repair commit linked here.

  18. No, absolutely great feedback! I will take a look and let you know what I find out.

    For one thing, I need to look at the way EET brings the characters along - I assume a ToB resummoning, and it looks like it must do something else. I will take a run at these tonight!

  19. Quote

    /* Aran Romance vs Anomen Romance - Perspectives and Personalities */
    /* ToB New LT 1 after summoning dialogue has run */
    IF  ~Global()~ THEN BEGIN h100
      SAY ~[ARAN] Mayhap this be a bad time, but you know me... always talkin' out o' turn. I need to ask you, though... ~
      = ~[ARAN] Any regrets? I mean, so far, you done experienced more trouble than a thousand others what walk Toril.~
      ++ ~[PC] No regrets. In the end, I will get things accomplished my way.~ + h113
      ++ ~[PC] What's the matter, Aran? Are you having regrets about a life of neverending adventure?~ + h114
      ++ ~[PC] Only one regret, Aran... I regret that I have not had enough time to start building a family with you.~ + h101
      ++ ~[PC] My only regret is you. I should never have brought you here.~ + h106
      ++ ~[PC] Well, I always wanted to be an exotic Calishite dancer....~ + h107
    END

    IF ~~ h114
      SAY ~[ARAN] Well, mayhap I do. Accomplishin' great deeds an' becomin' the most known name in this part o' th' world, right up there wi' Elmister an' Blackstaff, that seemed like a great idea at the time, eh?~
      = ~[ARAN]But we have already done all that, an' received naught but more trouble for th' pain.  Even worse, it be your name alone what gets out there, really.~
      + ~CheckStatGT(Player1,12,WIS)~ + ~[PC] You do not really want that fame for yourself, Aran. You just said it was thankless pain. Does it really hurt you that I am more famous than you?~ + h110
      + ~CheckStatGT(Player1,15,INT)~ + ~[PC] So you feel that you are getting less fame than you deserve? Or do you feel I am getting too much credit?~ + h110
      ++ ~[PC] Fame, fortune, infamy, power, bard's tales and songs... I would give it all up if I could start life over as an exotic Calishite dancer.~ + h107
      + ~Alignment(Player1,MASK_GOOD)~ +  ~[PC] What is wrong with me being famous?~ + h103
      + ~!Alignment(Player1,MASK_GOOD)~ +  ~[PC] What is wrong with me being famous? Or infamous?~ + h104
      ++ ~[PC] Your name is out there as much as mine.~ + h102
      ++ ~[PC] I did not ask for this.~ + h102
      ++ ~[PC] I deserve every bit of fame. You are useful, but secondary.~ + h106
    END

    IF ~~ h101
      SAY ~[ARAN] Chauntea's Golden Arms. A child, hearth an' home, when you keep gettin' dragged into th' worst parts o' th' god's conflicts? That be an invitation to disaster, eh? But it be a nice dream.~
      IF ~~ THEN GOTO h102
    END

    IF ~~ h102
      SAY ~[ARAN] You always come out on top, but it be a sure bet that your life will never be what folks call 'ordinary'.~
      ++ ~[PC] Does that bother you?~ + h105
      ++ ~[PC] I like it on top. Actually, I like it on the bottom, and in several other very fun variants...~ + h114
      ++ ~[PC] Did you want things to be very different than they are now?~ + h105
      ++ ~[PC] I was never ordinary. You, on the other hand, are very ordinary. One of you on every streetcorner.~ + h106
      ++ ~[PC] I never wanted to be ordinary.~ + h113
    END

    IF ~~ h103
      SAY ~[ARAN] Doin' th' right thing by others seems to be more about th' harp edge o' th' sword an' less about talkin'. That do get a bit tirin' to th' spirit, is all.~
      IF ~~ THEN GOTO h110
    END

    IF ~~ h104
      SAY ~[ARAN] I mean, I know my place, an' you call th' targets. That be th' right o' it.~
      IF ~~ THEN GOTO h110
    END

    IF ~~ h105
      SAY ~[ARAN] Sometimes. I wish that the world would remake itself, an' leave you a mite bit o' space for yourself. You know, some o' those ordinary dreams we might be makin' together.~
      IF ~Alignment(Player1,MASK_GOOD)~ THEN GOTO h103
      IF ~!Alignment(Player1,MASK_GOOD)~ THEN GOTO h104
    END

    IF ~~ h106
      SAY ~[ARAN] Well hells, that be right cold o' you.~
      ++ ~[PC] Truth is cold. Power is cold. I am cold. I think it is about time you stop talking and warmed me up.~ + h114
      ++ ~[PC] You never really understand when I am teasing you. Perhaps if I said it with a pouty face, like a Calishite dancer?~ + h107
      ++ ~[PC] Try again. You can do better with your compliments. How do you feel when I am here with you?~ + h116
      ++ ~[PC] Truth is cold. Power is cold. Reality is reality, and we can do little to change it.~ + h117
      ++ ~[PC] I am sorry. You mean well. I am just a little on edge.~ + h110
    END

    IF ~~ h107
      SAY ~[ARAN] Now that be a mental image I am not likely to get out o' my head any time soon! I can just see it now - I'd be a right smart protector. Only I'd want all th' dancin' to be for me, eh?~
      ++ ~[PC] Seriously. I would give it all up. I never wanted to be the sharp edge of a blade gods wield about like crazed bandits. I would rather be a Calshite dancer. It amounts to the same thing... being continually used by others for their own pleasure and profit.~ + h111
      ++ ~[PC] And every dance would be for you. Maybe you would even dance for me. Or we could dance together...~ + h112
      + ~CheckStatGT(Player1,15,INT)~ + ~[PC] Ahha! I have successfully distracted you from your deep and dreary introspection! I shall follow up with some sharp satire, a witticism or two, followed by an intensive bought of kissing.~ + h108
      + ~CheckStatGT(Player1,12,WIS)~ + ~[PC] I know you had some important feelings to discuss, Aran, but I need more distraction and less thinking right now. So you have a woman with low willpower in need of a boost of self-esteem, standing right here, loosening her clothing a little...~ + h114
      ++ ~[PC] I was teasing you. Sometimes you are really slow.~ + h113
      ++ ~[PC] So tell me why I am worth all this trouble.~ + h116
    END

    IF ~~ h108
      SAY ~[ARAN] Hey, I be serious here! How is a man supposed to be a right good partner when...~
      ++ ~[PC] I know how you feel, Aran. You don't have to tell me all the time.~ + h109
      ++ ~[PC] You can be a good partner by assuring me that you will always be there for me.~ + h109
      ++ ~[PC] I thought we had settled all this long ago. Why does it bother you that you and I have different strengths?~ + h109
      ++ ~[PC] We have one area where we will always be equal. We both love each other very, very much.~ + h109  
      ++ ~[PC] You are still talking. You are wasting my time.~ + h111
    END

    IF ~~ h109
      SAY ~[ARAN] I... Melliki's Wild Whiskers. I think I be a bloody idiot. I didn't realize I was bein' such a fool. You be right, <CHARNAME>. An' the only measure o' accomplishment that I need, anyhow, be your comfort.~
      ++ ~[PC] Hey, is this deep conversation just another way of getting me into your bedroll?~ + h114
      ++ ~[PC] Blood, conflict, strife, murder, death, the end of the world as we know it, and I feel fine. Come on, it is exciting, isn't it?~ + h111
      ++ ~[PC] So tell me why I am worth all this trouble.~ + h116
      ++ ~[PC] I agree that you are an idiot.~ + h110
      ++ ~[PC] Well then, you had better get me a really nice set of boots. That would make me more comfortable.~ + h118
    END


    IF ~~ h113
      SAY ~[ARAN] I don't rightly know whether you be jokin'. Sometimes I feel like th' current sitution be what you love to do.~
      ++ ~[PC] Joking, of course. Things never work out quite the way I plan.~ + h110
      ++ ~[PC] Don't be silly. I am strong enough to bend Fate's pathways to my will. I have you, don't I?~ + h115
      ++ ~[PC] Blood, conflict, strife, murder, death, the end of the world as we know it, and I feel fine. Come on, it is exciting, isn't it?~ + h108
      ++ ~[PC] None of the above. But the Fates will not be denied. I am just glad that they included you along the way.~ + h115
      ++ ~[PC] Hey, is this deep conversation just another way of getting me into your bedroll?~ + h114  
    END

    IF ~~ h116
      SAY ~[ARAN] Now, you be a sight for sore eyes, an' just bein' by your side makes me feel like I be ten feet tall.~
      ++ ~[PC] So I damage your eyesight and make you puffed up to the size of a giant. Great. I suppose I also make you gassy?~ + h111
      ++ ~[PC] I think you are trying to compliment me... but it is missing the mark.~ + h110
      ++ ~[PC] I could compliment you as well, but it is silly. We have more important things to be focused on.~ + h111
      ++ ~[PC] And you make me feel practically invinceable, supported, and loved.~ + h114
      ++ ~[PC] I know. I have that effect on people.~ + h115
    END

    IF ~~ h110
      SAY ~[ARAN] Look... mayhap my words be all wrong for what I be tryin' to say. I want naught more fame, naught more fortune, as long as I can be wi' you. But...~
      ++ ~[PC] You don't have to talk to comfort me. You could take action.~ + h114
      ++ ~[PC] But. There is always a "but" with you. I thought you were completely mine.~ + h115
      ++ ~[PC] Your words were wrong, and you are making it worse.~ + h111
      ++ ~[PC] Your words are fine. Your actions are fine. Me, I am not fine.~ + h115
      ++ ~[PC] Dreary, boring, talk talk talk. We need to find something to kill, and quickly.~ + h114
    END

    IF ~~ THEN BEGIN h111
      SAY ~[ARAN] Aye, now, that be me. Always tryin' to cheer you up a mite bit, an' failin'.~
      ++ ~[PC] You succeeded. At least you distracted me for a little while, and I could pretend things were normal.~ + h112
      ++ ~[PC] You are right. Next time, you could try telling me a story, or acting out part of a play, or something.~ + h112
      ++ ~[PC] Next time you want to distract me, you could try something more physical...~ + h114
      ++ ~[PC] I am not sure the distraction worked, but I appreciate you trying.~ + h115
      ++ ~[PC] There are some situations where nothing you can do can provide comfort.~ + h115
    END

    IF ~~ h112
      SAY ~[ARAN]  Well, now, if we be play actin', the least I can do is play along, eh? I done heard o' plays where clothin' be optional, too. Mayhap that would be th' right kind o' distraction to cheer you up.~
      IF ~~ THEN EXIT
    END

    IF ~~ h114
      SAY ~[ARAN] Can we skip right to th' part where you tackle me an' start th' kissin'? When you talk like that to me, it gets me right excited, it does!~
      IF ~~ THEN EXIT
    END

    IF ~~ h117
      SAY ~[ARAN] I beleive some o' that, but not all.~
      IF ~~ THEN GOTO h115
    END

    IF ~~ h115
      SAY ~[ARAN] I done signed a contract wi' you in my heart a while back, <CHARNAME>. Good times an' bad times, I be your shield. Small comfort, but comfort to you, I hope.~
      IF ~~ THEN EXIT
    END

    IF ~~ h118
      SAY ~[ARAN] One decent pair o' boots? That could be done. I will keep a sharp eye out, eh?~
      IF ~~ THEN EXIT
    END

     

  20. Amellg, thank you for reporting - in addition to the odd area actor behavior listed as fixed in the beta thread, I have tracked down the Gavin <> Aran gift interaction error. (Credits to Roxanne and Berelinde for the idea and implementation, and to Berelinde for letting me add the gift option to her mod). Install order to see all content is Gavin BG2 then Aran Whitehand. Fix is up and checked by installing over Gavin on a clean install of BG2EE and checking the relevant files in NI.

    In addition I set up the dialogue and script conditioning to work on EET by shamelessly copying and pasting from Jastey's and CamDawg's latest releases. Luckily all the relevant code fell within files already using COMPILE EVALUATE_BUFFER...

    GitHub Commit 84d96a4ffe48372c3fd2d9069be9ac6577b55675

    I expect the GitHub master for Aran to be moving to the G3 Organization within a week, if Mike1072 and I can make it happen; no worries if he vanishes from GitHub general access when that is in process. I have a full backup locally.

     

     

×
×
  • Create New...