Jump to content

Dialogue kicking my butt - help?


chajapa

Recommended Posts

BY THE NINES!

 

That did it!  Stupid zeroes.... (or... me!)

 

So now I can CREATE a milkmaid in dialogue. A legit MilkMaid

 

And it LOOKS like the only thing that happens if someone doesn't have Milk Mod, is that it puts an entry in the Papyrus log that we're trying to equip a NONE item.

 

well... I HAVE MilkMod... so not getting the ITEM right didn't crash anything... but what if they don't have MikModNEW.esp when it looks for it? Any danger there?

 

 

There's no danger if MilkMod is missing. The EquipItem() will just complain in the Papyrus log because you tried to pass None as a parameter, since GetFormFromFile didn't find a valid entity for the requested ID/modname. But a better way of handling this, to avoid any Papyrus log clutter, is the following:

If ( Game.GetModByName("MilkModNEW.esp") != 255 )
      akSpeaker.EquipItem(Game.GetFormFromFile(0x343F2, "MilkModNEW.esp"))
EndIf
Link to comment

Smol recommendation. If you have MilkMod as master, then avoid to get objects by id.

 

Just add a property like:

 

Armor Property lacataid Auto

 

and use it.

 

I have no idea of the type of object lactaid is, so it may be NOT an Armor.

 

In case you DON'T want to have the MilkMod as dependency, then get your object first, then check if it exists, then handle the two cases.

 

Link to comment

MilkMod is not a master.

 

Lactacid is ALCH

 

It seems to be working the way I'm doing it (as WraithSlayer described).

I've been writing dialogue all morning (almost 3 hours so far) and I'm getting ready to start adding in the scripting for some idles during conversation, adjust emotion, add SexLab animations, etc. 

 

Writing the dialogue seems a small part! :)

 

I think I'm going to create a text file with the code I am using often so I can copy/paste and try to speed things up a bit. 

Link to comment

MilkMod is not a master.

 

Lactacid is ALCH

 

It seems to be working the way I'm doing it (as WraithSlayer described).

I've been writing dialogue all morning (almost 3 hours so far) and I'm getting ready to start adding in the scripting for some idles during conversation, adjust emotion, add SexLab animations, etc. 

 

Writing the dialogue seems a small part! :)

 

I think I'm going to create a text file with the code I am using often so I can copy/paste and try to speed things up a bit. 

 

The mothod posted by WraithSlayer is good but you have to check the result before using it.

This method will grab an object from another mod without checking if the other mod is there.

And this may result to a null error that will stop the script on your mod.

 

So:

 

Option 1: you put the MildMod as dependency (not .esm (master), just a mod that you need to run yours) and you replace the Alchemy Lactaid with a property

Option 2: you get your Alchemy through the methodo proposed by WraithSlayer, but before using it, you chack if you actually have it.

Link to comment

 

The mothod posted by WraithSlayer is good but you have to check the result before using it.

This method will grab an object from another mod without checking if the other mod is there.

And this may result to a null error that will stop the script on your mod.

 

So:

 

Option 1: you put the MildMod as dependency (not .esm (master), just a mod that you need to run yours) and you replace the Alchemy Lactaid with a property

Option 2: you get your Alchemy through the methodo proposed by WraithSlayer, but before using it, you chack if you actually have it.

 

 

The solution I proposed here already includes the check for the mod, it won't generate any null errors if implemented that way.

 

With that said, setting a hard dependency and linking a property is a considerably more efficient way of getting the item, but if chajapa doesn't want his mod to have a dependency, it's not really an option.

Link to comment

You can still use a property without putting a dependency:

1) add the Alchemy Property abc Auto

2) in your main quest script initialization assign it

 

Best of both worlds...

 

Your code here is perfect to do the checking.

If ( Game.GetModByName("MilkModNEW.esp") != 255 )
      akSpeaker.EquipItem(Game.GetFormFromFile(0x343F2, "MilkModNEW.esp"))
EndIf
Link to comment

Checking for it on quest script initialization is not a very good idea, as it only checks once during the script's life-cycle. The player may not have MilkMod yet when they install Jugs, but decide to install it later on. Or vice-versa, MilkMod might be present initially, but removed at some point later.

 

Doing the mod check once per load would be optimal, but I don't think chajapa has any script that implements OnPlayerLoadGame() yet, and it took enough convincing to get him to use a quest script to begin with. :P The method I provided keeps things as simple as possible, and since (I assume) creating a milk maid is not something you'll be doing multiple times per second, the performance impact of checking for the mod's presence every time is negligible.

Link to comment

I'm trying to keep this as... lightly scripted... as possible. A lot of Topics have fragments to do various little things...start an idle, stop, put so-and-so in a faction, strip, unstrip... stuff like that. So... about 40 fragments so far but they're tiny and I don't think they're leaving anything "running". This thing with the potion from MilkMod can only happen once per NPC that you've already brought into JugsFaction. So... it shouldn't be happening too often. I mean even MilkMod has a limit to how many Maids you can have.

 

If you exceed Milk Mod's limit (I've done it on purpose) you may get a message about no more Maid slots available, but... that's not an error. In that case the NPC would STILL be added to my internal JugsMilkMaidFaction for the purposes of having a condition for special dialogue.

 

You guys have created a monster you know... Now that I know how to have different infos with different conditions in a single Topic I can have a lot of "forks"

 

If NPC FactionA !=1 && NPC FactionB !=1, then say "this"

If NPC FactionA =1 && NPC FactionB !=1, then say "this other thing"

If NPC FactionA =1 && NPC FactionB =1, then say "something else"

 

Each pointing to their own following Topic if necessary

 

For someone who wants to focus on dialogue... this is awesome! hehehhe

You can build conversations... with different outcomes.

 

I learned how to use "Normal" branches to have dialogue that only shows up when linked from OTHER dialogue.

 

I'm still looking for gestures (idles) that the NPC can use when talking... or the player... and I *might* start working on adding sounds.

 

I'm STOKED!

 

The DISadvantage is that I've run the dialogue so many times in testing, that... I've seen it all a hundred times.

The ADVANTAGE is... that this means I need to write more dialogue so it's "new" again!!

 

 

If you want to see what I accomplished today (with a lot of help YESTERDAY), install the version I just put up, talk to a female NPC and get her into "the group" (JugsFaction) and then talk to her again and ask if she's ready to "go to the next level" (female player) or "make them better"(male player).

 

:D

 

*rubs hands together gleefully* I'm having fun!

Link to comment

Welcome to the modding world!

 

When I did my first post (All Nude Play) less than 2 months ago. It was supposed to do only one thing: stripping randomly the NPCs around. Then people asked for this/that/this/that/this/that/(continue as you wish)

And now this mod has a HUGE amount of option in 8 different MCM pages to do about everything.

 

I did a super small mod for a friend (Oral Only) and people asked immediately to add this/add that. (And I am not good at saying: NO!)

 

So, yes! Every small mod you create is an embryon for a monster that pretty sure will become a huge monster.

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use