Jump to content

Recommended Posts

This is so weird. I added debug trace to print out self:

Spoiler

Function Fragment_0(ObjectReference akSpeakerRef)
    Actor akSpeaker = akSpeakerRef as Actor
    Debug.Trace("vkj_z0805CCE8.Fragment_0 : self = "+ self)
    vkjOwnerComment q = GetOwningQuest() as vkjOwnerComment

    ...

 

and the output was:

Spoiler

vkj_z0805CCE8.Fragment_0 : self = [vkj_z0805CCE8 <topic info 5605CCE8 on quest vkjOwnerComment (5602A4F0)>]
ERROR: Unable to call GetOwningQuest - no native object bound to the script object, or object is of incorrect type
stack:
    [<nullptr form> (5605CCE8)].vkj_z0805CCE8.GetOwningQuest() - "<native>" Line ?
    [<nullptr form> (5605CCE8)].vkj_z0805CCE8.Fragment_0() - "vkj_z0805CCE8.psc" Line 14

 

So at the time the fragment calls GetOwningQuest(), self does point to the topicInfo, therefore GetOwningQuest() is should be called on a valid native TopicInfo object.
Yet the error message says there is no native object bound to the script object.

Either the game went completely crazy, or (more likely) i must be misundertanding the meaning of that message.
Can anybody tell me what is it i am missing? What is happening here?

EDIT: i also changed the call to self.GetOwningQuest(), which shouldn't make ny difference, and it doesn't - same error as before.

Link to comment

Interesting... i changed the fragment on topic info 0805CCE8 to run OnBegin instead OnEnd as it was.
And now i get no more errors.

...downside is that the action that follows the talk starts too soon, the response subtitle just appeared and you are already stripping for spanking or something.
Also, the attack/whipping animation don't play when it is like this, but that doesn't matter as it cannot be OnBegin for numerous reasons, this was just a test to see what happens.

Not sure what conclusion should i draw from this.
Seems worthwile digging into how that TopicInfo and its fragment are setup, but looking at it, i can;t see anything weird.

Link to comment

I must confess i dont really trust you guys when you say nobody else is getting this error :)
More and more, this looks like some engine bug, or maybe not even a bug, but just how things are with the OnEnd topicInfo fragments.

When i think about it, it doesn't sound so surprising anymore, that the native TopicInfo object would be detached by the time an OnEnd fragment runs.

I would really like to hear somebody on SSE to say that this 0805CCE8 topicInfo runs perfectly fine for them.
[INFO:0805CCE8] ('I like seeing you on your knees, but you haven't been doing it enough.' in GRUP Topic Children of vkjSimpleDomActionBranchTopic [DIAL:0802A4E5])

...it is one of those that shows after you "ask if your follower wants something".
For anybody interested in testing this, if you want to make sure the topic info 0805CC08 shows up as often as possible, open the plugin in xEdit, find Dialog Topic vkjSimpleDomActionBranchTopic [DIAL:0802A4E5] and remove all other of its topic infos, keep only [INFO:0805CCE8] and remove its conditions.
The game will still keep giving you the dancing outcome from time to time, but most of the time it should be the whipping that you want to test.
And if you try this, on SSE, and tell me it works no problem, i will go eat my boots - thats how much i dont trust you guys ?

Link to comment
35 minutes ago, Roggvir said:

And if you try this, on SSE, and tell me it works no problem, i will go eat my boots - thats how much i dont trust you guys

Well since I'm on Oldrim I can't except your challenge to prove you wrong -- but I can try to prove you right.  After a lot of dancing and stripping, I finally got that one.  And it didn't work.  So you're right about that, Roggvir.  I do wonder why that hasn't been reported.  Possibly players have been good about doing their daily service and not earning punishment. 

 

So the thing I noticed right away was that I couldn't click through that one to speed the dialog.  I wonder is that's because the script runs OnEnd?  That doesn't seem right; plenty of other scripts in this and other mods do that.  But I see nothing wrong with that dialog line. 

 

If I were fixing this, I'd switch the flag to OnBegin and delete the first record so the talk finishes in time.  The speech loses a bit of nuance like that but it still tells you why you're being punished. 

Link to comment

SOLVED
Well well well... look whos being misleading me, telling me things like "oh nobody else has problems, its just you" ;-D
...because as it turns out, when the OnEnd fragment is run, the freaking quest, to which that TopicInfo belongs, has been already stopped!
 

So, MAYBE, MAAAAAAYBE i would be willing to believe you guys that on Skyrim LE it behaves differently, but i don't think your Skyrim SE is different than mine - if the quest is stopped in mine at that point, it is stopped in yours too, and if it is stopped, you cannot use GetOwningQuest() anymore.

...or, maybe i am still wrong, but it does seem like a pretty good explanation, so unless someone proves me wrong with the aforementioned test, i think we know whats what now.
And i guess the solution is to go with the Quest.GetQuest(), or to pass in the quest via property.
(now please, whom should i call to get back the last 6 hours of my life i spent on this?) ;)

Link to comment
8 hours ago, Roggvir said:

The error typically occurs after various things are said, after which some action/consequence should follow, but nothing happens because of this error

