Jump to content

Private Needs Redone


Recommended Posts

Hi there,

 

Love the mod its currently in my stable game playthrough, just trying to work out the "disable wet" function (found and just moved the script from page one).

 

I was hoping you could shed some light on a problem I have been having with umm .... sigh .... compiling scripts with skyrim.

 

First yes I have\tried\Installed  Notepad++,Sublime text 2, Sublime text 3, Moved all the scripts from the zip provided by bethesda to the script folder, moved all the scripts from loverslab to the script folder, moved all the scripts provided by the mod I want to edit to the script folder.

 

I cannot compile! It just wont work!, everything I try .... I used every program I could find, lurked on all threads that regard this and try again and again. And I am not trying to do any kind of massive edit ether, just change the name that will be given to the player or shorter time for animation to play, hell I just open the script and hit the build\compile function and nope, ether massive errors or not able to find scripts that are there loose but it cant find them! its infuriating to have a program to say there is no script "bla bla bla.pex" at that location ... go to the location and its bloody there!

 

Sorry, for the rant but this bloody script issue I have been having is one of two things I cannot do in skyrim. There are so many mods that I wish to fix\edit but can't because compiling wont work (the other is animation, the crap that got loaded in blender is just overwhelming)

 

In the last post you said you do programming for a living, Although I am no programmer I do work with audoCAD and run a Fanuc system so this is not new to me, just different. I am missing something that I do know, I am hoping you could help and not just send me to a confusing page that gets me to rewrite hello world for the 100th time. This feels like a setting or something that needs to be there but is not.

 

Anyways, sorry for the wall of text, hope you can help, please and thanks.

Link to comment
25 minutes ago, BadIdea57 said:

 

First, yes it will take some time to get a functional "modding" environment. For changing only some simple things, sometimes it is not necessary to compile scripts.

You can modify existing forms with the creation kit, but I assume a lot of people will also use TES5EDIT. Some things like renaming seems much easier with TES5EDIT.

 

Timing animations: some animations does have their one timing that is depending on the animation itself, while others will run in an endless loop and can be easily handled using a simple delay in the script.

 

Well for scripting, unpacking of the bethesda scripts from skyrim is something always necessary. Than when i remember right something like a flags file is also necessary.

And if you want to compile mods from loverslab, these mods sometimes depend on a lot of other mods and all of the sources of these mods must be also available.

The necessary mods are sometimes really hard to detect. So for just starting if your compiler works try compiling one of bethesdas original scripts.

 

Finally me myself is using mod organizer with skyrim and i do not want to permanently throw all mods into the original skyrim folder just to compile the scripts I am interested in.

So one day i found the following tool on nexus https://www.nexusmods.com/skyrim/mods/74672

It just works fine together with mod organizer, only the one minute limitation for compiling is a bit annoying. (Unfortunately for FO4 there is no version) The tool has to be installed on top of papyrus compiler. After that you can simply open the source folder of your script in the windows explorer , do a right click on one of the scriptfiles and select compile.

 

Here some screenshots of my "modding game directory"

 

papyrus.png

plus.png

scripts.png

skyrim root.png

OK wow thanks ... no really ... it will take me some time to work out how to use this new compiler you showed me (downloaded it quite quickly) and ya my script folder looks quite similar (love to know what Arena mod you got and if its any good) thanks for the screen shots.

 

See I thought some brilliant person built a quick compiler for skyrim. And ya I do use Tes5edit for small changes (Creation Kit is a joke), but what I mean by name change is there some mods on LL that changes your characters name and I don't always agree with the authors choice. Oh umm ... is it dangerous to leave those scripts in the script folder? Normally I do practice safe modding but once I just started dumping everything in it and ... well its not really easy to separate anymore. I just assumed that if a mod does not call for a script it wont fire off, just kinda sit there taking up space.

 

Oh by the way, I can't tell if your mods timer works. It's ether I sleep or wait, it seems to fill faster. and no I am running a very vanilla skyrim, I don't even have NetImmerse Override (found it to cause my skyrim to become unstable in odd points and CTD after decapitation) just saying because the next logical question to ask is if I have a mod that modified the timescale, to which I would reply no I find them quite janky.

 

Thanks for the reply and link to the compiler, I'll be playing around with it for a bit. You are like the first person to give me something new in a long time, thank you

Link to comment
5 hours ago, BadIdea57 said:

