[B19] More Monstergirls

Started by junchan, March 09, 2017, 02:10:26 PM

Previous topic - Next topic

junchan

I've tried several ways to reproduce the error and I've had no success whatsoever so yes, it might just be base game/local session related, or, i don't want to be that guy, but it could also be your combination of mods, Kiame.  At the very least, i couldn't reproduce it with the vanilla MM or the custom one, either alone or with my particular combination of mods.  I tried different biomes (although not all of them) and i tried just using the dev tools to spawn 30 dragongirls onto the map, kill them and then just let all of them rot.  Still, if it happens again, please go ahead and post.

Kiame

Sorry to send you on a wild goose chase and thanks for looking into it. I have not been able to reproduce on my side either. I'll chalk it up to a neutron flying through my computer's memory and flipping a bit ;)

bloodshifter

Late but, I would like to see this on steam as well, my computer refuses to properly load any non-steam mods for RW.

moremods

The cowgirl was a little lopsided and it was annoying me so I edited the pic, here if you want it.

[attachment deleted by admin: too old]

junchan

Quote from: Nightinggale on November 20, 2017, 01:16:23 PM
Quote from: junchan on November 20, 2017, 10:12:29 AMWhat about the ADS Patch?
Don't make patch mods for your own mod. Use PatchOperationFindMod instead. This allows you to make a patch file, which is only applied if a specific mod is loaded, meaning the main mod can include the patch mod. It's a great step forward, but for some reason the link I provided is more or less the only documentation on it.

Alternatively you can do the same thing (and more) with ModCheck.

I just noticed this... is this some shameless self promotion? ;)

Canute

Abit yes, but do you know many modder would use harmony or hugslib it other didn't point at them ?

Basicly these modcheck is a good thing (special for gamer) when all nessesary things are integrated into one mod rather then to have patch for this patch for that.

Nightinggale

Quote from: junchan on November 25, 2017, 11:06:05 AM
Quote from: Nightinggale on November 20, 2017, 01:16:23 PM
Quote from: junchan on November 20, 2017, 10:12:29 AMWhat about the ADS Patch?
Don't make patch mods for your own mod. Use PatchOperationFindMod instead. This allows you to make a patch file, which is only applied if a specific mod is loaded, meaning the main mod can include the patch mod. It's a great step forward, but for some reason the link I provided is more or less the only documentation on it.

Alternatively you can do the same thing (and more) with ModCheck.

I just noticed this... is this some shameless self promotion? ;)
Yeah, but you are not supposed to notice  :P

I changed my recommendation about PatchOperationFindMod though. It turns out that it works on folder names, which can change and steam will rename them to the steam ID (the number). ModCheck works on the contents of Name in About.xml, which steam will not mess up.

Also starting from today ModCheck is significantly faster.

