Difference between revisions of "SKSE Wish List"

684 bytes added ,  01:25, 26 November 2015
→‎Location: Added GetParentLocation() request
imported>DavidJCobb
(→‎ObjectReference: IsInContainer)
imported>HomoPuerRobustus
(→‎Location: Added GetParentLocation() request)
 
(8 intermediate revisions by 2 users not shown)
Line 53: Line 53:


==Forms==
==Forms==
===Base Object Types===
===Base Object Types===
====Form====
====Form====
*'''GetMagicEffectDescription, SetMagicEffectDescription''' - Returns the magic item description of the magic effect, sets the magic item description of the magic effect.
*'''GetMagicEffectDescription, SetMagicEffectDescription''' - Returns the magic item description of the magic effect, sets the magic item description of the magic effect.
*'''GetEditorID''' - Returns the editor id of a form as a string.


====Armor====
====Armor====
Line 66: Line 66:
*'''GetMotionType''' - Returns the havok motion type int of an object. Counterpart to the existing SetMotionType function. A GetAllowActivate function might also be useful to see if the user can interact with the object (or would that be redundant with the IsActivationBlocked function?)
*'''GetMotionType''' - Returns the havok motion type int of an object. Counterpart to the existing SetMotionType function. A GetAllowActivate function might also be useful to see if the user can interact with the object (or would that be redundant with the IsActivationBlocked function?)
*'''GetStackedItemCount''' - If the ObjectReference is a single dropped item, returns 1. If the ObjectReference is several of an item "clumped"/"stacked" into one world object, returns the number of items. If the ObjectReference isn't an item, returns 0.
*'''GetStackedItemCount''' - If the ObjectReference is a single dropped item, returns 1. If the ObjectReference is several of an item "clumped"/"stacked" into one world object, returns the number of items. If the ObjectReference isn't an item, returns 0.
*'''IsInContainer''' - Returns true if the ObjectReference is inside of a container (i.e. it isn't safe to work with or access data on).
*'''OnItemDropped''' - Fires when the item is dropped from a player's inventory and can be safely operated on, but not when it is removed from the inventory through some other means.
** Papyrus is able to tell if an object is in a container, because casting the object to a string (as in a Debug.Trace call) yields something like "[MyScriptName <Item 358 in container  (00000014)>]". However, there don't appear to be any native methods to access this data, and searching a string for that information seems like the kind of solution that will blow up in a scripter's face in edge-cases.
** If you only need to detect dropping and not container transfers, then this would be safer than OnContainerChanged, which can cause stack dumping when applied to many objects. It would also be more reliable than OnLoad, which doesn't always fire when it should for newly-dropped items. The only other safe alternative is OnLoad, which for unknown reasons is highly unreliable when dealing with dropped items.
*'''GetLightFade''', '''SetLightFade''' - Modify the Fade value of a Light ObjectReference. Useful for Lights that have been spawned at run-time.
*'''GetLightRadius''', '''SetLightRadius''' - Modify the radius value of a Light ObjectReference. Useful for Lights that have been spawned at run-time.


====Perk====
====Perk====
Line 90: Line 92:
====Location====
====Location====
*'''GetCells''' - Access to cells belonging to a location. Return either as an array or with the GenNum../GetNth.. iteration pattern.
*'''GetCells''' - Access to cells belonging to a location. Return either as an array or with the GenNum../GetNth.. iteration pattern.
*'''GetParentLocation''' - Return a location's parent location, not just whether two locations share a parent (without returning what that parent is).


====Faction====
====Faction====
Line 149: Line 152:
   Float Function IIfFloat (bool bTestExpr, Float fValIfTrue, Float fValIfFalse)
   Float Function IIfFloat (bool bTestExpr, Float fValIfTrue, Float fValIfFalse)
:This may implement better as a language enhancement.
:This may implement better as a language enhancement.
*A '''MoverTask''' counterpart to '''SpawnerTask''', which would move existing objects instead of spawning new ones.


==Questionable Requests==
==Questionable Requests==