Never played PN 2.11. Do you mean there is an undressing animation played before peeing or pooping ?

If yes this would increase dependence of sexlab or the other undressing mod - forgot the name (alsheimer is greeting)

 

I've already tried adding undress animation to the "Go to bed nude" patch (with less experience and with less success). To get the correct timing is difficult and depends on the number of clothes equipped. For "player exhibitionist" i've adopted the animation for undressing body clothing only (using direct call into sexlab and timing does not a problem here)

Do you not think it would be boring after some time ?

I was referring to the function where one could set which armor slots where removed during the animation, i.e chest, torso, calves etc. I imagine it probably used Sex-labs own strip function. I just personally find it more immersive than stripping entirely for a quick wizz.

 

Edit: after further testing I've noticed that the wet self toggle deosn't work and the Player Character wets themselves during combat regardless of whether the option is toggled.

 

Link to comment
1 hour ago, BadIdea57 said:

I keep the original mechanism but only simplify it a little bit, the size for the bladder has now a fixed value of 600 while for the bowels is 1440. Shrodingers trap (original author) did not mention the units. Must be cbm.

So in MCM you will now only select a filling rate to fill bowels or bladder. The higher your filling rate is the less time it needs to fill bowels or bladder. Simple physics.

Mmm ok, it makes sense.. one tends to relieve themselves twice a day, so in a realistic point of view its correct. But in a gameplay point of veiw its quite harsh, just going through bleak falls barrow my character had to go 4 times and night had yet to happen. It was such a thing i thought it was firing off too much even with it set to the lowest. It would not be such a bad thing if not for the 1.5 reduction in speed and no stamina regain.

 

Now dont get me wrong your choices are quite reasonable and ones i would keep (good cost vs reward) just feel it should fill up less is all.

Link to comment

Yup i have and tweeking to my liking. I did not mean to criticise your choices. They are good choices. 

 

Changing topic slightly, i have succeeded in getting some scripts to compile so i am getting close to a good environment (thank you for that).  There was something I wanted to try with a mod like this, in short a buff that will happen after you kill something and relieve yourself on it. Problem is i am not too sure how to go about it. I feel its possible, i just want to keep it simple is all.

Link to comment
1 hour ago, BadIdea57 said:

Old programmers knowledge: What looks simple proves to be difficult.

 

You need kind of event running on the player or usually an playeralias. Usually is to have a look on the creation kit functions description.

https://www.creationkit.com/index.php?title=Category:Papyrus

 

An easy way to do something, is when you activate the corpse usually to take all equipment from the dead. In this case you can use an "activator perk" (my own naming). This is how the "midas touch" effect works in my other mod.

 

One possibility maybe is to use


Event OnStoryKillActor(ObjectReference akVictim, ObjectReference akKiller, Location akLocation, int aiCrimeStatus, \
  int aiRelationshipRank)

but I do not have any experience with the onstory events and never used them and not everybody would recommend their usage.

 

Do not think about using the onDeath event or OnDying, this would make it necessary to overwrite system scripts (replace them with your own) or change base forms. One is as bad as the other.

 

Maybe it is possible to hook into some special animations "kill moves", but kill moves are seldom played. (Loot and degradation used Registered animations to run some scripts)

 

I really do not have any idea. Well as with my own experience, doing something new always requires research work .

 

One last idea is to readout statistic values (kills of the player) when combat starts and read them again when combat ends. Problem with

this idea is: OnCombatStateChanged did not work on player and needs another workaround.

 

Just google for some more ideas.

 

Would it not be easier to do the same thing the vampires do to bite necks? (Apologies if what you said is that event, still new to this)

 

So when you come across a dead body (regardless of time frame) you can activate it like in better vampires to perform the action. 

 

I was going to look ar better vampires to see how the modder did it.

 

Edit: yup had a think on what you said and ya not to use ondeath events .... mmmm don't want it to be heavy or attached to the player ... got to be a way to KISS it

 

What about [ActorID.]GetDead?

Link to comment
45 minutes ago, BadIdea57 said:

That is the main problem ! How to get the ActorID ?

 

If you want to activate the corpse in game using the crosshair than it is easy as already mentioned. Never played better vampires, but if you have to get the body into the crosshair and than click it, than you simply use an "activator perk" as already mentioned. But if you dont want to do that there is the problem to find the objectreference of your killed actor.

 

