Jump to content

Recommended Posts

Fyi, also as a point of reference I was looking at: https://github.com/Mardoxx/skyrimui/blob/master/src/hudmenu/HUDMenu.as

 

If you look at the lines that reference MessagesBlock (which I believe is the internal name for what you see in calls to Debug.Notification) you get:

	Line 185: 		MessagesBlock.All = true;
	Line 203: 		MessagesBlock.Favor = true;
	Line 214: 		MessagesBlock.InventoryMode = true;
	Line 217: 		MessagesBlock.TweenMode = true;
	Line 220: 		MessagesBlock.BookMode = true;
	Line 225: 		MessagesBlock.DialogueMode = true;
	Line 228: 		MessagesBlock.BarterMode = true;
	Line 230: 		MessagesBlock.WorldMapMode = true;
	Line 232: 		MessagesBlock.MovementDisabled = true;
	Line 247: 		MessagesBlock.StealthMode = true;
	Line 270: 		MessagesBlock.Swimming = true;
	Line 282: 		MessagesBlock.HorseMode = true;
	Line 293: 		MessagesBlock.WarHorseMode = true;
	Line 305: 		MessagesBlock.CartMode = true;

The three that are omitted are: SleepWaitMode, JournalMode, and VATSPlayback (which is killmove, etc)

 

Sounds right. I have no idea why they called it TweenMode though. For your own sanity, I'd advise not to google for "Skyrim TweenMode". I feel like I'm on some watchlist now  :dodgy:

 

Link to comment

Version 1.5 is available for download!

 

Change log:

  • Jetzt mit deutscher Übersetzung! (added German translation)
  • Added font selection for the widget font.
  • Cleaned up the hotkey toggle code and added 2 new toggle modes.
  • Refactored the widget manager code for better maintainability.
  • Upgrade from 1.3 or later is fully automatic, no need for resets anymore.
  • Backwards compatible with profiles saved with version 1.4

 

Many thanks to CGi for not only providing the German translation, but also doing the tedious work of modifying the scripts to use the language files!

 

A note on the new toggle modes:

 

The difference between Show/Hide and Enable/Disable is that when you pick Show/Hide, the widget will actually continue scanning in the background, so as soon as you hit the hotkey you will immidiately see the updated arousal list of the most recent scan. With Enable/Disable, the widget is shut down completely when you toggle the widget off, as a result when you hit the hotkey it will take half a second to a second for the widget to perform a scan before it is shown. Most people should use Enable/Disable, people who are very impatient and do not care much about papyrus load can use Show/Hide for quicker responsiveness. The difference between Autohide and Auto Disable is similar to the difference between Enable/Disable and Show/Hide, so again only very impatient people should use Autohide, the rest should use Auto Disable.

 

When you restore a profile saved with v1.4 in v1.5, the Show/Hide toggle mode will be restored as Enable/Disable, because this new mode actually resembles the old Show/Hide mode closest. Likewise if the save profile contains the Autohide toggle mode, it will be restored as Auto Disable. If you want to store the revised Show/Hide or Autohide toggle modes in a profile, you will have to save the profile in the new version.

 

Link to comment

v1.5.1 available for download!

 

In v1.5 and older if you have enabled the hotkey and you press the key while the menu is open the widget will respond to it, which can be a little confusing because you can not see the widget when the menu is open. This update will prevent the widget from reacting to keypresses while the menu is open. That is the only change compared to v1.5.

 

To install just overwrite the old files, no further action needed.

 

Link to comment

CK question:

 

When I change the pArousalFaction link in the SLAMWidgetMAnagerQuest from slaArousal to SOS_SchlongifiedFaction (to reveal nearby organ sizes) and save, and reopen CK again, the pArousalFaction link shows 'NULL form (0500AFF8)'. On factions this SOS faction number is 0600AFF8.

 

Why does the link not stay?

Link to comment

CK question:

 

When I change the pArousalFaction link in the SLAMWidgetMAnagerQuest from slaArousal to SOS_SchlongifiedFaction (to reveal nearby organ sizes) and save, and reopen CK again, the pArousalFaction link shows 'NULL form (0500AFF8)'. On factions this SOS faction number is 0600AFF8.

 

