Jump to content

Recommended Posts

If I knew about what I'm writing, I would not have to ask, but:

My mod manager warns me about multiple PEX and PSC (also DLL) files already installed by sexlab 1.59c.

I figure your mod is superior, or why bother to include the files, so I said "yes" (replace) to all.

  I only want to mumble quietly WHY mods replace other mod's mods, and if there is a pecking order (there should be)

of stuff that gets replaced. 

Link to comment

If I knew about what I'm writing, I would not have to ask, but:

My mod manager warns me about multiple PEX and PSC (also DLL) files already installed by sexlab 1.59c.

I figure your mod is superior, or why bother to include the files, so I said "yes" (replace) to all.

  I only want to mumble quietly WHY mods replace other mod's mods, and if there is a pecking order (there should be)

of stuff that gets replaced.

Look at the current author for the two mods and ask that question again.

Link to comment

 

If I knew about what I'm writing, I would not have to ask, but:

My mod manager warns me about multiple PEX and PSC (also DLL) files already installed by sexlab 1.59c.

I figure your mod is superior, or why bother to include the files, so I said "yes" (replace) to all.

  I only want to mumble quietly WHY mods replace other mod's mods, and if there is a pecking order (there should be)

of stuff that gets replaced.

Look at the current author for the two mods and ask that question again.

 

If you made both mods (congratulations and thanks) and one of the mods is updated, um,

OK let me start again,

WHICH mod is the authoritative mod, and is there a way to define any mod as such?