Polling every ... seconds and checking all actors in your current cell to see if they are dead and killed by the player or one of the followers would be a performance reducing way, even if it is done using a quest with some  reference-aliases setup with suited conditions.

Oh i was thinking of using it through the crosshair, its intresting to try and do it automatically. But to be honest the thought was more of a quick f**u to the monster/badguy you had a hard time killing. 

 

I like to stay within the game logic of skyrim as best as I can and the normal game uses this method lots. Transend the mundane comes to mind.

 

Its intresting i never thought to have it activate without a menu.

Link to comment

Ok... so MO would help because this compiler would be able to use its assets to find all the lost or missing scripts.

 

This would mean I need to un install all my mods and reinstall them with MO or Rename the entire skyrim folder and let steam re download it.

 

So ooooohhhhhhhh close but so far ?. You can't believe how excited I got when I saw that successful compile but so lost when it did not work.

Ya I knew of the scripts that mods look for but not required for installation. That's why I thought dumping every script and source in the folder loose would work. There might be something that particular mod's MQ is looking for, which means.....I might not be able to edit it in this environment.

 

I have yet to try and compile one of your scripts, I'll give it another go this weekend see how far I get.

Link to comment
Spoiler

Scriptname myopiaPlayerAlias extends ReferenceAlias

FormList property MyopiaGlassesList Auto
FormList property MyopiaForceSpellsList Auto
ImageSpaceModifier property myopiaImageSpace Auto
Quest property myopia Auto
Actor property PlayerRef Auto
GlobalVariable property MyopiaLoseGlassesOnHit Auto ; Used to configure the mod to lose the glasses or not when hit
Armor currentGlasses
int doneQuest = 0 ; 0=Not done & not initialized, 1=initialized, 2=completed

Event OnInit()
    checkGlassesMods()
    if doneQuest==0
        doQuestInit()
    endIf
endEvent

Event OnPlayerLoadGame()
    Utility.waitMenuMode(30.0)
    checkGlassesMods()
    if doneQuest==0
        doQuestInit()
    endIf
endEvent

; This function set up the quest, it is done (and re-checked) when the mod is initialized for the first time and when the game reloads
; The quest associated as just a few stages and objectives
; Stage 0, just init, say that the vision is blurry, for a minute don't do anything and let enjoy this strange new experience
; Stage 1, Add the objective "Get the glasses", and add visible markers to the three pairs of glasses available, when the actor gets atleastone pair of glasses we go to the next stage
; Stage 2, you just have to wear the glasses, and the objective will tell you that. Once you wear them for the first time the objective and the quest are completed (but you will get blurry vision every time you are NOT wearing the glasses)
function doQuestInit()
    doneQuest=1
    ; A couple of glasses is inside the Bee and Barb in Riften, another pair is in the kitchen of BanneredMare in Whiterun, another is in the WhinkingSkeever
    ; Wait a minute or two (randomly) and then force start the quest, start also altering the vision
    Utility.wait(Utility.randomFloat(1200, 2400)) ; This is a wait with a random time (in seconds)

    myopia.start() ; This starts the quest
    myopiaImageSpace.apply() ; This applyes the blurry and doubled vision
    myopia.setStage(0)
    ; Wait a little and then set the first stage and the temporary objective
    Utility.wait(60.0) ; A minute wait
    myopia.setStage(0)
    myopia.setObjectiveDisplayed(0)
    Utility.wait(60.0) ; Wait a minute like that, and then show the real objective (get the glasses)
    myopia.setObjectiveCompleted(0)
    myopia.setStage(1)
    myopia.setObjectiveDisplayed(1)
endFunction

