Editing backstories?

Started by TrashMan, January 30, 2017, 06:00:41 AM

Previous topic - Next topic

RawCode

QuoteYou're just antagonizing people.

i don't care about angry kids, i post for individuals who may read this forum and actually want to learn something and actually want to put time and effort into modding.

CCL is not only mod that feature backstory loader, and entire loader code is 17 lines long...

MineFoxC

Quote from: Tammabanana on February 04, 2017, 08:50:13 AM
Quote from: RawCode on February 03, 2017, 10:02:42 AM
in other words, no spoonfeeding here, you can get fish pole, but no fish.

WTF, RawCode, if you don't want to answer a question, don't bother to hit Reply. You're just antagonizing people.

TrashMan, CCL allowed backstory creation. CCL hasn't been updated to A16, but I've seen somebody in the modders' Discord working on it. I'll ask about the state of the backstory parts.

A bunch of the alien race mods are using erdelf's alien race framework (can't remember it's exact name), which has backstory components that I believe were based on the CCL. It looks to me like it's been written in context of generating a new alien faction, so I don't know if it can be used to generate colonist/tribal/outlander backstories. I haven't played with that yet.

Editing the vanilla backstories might be more complicated, though. They're in some kind of hard-coded database or something, not in defs, so.... I don't know if you can use the CCL-based XML def creation method to overwrite those.

We know there are mods that add backstories,but i think he's asking about modifying the vanilla ones,like disabling the "incapable of" part.Also making a copy of the original ones without that part is possible if he's going to use P.C. to choose them(they will show up twice in the list,but the first will be vanilla and the second modded).
"They ask me:
how did you get banned from so many communities?
I answer:i don't even know...i guess they don't like wallhacks/aimbot/lag hacks/god mode/infinite ammo?

TrashMan

Quote from: Thirite on February 04, 2017, 11:46:17 AM
RawCode might act like a jerk but he gave a perfectly valid solution to disabling "incapable of x work".

I want to replace it, not remove it.
There are a few backstories where being incapable makes seen (for example, severe trauma), but in other cases I just want something that's a penalty.

I already am using PC, frankly the game is unplayable without it, but I don't think it's a solution for two reasons:
1) doesn't work for joining wanders, raiders, etc..
2) doesn't solve the issue of backgrounds that are pure cancer and everyone avoids

Having duplicate traits doesn't solve the issue either, since you'll still have pawns generated with core ones.

Having said all that, disabling incapable might be the only option if circumventing it doesn't work.

Quote from: RawCode on February 04, 2017, 11:13:41 PM
i don't care about angry kids, i post for individuals who may read this forum and actually want to learn something and actually want to put time and effort into modding.

Don't make assumptions about my age, experience or available time, BOY.
I've been making huge mods while you were still a glint in your fathers eye. I have a job, other duties and other games I'm modding, so maybe you should think a bit before you hit that post bottun.

RawCode

Quote from: TrashMan on February 06, 2017, 05:35:03 AM
Don't make assumptions about my age, experience or available time, BOY.
I've been making huge mods while you were still a glint in your fathers eye. I have a job, other duties and other games I'm modding, so maybe you should think a bit before you hit that post bottun.
angry kid verified
person who want to learn denied
have a good day polishing your huge mod...

skullywag

This approaching personal attack territory, knock it off.
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

TrashMan

Quote from: RawCode on February 06, 2017, 08:26:51 AM
angry kid verified
person who want to learn denied
have a good day polishing your huge mod...

Sonny, don't make me use the belt buckle.


And the mod is progressing nicely, thanks for asking.

RawCode

#21
sadly, fancy untextured renders is not my strong side, but i can read, can't say that renders are bad, but reading more useful.

watch this video very very closely, and cry, also you may ignore this thread again, and post same question again:
(i recorded it yesterday, not expected you to delay polishing of your "huge mod" for so long)
https://www.youtube.com/watch?v=Y_x4IPEs-vE

your prev thread, with same answers, in case if you have forgotten
https://ludeon.com/forums/index.php?topic=24130.msg249225

TrashMan

Funny to see you so butt blasted you went searching for my old posts.
That was then, I was asking now to see if anything changed after several versions.

Strangely enough, opening the core files and assets was one of the first things I tired, but given that it looked like gibberish (complied/encrypted), I haven't scrolled down far enough to notice readable code.
Still, thanks for the info.
Heh.

RawCode

Quote from: TrashMan on February 08, 2017, 07:50:20 AM
Funny to see you so butt blasted you went searching for my old posts.
That was then, I was asking now to see if anything changed after several versions.

