Jump to content

Trosski

Premium Member
  • Posts

    151
  • Joined

  • Last visited

Nexus Mods Profile

About Trosski

Profile Fields

  • Country
    United States
  • Currently Playing
    Fallout 4
  • Favourite Game
    Suikoden

Trosski's Achievements

Collaborator

Collaborator (7/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

0

Reputation

  1. Well, first off... No! If you gen precombines for the whole world, and don't pack the precombines, or gen Previs for the whole world as well, you will just screw your game into the 9th ring of hell. For a more concise explanation: 1. when you generate a precombine/previs for a cell, it updates the timestamp for the precombine/previs files in the plugin. When this happens if you don't include the updated precombine/previs file, the game will not be able to find it, and end up causing the culling issue for the whole world. 2. If you generate Precombines for the world and don't generate previs for every cell you precombined, the game won't know what to do with that precombine information when you are in an adjacent cell, because the previs files will be looking for a file with the old precombine timestamp. This will cause the dreaded culling issue for any cell that doesn't have updated previs. 3. The CK is slow, cumbersome, and it crashes for... reasons. Better get used to it.
  2. You should be able to do all of your Precombines, and Previs generation in one go. Just don't Generate, change something, and then regenerate before saving, and restarting the CK. A restart may be in order if you have a lot of cells across the entire worldspace, but 2 cells shouldn't be an issue. I also clean ITMs in xedit before generating as well. If something gets screwed up, you can always repeat the generation process. Besides... There is a chance that having done everything "by the book" could still yield an issue, so test extensively.
  3. It uses the same precombines system, but the Previs system seems to be different. the previs files are much larger, so I assume they are prevising a larger cell radius.
  4. I'm trying to compile a plugin, and I am getting a LINK1181 error. it says that skse64_1_5_50.lib is missing. I have recompiled skse64 using the source code, but it won't generate the lib file. I am only getting the .dll, .iobj, .ipdb, and .pdb files. is there a step I am missing?
  5. When you get precombined geometries with no collisions, you can sometimes fix that by regenerating precombines a second or third time. otherwise you may need to duplicate the references that are loosing their collisions, disable the original ref, and regen precombines again. these are the only two methods I have found that can fix that bug.
  6. So, I have a creature that is enabled by interacting with an activator ref using the DefaultEnableDisableRef script scriptName defaultEnableDisableLinkedRef extends ObjectReference{- This script enables or disables linked ref based on which type user defines in properties.- Can be done OnTriggerEnter, or OnActivate, whichever happens first- This script only fires once then disables itself (default), or can be told to go to a done state (usually for activators) with the ShouldDisable bool.} int property TriggerType auto{0 (default) - enables linked ref1 - disables linked ref} bool Property PlayerOnly = TRUE auto{Does this only trigger for the player? (DEFAULT = TRUE)} bool Property Fade = FALSE auto{Fade in/out when enabled/disabled? (DEFAULT = FALSE)} bool Property ShouldDisable = TRUE auto{Should I disable once triggered/activated? (DEFAULT = TRUE)} float Property Delay = 0.0 auto{Delay before Enable/Disable (DEFAULT = 0.0)} ObjectReference myLinkedRef auto State Waiting Event onTriggerEnter(ObjectReference triggerRef) if (triggerRef == Game.GetPlayer()) || (!PlayerOnly)myLinkedRef = GetLinkedRef() as ObjectReference utility.Wait(Delay) if (TriggerType == 0)myLinkedRef.enable(Fade)elseif (TriggerType == 1)myLinkedRef.disable(Fade)endif if (ShouldDisable == TRUE)self.disable()elseGoToState("Done")endif endif endEvent Event onActivate(ObjectReference triggerRef) if (triggerRef == Game.GetPlayer()) || (!PlayerOnly)myLinkedRef = GetLinkedRef() as ObjectReference utility.Wait(Delay) if (TriggerType == 0)myLinkedRef.enable(Fade)elseif (TriggerType == 1)myLinkedRef.disable(Fade)endif if (ShouldDisable == TRUE)self.disable()elseGoToState("Done")endif endif endEvent endState State Done;Do NothingendState The creature then walks to an idle marker inside a trigger box, and waits for the player to enter the trigger.Once inside the trigger, I have an onEnterTrigger script that adds a summon spell to the player, and disables the creature. Scriptname PaxtonOnEnter extends ObjectReference Conditional{script to test if one or more actors are in a trigger} import gameimport debug ActorBase property TriggerActor1 auto{actor that trigger is looking for - all non-empty trigger actors need to be in trigger in order for IsTriggerReady to be true Update OnInit when adding new trigger properties!} ActorBase property TriggerActor2 auto{ref that trigger is looking for - all non-empty trigger actors need to be in trigger in order for stage to be set Update OnInit when adding new trigger properties!} ReferenceAlias property TriggerAlias1 auto{ref ALIAS that trigger is looking for - all non-empty triggerRefs need to be in trigger in order for stage to be set Update OnInit when adding new trigger properties!} Spell property MaggieSpell auto ObjectReference myLinkedRef bool Property Fade = FALSE auto{Fade in/out when enabled/disabled? (DEFAULT = FALSE)} ; etc. - add more as neededbool property disableWhenDone = false auto{ disable myself after I've been triggered. Defaults to false } ;total targets currently in the triggerint targetCountCurrent ;how many targets are we looking for? When targetCountCurrent reaches this, we triggerint targetCountTotal Event OnInit(); count my non-empty trigger propertiesif TriggerActor1targetCountTotal = targetCountTotal + 1endifif TriggerActor2targetCountTotal = targetCountTotal + 1endifif TriggerAlias1targetCountTotal = targetCountTotal + 1endifendEvent auto STATE waiting EVENT onTriggerEnter(objectReference triggerRef)if CheckTriggerRef(triggerRef)myLinkedRef = GetLinkedRef() as ObjectReference; increase ref countmodTargetCount(1); if all target refs are in the trigger, doneif bAllTargetsInTriggerGame.GetPlayer().AddSpell(MaggieSpell)myLinkedRef.Disable(Fade)TriggerMe()endifendifendEVENT EVENT OnTriggerLeave(objectReference triggerRef)if CheckTriggerRef(triggerRef); decrease ref countmodTargetCount(-1)endifendEvent endSTATE STATE hasBeenTriggered; this is an empty state.endSTATE function modTargetCount(int modValue)targetCountCurrent = targetCountCurrent + modValue; failsafe - don't go below 0if targetCountCurrent < 0targetCountCurrent = 0endif; update bAllTargetsInTriggerif targetCountCurrent >= targetCountTotalbAllTargetsInTrigger = trueelsebAllTargetsInTrigger = falseendifendFunction int function GetCurrentTargetCount()return targetCountCurrentendFunction int function GetTotalTargetCount()return targetCountTotalendFunction bool function IsTriggerReady()return ( GetCurrentTargetCount() >= GetTotalTargetCount() )endfunction bool function CheckTriggerRef(objectReference triggerRef); debug.trace(self + "CheckTriggerRef for " + triggerRef)bool bSuccess = false if triggerRefActor triggerActor = triggerRef as Actor if triggerActor; we have an actor, check if it matches any of our trigger actorsActorBase triggerActorBase = triggerActor.GetActorBase(); debug.trace(self + "CheckTriggerRef for " + triggerRef + ": actorbase=" + triggerActorBase)if triggerActorBase == TriggerActor1 || triggerActorBase == TriggerActor2; debug.trace(self + "CheckTriggerRef for " + triggerRef + ": MATCHED")bSuccess = trueelse; debug.trace(self + "CheckTriggerRef for " + triggerRef + ": failed to match " + TriggerActor1 + ", " + TriggerActor2)endifendif; if we haven't already found something, check aliasesif !bSuccessif (TriggerAlias1 && triggerRef == TriggerAlias1.GetRef())bSuccess = trueendifendifendif return bSuccessendFunction ; what happens when all my targets are in the trigger?; override on subclass to change behaviorfunction TriggerMe()if disableWhenDonegotoState("hasBeenTriggered")Disable()endifendFunction bool Property bAllTargetsInTrigger = false Auto conditional{true when all targets are in trigger} All of it works correctly, but I have been asked to make the creature appear and disappear with a summoning portal effect, and I can't figure out how to make that happen. Is there a a trigger function that can be added to the scripts to cause the portal effect to fire, or do I need to go in a whole different direction with a different kind of script?
  7. So, I am wondering if you are updating the Timestamp for the Precombine, and previs files you are generating with this process inside the plugin? The game will ignore any precombine and previs file if the timestamps don't match with the plugin. I might have missed where you explained that.
  8. Always like to learn new ways to pack archives. I tend to use the CK, but RedRocketTV's video has made me reconsider Archive2. I had been unpacking the archives with Archive2, and then repacking them with the CK. I wasn't aware that Archive2 was capable of adding files, and not just overwriting the archive with just the new files. That is what I hate about the archiver in the CK. It's not capable of adding files to an archive, only packing loose files into a new archive... overwriting any existing archives. I found that out the hard way... a few times.
  9. Yes. You don't generate precombines with your entire Load order loaded. First off... Not everything is going to work well together right out of the box even if you generate precombines. You're going to need to do some merging, and patching first. You need to figure out which mods edit the exterior zone. Those are the only ones that need to be loaded, but even then, you shouldn't just load all of them, because if multiple mods edit the same area, or areas close enough to share Precombines, and Previs... You may need to resolve unforeseen conflicts. Generating Precombines, and Previs isn't a cure all for FPS issues. you need to take the time to get everything set up properly, and know what mods need new Precalc, and what doesn't.
  10. But for testing purposes, creating a new archive every time is just a waste of it.
  11. I never win this kind of stuff, but might as well try.
  12. Leads to blind idiots breaking mirrors.Lol! But why does a blind idiot need a mirror? fung shui
  13. I've never seen that glitch, but whether it is caused by broken precombines could be tested easily by generating new precombines for the cell, and uploading it to test on an affected XBOne. if that is the case, then PS4 users are SOL.
×
×
  • Create New...