Guest Bozingar Posted February 25, 2021 Share Posted February 25, 2021 I'm working on a companion mod for Tweaks Anthology: Romance Cheats, and noticed a potential bug for Anomen with male PCs when you turn off gender restrictions: After recruiting him, his first LoveTalk should occur after a short chunk of RealTime. This happens for female PCs (tested via waiting as well as C:AdvanceRealTime(999999)), but never seems to happen for male PCs. It seems the Romance Cheats mod does correctly remove the restriction (verified with a value of 1 with C:GetGlobal("AnomenRomanceActive","GLOBAL")), but whatever trigger starts the RealTime countdown to Anomen's first LoveTalk doesn't seem to be activating for male PCs. My initial thought is his introduction dialogue when you first recruit him, which is gender specific. He refers to you as "my lady" when you approach him as a female PC with a couple of unique dialogue options. However, even with Romance Cheats active, male PCs don't get this "flirty" dialogue. Perhaps this gender check is what triggers the first LoveTalk countdown? No other romances have this, and all other same-gender romances seem to be working via Romance Cheats. Has anyone else run into/replicated this? I've done as much troubleshooting as I can think of, and only have Tweaks Anthology: Romance Cheats and the Fixpack active. Quote Link to comment
Guest Bozingar Posted February 25, 2021 Share Posted February 25, 2021 I found a reference to this same bug below (see final post): https://forums.pocketplane.net/index.php/topic,22591.0.html Has anyone ever gotten a Male PC/Anomen romance to work without using a Girdle of Masculinity/Femininity or Wild Surge? I can't find any reference to this online. In other words, is Tweaks Anthology: Romance Cheats even supposed to make this possible? Or maybe no one ever even noticed Anomen is excluded from this mod (understandable)? I have no issue with this if it's true; I just want to make sure my mod includes all romance options enabled by Romance Cheats. Skipping Anomen is no problem (which apparently seems to be the internet consensus... poor guy). Quote Link to comment
jastey Posted February 25, 2021 Share Posted February 25, 2021 Oh, but the Anomen Romance is really good. It gives more depth to Anomen as a character and why he is the way he is. I played with Anomen as female PC, had his romance, and with this first impression never understood why everyone finds him "Anoymen". (I do think he is a poor guy but more because of his abusive father, not because of what I think about him as a character.) I'm at the wrong device to help with your actual question. Quote Link to comment
Guest Bozingar Posted February 25, 2021 Share Posted February 25, 2021 2 hours ago, jastey said: Oh, but the Anomen Romance is really good. It gives more depth to Anomen as a character and why he is the way he is. I agree, while searching to try and solve this I actually got a bit hooked on his storyline (I'd like to play it out in-game now). It would be a shame if I had to skip him. For reference, I'm working on an overhaul to the trilogy dialogue so romances refer to your PC by the correct gender should you remove gender restrictions (I couldn't find this out there anywhere). I'm just about done; Anomen is the last character. Please let me know if you come up with anything/can replicate this bug. I'd like to add him in. Quote Link to comment
jastey Posted February 26, 2021 Share Posted February 26, 2021 7 hours ago, Guest Bozingar said: I'm working on an overhaul to the trilogy dialogue so romances refer to your PC by the correct gender should you remove gender restrictions (I couldn't find this out there anywhere). This sounds awesome. May I ask how you do it? The best choice for compatibility would probably be to alter the original string references using "STRING_SET" and changing all explicit gendered terms into tokens (<PRO_LADYLORD> instead of Lady etc.). Here is what I found: in baldur.bcs, if the PC checks romance requirements, the variable SetGlobal("AnomenMatch","GLOBAL",1) is set: Spoiler IF Global("AnomenMatch","GLOBAL",0) Global("CheckAnomenMatch","GLOBAL",0) Gender(Player1,FEMALE) OR(4) Race(Player1,HUMAN) Race(Player1,HALF_ELF) Race(Player1,ELF) Race(Player1,HALFLING) THEN RESPONSE #100 SetGlobal("CheckAnomenMatch","GLOBAL",1) SetGlobal("AnomenMatch","GLOBAL",1) END With this variable at 1, upon his joining dialogue (ANOMEN.dlg) all other needed variables and timer are set, e.g. like in this example from his joining dialogue. You see the different reply options whether the PC matches the romance criteria or not: Spoiler IF ~~ THEN BEGIN 6 // from: 2.0 5.0 11.0 14.0 15.0 SAY #6135 /* ~Perchance I have found worthy companions. I seek to be knighted in the Most Noble Order of the Radiant Heart and I must prove my worth, first. Have you need of a strong sword, my <LADYLORD>?~ */ IF ~ Global("AnomenMatch","GLOBAL",1) ~ THEN REPLY #6147 /* ~I would be infinitely pleased to have you join me. Welcome!~ */ DO ~RealSetGlobalTimer("AnomenRomance","GLOBAL",2000) SetGlobal("LoveTalk","LOCALS",1) SetGlobal("AnomenRomanceActive","GLOBAL",1) SetGlobalTimer("AnomenJoined","GLOBAL",FIVE_DAYS) ~ GOTO 21 IF ~~ THEN REPLY #6148 /* ~Regretfully, I must decline your offer. ~ */ GOTO 4 IF ~ !Global("AnomenMatch","GLOBAL",1) ~ THEN REPLY #55350 /* ~I would be infinitely pleased to have you join me. Welcome!~ */ DO ~SetGlobalTimer("AnomenJoined","GLOBAL",FIVE_DAYS) ~ GOTO 21 END With this timer and variables, Anomen's script (ANOMEN.bcs) triggers the first lovetalk when the timer run out: Spoiler IF InParty(Myself) RealGlobalTimerExpired("AnomenRomance","GLOBAL") !Global("AnomenRomanceActive","GLOBAL",0) !Global("AnomenRomanceActive","GLOBAL",3) Global("AnomenMatch","GLOBAL",1) !AreaCheck("AR1300") // u the time to !AreaType(DUNGEON) See(Player1) CombatCounter(0) !See([ENEMY]) !Range([NEUTRAL],10) OR(14) Global("LoveTalk","LOCALS",1) Global("LoveTalk","LOCALS",3) Global("LoveTalk","LOCALS",5) Global("LoveTalk","LOCALS",7) Global("LoveTalk","LOCALS",9) Global("LoveTalk","LOCALS",11) Global("LoveTalk","LOCALS",13) Global("LoveTalk","LOCALS",17) Global("LoveTalk","LOCALS",19) Global("LoveTalk","LOCALS",21) Global("LoveTalk","LOCALS",23) Global("LoveTalk","LOCALS",25) Global("LoveTalk","LOCALS",29) Global("LoveTalk","LOCALS",33) THEN RESPONSE #100 IncrementGlobal("LoveTalk","LOCALS",1) PlaySong(35) Interact(Player1) END The question is: was the "AnomenMatch" variable set via tweaks, and if not, why not. Quote Link to comment
Greenhorn Posted February 26, 2021 Share Posted February 26, 2021 15 hours ago, Guest Bozingar said: For reference, I'm working on an overhaul to the trilogy dialogue so romances refer to your PC by the correct gender should you remove gender restrictions (I couldn't find this out there anywhere). It was about time that somebody finally do this. Now, if you could just incorporate NPC flirt pack in your work it would nicely round it up. Quote Link to comment
Guest Bozingar Posted February 26, 2021 Share Posted February 26, 2021 14 hours ago, jastey said: The question is: was the "AnomenMatch" variable set via tweaks, and if not, why not. Got it! Thanks much for laying this out; it really helped me understand the scripting logic behind this. I fixed it by adding the following code to the anomen.bcs override: IF Global("AnomenMatch","GLOBAL",0) Global("CheckAnomenMatch","GLOBAL",0) Gender(Player1,MALE) THEN RESPONSE #100 SetGlobal("CheckAnomenMatch","GLOBAL",1) SetGlobal("AnomenMatch","GLOBAL",1) END However, this seems to suggest a bug in the anomen.bcs override added by Tweaks Anthology: Romance Cheats. It is apparently not setting the Match variable correctly for male players. I've uninstalled and reinstalled the anthology a few times to double check that it wasn't just my local copy, and the bug reappeared each time. How would I go about flagging this as a true bug? Or maybe helping add a patch myself? I'm new to the Gibberling glory. (Also to your other question, I've been trying to create an English dialogf.tlk, as this structure is already in place for romantic languages. To your point however, would this be less compatible with other mods? Should I stick with creating dlg overrides? There's a few gendered statements I'm not sure could be handled by STRING_SET, though I haven't tried. The tlk files are a pain to debug, though I've managed so far.) Quote Link to comment
CamDawg Posted October 15, 2021 Share Posted October 15, 2021 Tweaks bypasses the existing match block by simply inserting one at the top of Anomen's script without racial and/or gender requirements, as specified at install; AnomenRomanceActive would not have advanced past zero unless he's considered a match. The key bit here is the PartyRested() trigger. He uses the same two-step process used in other romances, in that once the timer expires, he sets a shorter timer (two minutes, in Anomen's case) to fire the actual talk. He won't set the two-minute timer to the actual love talk until the party has rested, no matter how much real time you advance. The two blocks for his love talks can be found in anomen.bcs, starting around line 469 (BG2EE) or 315 (oBG2). There are no gender or racial checks on the actual love talks, just a check against the Match variable. Quote Link to comment
jastey Posted October 15, 2021 Share Posted October 15, 2021 3 hours ago, CamDawg said: He uses the same two-step process used in other romances, in that once the timer expires, he sets a shorter timer (two minutes, in Anomen's case) to fire the actual talk. He won't set the two-minute timer to the actual love talk until the party has rested, no matter how much real time you advance. Maybe because I'm ESL, but I understand this paragraph so that it's not describing how the LTs are triggered: the LTs are triggered the moment the long romance timer runs out, except for the case that the party just rested, then the romance timer is reset to 10 seconds so Anomen doesn't start talking the moment the rest ends. The script block you mentioned lines for is the one with the 10 s timer, it has a "PartyRested" check in it which gives only true directly after a rest; the triggering of the LT if that is not the case happens with the script block below this one. So, a two-step process it is with an intermediate script block that sets the (long) timer, and another script block that starts the romance talk once the timer expires (and no enemies are near etcpp.), and a safety measure to reset the timer for 10s before the lovetalk starts in case the party just rested. Quote Link to comment
CamDawg Posted October 15, 2021 Share Posted October 15, 2021 You're right, I was misreading it--the block with the PartyRested is just to prevent an immediate LT after a rest. Nonetheless, Bozingar reported that AnomenRomanceActive is 1, which is only true if he's been slotted as a match at the end of Anomen's joining dialogue. One of the other conditions (10' from neutrals, not dungeon, etc.) is preventing the LT. Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.