Strangely enough, opening the core files and assets was one of the first things I tired, but given that it looked like gibberish (complied/encrypted), I haven't scrolled down far enough to notice readable code.
Still, thanks for the info.
Heh.

i hope you will eventually "put some points into reading skill" and notice code snippet, i did specially just for you almost half year ago.
and it do allow to modify output for individual backstories, all you need is to "put some points into reading" and read it.

TrashMan

You mean this?


subjtldr
Code: [Select]

static RWL ()
{
SetHookFromToABS64(
typeof(Pawn_StoryTracker).GetMethod("WorkTagIsDisabled"),
typeof(RWL).GetMethod("hook_WorkTagIsDisabled"));

SetHookFromToABS64(typeof(Pawn_StoryTracker).GetProperty("CombinedDisabledWorkTags",
(BindingFlags)0x3F3C).GetGetMethod(),
typeof(RWL).GetMethod("hook_CombinedDisabledWorkTags"));
}


hooks are

Code: [Select]

static public WorkTags hook_CombinedDisabledWorkTags(object ignored_this)
{
//Log.Warning ("Echo:hook_get_CombinedDisabledWorkTags");
return WorkTags.None;
}

static public bool hook_WorkTagIsDisabled(object ignored_this,object ignored_tag)
{
return false;
}


Doesn't this disable all "incapable of" (doesn't replace it with anything)?

Not to mention I have no clue what to do with this code. Where is it supposed to go? A custom .dll?


Oh, one more question - are ALL backstories in the assets file or are just the backed character bios/backstories? Given the size of the block, it might very well be all of them. but I'm not sure yet.

Thirite

#25
All the backstories are in the resources.assets file from the looks of it. Also, if you wanted to get rid of all the "special snowflake" backstories, I think that could be accomplished by detouring PawnBioAndNameGenerator.TryGiveSolidBioTo so that is just always returns false.

If you don't know how to detour a method I wrote a "simple" guide here:
(deleted for inferiority)

I should probably make that its own post in the help section, I guess

Edit: Updated better tutorial now here:
https://ludeon.com/forums/index.php?topic=30404.msg309918

RawCode

Quote from: TrashMan on February 08, 2017, 02:53:13 PM
You mean this?


subjtldr
Code: [Select]

static RWL ()
{
SetHookFromToABS64(
typeof(Pawn_StoryTracker).GetMethod("WorkTagIsDisabled"),
typeof(RWL).GetMethod("hook_WorkTagIsDisabled"));

SetHookFromToABS64(typeof(Pawn_StoryTracker).GetProperty("CombinedDisabledWorkTags",
(BindingFlags)0x3F3C).GetGetMethod(),
typeof(RWL).GetMethod("hook_CombinedDisabledWorkTags"));
}


hooks are

Code: [Select]

static public WorkTags hook_CombinedDisabledWorkTags(object ignored_this)
{
//Log.Warning ("Echo:hook_get_CombinedDisabledWorkTags");
return WorkTags.None;
}

static public bool hook_WorkTagIsDisabled(object ignored_this,object ignored_tag)
{
return false;
}


Doesn't this disable all "incapable of" (doesn't replace it with anything)?

Not to mention I have no clue what to do with this code. Where is it supposed to go? A custom .dll?


Oh, one more question - are ALL backstories in the assets file or are just the backed character bios/backstories? Given the size of the block, it might very well be all of them. but I'm not sure yet.

you can get "current" backstory from code and perform specific modifications, if you have additional questions, ask them in code snippet thread, to keep things organized.

TrashMan

Quote from: Thirite on February 08, 2017, 08:34:03 PM
All the backstories are in the resources.assets file from the looks of it. Also, if you wanted to get rid of all the "special snowflake" backstories, I think that could be accomplished by detouring PawnBioAndNameGenerator.TryGiveSolidBioTo so that is just always returns false.

If you don't know how to detour a method I wrote a "simple" guide here:
(deleted for inferiority)

I should probably make that its own post in the help section, I guess

Edit: Updated better tutorial now here:
https://ludeon.com/forums/index.php?topic=30404.msg309918

Thank you. Interesting read.

Got to say, I'm kinda amazed that even though we have people that know how to change the backstories (and turn "incapable of" into "dislikes/hates"), no one actually went and did it.
I wonder why, given that I see complaints abut useless colonists and restrictions that make no sense all the time.

dburgdorf

TrashMan, if you're still looking, I just posted a mod that might be of interest:

Editable Backstories
- Rainbeau Flambe (aka Darryl Burgdorf) -
Old. Short. Grumpy. Bearded. "Yeah, I'm a dorf."



Buy me a Dr Pepper?