Difference between revisions of "Category:Pluggy"
Jump to navigation
Jump to search
imported>Speedo |
imported>Haama (→Some peculiarities (compared to other Oblivion functions): Plugin name note (not the first time it's been asked)) |
||
Line 62: | Line 62: | ||
*Arrays have indexes from 0 to (array size - 1). The array size is set when you first create the array and can be modified with [[ArraySize]], or when inserting data with the '''SetInArray''' functions. | *Arrays have indexes from 0 to (array size - 1). The array size is set when you first create the array and can be modified with [[ArraySize]], or when inserting data with the '''SetInArray''' functions. | ||
*There are 3 '''SetInArray''' and '''FindInArray''' functions: one for integers, one for floats, and one for references. | *There are 3 '''SetInArray''' and '''FindInArray''' functions: one for integers, one for floats, and one for references. | ||
*When using [[IsPluginInstalled]] or [[GetPluginVersion]], the plugin name is "OBSE_Elys_Pluggy". | |||
[[Category: OBSE Plug-Ins]] | [[Category: OBSE Plug-Ins]] | ||
[[Category: Functions]] | [[Category: Functions]] | ||
[[Category: Functions (OBSE)]] | [[Category: Functions (OBSE)]] |
Revision as of 11:19, 13 March 2008
Pluggy (latest version is Beta v45) is a plugin for OBSE that provides functions to create, store, and manipulate single-dimension arrays.
Download and Discussion Thread
- Discussion Thread #1 (Bethesda Forums)
- Discussion Thread #2 (Bethesda Forums)
- Current Discussion Thread & Download Link (Bethesa Forums)
What is an array?
You can think of a single-dimension array as an expandable piece of lined paper. Each line contains a bit of information. In Oblivion's case, the line can either be empty, a reference, an integer (long), or a float. Each line is called an index, and they start with 0.
An example array:
Index | Info in index | Type of info in index |
---|---|---|
Index 0 | --- | Empty |
Index 1 | 0000000F (Gold) | Reference |
Index 2 | 658 | Long |
Index 3 | 4.563 | Float |
Where are the arrays stored?
- The arrays are stored in separate .pluggy files.
- A .pluggy file is created whenever the game is saved and there are arrays in use.
- Each .pluggy file corresponds to it's save game file.
- If all arrays are destroyed, or all mods that use the arrays are deactivated, the .pluggy file will be deleted.
- The files are incredibly small - only 9 bytes per non-empty array index.
How much space and memory do the arrays take?
- Memory (in-game) - 4 bytes per empty array index and 9 bytes per filled array index
- HDD space - 9 bytes per filled array index
How fast are the functions?
- Not fully tested, but running 900 Pluggy "Find" calls only took half a second while 900 GetInventoryObject calls took 10 seconds. In short, these are incredibly fast functions.
Some peculiarities (compared to other Oblivion functions)
- Most Pluggy functions can be used to both return and set a value. This is determined by an optional flag - if it's left empty the value will be returned and if it's filled the value will be set to that flag.
- For example, ArraySize 0 will return the size of Array 0 while ArraySize 0 10 will set Array 0's size to 10 indexes.
- Each array is associated with a mod (either Esp or Esm). If the mod is removed then the array will be removed once the player saves.
- There is also a system to prevent other mods from accidentally modifying your arrays and to prevent other mods from modifying your arrays.
- To modify an array from another mod the modder will need to include a special Global flag to their function.
- If you want to prevent any other mod from modifying your arrays, add a special Protection flag when you create it or set it later with ArrayProtect
- Note that other mods will be able to look at your array regardless of Protection or Global flags.
- The corresponding mod for each array can be changed with ArrayEsp.
- There is also a system to prevent other mods from accidentally modifying your arrays and to prevent other mods from modifying your arrays.
- Each array has its own ID which is a Long number from 0 up. For instance, the first array you create will have an ID of 0, and the second one will have an ID of 1. The ID is returned when you create the array (either via CreateArray or CopyArray).
- You can store the ID in a Long variable, scripted effect (with SetNthEffectItemMagnitude), etc., and it behaves exactly like any other number.
- If you wish to test a variable for a valid ArrayID, use the function ArrayCount.
- While various Pluggy functions are capable of checking the validity of an ArrayID, ArrayCount is recommended since it does not have the potential to alter the array if used incorrectly.
- Arrays have indexes from 0 to (array size - 1). The array size is set when you first create the array and can be modified with ArraySize, or when inserting data with the SetInArray functions.
- There are 3 SetInArray and FindInArray functions: one for integers, one for floats, and one for references.
- When using IsPluginInstalled or GetPluginVersion, the plugin name is "OBSE_Elys_Pluggy".
Subcategories
This category has the following 5 subcategories, out of 5 total.
A
F
H
S
Pages in category "Pluggy"
The following 8 pages are in this category, out of 8 total.