Why does the link not stay?

 

Because part of SOS is esp not esm so its dynamic stuff that cannot be solidly referred to at design time.

 

I changed one SOS file to ESM and now 'my' dick-scanner works. Fun. Thanks BeamerMiasma, as you can see I am using your mod for learning.

 

Next I need to figure out how to get faction ranks that come from ESP not ESM..

Link to comment

 

CK question:

 

When I change the pArousalFaction link in the SLAMWidgetMAnagerQuest from slaArousal to SOS_SchlongifiedFaction (to reveal nearby organ sizes) and save, and reopen CK again, the pArousalFaction link shows 'NULL form (0500AFF8)'. On factions this SOS faction number is 0600AFF8.

 

Why does the link not stay?

 

Because part of SOS is esp not esm so its dynamic stuff that cannot be solidly referred to at design time.

 

I changed one SOS file to ESM and now 'my' dick-scanner works. Fun. Thanks BeamerMiasma, as you can see I am using your mod for learning.

 

Next I need to figure out how to get faction ranks that come from ESP not ESM..

 

pArousalFaction = Game.GetFormFromFile("Schlongs Of Skyrim.esp","00AFF8")

 

That should do it.

Link to comment

 

CK question:

 

When I change the pArousalFaction link in the SLAMWidgetMAnagerQuest from slaArousal to SOS_SchlongifiedFaction (to reveal nearby organ sizes) and save, and reopen CK again, the pArousalFaction link shows 'NULL form (0500AFF8)'. On factions this SOS faction number is 0600AFF8.

 

Why does the link not stay?

 

Because part of SOS is esp not esm so its dynamic stuff that cannot be solidly referred to at design time.

 

I changed one SOS file to ESM and now 'my' dick-scanner works. Fun. Thanks BeamerMiasma, as you can see I am using your mod for learning.

 

Next I need to figure out how to get faction ranks that come from ESP not ESM..

 

 

