Jump to content

Pevey

Premium Member
  • Posts

    389
  • Joined

  • Last visited

Posts posted by Pevey

  1. Looks to me like it should work, so my tidbits are going to be of limited value.

     

    You could try adding some debug.notification() lines to make sure the variables are being set as you expect them to be. e.g., after if isUp == false, add debug.notifcation("isUp = false").

     

     

    Also, you could try PlayAnimationAndWait instead of PlayAnimation. If it really is a problem with the animation not ending, you will know it because the object won't activate at all after that. The script will be busy.

  2. Per fifty's note, I think you need to look back at where you got that example script and figure out what actronaut is supposed to be. Then, you need to declare that property and link it up in the CK.

     

    Also, I would not use states for this. I think you can do everything you need just using the onactivate event.

     

    I'm sorry, I would edit your script to give a better idea what I mean, but I'm on a qwerty keyboard right now.

  3. No, I think I was unclear.

     

    I tried without changing the form number at first. Changing the form num was a hack to ensure that the new script would be picked up. The level of complaining in the papyrus log was about te same either way, and changing the form num at least ensures that the quest worked correctly. It is really no different from doing a "clean" save.

     

    But, I ended up finding a better way. I made a "clean-up" version of the previous release. This version clears all the properties on all the scripts and stops all the quests. The user will unistall the old mod, install the clean-up mod, open game, save, close, install new version, now good to go!

  4. I did some testing by enabling the new version on several characters that already had the SGE quest from the old version enabled. It seems that the game WILL, indeed, pick up new versions of scripts even for quests that are already running.

    However, things were a little buggy due to the extensive changes. What I ended up doing was changing the form number of the quest using TES5Edit. That way, when the new version is loaded, the game sees it as a brand new SGE quest and forces the new scripts to run.

    Either way, there is tons of papyrus log spam about the missing properties, so it is not ideal.

    Also, I found that in my tests, this doesn't actually work:

    IsharaMeradin, on 13 Mar 2013 - 16:19, said:
    When updating scripts....

    If you need to remove properties then you first need to go to each form that uses the script and remove the value of that property, then and only then can you safely remove a property from a script. If you don't do that there will be errors but the game should still use the new script. Its the functions & events that are critical.


    As far as I can tell, if you remove the properties from a quest script, no matter how you go about doing it, Papyrus will complain in the log.

    Again, thanks for your help, especially the info about keeping the events and functions.

  5. These are good points for scripts in general, especially those attached to objects, but not really the specific issue of scripts attached to SGE quests. IME, it seems that quest scripts don't update while the quest is running. If that is true, then it particularly would be an issue for SGE quests that are designed to run in the background.

     

    Are you certain that those scripts DO update as described above?

  6. If I have two scripts attached to a start-game-enabled quest (one on the Player alias and one on the quest itself), and then I update these scripts in a subsequent release, how can I ensure that the scripts are actually updated for an existing character instead of Skyrim loading the old scripts?

     

    I know a "clean" (aka dirty) save would accomplish this, but that would cause a lot of data to be lost that I want to keep.

     

    If the quest is stopped, and then started again, is this sufficient to ensure that the new quests are picked up? Or what if I added a "completes quest" stage and then had a method to "complete" the quest and then restart it (probably through MCM)?

     

    Would greatly appreciate insights from a modder who has found a good solution to this issue.

     

    Thanks,

    LP

  7. Mardoxx had a mod that removed it, but he took it down since it was causing CTDs. I'm not sure how he accomplished it. He is one of the devs for SkyUI, so my thought is that if that crew can't figure it out, I have no shot. :(

     

    I decided to just juice the Concentrated Poison perk from 2 to 5 instead. You could also set it to 10 or to whatever. This isn't a great solution, but at least it prevents you from having to click on that annoying message box every time you want to attack.

  8. Hi, morrowind1979. Are you comfortable using TES5Edit?

     

    You can restore it by opening your mod using TES5Edit. (FIRST BACK UP YOUR MOD. TES5Edit will also make a backup for you, but I prefer to make my own just to be absolutely sure.)

     

    Right-click on your mod and select Apply Filter for Cleaning. This step isn't absolutely necessary, but it is helpful because it will highlight where you have changed records in the Skyrim masterfile, as opposed to just adding new records.

     

    Expand the plus sign next to your mod. you should see a list of things, including one that says "Cell."

     

    Expand the plus sign next to Cell. Select the entry for whiterunjail01, right-click, and select Remove.

     

    This will delete your deletion. Let me know if this doesn't make sense to you.

  9. Hi, there. Where can I find the character you voiced in the mod you linked to? I poked around a little bit, but no one in the library seemed to have any custom dialogue.

     

    I'm debating whether or not to use voice acting in a mod I'm currently working on.

     

    Do you have a good microphone setup?

  10. It would have to be from Steam. Even on Steam, mod authors can name their actual esp file whatever they want to. It doesn't have to be the title of the mod.

     

    Go to your profile on Steam and check to see what mods you have subscribed.

  11. I think the fear of script-heavy mods is way overblown. The base game itself has tons of scripts running all the time, and the DLC adds even more.

     

    Poorly-written scripts can certainly make your game unstable pretty quickly. But mods like Frostfall are well done. Unless you have a pretty old computer, I wouldn't worry.

  12. Here is an example of a timer script that is attached to an objectreference. This is attached to the cows of the creamery and controls the milking. It actually DOES work in the way expected: One milked, the cow does not produce milk again until the next milking time window.

     

    Scriptname _NLCMilkingScript extends ObjectReference  
    
    MiscObject Property _NLCMilkPail Auto
    
    Float fTimeLastActivated
    Float fCurrentTime 
    Float fCurrentHour
    
    Event OnActivate(ObjectReference akActionRef)
    	fCurrentTime = Utility.GetCurrentGameTime()
    	fCurrentHour = (fCurrentTime - Math.Floor(fCurrentTime)) * 24
    	If fTimeLastActivated < (fCurrentTime - 0.125)
    		If (fCurrentHour <= 8 && fCurrentHour >= 5) ; between 5 and 8 am
    			akActionRef.AddItem(_NLCMilkPail, 1, 0)
    			fTimeLastActivated = fCurrentTime
    		ElseIf  (fCurrentHour <= 20 && fCurrentHour >= 17) ; between 5 and 8 pm
    			akActionRef.AddItem(_NLCMilkPail, 1, 0)
    			fTimeLastActivated = fCurrentTime
    		Else
    			;Debug.Notification("It is not milking time.")
    		EndIf
    	Else
    			;Debug.Notification("Already milked today.")
    	EndIf
    EndEvent
    
  13. The only ways I know of to make bTimerSet persistent are (1) make it a global or (2) make it the property of a quest that is persistent.

     

    One the second one, as an example, I have a mod that has vats where you can make different sorts of dairy products. The script on the vat has to keep up with what and how many units are in the vat, what is being made, and how long until the next step is done. It worked fine until you left the creamery and returned, at which point everything was forgotten. So, I created a quest that is silent, runs automatically, and has a script attached that has as properties the vat variables I just mentioned for six different vats. The scripts on the vats now update those quest variables, so they are persistent.

     

    The quest also does a few other things for me behind the scenes. Otherwise, I would probably just use global variables in this example.

  14. You could add a quest with your mod update that is set to run only once that has an attached script that updates the global variables in the user's game.

     

    Bethesda did something similar with a few of their patches. They had a run-once "quest" with a single script attached. You can find them in the CK if you want examples to go by.

×
×
  • Create New...