Quote from: Canute on November 25, 2017, 11:19:30 AM
Abit yes, but do you know many modder would use harmony or hugslib it other didn't point at them ?
That's pretty much it. I wrote ModCheck and at first I just posted it and then nothing happened. After 3 weeks I started posting like that in a few threads, thinking it was due to lack of knowledge of its existence, not lack of need for the added features. I also added it to steam for the same reason, not because it's well suited for steam (it's not), but because it doesn't matter how great you make something if nobody know it exist.

Quote from: Canute on November 25, 2017, 11:19:30 AMBasicly these modcheck is a good thing (special for gamer) when all nessesary things are integrated into one mod rather then to have patch for this patch for that.
Yeah, that's what got me started. However adding the ability to display errors for missing mods or loading mods in the wrong order should also help gamers quite a bit. I have tried loading in the wrong order by accident and it silently failed and after a while I was wondering why it didn't work as expected ingame. A nice red error line telling me to swap the order of two specific mods would have been nice. I have also seen people posting bug reports due to using incompatible mods. Even worse I have seen that in a thread for a mod, which had nothing to do with the incompatibility issue. Making sure the needed errors are displayed to the gamers will not only help them, but also reduce the number of non-issue bug reports.
ModCheck - boost your patch loading times and include patchmods in your main mod.

junchan

Hmmm, i notice that one or two other mods that would normally require ADS patching seem to be using ModCheck too.
I'll give it a try too  ;D

One question though, patching for ADS the way I want to requires new parts unique to MM, (and obviously the crafting recipes for said parts) how would I go about putting in the new parts.

For example... the XML for a harpy beak...


<RecipeDef>
<defName>MakeSimpleProstheticHarpyBeak</defName>
<label>make simple prosthetic harpy beak</label>
<description>Make a simple prosthetic harpy beak</description>
<jobString>Making simple prosthetic harpy beak</jobString>
<workSpeedStat>SmithingSpeed</workSpeedStat>
<effectWorking>Smith</effectWorking>
<soundWorking>Recipe_Machining</soundWorking>
<workAmount>500</workAmount>
<unfinishedThingDef>UnfinishedAnimalPart</unfinishedThingDef>
<recipeUsers>
<li>TableAnimalProsthetics</li>
</recipeUsers>
<ingredients>
<li>
<filter>
<thingDefs>
<li>WoodLog</li>
</thingDefs>
</filter>
<count>1</count>
</li>
<li>
<filter>
<thingDefs>
<li>Steel</li>
</thingDefs>
</filter>
<count>5</count>
</li>
</ingredients>
<fixedIngredientFilter>
<thingDefs>
<li>WoodLog</li>
<li>Steel</li>
</thingDefs>
</fixedIngredientFilter>
<products>
<SimpleProstheticHarpyBeak>1</SimpleProstheticHarpyBeak>
</products>
<skillRequirements>
<Crafting>5</Crafting>
</skillRequirements>
<workSkill>Crafting</workSkill>
</RecipeDef>

How would I change that for ModCheck?

Nightinggale

#158
It's actually not a ModCheck question, but rather a question on how to use vanilla patching once ModCheck has confirmed the mod to be present. It's actually a tricky question, or rather the answer is not simple. Somebody did something like that, but right now I can't find it  :(

I haven't added that much, but I will try to write something, which might do the trick.

<Operation Class="PatchOperationSequence">
<success>Always</success>
<operations>

<li Class="ModCheck.isModLoaded">
<modName>ADS</modName>
<yourMod>MM</yourMod>
</li>
<li Class="PatchOperationTest">
<xPath>something you only have in one file</xPath>
</li>
<li Class="PatchOperationAdd">
<xpath>/Defs</xpath>
<value>
<RecipeDef>
<defName>MakeSimpleProstheticHarpyBeak</defName>
all the other stuff you posted
</RecipeDef>
</value>
</li>
</operations>
</Operation>

The idea here is that first it checks if the mod is loaded (correct names required). ModCheck first because with the newly added cache, it is faster than any vanilla check and PatchOperationSequence will stop executing if one operation fails. This mean the patching is a lot fast with ModCheck first if the mod isn't loaded, but if it is, performance will not be affected by order.

Next will ensure that it only triggers once, meaning it will not try to add it again and again (not sure if that is required). In theory you could check for the presence of MakeSimpleProstheticHarpyBeak and then use <success>Invert</success> (in PatchOperationTest, not PatchOperationSequence. That one should always be Always).

Last is the actual addition. It looks up a list in xml and add your value. Defs is apparently just a list of values.


It would be very interesting to know if this works. If it does, then I will add it to the ModCheck guide.
ModCheck - boost your patch loading times and include patchmods in your main mod.

junchan

#159
Quote from: Nightinggale on November 25, 2017, 05:32:20 PM
It's actually not a ModCheck question, but rather a question on how to use vanilla patching once ModCheck has confirmed the mod to be present. It's actually a tricky question, or rather the answer is not simple. Somebody did something like that, but right now I can't find it  :(

I haven't added that much, but I will try to write something, which might do the trick.

<Operation Class="PatchOperationSequence">
<success>Always</success>
<operations>

<li Class="ModCheck.isModLoaded">
<modName>ADS</modName>
<yourMod>MM</yourMod>
</li>
<li Class="PatchOperationTest">
<xPath>something you only have in one file</xPath>
</li>
<li Class="PatchOperationAdd">
<xpath>/Defs</xpath>
<value>
<RecipeDef>
<defName>MakeSimpleProstheticHarpyBeak</defName>
all the other stuff you posted
</RecipeDef>
</value>
</li>
</operations>
</Operation>

The idea here is that first it checks if the mod is loaded (correct names required). ModCheck first because with the newly added cache, it is faster than any vanilla check and PatchOperationSequence will stop executing if one operation fails. This mean the patching is a lot fast with ModCheck first if the mod isn't loaded, but if it is, performance will not be affected by order.

Next will ensure that it only triggers once, meaning it will not try to add it again and again (not sure if that is required). In theory you could check for the presence of MakeSimpleProstheticHarpyBeak and then use <success>Invert</success> (in PatchOperationTest, not PatchOperationSequence. That one should always be Always).

Last is the actual addition. It looks up a list in xml and add your value. Defs is apparently just a list of values.


It would be very interesting to know if this works. If it does, then I will add it to the ModCheck guide.

I tried it and it appears to work, or at the very least, i got no yellow or red text in the debug log.
Edit: But I am unable to install a prosthetic beak on a harpy....
Edit 2: I have realised that I am an idiot.... -_-;

junchan

#160
I fixed up a few things and I made a patch for A Dog Said...  I tried integrating the patch into the mod itself but I failed horribly at it.... oh well, links on the first post are updated so have at it!

Edit: Forgot to add that I only made the one patch for A Dog Said... because it works for both versions of the mod (Vanilla and Enhanced)

BlueWinds

The patch is definitely not happy with "A Dog Said - Lite", causing huge runs of run ink in the log. Would much appreciate a trimmed-down version if you have time. Thanks for the update!

kaptain_kavern

If I can be of any help regarding ADS patching, I'm there

Nightinggale

Quote from: kaptain_kavern on November 26, 2017, 01:20:07 PM
If I can be of any help regarding ADS patching, I'm there
It should be doable, so I'm trying to make the ADS patch to work from inside MM using ModCheck. On top of getting it to work, it will be the biggest patch I have made (training for me) and I plan to use parts of the result as examples in the ModCheck documentation.
ModCheck - boost your patch loading times and include patchmods in your main mod.

kaptain_kavern

I'm willing to help anyone if I can but I'm a bit confused: are Nightinggale and junchan the same person? Or you're working both on the mod?

I was proposing myself because I know ADS well and often help Spoonshortage.
I still have to try to play a bit with your ModCheck, Nightinggale. Looks promising, simple and effective plus you seem quite motivated; because of this your project is on my "next things to check" list.
I'm kinda of a slow-worker and I haven't finished to updates all my mods, though ^^

So back to ADS, if you have precise questions on the code I suppose I could help, here or I'm used to works on Github...