CK has this quirk that it does not retain esp files as masters. This means that if you select an esp file (and don't set it as active file) it will be saved as a master in your own esp, so it will work after that (you can verify this by opening your esp in TES5Edit). However if you then re-open your esp in CK again, the esp you marked as master will be removed from the list of master files for your mod, and every reference that was pointing to an object in this esp will be broken.

 

So basically you can use CK to create an esp that has another esp as master, but you cannot use CK to edit an esp that has another esp as master. Afaik there is no ini setting to change this behaviour. Personally I have a few patch esp that change behaviour in mods I have installed, and I exclusively use TES5Edit to modify these patches, because if I open the esp in CK it will be broken.

 

BTW, I know an excellent way to reveal nearby schlong sizes: clicky  :D:P

 

Link to comment

 

pArousalFaction = Game.GetFormFromFile("Schlongs Of Skyrim.esp","00AFF8")

 

That should do it.

 

 

Almost. You got me on right track, thanks, this did compile and it works.

 

pArousalFaction = Game.GetFormFromFile(0x00AFF8, "Schlongs Of Skyrim.esp") as Faction ;SOS_SchlongifiedFaction

 

Link to comment

 

CK has this quirk that it does not retain esp files as masters. This means that if you select an esp file (and don't set it as active file) it will be saved as a master in your own esp, so it will work after that (you can verify this by opening your esp in TES5Edit). However if you then re-open your esp in CK again, the esp you marked as master will be removed from the list of master files for your mod, and every reference that was pointing to an object in this esp will be broken.

 

So basically you can use CK to create an esp that has another esp as master, but you cannot use CK to edit an esp that has another esp as master. Afaik there is no ini setting to change this behaviour. Personally I have a few patch esp that change behaviour in mods I have installed, and I exclusively use TES5Edit to modify these patches, because if I open the esp in CK it will be broken.

 

BTW, I know an excellent way to reveal nearby schlong sizes: clicky  :D:P

 

 

Thanks, but why do people save their mods as esp and not esm? Anyway I will stop polluting your thread and make one of my own.

 

Link to comment

 

Thanks, but why do people save their mods as esp and not esm? Anyway I will stop polluting your thread and make one of my own.

 

 

A variety of reasons, with the most important one probably being that the CK doesn't let you save as esm :)

 

Masters are meant to be used by other mods, so anything you put in a master has to ideally stay fully backwards compatible or you will break every mod that depends on it whenever you change something. It's essentially an interface contract; by putting objects in an esp rather than a master, the author basically tells you that using it in your own mods is at your own risk and not guaranteed to still work with future versions.

Link to comment

 

 

Thanks, but why do people save their mods as esp and not esm? Anyway I will stop polluting your thread and make one of my own.

 

 

A variety of reasons, with the most important one probably being that the CK doesn't let you save as esm :)

 

Masters are meant to be used by other mods, so anything you put in a master has to ideally stay fully backwards compatible or you will break every mod that depends on it whenever you change something. It's essentially an interface contract; by putting objects in an esp rather than a master, the author basically tells you that using it in your own mods is at your own risk and not guaranteed to still work with future versions.

 

 

Wow such wisdom. Thank you human :)

 

Link to comment

 

 

pArousalFaction = Game.GetFormFromFile("Schlongs Of Skyrim.esp","00AFF8")

 

That should do it.

 

 

Almost. You got me on right track, thanks, this did compile and it works.

 

pArousalFaction = Game.GetFormFromFile(0x00AFF8, "Schlongs Of Skyrim.esp") as Faction ;SOS_SchlongifiedFaction

 

 

 

 

It's what happens when I try something off the top of my head instead of checking the references but glad to know you got to where you needed to go. 

 

A small extension of that idea allows the clean addition of "optional" mods.  You can check the result of Game.GetModByName("modfilename.esp or .esm") for a result > 0 which means the mod is present.  Then you can fill local references to that mod using Game.GetFormFromFile calls.

 

Some people do that without the GetModByName check and then end up with blocks of errors logged in Papyrus if that mod isn't present and find themselves having to add messages to Papyrus asking people to ignore the errors which could have easily been avoided.

 

 

Link to comment

 

 

 

pArousalFaction = Game.GetFormFromFile("Schlongs Of Skyrim.esp","00AFF8")

 

That should do it.

 

 

Almost. You got me on right track, thanks, this did compile and it works.

 

pArousalFaction = Game.GetFormFromFile(0x00AFF8, "Schlongs Of Skyrim.esp") as Faction ;SOS_SchlongifiedFaction

 

 

 

 

It's what happens when I try something off the top of my head instead of checking the references but glad to know you got to where you needed to go. 

 

A small extension of that idea allows the clean addition of "optional" mods.  You can check the result of Game.GetModByName("modfilename.esp or .esm") for a result > 0 which means the mod is present.  Then you can fill local references to that mod using Game.GetFormFromFile calls.

 

Some people do that without the GetModByName check and then end up with blocks of errors logged in Papyrus if that mod isn't present and find themselves having to add messages to Papyrus asking people to ignore the errors which could have easily been avoided.

 

 

According to the docs, you should actually check that GetModByName doesn't equal 255 to see if a mod is installed.

 

http://www.creationkit.com/GetModByName_-_Game

 

Link to comment

According to the docs, you should actually check that GetModByName doesn't equal 255 to see if a mod is installed.

 

http://www.creationkit.com/GetModByName_-_Game

 

 

I would say you shouldn't let it hinge on the mod being loaded or not at all. If you assume all your GetFormFromFile calls are going to succeed just because the mod is loaded, you're going to run into a version problem sooner or later. When loading objects from any external file that you don't control you should simply check for none before you do anything with the form. Calling GetFormFromFile for a non-loaded mod does not cause any errors (it simply returns none) - what causes the papyrus log spam is that people don't check if their variable actually contains an object, resulting in tons of "Can't cast a none" and "Can't call methods on a none" errors. So for example:

 

Form frmExternal = Game.GetFormFromFile("Schlongs Of Skyrim.esp","00AFF8")

If (frmExternal)

    ; mod exists and form exists

    pArousalFaction = frmExternal As Faction

Else

    ; form does not exist, either because mod isn't loaded or because it does not contain the form

EndIf

 

This way, your code will work if the mod isn't loaded, it will work if the mod author removes the form you're after from his mod, and it will work if your mod is running alongside an older version of the external mod that doesn't contain the form you're after yet.

Link to comment

You should make a light version of this mod that only has the player, or the player and current follower.  Basically remove the need for a scanner.  I had to uninstall because I am trying to pare down the scanner scripts going on in my game.

Link to comment

You should make a light version of this mod that only has the player, or the player and current follower.  Basically remove the need for a scanner.  I had to uninstall because I am trying to pare down the scanner scripts going on in my game.

 

You can already effectively do this by using the SLA hotkey. Also note that scanners like the ones used by SLAM Widget and SLA are not script based, it is not the scanner that adds papyrus load but the things a mod does with the scanned NPCs. :)

