Jump to content

Recommended Posts

5 minutes ago, Verasmile2 said:

The only other mod that uses a HUD is one that adds a clock, which I've installed only recently.

The SA HUD never worked for me.

I even tried to change values to move the parameters, but still nothing appeared. And I don't see a "toggle on/off" option in the menu, su maybe it's been turned off the whole time? What's the key I should press to turn it on?

 

The toggle is the mod iHUD.  Just saying that the SA HUD has always worked but could be messed with by other HUD using mods. MCG uses the HUD as well and works as well.

 

Just you may need to look at yours and see what interacts ... 

 

But otherwise,  SA HUD works.

 

Oh, I dont use DEF_UI as well.  But it worked even when I did.

 

John 

Link to comment
16 hours ago, justforcensor said:

grate job! this mod refreshes the gameplay a lot. but as I can see being a slut has more penalties then buffs, don't you think you should balance it like chems in game. like you get powerfull buff for short period of time but if you didn't get another "dose" only then you are get punished. like being a slut gives you faster action point recovery, or heal you instantly, or for example mating the deathclaw makes other animals sense it smell and run away but other deathclaw would be atracted with this smell+to get ultimate slut title witch allow you use such bonuses you must not just have sex 100 times but complete the list of all kinds of interactions or tasks.

Heh, being a slut at one point used to be kind of OP. It provided 90% reduction to self esteem lost from rapes, and no stat debuff. I found it a bit too OP lol. So i nerfed it to 50% reduction (which i still think is pretty good), but turns you into a bimbo, giving you -4 INT debuff. 
But as a slut you gain arousal faster, which can be a good thing too. If your arousal is high enough that also provides reduction to self esteem lost from rapes. 
 

I will have to play with it more to see if its balanced. 
 

Im trying to avoid modifying base game stats too much. Otherwise, with all these different attributes each affecting stats in some way, it can get overwhelming

Link to comment
3 minutes ago, Verasmile2 said:

So I have to install that one too? There aren't other ways to toggle it?

Not sure what iHUD is. 
 

i have HUDframework and it has always worked for me. The only other mod i have that adds HUD in some way is sim settlements, and ive never had any conflict. 

Link to comment
2 hours ago, twistedtrebla said:

Not sure what iHUD is. 
 

i have HUDframework and it has always worked for me. The only other mod i have that adds HUD in some way is sim settlements, and ive never had any conflict. 

Which settings did you made? Do you press any key to activate it?

Link to comment
2 hours ago, twistedtrebla said:

No if you have the plugin installed (and HUDFramework mod) it should just show when you open the game

I just tried to deactivate the HUD esp and reactivated it, I'll see if it works.. Otherwise I guess I'll have to reinstall it

Link to comment
7 hours ago, twistedtrebla said:

Heh, being a slut at one point used to be kind of OP. It provided 90% reduction to self esteem lost from rapes, and no stat debuff. I found it a bit too OP lol. So i nerfed it to 50% reduction (which i still think is pretty good), but turns you into a bimbo, giving you -4 INT debuff. 
But as a slut you gain arousal faster, which can be a good thing too. If your arousal is high enough that also provides reduction to self esteem lost from rapes. 
 

I will have to play with it more to see if its balanced. 
 

Im trying to avoid modifying base game stats too much. Otherwise, with all these different attributes each affecting stats in some way, it can get overwhelming

agree. I like how you put prise effects: cheaper buying prise and in same time cheaper selling price. you even can play with your condition to get best cost.

Link to comment
Spoiler

image.png.ff5e96f8b8a63320fcdfade7decfddd2.png

I've encountered a bug, I believe. This message keeps popping up periodically, tells me my character is no longer a slut. But, checking my active effects still shows the "Slut" "INT-4" debuff, and this message repeats every few minutes, stuck in loop.

(Update) I made a quick fix by removing the message and the reference that calls upon it. Although, it doesn't remove the "Slut" "INT-4" effect. I couldn't even get the console to remove the spell.

FPAttributes.esp

Link to comment

