Megamod feedback - I'm mortified at the sexism

Discussion in 'Fallout General Modding' started by lujo, Jun 19, 2013.

  1. Continuum

    Continuum Vault Fossil

    Nov 8, 2006
    As I said it's defined, defined in my headers, thus compiler doesn't recognize what is this.

    Shit-numbers is a term I'm using for decompiled scripts. Compiler turns ALL defines (names for variables, for example) into tell-nothing numbers. So... to know what's the name of global variable you must open DATA\VAULT13.GAM. It's much easier to work with code when variables have names.

    As for editing: I'm using Timeslip's script editor.

    Check edit of my previous post for dialogue_system_enter code, btw. But don't copy&pasta local_var(1), because you may override existing one... so... check what local_vars are already used in the script... and pick the number that isn't used... next:

    - open SCRIPTS\SCRIPTS.LST,
    - find the script,

    and then:

    Code:
    GENSTAIR.INT ; generic ladders, and stairs					# local_vars=0
    Code:
    # local_vars=X
    X must be equal to number of local_vars used in the script, otherwise newly added local_var may not work.
     
  2. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    Doesn't even have to be that - for those who have the same decompiler and compiler and know how to make it run. It's all that's stopping me from doing anything - FSE can't recompile the acklint script in a way that can start a proper dialogue. If I decompile it and recompile it and edit nothing important, the dialogue as such doesn't work.

    Tnx Continuum, I'll check timeslips editor and see about your advice. I think it's just FSE messing with me here.

    EDIT: Ok, timeslips editor won't even consider doing anything :D I get an "unhandled exception" error of some sort when I hit "compile". I suppose I'm supposed to decompile the .int with something else - what do you use to decompile the scripts, continuum? :) (I get the same error trying to open an .int file)

    (edit, I think all the code help so far would be enough to rescript the guy from scratch - I'm certain it's just the tools giving me trouble here, and I just feel like figuring out the right tools should be easier than learning to add a whole new NPC just so I can remove something I allready identified as my only problem. Don't mind learning though :D).
     
  3. Continuum

    Continuum Vault Fossil

    Nov 8, 2006
    I'm doing everything with Timeslip's editor (decompiling/editing/compiling/whatever). Never had any problems with it. But I've been working with original Fallout scripts + TeamX patches + I decompiled few, original Fallout 2 scripts...

    Maybe Timeslip's editor can't decompile scripts compiled with certain compiler? For example, I couldn't decompile scripts from some Fallout_mod_update_1.2.5 - all I had was a blank "page". Dunno. Can't help you with that.
     
  4. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    Ty - I'll try to decompile/recompile anything at all with it.

    Also:

    Did you set it up somehow?
    Did you get parser errors?

    And if it all falls through, I'll just edit the text files and wait for the soonish RP final version to come out and with it the newest sfall version. I've got a lot of will to work but seeing everybody else having fun and not being able to set the tools up is disenheartening.

    Also, anyone know where the ruby compiler/decompiler that MIB88 is using can be found and how it can be set up on XP? If that is all he is using, that it's bound to work if set up right - so I'd love to try that method out...
     
  5. Drobovik

    Drobovik Vault Archivarius Modder

    Jun 20, 2011
    @lujo

    I'm using Timeslips script editor as well for editing Megamod scripts. It sure works. It is definitely something with your script, meaning how it is written. Piece of advice don't mess with Ruby. Command line prog nightmare, at least it was for me.

    FSE and Timeslips use different script syntax, I came across it when I decompiled acklint2.int in FSE and opened it in Timeslips to edit and recompile.
     
  6. Darek

    Darek is currently unavailable

    Jan 7, 2008
    It's not recompiling that is the issue really, it's that it doesn't always decompile in a 100% compatible state.

    For your dialog trouble, the problems are with the """""""s.
    For example:
    Code:
    giq_option(2, 751, 208, "Node002", 50);
    Remove the "" around Node002, and do the same to all other node references.
     
  7. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    I am eternally grateful - it worked! I've stopped Klint from bumrushing me! And he talks!

    Thank all you guys for sound advice - and I'd love to figure out why timeslips editor is behaving strangely for me, might do others good. So much good and helpful advice in this thread, someone could make a "problems you might run into while trying to break into fallout 2 modding but are a complete noob" tutorial.

    Now that klint isn't so enthusiastic about his misoginy, and he's talking to me, let's make him a less juvenile and more fallout 2 intro level appropriate helpful savage, shall we :) Fingers crossed I can take it from here without pestering you guys anymore ^^

    And if I do it right, I might see about scrapyard :)


    EDIT: Fixing the node and "" related code allowed me to get the proper "tree" in the right side of the screen in timeslips editor. it still wont preprocess or compile but this is improvement. If anyone can think of what else about the code might be interfearing with sfall (and why it won't work in general) it'd be awesome. Ready to provide any info if anyone's interested in cracking that puzzle.

    EDIT: I'm going through the script and making notes. I guess I'm like that. Apparently the G_Var that triggers the initial female dialogue is called GVAR_ACKLINT_PERMIT, and if you don't have it he initiates the female as opposed to male dialogue. -.- . I hope I can get rid of this one in the script so I don't have to edit obj_dude or god knows what... Worth a chuckle and a frown, that one, seein how it's coded in a sexist manner (didn't believe it was possible for code to be sexist) :D It's also completely unnecessary and complicating things - it has an added global variable who's only purpose I found so far seems to be checking if you're a woman :D
     
  8. Drobovik

    Drobovik Vault Archivarius Modder

    Jun 20, 2011
    lujo,

    Don't forget to keep the detailed changelog of your fixes for Megamod, if you end up fixing some bugs. Not unofficial mod, but bugs in original Megamod. This will help Mib88 to roll out a new version faster.

    I'm squashing some bugs myself, ones I can.

    Cheers. Good luck with sfall editor.
     
  9. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    I'll try. I'm deffinitely cleaning this up - it's incredibly lousy even to a noobs eyes. Check out the edited paragraph in the post above - it starts the female dialogue by checking a newly added global variable who's only purpose is to check if you're a woman when you're talking to Klint -.- As if there wasn't code for that already (and it makes it tricky to edit or correct because of strange structure it produces). Self harming misoginy to the code :D



    EDIT: A bit of help if possible:

    Code:
    giq_option(x, y, z, Node080, n);
    x = ? I think I can figure the other ones out.

    And, err, I gave them both the same dialogue just to try it out, and it works splendidly (the male dialogue is much better written and doesn't seem to be buggy. The female one is a mess - it might really be worthwhile to scrape it alltogather for an universal one with optional female lines. I'll see about it tommorrow.) EDIT: Allthough the male one seems to have bugs of it's own. Hmmm.
     
  10. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    That first value x is the required intelligence score to see the dialog option. So, -3 means a score of 3 or under is required to see the option. A value of 5 would mean 5 and above.
     
  11. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    Ah, ty very much. The dialogue is, on second (and further glances, and testing) incredibly buggy. The speech check in node001 (initial one) leads into a fool (int -4) node or a node where you get threatened. It's got inacessible paths and it's no wonder klint's so hilarious/offensive/irrational - quite a few paths don't make sense.

    Didn't you say in the "changelog so far" thread that you've since rewriten it? Or did you just rewrite the one he has when he joins you?

    Code:
    if (has_skill(dude_obj, 14) >= 50) then begin /*speech value check?*/
    		if (get_critter_stat(dude_obj, 3) > (local_var(5) * 1)) then begin /*charisma check ?*/
    			giq_option(6, 751, 210, Node002, 50); /*Node002 is a INT<4 node*/
    		end
    		else begin
    			giq_option(6, 751, 210, Node018, 50); /*he starts treahtening you*/
    		end
    	end /*end speech check*/
    Am I seeing this wrong? A character with speech over 50 would get his charisma tested, and if charisma is higher than something and int higher than 6 he'd get a chance to go into a node adjusted for int<4 characters (only one option from from node002 doesn't lead into a "fool" node)? :shock: I'm really curious to see and try to reconstruct how all this is supposed to work. Finding the male path which gets him to join you has so far been impossible (even with low HP).

    And that's in the first node.

    EDIT: Is this entire script one huge bit of trolling? :shock:

    EDIT No.2: The more I delve into it the more insane it looks. There's stuff in here that makes no sense whatsoever past syntax... It's as if someone did a whole bunch of trolling on purpose.

    EDIT No.3: No wonder I was so outraged by him, just about everything you say is linked to him getting progressively more angry and insulting at you. If you assume he's there to help it causes a very rude opposite effect, unless you're a woman, in which case you "practicaly" can't refuse help, but he insults you in advance anyway... I don't think there's any point trying to debug this, the bugs (if there are any) are about on par with the trolling and look almost intentional. I'm rewriting this for my own sake, anyone can do whatever they want with the rewrite...

    EDIT (final?): Well, there you have it, you really can skip the temple. There's some clever stuff in here, but the writing can use polish to say the least. And making it gender neutral is probably a good idea for various reasons (in certain terms, not as far as a bit of flavour is concerned - but with a lot more tact). I think the redirect idea is pretty clever, but some of the redirects make no sense, that could use quite a bit of polish too (because it's at the root of the "insane" and "intentional trolling" comments - bad writing kills an otherwise pretty nice framework)... I'll try to align it a bit better with a few narrative rules it breaks at the moment, not kill the gender differences tactlessly and so on and so forth...

    EDIT (really final this time): got to add one thing - despite the godawful writing and handling of gender issues, the big problem is that it's too early in the game to have such a system in place, and it's on a wrong kind of NPC. It's there too early to appreciate, and since irritation is what builds up (and quite nicely) he comes across as arrogant on top of being misogynist - and then you have to / have the option to bring him along and keep staring at him after the initial potentially terrible experience with his attitude. It would've made an awesome mechanic elsewhere though - proconsul gregory (one who give you the test, I can totaly immagine this sort of insane spiral as an alternative to munching on mentats for that citizenship test) or even lynette come to mind :) I'll do my best to see about making him the most comedicaly patient guy immaginable, and deffinitely remember the idea for someone I want to be impossibly irritating.
     
  12. MIB88

    MIB88 Sonny, I Watched the Vault Bein' Built!
    Modder

    Feb 22, 2005
    I rewrote the Klint that joins you, from the Friendly Klint mod. More dialog options (and his... um, wisdom). Changed how he heals the player character. Updated proto files. He levels up instead of just gets more powerful with armor updates.

    Never modified the Klint outside the Temple from the New Vision mod.
     
  13. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    Well, he's fine as far as dialogue and stuff - I have a small idea with him and the sly fox quest for later. If I ever wanted to make a dialogue mod I'd deffinitely include dialogue with companions in various locations / related to quests. But that's a whole other thing entirely.

    As far as potential bugs/problems with the current Klint in front of the temple are concerned, here's something which makes him user unfriendly:

    - just about whatever you say to him takes you through a "fool" step which ups a local variable. Right now it seems to me that it's his "irritation counter" and once it goes above your charisma - most of the charisma checks fail. If it reaches 20 he goes silent whatever you do.
    - the problem is that you get offered most dialogue options even if you don't meet the criteria (checks, right?), but if I understand this correctly all the speech checks check if your speech is above 50.
    - this is actually rather high - I'm not sure but you have to have some combination of really high charisma, good natured and tagged speech (and good int ofc) to get out of the "klint inevitably goes silent" trap
    - but you still get the options to try, and failure leads to him getting irritated. And the checks get more and more difficult the more you talk to him - so if you don't find the right option on time and have the right combination of specific stats it leads to headaches
    -since were talking about the first conversation in the game, whether you have the exact stats is detemined on the character screen rather than player development. Not only is it a "guide dang it" moment, but it's probably completely possible to determin who will get helpful options and who wont with 100% certanty.
    -this isn't even counting in the speech checks which lead to failure even if you succeed because "talking is for the weak!" node calls. Really, there seems to be places where a successful check leads to "talking is for the weak" and a failed one to any other general abuse node.

    Conclusion: The speech checks could be easier, and should probably be less important for the conversation (because of determinism involved with the first conversation in the game). Or so it seems right now, I might reconsider this when I'm done mapping the conversation.

    EDIT: Better conclusion - too much trial an error involved, with too many wrong choices and legit lines of conversation redirected to abuse, while to overall mechanic leads to to many dead ends and obsucres the rare worthwhile path. Needs a bit of cleaning up and toning down.

    EDIT: Also, possible "true" translation bug. Dialogue line 354, if it was translated from russian should probably not be "Well, even so", but "Well, so what?". Not sure 100%.

    observation: the female options lack the "whole agressive irritation" mech, but then Klint's patronizingly heplful. Mixing the current "split" options with more appropriate female choices (rather than demands) is probably the best way to go.

    Quite possibly a bug:

    Code:
    procedure Node064
    begin
    	gsay_reply(751, 642); /*Only he who is worthy can gain the Wisdom of*/
    	giq_option(6, 751, 644, Node079, 50); /*I wanna try! -> Calm down, it's too dangerous!*/
    	giq_option(8, 751, 646, Node077, 50); /*Who said men are better than women? -> Don't even think about it.*/
    	giq_option(1, 751, 648, Node089, 50); /* Bye -> The only way to get out of here is to pass through the Temple. - fix */
    end
    Klint responds to "Who said men are better than women?" with "Don't even think about it." I think the Node079 and node077 entries are swapped around and it makes him seem ludicrously sexist/mysoginist. Not sure, but there's something wrong there. Swapping them around would just make him patronizing instead of arrogant about male superiority.

    BUG: The main "woman" node, the one you can't avoid in the first scene when he rushes you has options which can only be acessed if you're below 10 health, and there's no way I can think of to have less than full health at that point (barring really low END I guess). I'm getting rid of everything in that node anyway, but it's most likely superfluous anyway.

    WEIRDNESS:

    Code:
    procedure Node071 /*stuck obelisk*/ 
    begin
    	gsay_reply(751, 678); /*I'd escort you to the village, but the obelisk is stuck. It's impossible to move.*/
    	giq_option(2, 751, 680, Node077, 50); /*Let's try this togather! -> Don't even think about it.*/
    	giq_option(2, 751, 682, Node089, 50); /*Got it, goodbye. -> The only way to get out of here is to pass through the Temple.???*/ 
    	giq_option(-1, 751, 684, Node089, 50); /*U-huh -> The only way to get out of here is to pass through the Temple.???*/
    end
    This node is a bit confusing and potentially bizzare (have to check but I remember screwy loops with female dialogues). I think it's supposed to have one more option and that the node links are rather messed up. Have to check. What I remember is him giving you a "don't even think about it" when you ask him to join you here, and later pretty much insisting that he joins you - will check.

    There are other erroneus redirects to node072 where you cant select the only response and can only chose the option that sayes "goodbye", yet klint keeps talking to you (calls a different node) - this is why it looks like he's forcing his help on you.

    And then it turns out that

    Code:
    procedure Node075 /*Only he who is worthy...*/
    begin
    	gsay_reply(751, 718);
    	giq_option(5, 751, 720, Node079, 50); /*I'll get there anyways and I'll pass the Trial! Don't try to hold me back! -> Wait, calm down! You won't manage in there!*/
    	giq_option(5, 751, 722, Node075, 50); /*Who ever said men are better than women? -> Only he who is worthy...*/
    	giq_option(1, 751, 724, Node089, 50); /*Bye. -> The only way is through the temple.*/
    end
    It loops on itself in a strange way.

    Node 76 is again messed up in terms of where it redirects (doesn't loop on itself, but meh...) In any case, female dialogue is messed up on so many levels :D There are ways to end up talking to a guy who alternates between telling you you can't enter the temple because you're a women, that you can't leave except through the temple, to not even contemplate asking him for help and not letting you go unless you accept his help. And looping in on himself. Wow.

    BUG no X: Dear lord, if you manage (I'ts a bit difficult) to access the "hand me a spear/powder" options as a woman, the nodes which give those things to you (different than the guy ones) set the variable that checks if you're a woman to 1. So you can't talk to klint anymore because the talk_p_proc checks whether you're a guy, and whether you have that golbal var at 0 but not if you are a woman. So you're locked out of the conversation. :shock: Can't tell if trolling, misoginy or drunk scripting...

    BUG no X+1: It's in fact easier to get Klint to join you than access most of the conversation because of loops and screwy node calls. I think you can actually get to skip the trial as a woman too, except it's really difficult to dodge Klint joining you and locking you out of conversation because of psychadellic node calls.

    BUG no X +2: A "strong" or physically able woman also gets locked out of further conversation if you say you're not strong enough to pass the trial because node091 also disables the global "check if woman" var.

    BUG no X +3: The "goodbye" option (last one) in node092 sends you to node089 instead of node093 as it probably should.
     
  14. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    Ok, so I mapped it out and here's the gist:

    - the "woman status" has it's own global variable and that variable is checked instead of checking if you're a woman. Several things that change it lock you out of the conversation because you're not a woman and not a man as far as the script is concerned.
    - the male dialogue is full of story progressions which don't make enough sense in terms of writing. It's also full of checks with unreasonable concequences.
    - the female dialogue is full of loopy and senseless node calls (really, they aren't badly written as such, theyre just jumbled and schisophrenic), on top of handling the geneder issue in a tactless way (the lines, when arranged, will still be unapropriate for Arroyo and in conflict with the rest of the content - I'm a pro writer, I'm sure I can do it in a less over the top fashion)

    I think I could rewrite it in a way that can be incorporated into the megamod with no harm to the idea of having a different experience for men and women - except they'll both have the same options available (spear, powder, info, riddles, joining, skipping the trial, skipping the riddles). I'd make pissing him off permanently something you really need to be obnoxious for - he's part of the tutorial, it's too early in the game for a completely uncooperative NPC.

    Debugging the present content would be as much work and would still leave all the narrative problems, and once arranged right not all that much has to be changed. So I'd prefer as much freedom with it as possible (just so I can make more manageable nodes and cut down on the number of useless nodes while adding new ones).

    Only question is - would a FSE compiled script be of any use except as a standalone mod? It's the only one I can make since Timeslip's script editor just wont work for me.
     
  15. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    Srry for triplepost, I won't do this again, and I guess it's probably irritating for veteran modders to see someone make such a big deal out of editing a single conversation, but I hope I can use this post to log changes. So I won't make any more, but I can still potentially get feedback.

    Changes so far:

    //0.1 - removed separate male and female spear and powder nodes
    //0.2 - stopped Klint from bumrushing women
    //0.3 - removed empty "fool" nodes which only increased the irritation counter (and only affected men); removed all references to them
    //0.4 - bugfix, removed an artifact
    //0.5 - joinnode - removed references to gvar(642); moved "float" node acess to top of talk_p_proc
    //0.6 - changed "if woman" check to consider the relevant stat, removed all remaining references to gvar642 (node091, node093)
    //0.7 - cleaned up talk_p_proc to give same options (first conv/subsequent conv.) to boys and girls; added temp node052 for returning girls (there was none); might've messed up talk_p_proc
    //0.8 - repurposed gvar(642) to act as a "riddles hub" trigger when he leaves your party, cleaned up talk_p_proc to account for it (it compiles and works)
    //0.8 - edited critter_p_proc to set gvar(642) to 1 and enable help with riddles
    //0.8 - edited node072 to let you exit the conversation if you say bye (there's a lot of bugs with exiting conversation as woman)

    To do:

    EDIT: - Fix it so you don't get the low int choices even if you have int>4 in places
    - Mold the male and female dialogue paths into a single one with male and female options (rather than trying to bugfix all the obviously wrong node calls in the female path - too much time to figure out what is actually supposed to lead where)
    - Clean up all the charisma and speech checks that are now lacking a counter
    - Remove all unnecessary nodes
    - Write the actual new dialogue where it is needed
    - Potentially edit cameron to enable the propper trigger for riddle help from Klint
     
  16. Dude101

    Dude101 Vault Fossil
    Modder

    Aug 3, 2005
    You are earning yourself some major kudos. Most people just complain and expect service. :clap: :clap: :clap:
     
  17. lujo

    lujo Look, Ma! Two Heads!

    Jun 14, 2013
    Thank god on the chance - I arsed up with the introduction. And ty.

    It's actually tricky rewriting an existing dialogue with the tools I'm using because of all the lines already in place in the -msg. Doing my best, but it's taking me a while.

    Also, could someone enlighten me on how you add a perk to the game?

    I've been thinking about a dialogue path that lets you skip the temple (the current ones tie in to the "annoyance spiral" mechanic which I got rid of). I've had a nice idea of giving the chosen one a chance to "explain" to klint that he is in fact deathly afraid of the strange and rare beasts - ants. As in, he/she can't complete the trial because of her phobia of ants (I've managed to make it hilarious and believable). But I'd like to make the chosen one who takes that path ACTUALLY gain a perk "antophobia" (I'll google the proper name) which affects all the ants you meet (or something that can actually be modded).

    the jokes/things I like about this idea:

    1) you can say you're not afraid of the scorpions, so you're not a coward per se
    2) you're afraid of the "rare and strange beasts" - so rare in fact that cameron can suppose you won't meet too many of them and that ant handling isn't so important to a chosen one
    3) the ants are actually rare, so it's a nice stealth joke
    4) you explain the concept of "phobia" to klint in simple terms, which is possible because he also had a panicked reaction to something a trader/scavenger brought back to the village - a green stone which falls apart in a pot of water and makes the water foamy. He's commiserates with you because he know's what's it like to be terrified by something :)

    So, er, how do I add a perk to the game?