Link to comment

A little teaser:

 

I am currently working on adding an additional SLA tweak. Based on a long discussion in the SLA Redux thread, many people don't like the fact that if you have been away from a city for a long time and come back, everyone's arousal will have declined down to 0 or very low numbers. In other words, it looks as if nobody has any sex whenever the dragonborn is not around.

 

The tweak I am adding tries to remedy this. Whenever the scanner encounters a person with a very low arousal, it will check the last orgasm date. If that date was a long time ago (configurable of course), then the widget will generate a 'fake sex event' in the recent past and update the NPCs timerate and exposure (and thus their arousal) based on that fake event. The result is that in places where you haven't been for a long time (or where you haven't had sex for a long time) the arousal of the NPCs will be more mixed instead of all of them being very low.

 

Here's what it looks like in my logs:

 

 

[05/18/2015 - 02:42:58AM] SLAM Widget: Generated fake event for Durak
[05/18/2015 - 02:42:58AM] SLAM Widget: Last orgasm date set to 0.334930 days ago at TimeRate 14.290968, Exposure set to 1
[05/18/2015 - 02:42:58AM] SLAM Widget: New arousal for Durak is 4

 

[05/18/2015 - 02:43:52AM] SLAM Widget: Generated fake event for Isran
[05/18/2015 - 02:43:52AM] SLAM Widget: Last orgasm date set to 3.534279 days ago at TimeRate 8.970371, Exposure set to 11
[05/18/2015 - 02:43:52AM] SLAM Widget: New arousal for Isran is 25

 

[05/18/2015 - 02:49:39AM] SLAM Widget: Generated fake event for Celann
[05/18/2015 - 02:49:39AM] SLAM Widget: Last orgasm date set to 3.622383 days ago at TimeRate 9.819760, Exposure set to 24
[05/18/2015 - 02:49:39AM] SLAM Widget: New arousal for Celann is 40

 

[05/18/2015 - 02:52:00AM] SLAM Widget: Generated fake event for Agmaer
[05/18/2015 - 02:52:00AM] SLAM Widget: Last orgasm date set to 3.668560 days ago at TimeRate 11.946505, Exposure set to 16
[05/18/2015 - 02:52:00AM] SLAM Widget: New arousal for Agmaer is 35

 

[05/18/2015 - 03:07:13AM] SLAM Widget: Generated fake event for Bjorlam
[05/18/2015 - 03:07:13AM] SLAM Widget: Last orgasm date set to 2.164688 days ago at TimeRate 9.867186, Exposure set to 15
[05/18/2015 - 03:07:13AM] SLAM Widget: New arousal for Bjorlam is 27

 

[05/18/2015 - 03:07:46AM] SLAM Widget: Generated fake event for Severio Pelagia
[05/18/2015 - 03:07:46AM] SLAM Widget: Last orgasm date set to 0.696606 days ago at TimeRate 7.123749, Exposure set to 3
[05/18/2015 - 03:07:46AM] SLAM Widget: New arousal for Severio Pelagia is 6

 

