Difference between revisions of "User:DavidJCobb"
Jump to navigation
Jump to search
imported>DavidJCobb |
imported>DavidJCobb (→Is an ObjectReference an item?: Fix'd!) |
||
Line 21: | Line 21: | ||
<pre style="overflow-x:auto">Bool Function IsItem(ObjectReference akObject) | <pre style="overflow-x:auto">Bool Function IsItem(ObjectReference akObject) | ||
Form akForm = akObject | Form akForm = akObject.GetBaseObject() | ||
If (akForm as | If !akForm | ||
return false | |||
EndIf | |||
If akForm as Book | |||
; | |||
; SKSE grants read access to the Playable flag for books. | |||
; | |||
return (akForm as Book).IsTakeable() | |||
EndIf | |||
If (akForm as Ammo) || (akForm as Armor) || (akForm as Ingredient) || (akForm as Key) || (akForm as MiscObject) || (akForm as Potion) || (akForm as Scroll) || (akForm as SoulGem) || (akForm as Weapon) | |||
; | |||
; Other object types don't have a script-accessible player flag. Sux. | |||
; | |||
return true | return true | ||
EndIf | EndIf | ||
return false | return false | ||
EndFunction</pre> | EndFunction</pre> |
Revision as of 23:40, 28 September 2014
My work
- Rotation library
- A library for working with rotations in Skyrim. If you need to position and rotate one object relative to another, this'd be the code to do that.
Current projects
- Atronach Crossing
- A home decoration mod with a dual focus on customization and usability. Currently in early development. Already features many "firsts" in Skyrim, such as bookshelves that can be moved around at run-time.
Scratchpad
- Import is unreliable, and I don't know what makes it break. It works in some cases, but in others, it completely fails to import global functions from the target file.
- Errors will not be generated when compiling in the Creation Kit. You'll only be able to detect the problem by checking the Papyrus logs, which will contain something like
Error: Method ImportedFunctionName not found on EntityThatHasAScriptThatImportsStuff. Aborting call and returning None
- It's consistent: if it doesn't work for a file, then it will probably never work for that file (barring massive changes).
- You can work around this by referencing all functions in the script to be imported as methods, e.g. ScriptToBeImported.FunctionName().
- Errors will not be generated when compiling in the Creation Kit. You'll only be able to detect the problem by checking the Papyrus logs, which will contain something like
Code snippets
Quality? Functionality? Efficiency? Here, I guarantee nothing!!
Is an ObjectReference an item?
In progress. Broken. Only detects arrows (Ammo). Odd. Maybe there's some weird compiler quirk that makes the If fail if any cast inside of it fails?
Bool Function IsItem(ObjectReference akObject) Form akForm = akObject.GetBaseObject() If !akForm return false EndIf If akForm as Book ; ; SKSE grants read access to the Playable flag for books. ; return (akForm as Book).IsTakeable() EndIf If (akForm as Ammo) || (akForm as Armor) || (akForm as Ingredient) || (akForm as Key) || (akForm as MiscObject) || (akForm as Potion) || (akForm as Scroll) || (akForm as SoulGem) || (akForm as Weapon) ; ; Other object types don't have a script-accessible player flag. Sux. ; return true EndIf return false EndFunction