Initial upload
Initial upload
This commit is contained in:
788
_module/nss/sfcs_functs_rem.nss
Normal file
788
_module/nss/sfcs_functs_rem.nss
Normal file
@@ -0,0 +1,788 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Scarface's Crafting System V1.0
|
||||
//:: sfcs_functs_rem
|
||||
//::
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
All of the functions to remove item properties -
|
||||
DO NOT TOUCH!!!
|
||||
*/
|
||||
//////////////////////////////////////////////////
|
||||
|
||||
#include "sfcs_functs"
|
||||
#include "x2_inc_itemprop"
|
||||
|
||||
//:: Declair Functions
|
||||
void RemoveACBonus(object oItem);
|
||||
void RemoveAcidBonus(object oItem);
|
||||
void RemoveAttackBonus(object oItem);
|
||||
void RemoveBludgeonBonus(object oItem);
|
||||
void RemoveCharismaBonus(object oItem);
|
||||
void RemoveColdBonus(object oItem);
|
||||
void RemoveConBonus(object oItem);
|
||||
void RemoveDexBonus(object oItem);
|
||||
void RemoveDivineBonus(object oItem);
|
||||
void RemoveEnhancementBonus(object oItem);
|
||||
void RemoveFireBonus(object oItem);
|
||||
void RemoveHasteBonus(object oItem);
|
||||
void RemoveHolyAvengerBonus(object oItem);
|
||||
void RemoveKeenBonus(object oItem);
|
||||
void RemoveMagicBonus(object oItem);
|
||||
void RemoveNegativeBonus(object oItem);
|
||||
void RemovePiercingBonus(object oItem);
|
||||
void RemoveRegenBonus(object oItem);
|
||||
void RemoveSlashingBonus(object oItem);
|
||||
void RemoveSonicBonus(object oItem);
|
||||
void RemoveStrengthBonus(object oItem);
|
||||
void RemoveTrueSeeingBonus(object oItem);
|
||||
void RemoveWisdomBonus(object oItem);
|
||||
|
||||
//:: Functions
|
||||
|
||||
void RemoveACBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("AC +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove AC bonus
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_AC_BONUS,
|
||||
DURATION_TYPE_PERMANENT);
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take AC bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyACBonus(iProp), 0.0,
|
||||
X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "AC +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveAcidBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Acid +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove acid damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_ACID);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take acid bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ACID,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Acid +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveAttackBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Attack +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Check if there are no more Attack Bonuses on the item
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ATTACK_BONUS,
|
||||
DURATION_TYPE_PERMANENT);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAttackBonus(iProp), 0.0,
|
||||
X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Attack +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveBludgeonBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Bludgeoning +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove bludge damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_BLUDGEONING);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_BLUDGEONING,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Bludgeoning +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveCharismaBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Charisma +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove Charisma bonus - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ABILITY_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_ABILITY_CHA);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Charisma bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAbilityBonus(IP_CONST_ABILITY_CHA,
|
||||
iProp), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Charisma +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveColdBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Cold +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove cold damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_COLD);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_COLD,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Cold +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveConstitutionBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Constitution +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove Constitution bonus - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ABILITY_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_ABILITY_CON);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Constitution bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAbilityBonus(IP_CONST_ABILITY_CON,
|
||||
iProp), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Constitution +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveDexterityBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Dexterity +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove dexterity bonus - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ABILITY_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_ABILITY_DEX);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take strength bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAbilityBonus(IP_CONST_ABILITY_DEX,
|
||||
iProp), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Dexterity +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveDivineBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Divine +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove divine damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_DIVINE);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_DIVINE,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Divine +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveEnhancementBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Enhancement +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove emhancement damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS,
|
||||
DURATION_TYPE_PERMANENT);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyEnhancementBonus(iProp), 0.0,
|
||||
X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Enhancement +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveFireBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Fire +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove fire damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_FIRE);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_FIRE,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Fire +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveHasteBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Haste");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Remove haste
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_HASTE, DURATION_TYPE_PERMANENT);
|
||||
|
||||
// Delete local var
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
}
|
||||
}
|
||||
void RemoveHolyAvengerBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Holy Avenger");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Remove haste
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_HOLY_AVENGER, DURATION_TYPE_PERMANENT);
|
||||
|
||||
// Delete local var
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
}
|
||||
}
|
||||
void RemoveIntellegenceBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Intellegence +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove Intellegence bonus - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ABILITY_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_ABILITY_INT);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Intellegence bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAbilityBonus(IP_CONST_ABILITY_INT,
|
||||
iProp), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Intellegence +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveKeenBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Keen");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Remove keen
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_KEEN, DURATION_TYPE_PERMANENT);
|
||||
|
||||
// Delete local var
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
}
|
||||
}
|
||||
void RemoveMagicBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Magical +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove magical damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_MAGICAL);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_MAGICAL,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Magical +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveNegativeBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Negative +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove negative damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_NEGATIVE);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_NEGATIVE,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Negative +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemovePiercingBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Piercing +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove piercing damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_PIERCING);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_PIERCING,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Piercing +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveRegenBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Regeneration +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove Regeneration bonus - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_REGENERATION,
|
||||
DURATION_TYPE_PERMANENT);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Regeneration bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyRegeneration(iProp), 0.0,
|
||||
X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Regeneration +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveSlashingBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Slashing +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove slashing damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_SLASHING);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_SLASHING,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Slashing +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveSonicBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Sonic +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove sonic damage - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_DAMAGETYPE_SONIC);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Attack Bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_SONIC,
|
||||
DamageBonus(iProp)), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Sonic +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveStrengthBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Strength +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove strength bonus - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ABILITY_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_ABILITY_STR);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take strength bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAbilityBonus(IP_CONST_ABILITY_STR,
|
||||
iProp), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Strength +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveTrueSeeingBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("True Seeing");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Remove True Seeing
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_TRUE_SEEING, DURATION_TYPE_PERMANENT);
|
||||
|
||||
// Delete local var
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
}
|
||||
}
|
||||
void RemoveWisdomBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Wisdom +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove Wisdom bonus - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ABILITY_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_ABILITY_WIS);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Wisdom bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAbilityBonus(IP_CONST_ABILITY_WIS,
|
||||
iProp), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Wisdom +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
void RemoveIntelligenceBonus(object oItem)
|
||||
{
|
||||
// Get the correct property slot
|
||||
string sProp = GetItemPropertySlot("Intelligence +");
|
||||
|
||||
if (sProp != "INVALID")
|
||||
{
|
||||
// Get the property amount
|
||||
int iProp = GetLocalInt(OBJECT_SELF, sProp);
|
||||
iProp--;
|
||||
|
||||
// Remove Intelligence bonus - 1
|
||||
if (iProp <= 0)
|
||||
{
|
||||
IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ABILITY_BONUS,
|
||||
DURATION_TYPE_PERMANENT, IP_CONST_ABILITY_INT);
|
||||
|
||||
// Set local vars
|
||||
DeleteLocalString(OBJECT_SELF, sProp);
|
||||
DeleteLocalInt(OBJECT_SELF, sProp);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Take Intelligence bonus -1
|
||||
IPSafeAddItemProperty(oItem, ItemPropertyAbilityBonus(IP_CONST_ABILITY_INT,
|
||||
iProp), 0.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING);
|
||||
|
||||
// Set local vars
|
||||
SetLocalString(OBJECT_SELF, sProp, "Intelligence +" + IntToString(iProp));
|
||||
SetLocalInt(OBJECT_SELF, sProp, iProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user