[05/18/2015 - 03:11:53AM] SLAM Widget: Generated fake event for Amren
[05/18/2015 - 03:11:53AM] SLAM Widget: Last orgasm date set to 0.777809 days ago at TimeRate 12.517812, Exposure set to 4
[05/18/2015 - 03:11:53AM] SLAM Widget: New arousal for Amren is 11

 

[05/18/2015 - 03:12:06AM] SLAM Widget: Generated fake event for Ysolda
[05/18/2015 - 03:12:06AM] SLAM Widget: Last orgasm date set to 2.137119 days ago at TimeRate 18.170622, Exposure set to 23
[05/18/2015 - 03:12:06AM] SLAM Widget: New arousal for Ysolda is 47

 

[05/18/2015 - 03:12:33AM] SLAM Widget: Generated fake event for Olfrid Battle-Born
[05/18/2015 - 03:12:33AM] SLAM Widget: Last orgasm date set to 2.024380 days ago at TimeRate 8.627881, Exposure set to 3
[05/18/2015 - 03:12:33AM] SLAM Widget: New arousal for Olfrid Battle-Born is 13

 

[05/18/2015 - 03:13:01AM] SLAM Widget: Generated fake event for Idolaf Battle-Born
[05/18/2015 - 03:13:01AM] SLAM Widget: Last orgasm date set to 2.204536 days ago at TimeRate 11.906404, Exposure set to 11
[05/18/2015 - 03:13:01AM] SLAM Widget: New arousal for Idolaf Battle-Born is 26

 

 

 

This feature will of course be entirely optional, and off by default.

 

Link to comment
  • 2 weeks later...

hello, a quick question: what does slam_textwidget.swf contain? or i can send any text to it?

 

Each HUD item is a shockwave flash with some action script. You can find the SDK here. The slam_textwidget just displays some text but there are many more possibilities, for example the SkyUI active effects icons HUD is also an swf.

Link to comment

 

hello, a quick question: what does slam_textwidget.swf contain? or i can send any text to it?

 

Each HUD item is a shockwave flash with some action script. You can find the SDK here. The slam_textwidget just displays some text but there are many more possibilities, for example the SkyUI active effects icons HUD is also an swf.

 

i mean i want to use it to pass some string data from my mod, do i need to do something with slam_textwidget.swf or papyrus scripts are enough?

and can i rename it to something else?

Link to comment

 

 

hello, a quick question: what does slam_textwidget.swf contain? or i can send any text to it?

 

Each HUD item is a shockwave flash with some action script. You can find the SDK here. The slam_textwidget just displays some text but there are many more possibilities, for example the SkyUI active effects icons HUD is also an swf.

 

i mean i want to use it to pass some string data from my mod, do i need to do something with slam_textwidget.swf or papyrus scripts are enough?

and can i rename it to something else?

 

 

I don't think you can re-use the same widget for another mod without causing conflicts. I suspect you will have to compile your own swf with its own identifier (and of course your own papyrus scripts), otherwise the widgets might steal eachother's messages. But honestly, you need to delve into the SDK, this is not something I can educate you about, I had a hard enough time getting it to work correctly myself.

 

 

Link to comment

 

 

 

hello, a quick question: what does slam_textwidget.swf contain? or i can send any text to it?

 

Each HUD item is a shockwave flash with some action script. You can find the SDK here. The slam_textwidget just displays some text but there are many more possibilities, for example the SkyUI active effects icons HUD is also an swf.

 

i mean i want to use it to pass some string data from my mod, do i need to do something with slam_textwidget.swf or papyrus scripts are enough?

and can i rename it to something else?

 

 

I don't think you can re-use the same widget for another mod without causing conflicts. I suspect you will have to compile your own swf with its own identifier (and of course your own papyrus scripts), otherwise the widgets might steal eachother's messages. But honestly, you need to delve into the SDK, this is not something I can educate you about, I had a hard enough time getting it to work correctly myself.

 

well from papyrus side i dont see problems, but swf.... guess ill have to invoke science, try and learn hard way *sigh*
Link to comment
  • 1 month later...

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