(I'm going now)

Link to comment

 

 

If I knew about what I'm writing, I would not have to ask, but:

My mod manager warns me about multiple PEX and PSC (also DLL) files already installed by sexlab 1.59c.

I figure your mod is superior, or why bother to include the files, so I said "yes" (replace) to all.

  I only want to mumble quietly WHY mods replace other mod's mods, and if there is a pecking order (there should be)

of stuff that gets replaced.

Look at the current author for the two mods and ask that question again.

 

If you made both mods (congratulations and thanks) and one of the mods is updated, um,

OK let me start again,

WHICH mod is the authoritative mod, and is there a way to define any mod as such?

(I'm going now)

 

The point I was trying to make is they are updated simultaneously. The version packaged with SexLab is always going to be the same version provided here. Neither is really authoritative, so long as neither is being overwritten you'll have the latest version installed.

Link to comment

Looks like the crash I had with 2.3 & DH is back with 2.8.

function SandBoxCreatures()
    int num = FormListCount(none, creatureList)
;    RemoveAllPackageOverride(gatherPackage) ; PapyrusUtil 2.3 crashes here for some reason, but not on the identical call in StopCreatureScene() later
    while num > 0
        num -= 1
        Actor creature = FormListGet(none, creatureList, num) as Actor
        AddPackageOverride(creature, sandboxPackage, 100)
        creature.EvaluatePackage()
    endWhile
endFunction
Basically, commenting that one line out prevents the crash. I didn't test what the comment says about 2.3 with 2.8 yet though. The actors that the package is applied to are all draugr if that makes a difference.

 

I'm going to remove that call though, as it just get overwritten with another package, and both then get removed after the scene ends. Going to test that works first. But still, thought reporting it would be in order.

 

EDIT: Nope, seems to crash on the later call to the same function at scene end now as well. While I don't need it on that first location, the second is needed.

Link to comment

THANK YOU!!!!!

 

This is brilliant.

Sorted out my problem having despite of reinstalling CK, installing fresh SKSE and SkyUI SDK:

 

(I'm putting it here for the sake of search engines (this is just an example, I had this problem with all files)):

C:\bin\Games\TSEV Skyrim LE>"Papyrus Compiler"\PapyrusCompiler.exe sslCreatureAnimationDefaults -f="TESV_Papyrus_Flags.f
lg" -i=".\\Data\\scripts\\Source" -o=".\\Data\\scripts"
Starting 1 compile threads for 1 files...
Compiling "sslCreatureAnimationDefaults"...
C:\bin\Games\TSEV Skyrim LE\Data\scripts\Source\sslActorStats.psc(344,2): FloatListAdjust is not a function or does not
exist
C:\bin\Games\TSEV Skyrim LE\Data\scripts\Source\sslActorStats.psc(351,2): FloatListAdjust is not a function or does not
exist
C:\bin\Games\TSEV Skyrim LE\Data\scripts\Source\sslActorStats.psc(925,3): AdjustIntValue is not a function or does not e
xist
C:\bin\Games\TSEV Skyrim LE\Data\scripts\Source\sslActorStats.psc(934,3): AdjustFloatValue is not a function or does not
 exist
C:\bin\Games\TSEV Skyrim LE\Data\scripts\Source\sslBaseAnimation.psc(287,10): FloatListAdjust is not a function or does
not exist
C:\bin\Games\TSEV Skyrim LE\Data\scripts\Source\sslBaseAnimation.psc(287,10): cannot call the member function FloatListA
djust alone or on a type, must call it on a variable
C:\bin\Games\TSEV Skyrim LE\Data\scripts\Source\sslBaseAnimation.psc(294,11): FloatListAdjust is not a function or does
not exist
C:\bin\Games\TSEV Skyrim LE\Data\scripts\Source\sslBaseAnimation.psc(294,11): cannot call the member function FloatListA
djust alone or on a type, must call it on a variable
No output generated for sslCreatureAnimationDefaults, compilation failed.

Batch compile of 1 files finished. 0 succeeded, 1 failed.
Failed on sslCreatureAnimationDefaults
Link to comment

With further testing, both RemovePackageOverride() and ClearPackageOverride() seem to work normally. Say if you need logs or something.

 

I've found and fixed the bug, the package removal loop goes forward through the list, if the package you're removing is the only package on an actor, then after the package is removed the iterator is made invalid, making the continued loop crash. I've switched it to loop backwards through the list and that seems to fix the problem, I'm no longer able to replicate it.

 

I'll release an update later after I finish some other updates as well. Might be a while though, as I'm trying to take a break. Until then your best bet is to just keep a separate list of actors you've added the package to and loop through that to use with RemovePackageOverride().

Link to comment

Better is this way to make sure iterator can't go invalid:

 

for(itr = list.begin(); itr != list.end(); )
{
if(*itr == package)
itr = list.erase(itr);
else
itr++;
}

 

It's done that way elsewhere in the source for that very reason, the package overrides are a bit different though since they aren't implemented directly into the storage classes. I kinda explained the problem wrong I'm realizing as I look at it again now.

 

The loop isn't looping through the vector, it's just looping through the object map and then making calls to the same functions that StorageUtil uses for ListRemove() to remove the package from the form list, which themselves do the vector loop and use erase().

 

int removed = 0;
for (Packages::Map::iterator itr = Overrides->Data.begin(); itr != Overrides->Data.end(); ++itr){
	Overrides->ListRemove(itr->first, "flagged", PackageRef, true);
	removed += Overrides->ListRemove(itr->first, "package", PackageRef, true);
}
return removed;

The problem is that ListRemove() removes the obj from the map when it sees the vectors on it are empty. Invalidating the map iterator from outside of the loop.

 

A proper solution would probably be to just interface with the map & vector data directly instead of using the StorageUtil functions. But I'm lazy.
 
Link to comment

Just doing backwards and hoping iterator will remain OK seems troublesome to me, maybe then next best solution is this:

Packages::Map::iterator itr, itr2
for(itr = Overrides->Data.begin(); itr != Overrides->Data.end(); )
{
itr2 = itr++;

// Now erase here using itr2
}
Or what you said with the direct thing :P
Link to comment

Question for the storageUtil experts.

 

I have a set of animations I would like to use to make the Player crawl instead of walk when they are enslaved.

There is a mod with crawl animations but it is a simple replacer of sneak animations.

 

My question: would I be able to replace these animations on demand by using SetReplaceAnimation() on the player object reference?

 

I want to get a sense if this is doable before I spend time trying to make it work.

Link to comment

Question for the storageUtil experts.

 

I have a set of animations I would like to use to make the Player crawl instead of walk when they are enslaved.

There is a mod with crawl animations but it is a simple replacer of sneak animations.

 

My question: would I be able to replace these animations on demand by using SetReplaceAnimation() on the player object reference?

 

I want to get a sense if this is doable before I spend time trying to make it work.

 

I believe so. The animation replacer stuff hasn't been used or tested much though.

Link to comment

 

Question for the storageUtil experts.

 

I have a set of animations I would like to use to make the Player crawl instead of walk when they are enslaved.

There is a mod with crawl animations but it is a simple replacer of sneak animations.

 

My question: would I be able to replace these animations on demand by using SetReplaceAnimation() on the player object reference?

 

I want to get a sense if this is doable before I spend time trying to make it work.

 

I believe so. The animation replacer stuff hasn't been used or tested much though.

 

 

Ok.. I will give it a try then.

 

The alternative would be to try and catch key strokes and change the idle when the player moves and I am not loking forward to get that kind of thing to work :) A way to replace animations would be much better.

Link to comment

 

 

Question for the storageUtil experts.

 

I have a set of animations I would like to use to make the Player crawl instead of walk when they are enslaved.

There is a mod with crawl animations but it is a simple replacer of sneak animations.

 

My question: would I be able to replace these animations on demand by using SetReplaceAnimation() on the player object reference?

 

I want to get a sense if this is doable before I spend time trying to make it work.

 

I believe so. The animation replacer stuff hasn't been used or tested much though.

 

 

Ok.. I will give it a try then.

 

The alternative would be to try and catch key strokes and change the idle when the player moves and I am not loking forward to get that kind of thing to work :) A way to replace animations would be much better.

 

 

Current versions of FNIS provide an alternate animations system, which it uses for FNIS Sexy Move. I haven't looked much into how that system works, but it may or may not be better suited. 

Link to comment

 

 

 

Question for the storageUtil experts.

 

I have a set of animations I would like to use to make the Player crawl instead of walk when they are enslaved.

There is a mod with crawl animations but it is a simple replacer of sneak animations.

 

My question: would I be able to replace these animations on demand by using SetReplaceAnimation() on the player object reference?

 

I want to get a sense if this is doable before I spend time trying to make it work.

 

I believe so. The animation replacer stuff hasn't been used or tested much though.

 

 

Ok.. I will give it a try then.

 

The alternative would be to try and catch key strokes and change the idle when the player moves and I am not loking forward to get that kind of thing to work :) A way to replace animations would be much better.

 

 

