GetSkinInt(object, string)
Retrieves a persistent integer variable from a creature's skin item.
int GetSkinInt( object oCreature, string sVariableName );
Parameters
oCreature
The creature object whose skin the variable will be retrieved from.
sVariableName
The variable name used to identify the variable retrieved from the skin.
Description
Retrieves the current value of an integer variable from a creature's skin item. These variables are persistent when applied to a PC and travel with the character when exported.
Remarks
The variable name specified in sVariableName will be stripped of all underscore characters. Thus, a variable name specified as "My_Custom_Variable" will cause the function to retrieve the variable actually stored under the name "MyCustomVariable".
If no variable stored under the specified variable name exists on the creature's skin, the function returns 0.
If the object specified by oCreature is an NPC, the variable is retrieved from the creature itself rather than its skin. If used on an NPC who possesses an item with the TAG "x3_it_pchide", that item will be destroyed.
If used on a PC, the variable is retrieved from the skin item equipped in the PC's creature armor slot.
If used on a PC who has no item equipped in the creature armor slot, the PC is searched for an item with the TAG "x3_it_pchide". If one is found, the variable is retrieved from that item and the PC is forced to try and equip it into its creature armor slot. Should the item found be one that is not equippable in the creature armor slot, the equip action will fail but the variable will still be retrieved from the item found.
If used on a PC who has no item equipped in the creature armor slot and also does not possess an item with the TAG "x3_it_pchide", a new skin item is created from the standard blueprint "x3_it_pchide" and added to the PC's inventory. The variable is retrieved from the new skin, and the PC is forced to equip the new skin in the creature armor slot.
Because of the special treatment of items whose TAG is set to "x3_it_pchide", it is important to not create items with that TAG that are not skin items. It is also important to ensure creatures will never possess more than one item with the TAG "x3_it_pchide".
Known Bugs
Although not technically a bug per se, a PC that has no skin equipped who is carrying an item with the TAG "x3_it_pchide" will be commanded to equip that item into the creature armor slot even when the item is not a skin. This does not cause a bug, but it does waste time trying to make the PC do something he is incapable of.
Should this function be used on a PC who has no skin equipped and is carrying more than one item with the TAG "x3_it_pchide", there's no telling which of the items the variable will be retrieved from.
Due to the fact that the variable name is stripped of all underscores, it is not possible to use this function (or SetSkinInt either) to treat two skin variables whose names differ only by underscores as independent separate variables. In other words, if you use a skin variable called "My_Custom_Variable" you cannot have a different skin variable called "MyCustomVariable" since this function (and SetSkinInt as well) will treat them both as the same variable. The easiest way to avoid any potential problems related to this issue is to simply not put any underscores into your skin variable names.
Requirements
#include "x3_inc_skin"
Version
1.69
Example
See SetSkinInt | DeleteSkinFloat
See Also
functions: | SetSkinInt | DeleteSkinInt |
categories: | Get Data Functions | Get Data from Creature Functions | Local Variables Functions |
author: Axe Murderer, editors: Mistress, Kolyana