; This function checks if there are some known mods that add glasses, and add the glasses in the formlist
function checkGlassesMods()
    if Game.GetModByName("_ImoMegane.esp")!=-1
        addGlasses("_ImoMegane.esp", 0xD63)
        addGlasses("_ImoMegane.esp", 0x12CA)
        addGlasses("_ImoMegane.esp", 0x12CB)
        addGlasses("_ImoMegane.esp", 0x12CC)
        addGlasses("_ImoMegane.esp", 0x2DC0)
        addGlasses("_ImoMegane.esp", 0x2DC1)
        addGlasses("_ImoMegane.esp", 0x2DC2)
        addGlasses("_ImoMegane.esp", 0x2DC3)
        addGlasses("_ImoMegane.esp", 0x2DC4)
        addGlasses("_ImoMegane.esp", 0x2DC5)
        addGlasses("_ImoMegane.esp", 0x2DC6)
        addGlasses("_ImoMegane.esp", 0x2DC7)
        addGlasses("_ImoMegane.esp", 0x2DC8)
        addGlasses("_ImoMegane.esp", 0x332C)
        addGlasses("_ImoMegane.esp", 0x332D)
        addGlasses("_ImoMegane.esp", 0x3E01)
        addGlasses("_ImoMegane.esp", 0x3E02)
        addGlasses("_ImoMegane.esp", 0x3E03)
        addGlasses("_ImoMegane.esp", 0x3E04)
        addGlasses("_ImoMegane.esp", 0x3E05)
        addGlasses("_ImoMegane.esp", 0x3E06)
        addGlasses("_ImoMegane.esp", 0x3E07)
        addGlasses("_ImoMegane.esp", 0x3E08)
        addGlasses("_ImoMegane.esp", 0x3E09)
        addGlasses("_ImoMegane.esp", 0x3E0A)
        addGlasses("_ImoMegane.esp", 0x3E0B)
        addGlasses("_ImoMegane.esp", 0x3E0C)
        addGlasses("_ImoMegane.esp", 0x3E0D)
        addGlasses("_ImoMegane.esp", 0x3E0E)
        addGlasses("_ImoMegane.esp", 0x3E0F)
    endIf

    if Game.GetModByName("Dwemer Goggles & Scouter.esp")!=-1
        addGlasses("Dwemer Goggles & Scouter.esp", 0xD63)
        addGlasses("Dwemer Goggles & Scouter.esp", 0x1829)
        addGlasses("Dwemer Goggles & Scouter.esp", 0x2857)
        addGlasses("Dwemer Goggles & Scouter.esp", 0x2DBE)
        addGlasses("Dwemer Goggles & Scouter.esp", 0x1A74F)
        addGlasses("Dwemer Goggles & Scouter.esp", 0x253FB)
    endIf
    
    
    
debug.trace(">>> Glasses <<<<<<<<<<<<<<<<<<<<<<<<<<<<")    

int i = MyopiaGlassesList.GetSize()
while i
    i-=1
    string name = MyopiaGlassesList.GetAt(i).getName()
debug.trace(">>> " + i + " <<<  " + name + " >>> " + MyopiaGlassesList.GetAt(i))
endWhile


    
endFunction

; Utility function to add a form to the form list by mod name and id0
function addGlasses(string mod, int id)
    Form glasses = Game.GetFormFromFile(id, mod)
    if !glasses
        return
    endIf
    if !MyopiaGlassesList.HasForm(glasses)
        MyopiaGlassesList.AddForm(glasses)
    endIf
endFunction

; Event received when an item is added to this object's inventory. If the item is a persistant reference, akItemReference will
; point at it - otherwise the parameter will be None
Event OnItemAdded(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akSourceContainer)
    ; In case the quest is completed or the stage is not the number 1, we have nothing to do
    if !myopia.IsRunning() || myopia.isCompleted() || myopia.getStage()!=1
        return
    endIf
    
    ; Check if we have now a set of glasses
    if MyopiaGlassesList.hasForm(akBaseItem)
        ; OK, they are glasses, proceed to the next stage
        myopia.setStage(2)
        myopia.setObjectiveCompleted(1)
        myopia.setObjectiveDisplayed(2)
        doneQuest=2
    endIf
EndEvent


; Event received when this actor equips something - akReference may be None if object is not persistent
Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference)
    ; Check if what are we wearing is a pair of known glasses
    ; The valid list of glasses (they are Armors) is stored in the FormList
    if MyopiaGlassesList.hasForm(akBaseObject)
        ; yes, it is a valid pair of glasses, remove the myopia image space modifier
        myopiaImageSpace.remove()
        ; Keep track of the item
        currentGlasses = akBaseObject as Armor
        ; In case the quest was running and we were on the last stage, complete the quest
        if myopia.IsRunning() && !myopia.isCompleted() && myopia.getStage()==2
            ; Complete the quest
            myopia.SetObjectiveCompleted(2)
            myopia.setStage(100)
            myopia.CompleteQuest()
            doneQuest=2
        endIf
    endIf
EndEvent

; Event received when this actor unequips something - akReference may be None if object is not persistent
Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)
    ; Check if we are removing a pair of knwon glasses 9they are in the formlist)
    if MyopiaGlassesList.hasForm(akBaseObject)
        ; yes, they were glasses, apply the myopia image space modifier
        myopiaImageSpace.Apply()
        ; Remove the current glasses item
        currentGlasses = None
    endIf
