#include "x2_inc_itemprop" void main() { object oPC = GetPCSpeaker(); //Place any items in the main hand or the off-hand in the inventory object oCopied; int nCursed; if (GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC) != OBJECT_INVALID) { nCursed = GetItemCursedFlag(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)); oCopied = CopyItem(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC), oPC, TRUE); if (oCopied != OBJECT_INVALID) DestroyObject(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)); if (nCursed == TRUE) SetItemCursedFlag(oCopied, TRUE); nCursed = FALSE; } if (GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC) != OBJECT_INVALID) { nCursed = GetItemCursedFlag(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)); oCopied = CopyItem(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC), oPC, TRUE); if (oCopied != OBJECT_INVALID) DestroyObject(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)); if (nCursed == TRUE) SetItemCursedFlag(oCopied, TRUE); nCursed = FALSE; } //The end of this chunk of code object oItem = GetFirstItemInInventory(oPC); int nSubType; while (GetIsObjectValid(oItem)) { if (GetLocalInt(oItem, "Prototype") == TRUE) { //Removing last property added. if (GetLocalString(oPC, "LastProperty") == "Keen") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_KEEN, -1); if (GetLocalString(oPC, "LastProperty") == "Critical") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_MASSIVE_CRITICALS, -1); if (GetLocalString(oPC, "LastProperty") == "Mighty") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_MIGHTY, -1); if (GetLocalString(oPC, "LastProperty") == "Attack") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ATTACK_BONUS, -1); if (GetLocalString(oPC, "LastProperty") == "Enhancement") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_ENHANCEMENT_BONUS, -1); if (GetLocalString(oPC, "LastProperty") == "Ammo") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION, -1); if (GetLocalString(oPC, "LastProperty") == "Damage") { if (GetLocalString(oPC, "Parameter") == "Acid") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, IP_CONST_DAMAGETYPE_ACID); if (GetLocalString(oPC, "Parameter") == "Divine") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, IP_CONST_DAMAGETYPE_DIVINE); if (GetLocalString(oPC, "Parameter") == "Sonic") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, IP_CONST_DAMAGETYPE_SONIC); if (GetLocalString(oPC, "Parameter") == "Fire") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, IP_CONST_DAMAGETYPE_FIRE); if (GetLocalString(oPC, "Parameter") == "Cold") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, IP_CONST_DAMAGETYPE_COLD); if (GetLocalString(oPC, "Parameter") == "Electrical") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, IP_CONST_DAMAGETYPE_ELECTRICAL); if (GetLocalString(oPC, "Parameter") == "Piercing") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, IP_CONST_DAMAGETYPE_PIERCING); if (GetLocalString(oPC, "Parameter") == "Bludgeoning") IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_DAMAGE_BONUS, -1, IP_CONST_DAMAGETYPE_BLUDGEONING); } return; } oItem = GetNextItemInInventory(oPC); } }