-
Posts
437 -
Joined
-
Last visited
Everything posted by Terra Nova
-
Any Scripters out there willing to lend a hand?
Terra Nova replied to nekollx's topic in Skyrim's Skyrim LE
post the script -
Modding Guide for Absolute Beginners
Terra Nova replied to KobasMastan's topic in Skyrim's Skyrim LE
Pro-tip: SKSE is not evil. People seem to have something against SKSE, yet people are 100% willing to download an MCM menu which requires SKSE and SkyUI. /rant -
Don't misunderstand. OnHit works as intended. But your script basically will do all of that checking for every kind of attack. BUT if you script it to run code ONLY if the player is hit by a spell, then that code will run, AND if they are hit by something else, the Event is still sent, but the code for the spell check is not ran. I hope I explained that well enough.
-
Yes. Little warning about OnHit. It is processed every time something is hit. Not just what you have it scripted to look for. If the player is hit by many things at once, this could cause some problems. Perhaps you could use a STATE to have OnHit run once if you don't need it more then once.
-
OnCombatStateChanged doesn't work for the player, and it doesn't work for ObjectReferences that is not an NPC. OnHit is sent when an ObjectReference is hit by something.
-
There should be a scripts folder included with the mod. If it uses a BSA, you gotta get something like BSAOpt to unpack it. If the source script is not provided, you gotta get the decompiler off of nexus.
-
Nocturnal's Crows; A Magic Effect?
Terra Nova replied to Deleted3765355User's topic in Skyrim's Skyrim LE
Yeah that's it. I was looking at that last month. -
Is there a mod that: Allows you to choose your gear at start?
Terra Nova replied to jyujinkai's topic in Skyrim's Skyrim LE
This is a very bad idea. -
Make a property of their default oufit, if applicable, then pass that property into SetOutfit().
-
Download that mod and see how they did it.
-
I remember helping someone out with this for three days. Made a mod to try and fix his speed issue and everything and it didn't work. Never figured out what was changing his speed. He ended up uninstalling the mod that he believed was causing it as it happened right after he installed it.
-
Please elaborate further, perhaps this is something I could do myself. What is a .dds file and what is CK/nifskope? I would imagine that putting someone's face from a photograph onto a skyrim character model would be extremely difficult because the texture has to properly fit the 3D model of the face almost perfectly for it to look good. None of this requires a degree in computer science, does it? ***Texturing 101*** - Texturing - ESIV: Oblivion Modding - Tutorials - TES Alliance
-
WaitGameTime or RegisterForSingleUpdate?
Terra Nova replied to Hoamaii's topic in Skyrim's Skyrim LE
Yeah. For shorthanded functions like GetAV(), it is better to use GetActorValue() instead. If you want more info, check this thread out: http://forums.bethsoft.com/topic/1409991-best-practices-papyrus/- 35 replies
-
WaitGameTime or RegisterForSingleUpdate?
Terra Nova replied to Hoamaii's topic in Skyrim's Skyrim LE
You got a load of useful information on this, I see. It is 1,000 times faster than Game.GetPlayer(). There's some other techniques to papyrus for speeding up a script while also maintaining efficiency, and in the case of PlayerRef, at the cost of a bit of extra memory. I will explain the bit on IsInInterior. It is basically calling GetParentCell() once and then called on isInterior.- 35 replies
-
You need another check. You do not want the NPC to play if they are sleeping right? A made a few modifications to your script. You will need to change the script your script is extending from ObjectReference, to Actor in order for this to work. Scriptname Tel_Nalta_Script_HouseBard extends Actor String Property sInstrument = "Lute" Auto {current instrument to play instrumental music defaults to Lute} int Property iPlayOnLoadPercent = 40 Auto { percent chance that bard will be playing when you enter the house default = 50 } int Property iPlayOnLoadStartHour = 7 Auto { earliest time to start playing onload } int Property iPlayOnLoadEndHour = 20 Auto { latest time to start playing onload } GlobalVariable Property GameHour Auto BardSongsScript Property BardSongs Auto event OnCellAttach() Int GetCurrentHour = GameHour.GetValueInt() if !IsEnabled() ; move back to my editor location and enable MoveToMyEditorLocation() Enable() else ;Check if Im sleeping, and if I am, dont do anything. if GetSleepState() == 3 return else ; if Im in the house, and between the right hours, play music if GetCurrentHour >= iPlayOnLoadStartHour && GetCurrentHour <= iPlayOnLoadEndHour && GetEditorLocation() == GetCurrentLocation() debug.trace(self + " OnLoad: play music") ; instrumental or sung? if Utility.RandomInt(1, 2) == 1 debug.trace(self + " OnLoad: instrumental") BardSongs.PlaySong(self, sInstrument, true ) else debug.trace(self + " OnLoad: vocal") BardSongs.PlaySongRequest(self, "Any", true, BardSongs.GetRandomSong(self)) endif else if GetEditorLocation() == GetCurrentLocation() BardSongs.StopAllSongs() endif endif endif endif endevent
-
WaitGameTime or RegisterForSingleUpdate?
Terra Nova replied to Hoamaii's topic in Skyrim's Skyrim LE
It would be faster to make a property for the player, instead of using Game.GetPlayer(). And it would be slightly faster(and less to type) to use IsInInterior.- 35 replies
-
Item Display and Storage - Script Help
Terra Nova replied to thejadeshadow's topic in Skyrim's Skyrim LE
I've never trusted doing this: (and I think that only applies to variables.) Bool property bMyBool =False autoI mean it doesn't set it to false/true in the property manager. If I'm wrong, then I'm wrong, but I prefer to play safe with this language. -
This has to do with UVmapping. http://wiki.tesnexus.com/index.php/UV_Mapping:_An_Explanation http://tesalliance.org/forums/index.php?/topic/4677-guest-workshop-starx-texturing-workshop-part-1/ Also check out the texture link he has in that same post. There's a retexturing tutorial somewhere in the forum too, but really once you grasp the basic concepts of texturing, you'll realize that retexturing is just changing colors in specific areas.
-
Item Display and Storage - Script Help
Terra Nova replied to thejadeshadow's topic in Skyrim's Skyrim LE
There's a bug with using typed functions that do not return a value. Remove the type Bool from your functions associated with that error. Secondly, Bool properly isPlaced = false auto hidden. Remove the hidden flag so you can change it in the CK. While it does look like you're assigning false this way, you're actually not. Change this to false in the CK. It can still be changed at run-time when you need it to. If you still recieve errors, you may need to check that the contents of those functions are actually having an object assigned. In other words, verify that ALL properties are filled. -
Item Display and Storage - Script Help
Terra Nova replied to thejadeshadow's topic in Skyrim's Skyrim LE
I see, understandable. -
Item Display and Storage - Script Help
Terra Nova replied to thejadeshadow's topic in Skyrim's Skyrim LE
Oh dear lord @ all of that. Wouldn't arrays be easier and faster? -
Detect hit location and "safely" uninstalling scripts
Terra Nova replied to Zyox's topic in Skyrim's Skyrim LE
Yeah that would work well, if not for the fact that OnHit would run into a stack overflow. -
Skyrim Freezes In Interior After Exactly One Day
Terra Nova replied to RoanIlendil's topic in Skyrim's Skyrim LE
your papyrus.log may tell you what's going on. You can post it, and we'll see if there's any long running updates, or spam from the game returning none on something. Particularly something that was supposed to wait a certain amount of hours, or whatever. -
Oh sorry. Oh geez, please no, don't use RegisterForUpdate(). Use RegisterForSingleUpdate() instead. You probably don't need to poll for this, or even a trigger. Just modify the previous script a bit, see what happens. If checks of the target is the player. It checks if the combat state is greater than 0(so if it's 1, you're in combat). Then the guards attack the player. When the NPC dies, they should stop. Just like you want it. Actor Property guard1 auto Actor Property guard2 auto Actor Property guard3 auto Actor Property guard4 auto Event OnCombatStateChanged(Actor akTarget, int aeCombatState) PlayerRef = Game.GetPlayer() ; You only wanna call this function once. if (akTarget == PlayerRef) if (aeCombatState > 0) guard1.startcombat(PlayerRef) guard2.startcombat(PlayerRef) guard3.startcombat(PlayerRef) guard4.startcombat(PlayerRef) EndIf Endif EndEvent Event OnDying(Actor akKiller) if akKiller == Game.GetPlayer() ; in case you want this to run on the player only. guard1.stopcombat() guard2.stopcombat() guard3.stopcombat() guard4.stopcombat() endif EndEvent Oh just incase, make sure you extend this script to actor, and attach to the NPC you want it to run on.