Current versions of FNIS provide an alternate animations system, which it uses for FNIS Sexy Move. I haven't looked much into how that system works, but it may or may not be better suited. 

 

 

 

ObjectUtil looks promising. I did a quick test and I was able to change animations although finding the right events associated to movement is a but of a pain. 

 

I will put that on the back burner for now and maybe look at FNIS commands as well after this release of SD. I don't want to spend too much time on this feature alone.

Link to comment

 

 

 

ObjectUtil looks promising. I did a quick test and I was able to change animations although finding the right events associated to movement is a but of a pain. 

 

ObjectUtil doesn't look promising at all to me. Sorry, Ashal.  :P

 

It doesn't change animation, it changes the call of AnimEvents. A BIG difference. I  don't know how it really works, but I assume that this plugin exchanges the AnimEvent that is sent from the engine to the behavior. And that's like sending SAE() at arbitrary times.

 

Probably this SetReplaceAnimation() allows a few tricks more then SAE(). IF it works. But just like the experience many users made with calling AnimEvents in order to get certain animation to run: it will work in some, mostly simple cases. Maybe,  or maybe not, or maybe you get some strange side effects.

 

You simply cannot change the bonds of behaviors without modifying the behaviors themselves.

Link to comment

 

 

 

Question for the storageUtil experts.

 

I have a set of animations I would like to use to make the Player crawl instead of walk when they are enslaved.

There is a mod with crawl animations but it is a simple replacer of sneak animations.

 

My question: would I be able to replace these animations on demand by using SetReplaceAnimation() on the player object reference?

 

I want to get a sense if this is doable before I spend time trying to make it work.

 

I believe so. The animation replacer stuff hasn't been used or tested much though.

 

 

Ok.. I will give it a try then.

 

The alternative would be to try and catch key strokes and change the idle when the player moves and I am not loking forward to get that kind of thing to work :) A way to replace animations would be much better.

 

 

Current versions of FNIS provide an alternate animations system, which it uses for FNIS Sexy Move. I haven't looked much into how that system works, but it may or may not be better suited. 

 

 

I already thought about integrating the crawling animations into FNIS SM. But for one it doesn't really fit there. But the main problem right now is that for the player you also need the directional walks. And these I haven't implemented yet.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • 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