ff_u_pc_pl10
Add Player Tool 10 on PC skin.
Variables
ENABLE__FF_U_PC_PL10: (string) (opt-in) Set to “Y” on module to enable.
Source code
// @code
#include "ff_i_core"
#include "x2_inc_itemprop"
const string ENABLE__FF_U_PC_PL10 = "ENABLE__FF_U_PC_PL10";
// -----------------------------------------------------------------------------
void SetProperties(object oPC)
{
object oSkin = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oPC);
if (!GetIsObjectValid(oSkin))
{
LogError(GetPCInfo(oPC) + " has no skin/hide equipped");
return;
}
itemproperty ip = ItemPropertyBonusFeat(IP_CONST_FEAT_PLAYER_TOOL_10);
if (IPGetItemHasProperty(oSkin, ip, -1))
return;
IPSafeAddItemProperty(oSkin, ip, 0.0f, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, TRUE, TRUE);
}
// -----------------------------------------------------------------------------
void OnToolActivate();
void OnToolActivate()
{
object oObject = GetSpellTargetObject();
if (!GetIsObjectValid(oObject))
return;
SetIdentified(oObject, TRUE);
if (GetHasInventory(oObject))
IdentifyInventory(oObject);
NWNX_Util_RawPrint("");
NWNX_Util_RawPrint(GetName(oObject));
NWNX_Util_RawPrint(". " + GetObjectTypeString(oObject));
NWNX_Util_RawPrint(". tag: " + GetTag(oObject) + ", resref: " + GetResRef(oObject));
if (GetGoldPieceValue(oObject))
NWNX_Util_RawPrint(". cost: " + IntToString(GetGoldPieceValue(oObject)));
LogLocalVars(oObject, ". ");
NWNX_Util_RawPrint("");
}
// =============================================================================
void main()
{
if (!GetIsDebug())
return;
if (!GetModuleFlag(ENABLE__FF_U_PC_PL10, FALSE))
return;
string sEvent = GetCurrentEvent();
if (sEvent == ON_REGISTER)
{
NWNX_Util_SetResourceOverride(RESTYPE_NCS, "x3_pl_tool10", RemoveExtension(__FILE__));
SubscribeToEvent(ON_DEFAULT_PC_SKIN_EQUIPPED, __FILE__);
}
else if (sEvent == ON_DEFAULT_PC_SKIN_EQUIPPED)
SetProperties(OBJECT_SELF);
else if (sEvent == "" && GetCurrentEventScript() == 0)
OnToolActivate();
}