On LE: So far Lola mistress did what she announced. Which is rather unique for a mod that works a lot with force greets in bigger LOs, especially because SLtR mistress is rather demanding. There was always an outcome after the dialogue.

I hate it if nothing happens after a dialogue, because that means something doesn't work right, either because of the mod or my setup (conflicts, other mods calling the actor).

So far SLtR even managed to continue scenes that got interrupted (Sexlife, Pet Collar, DEC, SLS Guard). Also survived some custom followers with own comments (if a quest is still running on them that needs to be finished to make them stop overwriting SLtR force greet dialogues. Looking at you rescued HSO followers).

That works so good that it compensates for the oddities:

  • Conflict with DFC (solved by either by modifying DFC esp or by only running one in LO. I'm still not convinced that DFC takes it well to block one of it's dialogues, because it's rather fragile)
  • Conflict with SLS (solved with newer SLS beta versions)
  • SLtR mistress used Riften gate guard dialogue all the sudden in the same manner as DFC/SLS dialogues got triggered (but that was on a compromised game)

Everything else got solved with the regular patches. Need to recheck the gold resetting glitch tho.

 

Link to comment
14 minutes ago, HexBolt8 said:

If I were fixing this, I'd switch the flag to OnBegin and delete the first record.  The speech loses a bit of nuance like that but it still tells you why you're being punished.

But it looks weird when the character starts stripping the milisecond the subtitles appear.
It makes it difficult to read, because you are distracted by whats going on, and it feels unnatural - like when somebody tells you something, you need ot hear it first, to know what are they telling you, without some delay, the stripping looks way too premature and ...weird.

I guess you could introduce some Wait, but wait's are ugly :)

Is it so bad that you cannot fast click through it?
(though, i don't think i had that problem - i'll try again)

EDIT: i tried fast clicking through that dialogue, and it worked.
So if it doesnt work for you, either this is something due to a difference between SE and LE, or the mods on SE vs. LE? (Fus Ro D'oh ?)

Link to comment
6 minutes ago, Roggvir said:

now please, whom should i call to get back the last 6 hours of my life i spent on this?

If you'd been like anyone else, you'd have just shrugged your shoulders, said "Huh, that's weird", and gone on to enjoy your game for the next 6 hours.  ?

Link to comment
16 minutes ago, Roggvir said:

...because as it turns out, when the OnEnd fragment is run, the freaking quest, to which that TopicInfo belongs, has been already stopped!

THAT sounds interesting. Is "OnEnd" also visible in TES5edit?

Is this somewhat related? (not a SLtR conflict ^^)

 

oh.jpg.92cc5f81e19c1e152926fc95e8e36f1c.jpg

And would this conflict cause oddities?

Link to comment
9 minutes ago, Roggvir said:

Is it so bad that you cannot fast click through it?
(though, i don't think i had that problem - i'll try again)

EDIT: i tried fast clicking through that dialogue, and it worked.
So if it doesnt work for you, either this is something due to a difference between SE and LE, or the mods on SE vs. LE? (Fus Ro D'oh ?)

That's interesting.  My Fuz Ro D-oh is up to date.  I'm using the alternate voice files but that's just timing.

 

No, it's not bad except in the past it's meant that I both a dialog, like had the Invisible Continue flag checked with nothing for it to go to.  But this is a Goodbye record.  Regarding that, I'm just going to shrug my shoulders, say "Huh, that's weird", and move on.  Maybe in time I'll note a pattern. 

 

So I'll look at a proper fix.  The Quest.GetQuest() approach looks good.

Link to comment
16 minutes ago, donttouchmethere said:

THAT sounds interesting. Is "OnEnd" also visible in TES5edit?

Is this somewhat related? (not a SLtR conflict ^^)

 

oh.jpg.92cc5f81e19c1e152926fc95e8e36f1c.jpg

And would this conflict cause oddities?

Yes, that looks like it.
Would it cause oddities? well.. as you can see here, it can, but it depends on what the fragment does.
In any case, i am not able to list all the possible pitfalls, even the GetOwningQuest() shennanigans were a new thing to me.
So, i'd say your guess is as good as mine.

EDIT: oh, you mean THAT particular conflict? i thought you mean in general.
But i'd say again, it could, but it depends on what changed in the fragment code (if anything) and what it does now. It also depends on whether the quest would be stopped/stopping when that fragment runs.
But seeing the original was OnEnd, and the winning override has OnEnd again, then unless the fragment code changed (compared to what the first mod had), it shouldn't pose any problem at all.

Link to comment
4 minutes ago, donttouchmethere said:

Does that mean if an invisible continue flag is set before the dialogue ends it would cause the dialogue to prematurely fail/stop?

Invisible continue is fine if there's another dialog that it's linked to.  That's done all the time.  It's highly useful.  But in the past I've managed to mess myself up when I was setting up the barebones early stage of a quest and I left out something essential like that.  I'd noticed that a dialog not connected to anything could give me that strange state where during dialog I had the crosshair rather than the pointer.

Link to comment

Here is an unofficial fix for nothing happening when the owner tries to punish you for not offering service enough.

 

 

Edit: Deleted obsolete patch.

 

This is just a bug fix, so it is not complete.  It only works if you have installed version 1.1 and the last update.  Install this last, overwriting earlier files.

 

Thanks to Roggvir for identifying the problem, giving up 6 hours of his life, and not having to eat his boots.

 

@MrEsturk, I think you'll want to include this in your development version.  One line in the included script changed. and I changed the speaker animation in the second record of dialog 0805CCE8 to zbfIdleForceReset so the owner can animate correctly for the whipping scene.

Link to comment
2 hours ago, HexBolt8 said:

Possibly players have been good about doing their daily service and not earning punishment.

I can only speak for myself - I typically always do my daily service. I think I have missed only once, maybe?

 

So Yes, that would explain why I haven’t encountered this issue.

Link to comment
1 hour ago, Roggvir said:

What? Always doing the daily service, being a good little pet?
How insensitive to your followers. They want you to misbehave, that's where the fun begins for them! :)
You are playing it wrong! ;-D

Heheh is always as naughty as I can get away with.

Link to comment

@HexBolt8 In the update 2020-10-04 Plus, you added two more keywords to property DeviceWords on quest script vkjMQ, but you forgot to mention it (together with the fact that the update will not patch the property on previously existing saves).

This introduces the following errors for anybody updating from older version on an existing save:

Spoiler

ERROR: Array index 23 is out of range (0-22)
stack:
    [vkjMQ (56026EC9)].vkjmq.LoadKeywords() - "vkjMQ.psc" Line 2064
    [vkjMQ (56026EC9)].vkjmq.Maintenance() - "vkjMQ.psc" Line 205
    [alias Player on quest vkjMQ (56026EC9)].vkjPlayerAliasScript.OnPlayerLoadGame() - "vkjPlayerAliasScript.psc" Line 13
ERROR: Array index 24 is out of range (0-22)
stack:
    [vkjMQ (56026EC9)].vkjmq.LoadKeywords() - "vkjMQ.psc" Line 2064
    [vkjMQ (56026EC9)].vkjmq.Maintenance() - "vkjMQ.psc" Line 205
    [alias Player on quest vkjMQ (56026EC9)].vkjPlayerAliasScript.OnPlayerLoadGame() - "vkjPlayerAliasScript.psc" Line 13

...and obviously any functionality depending on those two new keywords being in the property, will break.

For anybody falling into this "trap", like i did, here is patched vkjMQ script which fixes the property without having to start a new game or restart the quest (green is what i added):

Spoiler

204: Function Maintenance()
205:     if DeviceWords.length < 25
206:         keyword[] _deviceWords = new keyword[25]
207:         int _i = DeviceWords.length
208:         while _i > 0
209:             _i -= 1
210:             _deviceWords[_i] = DeviceWords[_i]
211:         endWhile
212:         _deviceWords[23] = zlib.zad_BlockGeneric
213:         _deviceWords[24] = zlib.zad_QuestItem
214:         DeviceWords = _deviceWords
215:     endIf
216:     LoadKeywords()
217: EndFunction

(NOTE: you need to have the update 2020-10-04 Plus or newer up to this moment)
(NOTE 2: you do NOT need this patch if you are not getting the errors above)
(NOTE 3: after you apply this and make a new save, you can revert to original script and continue playing from that save)

Skyrim LE:
SLtR DeviceWords retro-fix for UPDATE 2020-10-04 Plus.zip


Skyrim SE:

SLtR DeviceWords retro-fix for UPDATE 2020-10-04 Plus (SE).zip

 

Link to comment

@HexBolt8 I noticed another error:
ERROR: Unable to bind script vkjlib to vkjMQ (56026EC9) because their base types do not match

...its probably not breaking anything, but an error is an error, and should be fixed.
The error is caused by a vkjLib script being attached to quest vkjMQ, which cannot work because vkjLib is not extending Quest script - it is clearly some super old forgotten leftover (script vkjLib is used of course, but it contains only global functions, so any reason for this script being attached to vkjMQ either never existed, or is looooooooong gone).

Link to comment
40 minutes ago, Roggvir said:

you added two more keywords to property DeviceWords on quest script vkjMQ

Thank you for noting this, Roggvir.  Your fix looks good.  In my own copy I simply replaced the two lines loading the keywords, since in retrospect they never needed to be passed in:

 

    KwBlockGeneric = zlib.zad_BlockGeneric
    KwQuestItem = zlib.zad_QuestItem

Link to comment
16 minutes ago, Roggvir said:

The error is caused by a vkjLib script being attached to quest vkjMQ, which cannot work because vkjLib is not extending Quest script - it is clearly some super old forgotten leftover (script vkjLib is used of course, but it contains only global functions, so any reason for this script being attached to vkjMQ either never existed, or is looooooooong gone).

Yes, that dates back to the original mod.  I'll update my copy and pass along this and the keyword change to MrEsturk.

 

Edit:  I'm also removing the two new DeviceWords since they're not being used.  This would mainly be an issue for @Roggvir.

Link to comment
Guest
This topic is now 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