EndEvent

; Event received when this object is hit by a source (weapon, spell, explosion) or projectile attack
; In case of a non-blocked heavy hit, or a Fus-Ro-Dah spell, we give a small possibility (about 10%) to lose the glasses
Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
    if abHitBlocked || MyopiaLoseGlassesOnHit.getValue()==0.0
        return ; We will not lose the glasses if we block or if we have the global variable set to zero
    endIf
    Actor aggressor = akAggressor as Actor
    bool loseGlasses=false
    if aggressor
        int lh = aggressor.GetEquippedItemType(0)
        int rh = aggressor.GetEquippedItemType(1)
        if lh==1 || lh==3 || lh==4 || lh==5 || lh==6 || rh==1 || rh==3 || rh==4 || rh==5 || rh==6
            ; Have a possibility to lose the glasses if hit by these weapons: 1 - One-handed sword; 3 - One-handed axe; 4 - One-handed mace; 5 - Two-handed sword; 6 - Two-handed axe
            loseGlasses=true
        endIf
        if (akSource as Spell) && MyopiaForceSpellsList.hasForm(akSource)
            ; Have a possibility to lose the glasses if hit by a Fus-Ro-Dah like spell
            loseGlasses=true
        endIf
    endIf
    if loseGlasses && currentGlasses
        ; Calculate the probability
        if Utility.randomFloat(0.0, 1.0)<0.05 ; 5%
            PlayerRef.unequipItem(currentGlasses, abPreventEquip=false, abSilent=false)
            PlayerRef.DropObject(currentGlasses, 1)
        endIf
    endIf
EndEvent

 

Ok that is the script I am trying to RE-compile its from that Myopia mod (author gave out the source)

 

All I am trying to do is extend the time it takes for the mod to activate in game (her original was 180 to 360 seconds) I am pushing it to 10 to 20 mins ( want to get see through helgen start) the line I edited I highlighted it in green.

 

when I compiled the script it spat out 7 errors (same in CK as in the papyrus+)

 

Need to know what I am doing wrong.

Prob.jpg

Link to comment
  • 3 weeks later...
6 hours ago, Adetu said:

Most of the text is in the translation files, which you can find in the folder ../interface/translations. You can change the contents of these files with any editor.

There are only very few texts placed  direct in the source code files of the scripts. To change them you need a working "developing system" with the possibility to compile the scripts.
 

Thank you!

Link to comment
  • 4 weeks later...
On 11/28/2017 at 6:39 PM, Adetu said:

Well, it does not bother me, but more constructive ideas are more interesting to me.
Unfortunately, the patch
_PNPlayerAliasScript.pex was not available on the new page.

Where to drop the file?

 

On 1/23/2018 at 7:26 PM, Adetu said:

Do not know if Defeat and Cursed Loot is really a good combination, although I've tried this combination by myself often.

If you want to disable the wetself function, do not forget to install the patch (page 1)

What folder to drop it in?

 

On 1/30/2018 at 6:19 PM, Adetu said:

install the patch !

... still haven't said where to put the file

 

On 1/31/2018 at 5:33 PM, Adetu said:

On page 1 of this thread.

 

Guess I'll just drop it everywhere where it makes a little sense.

 

Link to comment

some ideas for your mod 1. anyone dying should have a chance of voiding their bowels or bladder including the player character

2. if you wet or soil yourself people will laugh at you for it

3.laxative potions

4.the chance of constipation when pooping it may hurt your health constipation could even be fatal if you have it for long enough you can use a laxative to remove constipation  

5.if the player character or npc wet/soil themself there should be visible features of it

 

i figured to give you some ideas with the mod who would agree?

Link to comment
  • 1 month later...
  • 1 month later...
  • 2 weeks later...
  • 3 weeks later...

Not sure why, but even with the Wet yourself function turned off, my character starts pissing all the time, when hit once and there is SOME bladder content (doesn't even have to be full).

Any idea?

 

Edit: I found you mentioning a patch on page 1. Is that the _PNPlayerAliasScript.pex? and do I just toss that into skyrim\Data\scripts?

In the original post you don't quote anyone mentioning the issue, so I'm not sure it's about that issue, but I also don't see anything else that is mentioned as a patch, so I assume it is that file.

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