Minor issue: InitializeDDKeywords() isn't called until you bring up the restraints escape menu.  This prevents the "Process external gains from wearing plugs or piercings" code from working until the first time the menu is opened.  FPA should probably call InitializeDDKeywords() in LoadFPA() or in a function that is called by OnPlayerLoadGame().

Link to comment

I am thinking of integrating Sex Attributes via soft dependency with Sex Appeal Framework. But what I think of right now is not existing directly in the API.

 

I want to have the check against player having certain perks (for example, wear related ones). And give bonuses / penalties to SA based on that. The reason I don't want to do direct checks against FP values (which can be obtained via API indeed) is that I don't want to hardcode absolute values and instead leave the logic on this mod side. I.e. let FPAttributes decide when to change wear, I want to adhere to that.

 

So, no big deal - I can do this even without API calls to FPAttributes, just run hasPerk after getting the form from the plugin file. Problem is though - what if you change the form id or even remove it. I can handle that too, but still want to ask:

 

- First and foremost, are you ok with such integration?

- Will you add checks for perks to the API?

- Do you encourage integration directly via form calls (i.e. you won't change them in the future)

 

Of course, since it's a soft dependency, SAF will not break at all and gracefully ignore if FP was not installed / any error happened etc (the bonuses / penalties from those perks will just never appear)

Link to comment
5 hours ago, Operand said:

I am thinking of integrating Sex Attributes via soft dependency with Sex Appeal Framework. But what I think of right now is not existing directly in the API.

 

I want to have the check against player having certain perks (for example, wear related ones). And give bonuses / penalties to SA based on that. The reason I don't want to do direct checks against FP values (which can be obtained via API indeed) is that I don't want to hardcode absolute values and instead leave the logic on this mod side. I.e. let FPAttributes decide when to change wear, I want to adhere to that.

 

So, no big deal - I can do this even without API calls to FPAttributes, just run hasPerk after getting the form from the plugin file. Problem is though - what if you change the form id or even remove it. I can handle that too, but still want to ask:

 

- First and foremost, are you ok with such integration?

- Will you add checks for perks to the API?

- Do you encourage integration directly via form calls (i.e. you won't change them in the future)

 

Of course, since it's a soft dependency, SAF will not break at all and gracefully ignore if FP was not installed / any error happened etc (the bonuses / penalties from those perks will just never appear)

I'm not in front of my computer, so I can't check, but you are free to open the mod in Creation Kit and look up the perk IDs. Just filter for "fpa", and all the mod's perks should show up.

 

I most likely wont be removing or re-introducing new physical wear perks. They've been there since day 1 of this mod, and I dont see a reason to change it. Be warned though, there are 10 perks in total for each orifice, (perk at 0, 10, 20, ... to 90). Looking back at it, I think I should've made it less granular. But it is what it is and I have no desires to change it. That said, since theres so many perks, it might be a lot of perks you have to getForm for. But if that's what you prefer, then up to you. :) 

 

You can read values from my mod in whatever fashion you want. My only requirement is to stick to the provided APIs for any writes (modifying values) so that things dont go too out of control.

Link to comment
13 hours ago, twistedtrebla said:

I'm not in front of my computer, so I can't check, but you are free to open the mod in Creation Kit and look up the perk IDs. Just filter for "fpa", and all the mod's perks should show up.

 

I most likely wont be removing or re-introducing new physical wear perks. They've been there since day 1 of this mod, and I dont see a reason to change it. Be warned though, there are 10 perks in total for each orifice, (perk at 0, 10, 20, ... to 90). Looking back at it, I think I should've made it less granular. But it is what it is and I have no desires to change it. That said, since theres so many perks, it might be a lot of perks you have to getForm for. But if that's what you prefer, then up to you.

Yes, I'm aware. There are 8 in total (+1 for no wear). That is my current approach anyways (i.e. direct access via hardcoded FormID).

 

Alright, I will use this approach then, thanks. I won't be modifying any values, at least not for the purposes I want to integrate with FP for now.

 

EDIT: I disagree that you should've make it less granular :) Because this granularity is of really great help to me in terms of customization possibilities.

 

Update - for whatever reason, I can't attach to the OnWearUpdate, it fails


 

Spoiler

 

The compiler fails to find the event:


E:\Programs\Steam\steamapps\common\Fallout 4\Data\Scripts\Source\User\SAF>"E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Tools\Caprica\Caprica.exe" "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\SAF\SAF_FPAttributes.psc" -r -i "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\Base" -i "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts" -f "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Tools\Caprica\FO4_Papyrus_Flags.flg" -o "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\SAF"

Compiling "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\SAF\SAF_FPAttributes.psc"

E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\SAF\SAF_FPAttributes.psc (123, 43): Error: Unable to resolve a custom event named 'OnWearUpdate' in 'FPA:FPA_Main' or one of its parents.
Compilation of 'E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\SAF\SAF_FPAttributes.psc' failed; 0 warnings and 1 errors were encountered.

 

This is the way I get the FP API:

 


FPA:FPA_Main Function getFPAttributesAPI(string callerId = "Default")
	
	if FPAttributesAPI
		return FPAttributesAPI
	endif
	Quest FPA_Main  = Game.GetFormFromFile(0x00000F99, "FPAttributes.esp") as Quest
	FPAttributesAPI = FPA_Main as FPA:FPA_Main

	return FPAttributesAPI
EndFunction

This is the way I try to attach it:

 


RegisterForCustomEvent(FPAttributesAPI, "OnWearUpdate")

 

And this is my handler:
 


Event FPA:FPA_Main.OnWearUpdate(FPA:FPA_Main sender, Var[] updateArgs)
    ; Since we rely on FPAttributes working with perks, we don't care about actual FP values and leave that on FP side
    string callerId = Util.GenerateCallerId("SAF:" + thisScriptName + ":FPA_Main.OnWearUpdate:")
    updateModifiers(Player, callerId)

EndEvent

 

To be precise, I checked with FPA:FPAHUD_Main script and it appears I do exactly the same thing, but mine doesn't work for some reason.

 

 

Link to comment
18 hours ago, Operand said:

Yes, I'm aware. There are 8 in total (+1 for no wear). That is my current approach anyways (i.e. direct access via hardcoded FormID).

 

Alright, I will use this approach then, thanks. I won't be modifying any values, at least not for the purposes I want to integrate with FP for now.

 

EDIT: I disagree that you should've make it less granular :) Because this granularity is of really great help to me in terms of customization possibilities.

 

Update - for whatever reason, I can't attach to the OnWearUpdate, it fails


 

  Hide contents

 

The compiler fails to find the event:



E:\Programs\Steam\steamapps\common\Fallout 4\Data\Scripts\Source\User\SAF>"E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Tools\Caprica\Caprica.exe" "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\SAF\SAF_FPAttributes.psc" -r -i "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\Base" -i "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts" -f "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Tools\Caprica\FO4_Papyrus_Flags.flg" -o "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\SAF"

Compiling "E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\SAF\SAF_FPAttributes.psc"

E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\SAF\SAF_FPAttributes.psc (123, 43): Error: Unable to resolve a custom event named 'OnWearUpdate' in 'FPA:FPA_Main' or one of its parents.
Compilation of 'E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\SAF\SAF_FPAttributes.psc' failed; 0 warnings and 1 errors were encountered.

 

This is the way I get the FP API:

 



FPA:FPA_Main Function getFPAttributesAPI(string callerId = "Default")
	
	if FPAttributesAPI
		return FPAttributesAPI
	endif
	Quest FPA_Main  = Game.GetFormFromFile(0x00000F99, "FPAttributes.esp") as Quest
	FPAttributesAPI = FPA_Main as FPA:FPA_Main

	return FPAttributesAPI
EndFunction

This is the way I try to attach it:

 



RegisterForCustomEvent(FPAttributesAPI, "OnWearUpdate")

 

And this is my handler:
 



Event FPA:FPA_Main.OnWearUpdate(FPA:FPA_Main sender, Var[] updateArgs)
    ; Since we rely on FPAttributes working with perks, we don't care about actual FP values and leave that on FP side
    string callerId = Util.GenerateCallerId("SAF:" + thisScriptName + ":FPA_Main.OnWearUpdate:")
    updateModifiers(Player, callerId)

EndEvent

 

To be precise, I checked with FPA:FPAHUD_Main script and it appears I do exactly the same thing, but mine doesn't work for some reason.

 

 

Hmm, weird. What's Caprica? FPAHUD plugin should be a good example to follow, which it looks like you are doing. Do other events work?

It works fine when compiling using Creation Kit's compiler. Have you tried that?

Link to comment
3 minutes ago, hkheung said:

 

thank you for the update 

 

little question : hud is updated ?

No, I haven't updated the HUD yet to show the new attributes.

 

I no longer have the software required to update flash files. (HUDFramework uses flash). So, I haven't had the willpower yet to go find a software for flash so that I can update the plugin :P 

Link to comment

Addedd v2.4.0. This is a relatively smaller update. The idea behind this update is to give more immersive options to spend willpower. The goal is to have an "ecosystem" for willpower, so that it's more than just a stat that passively generates and gets lost during rape. The player will have to make tactical choices. They can choose to spend it to bypass some of the (arguably) tedious mechanics of the game, but in doing so leave them less prepared to resist sexual advances in town. Or they can choose to save and reserve it for getting out of bad sex situations. 

 

This also marks a change in new features going forward. I most likely will not be adding more attributes from now on. I think there's already a lot, and adding more is going to make things a bit complicated, if it isnt already. I also don't want to feature-creep and make this mod do too many things. So any new updates from now on will be improving existing mechanics, like adding more things to do with willpower.

 

Patch notes:
(Clean save not req)
- NEW: Use willpower to lockpick and hack terminals!
- You can now use willpower to bypass the game's lockpick or hack minigame. This can also be used to hack/lockpick things that would otherwise be out of your skill level. 
- If you have enough willpower for it, you should see an activation option when looking at a terminal or locked container. When you activate using willpower, it will instantly unlock, at the cost of willpower.
- More difficult terminals and locks will cost more willpower. You can customize this in MCM.
- For lockpicking, the player still needs to have at least one bobby pin. If the player doesn't have a bobby pin, the activation option will not show up.
- Unlocking a terminal/lock this way gives you slightly more EXP than you would normally.
- You can enable/disable the willpower activation option in MCM, if you have another mod that also adds activation option for opening locks/terminals (i.e. Horizon) and causes conflict.
- If the player's hands are bound (from wearing DD or RealHancuffs), they cannot use willpower to unlock terminals/locks.
- NEW: Use willpower to give yourself temporary carry weight boost!
- Adds a MCM hotkey that you can press, which will give you a +25 carry weight boost for roughly 1 in-game hour, at the cost of 10 willpower. This buff does not stack with itself.
- CHANGED: Addictol and RadX no longer count as drugs that suppresses player's trauma.
- FIXED: Trauma notification sometimes incorrectly indicated player was feeling traumatized, when in fact they weren't. 
- FIXED: Arousal from wearing DD vibrators/nipple clamps not correctly increasing, if the player never opened the DD escape menu.
- FIXED: Sex reputation daily increase cap not working

Link to comment
12 hours ago, twistedtrebla said:

Hmm, weird. What's Caprica? FPAHUD plugin should be a good example to follow, which it looks like you are doing. Do other events work?

Exactly, I do it the way it's done in the HUD addon. Caprica is an external compiler for Papyrus scripts (I have issues with CK so I almost never use it).

My own events work fine - for example, if I define it myself and attach it, there is no issue.

 

For now I will circumvent the issue via passive reading loop - since perks aren't awarded that often because they are bound to a range of value, not a specific value, that can be a rather low frequency loop so not taxing on the system.

 

Some of my issues with CK compiler:

  • Strict typing (I can't assign an integer value to a float for instance, so float x = 5 will not work, I have to state float x = 5.0 - wtf?)
  • Impossible to use global functions as it's prescribed in the manual. Calls like Util.myFunction where myFunction is defined as global in Util script will fail
  • Wrong counting for factual parameters when formal parameters have default values. Function myFunction(string x = "value") and then myFunction("boo") causes it to think I pass too many parameters. Again, wtf?
  • Fails to read user-defined imports (assumes they are namespaces which is obviously wrong)

And maybe some others which I decided to not investigate after failing in so many occasions already. The elephant in the room is that I learn about Papyrus from the manual and that's where CK compiler doesn't follow the promise. So it got me thinking - maybe I need to set up my CK somehow so that their compiler works? (To be honest, it "kind of" works and I can compile simple enough scripts but I never know when will it deviate from things defined in the manual) If you know the way of solving the compiler issues - an advice would be much appreciated.

 

As for CK itself - it also is an overkill for me since I don't edit cells in the gameworld, so I just use F4Edit which works wonders in my case. CK also has a nasty habit of screwing dependencies to other ESPs which is really annoying.

 

Caprica compiles all the scripts without any issues (and it doesn't require me to load CK) which is why I used it for now.

 

EDIT:

 

I think I got a clue of why it doesn't work.


 

Spoiler

 

The error:


E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\FPA\FPA_Main.psc (1326, 30): Fatal Error: Unresolved function name 'VarToVarArray'!

After trying to compile your script (FPA_Main). Checking the manual tells that VarToArray is an F4SE method. Do I need F4SE sources or anything to compile extended scripts?

 

 

 

EDIT:

  

12 hours ago, twistedtrebla said:

I no longer have the software required to update flash files. (HUDFramework uses flash). So, I haven't had the willpower yet to go find a software for flash so that I can update the plugin :P 

 

Haha, I feel the pain. I wanted to create a HUD addon for SAF only to discover that F4 (and subsequently HUD Framework) uses the worst technology ever invented - Flash, and if I want a licensed way of editing that stuff I need a subscription for their services for a whopping $50 a month. Yay! Thanks but no, thanks. This is a rip off.

Link to comment
3 hours ago, Operand said:

Exactly, I do it the way it's done in the HUD addon. Caprica is an external compiler for Papyrus scripts (I have issues with CK so I almost never use it).

My own events work fine - for example, if I define it myself and attach it, there is no issue.

 

For now I will circumvent the issue via passive reading loop - since perks aren't awarded that often because they are bound to a range of value, not a specific value, that can be a rather low frequency loop so not taxing on the system.

 

Some of my issues with CK compiler:

  • Strict typing (I can't assign an integer value to a float for instance, so float x = 5 will not work, I have to state float x = 5.0 - wtf?)
  • Impossible to use global functions as it's prescribed in the manual. Calls like Util.myFunction where myFunction is defined as global in Util script will fail
  • Wrong counting for factual parameters when formal parameters have default values. Function myFunction(string x = "value") and then myFunction("boo") causes it to think I pass too many parameters. Again, wtf?
  • Fails to read user-defined imports (assumes they are namespaces which is obviously wrong)

And maybe some others which I decided to not investigate after failing in so many occasions already. The elephant in the room is that I learn about Papyrus from the manual and that's where CK compiler doesn't follow the promise. So it got me thinking - maybe I need to set up my CK somehow so that their compiler works? (To be honest, it "kind of" works and I can compile simple enough scripts but I never know when will it deviate from things defined in the manual) If you know the way of solving the compiler issues - an advice would be much appreciated.

 

As for CK itself - it also is an overkill for me since I don't edit cells in the gameworld, so I just use F4Edit which works wonders in my case. CK also has a nasty habit of screwing dependencies to other ESPs which is really annoying.

 

Caprica compiles all the scripts without any issues (and it doesn't require me to load CK) which is why I used it for now.

 

EDIT:

 

I think I got a clue of why it doesn't work.


 

  Reveal hidden contents

 

The error:



E:\Programs\Steam\SteamApps\common\Fallout 4\Data\Scripts\Source\User\FPA\FPA_Main.psc (1326, 30): Fatal Error: Unresolved function name 'VarToVarArray'!

After trying to compile your script (FPA_Main). Checking the manual tells that VarToArray is an F4SE method. Do I need F4SE sources or anything to compile extended scripts?

 

 

 

EDIT:

  

 

Haha, I feel the pain. I wanted to create a HUD addon for SAF only to discover that F4 (and subsequently HUD Framework) uses the worst technology ever invented - Flash, and if I want a licensed way of editing that stuff I need a subscription for their services for a whopping $50 a month. Yay! Thanks but no, thanks. This is a rip off.

I dont know for certain, but you probably do need F4SE source as well. The script also uses a function from LLFP, which comes with AAF. 
 

And regarding flash, i know right?? I literally just took the HUDframework demo mod (kill counter) and just swapped out the names. No interest whatsoever dealing with flash lol. 

Link to comment
15 hours ago, Operand said:

So it got me thinking - maybe I need to set up my CK somehow so that their compiler works? (To be honest, it "kind of" works and I can compile simple enough scripts but I never know when will it deviate from things defined in the manual) If you know the way of solving the compiler issues - an advice would be much appreciated.

There is no need to use the CK just to compile scripts.  I compile directly from Notepad++.  The CK wiki has instructions on how to set this up.

 

It's funny that you are using Caprica for this stuff.  I tried setting it up not too long ago, but I was unable to make it work with anything that used namespaces, so I couldn't compile scripts that use AAF for example.  I'm sure it's possible but the documentation is lacking. 

 

If you have a compile script that works for you I would be very grateful if you could pass it along.

 

15 hours ago, Operand said:

Impossible to use global functions as it's prescribed in the manual. Calls like Util.myFunction where myFunction is defined as global in Util script will fail

Global functions doesn't mean they are always globally available.  "Global" means they aren't attached to an object instance.  But you still have to tell the compiler where they are.  You do that either by calling Util.myFunction every time you call it, or by doing import Util at the top of your script, after which simply calling myFunction will work.

 

15 hours ago, Operand said:

Wrong counting for factual parameters when formal parameters have default values. Function myFunction(string x = "value") and then myFunction("boo") causes it to think I pass too many parameters. Again, wtf?

I've never had that problem, I use default parameter values all the time.  But one caveat about these: the parameter isn't optional at all; if a script calls such a function without passing in a parameter, the compiler fills it at compile time.  This means that if you define  myFunction() with no parameters, and later change the definition to myFunction(string x = "value"), you will need to recompile any external scripts that call  myFunction() without parameters or you'll get "too few parameters" runtime errors.

 

15 hours ago, Operand said:

After trying to compile your script (FPA_Main). Checking the manual tells that VarToArray is an F4SE method. Do I need F4SE sources or anything to compile extended scripts?

VarToVarArray and VarArrayToVar are F4SE functions, so you need to install the Scripts folder from the F4SE archive.  You don't need to install the F4SE sources, though.

Link to comment
11 hours ago, EgoBallistic said:

Global functions doesn't mean they are always globally available.  "Global" means they aren't attached to an object instance.  But you still have to tell the compiler where they are.  You do that either by calling Util.myFunction every time you call it, or by doing import Util at the top of your script, after which simply calling myFunction will work.

This is exactly how I understood it from the manual. And how it works for when I compile from Caprica (but not from CK). I.e. Util.myFunction is recognized and works perfectly fine if I compile with Caprica, but CK breaks on that refusing to compile.

 

11 hours ago, EgoBallistic said:

VarToVarArray and VarArrayToVar are F4SE functions, so you need to install the Scripts folder from the F4SE archive.  You don't need to install the F4SE sources, though.

I'm now struggling with making F4Se stuff working. I think it has to do with the fact that I set Caprica to read Base scripts where they are installed by CK but f4se installs its scripts to a different location.

 

11 hours ago, EgoBallistic said:

I've never had that problem, I use default parameter values all the time.  But one caveat about these: the parameter isn't optional at all; if a script calls such a function without passing in a parameter, the compiler fills it at compile time.  This means that if you define  myFunction() with no parameters, and later change the definition to myFunction(string x = "value"), you will need to recompile any external scripts that call  myFunction() without parameters or you'll get "too few parameters" runtime errors.

Again, I'm fully aware of how default values (should) work aaand - they work perfectly as expected if I compile with Caprica :) But CK breaks on that complaining about the method signature and the call mismatch on the parameters count.

 

11 hours ago, EgoBallistic said:

It's funny that you are using Caprica for this stuff.  I tried setting it up not too long ago, but I was unable to make it work with anything that used namespaces, so I couldn't compile scripts that use AAF for example.  I'm sure it's possible but the documentation is lacking. 

 

If you have a compile script that works for you I would be very grateful if you could pass it along.

 

Well, I use it because it works for me. I was unable to set up CK so that it compiles my scripts and behaves according to their manual. Again - breaking on small stuff like float to int assignment is dumb. I will investigate and maybe fix it with the link you provided though, thanks.

 

My scripts use namespaces - and for example, my latest script that uses FPA_Main doesn't refuse to compile.
 

Spoiler

 

Here's a truncated extract:

 


Scriptname SAF:SAF_FPAttributes extends Quest

import Util
import Utility
import Actor

string thisScriptName = "SAF_FPAttributes"

FPA:FPA_Main FPAttributesAPI ; Refers another script from different namespace
SAF:SAF_Kernel SAFKernelAPI  ; Refers another script, but from same namespace

float[] currentModifiers

int mainTimerId = 33
float mainTickFrequency = 10



Event OnInit()
	StartTimer(7, 0)
EndEvent

Event onTimer(int TimerID)
	If TimerID == 0
		LoadIntegration()
	Endif
	
	If TimerID == mainTimerId
		OnTickMain(Util.GenerateCallerId("SAF:" + thisScriptName + ":onTimer:"))
	endif
EndEvent

; Defines a handler from an external event
Event FPA:FPA_Main.OnWearUpdate(FPA:FPA_Main sender, Var[] updateArgs)
	Util.DebugTrace("--> Sender " + sender + "; handling ..", thisScriptName, "OnWearUpdate", "Default", Util.GetDebugInfoLevel());

	; Since we rely on FPAttributes working with perks, we don't care about actual FP values and leave that on FP side
	updateModifiers(Player, Util.GenerateCallerId("SAF:" + thisScriptName + ":FPA_Main.OnWearUpdate:"))

	Util.DebugTrace("<-- Sender " + sender + "; handling completed", thisScriptName, "OnWearUpdate", "Default", Util.GetDebugInfoLevel());
EndEvent

 

(this script is not yet part of my mod). As you can see, it indeed refers different namespaces. I'm not sure if that's what you meant though. If it is - then I can share my SAF compilation script

 

 

EDIT: Overall I'm pretty much baffled as of how castrated Papyrus really is. I mean, no charAt() for strings? (and no way of getting a substring or manipulate a data stream; no dynamic arrays, no native threads manipulation when its designed around threads based execution, etc ... hm, hm..)

 

EDIT: Thanks a lot for the link to the NPP setup for compiler. As expected though, nothing gets compiled with CK compiler, it breaks on the very basic stuff.
 

Spoiler

 

Example:

 

compile-fail-ck.jpg.b742cd97d487271141e830a262a94c29.jpg

 

(tried the file from this thread mod just to be 100% clear it's not because I have some error in my scripts)

 

 

What I did instead is integrated Caprica with NPP. Before this I was using a command line for invoking it.

Link to comment
2 hours ago, Operand said:

 

EDIT: Overall I'm pretty much baffled as of how castrated Papyrus really is. I mean, no charAt() for strings? (and no way of getting a substring or manipulate a data stream; no dynamic arrays, no native threads manipulation when its designed around threads based execution, etc ... hm, hm..)

Yeah string functionality is really lacking.  LLFP added a bunch of string/substring stuff though.

 

Link to comment

Excellent mod! Definitely one of my "Must Haves" every since your original release! Also like the addition of the Arousal system!

 

Ever consider allowing encounters with porn (VOTW and magazines) give an increase to Arousal?

 

Awesome work and greatly appreciate your endeavors! 

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   1 member

×
×
  • 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