71 lines
2.6 KiB
Plaintext
71 lines
2.6 KiB
Plaintext
|
//CUSTOM SHIFTING Tris'la aka cohesi0n
|
||
|
#include "x2_inc_itemprop"
|
||
|
#include "x2_inc_shifter"
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
//Shifter Item Names
|
||
|
string sAmOfFire = "Amulet of the Beast";
|
||
|
//var
|
||
|
object oPlayer = GetItemActivator();
|
||
|
object oItemShiftType = GetItemActivated();
|
||
|
effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
|
||
|
effect ePoly;
|
||
|
int nPolyType = 109;
|
||
|
string sItemShiftName = GetName(oItemShiftType);
|
||
|
|
||
|
if(GetLevelByClass(CLASS_TYPE_SHIFTER, oPlayer) >= 25)
|
||
|
{
|
||
|
//int bWeapon = ShifterMergeWeapon(nPolyType);
|
||
|
int bArmor = ShifterMergeArmor(nPolyType);
|
||
|
int bItems = ShifterMergeItems(nPolyType);
|
||
|
object oWeaponOld = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPlayer);
|
||
|
object oArmorOld = GetItemInSlot(INVENTORY_SLOT_CHEST,oPlayer);
|
||
|
object oRing1Old = GetItemInSlot(INVENTORY_SLOT_LEFTRING,oPlayer);
|
||
|
object oRing2Old = GetItemInSlot(INVENTORY_SLOT_RIGHTRING,oPlayer);
|
||
|
object oAmuletOld = GetItemInSlot(INVENTORY_SLOT_NECK,oPlayer);
|
||
|
object oCloakOld = GetItemInSlot(INVENTORY_SLOT_CLOAK,oPlayer);
|
||
|
object oBootsOld = GetItemInSlot(INVENTORY_SLOT_BOOTS,oPlayer);
|
||
|
object oBeltOld = GetItemInSlot(INVENTORY_SLOT_BELT,oPlayer);
|
||
|
object oHelmetOld = GetItemInSlot(INVENTORY_SLOT_HEAD,oPlayer);
|
||
|
object oShield = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPlayer);
|
||
|
|
||
|
if (GetIsObjectValid(oShield))
|
||
|
{
|
||
|
if (GetBaseItemType(oShield) !=BASE_ITEM_LARGESHIELD &&
|
||
|
GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD &&
|
||
|
GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD)
|
||
|
{
|
||
|
oShield = OBJECT_INVALID;
|
||
|
}
|
||
|
}
|
||
|
//change
|
||
|
ePoly = EffectPolymorph(nPolyType);
|
||
|
ePoly = ExtraordinaryEffect(ePoly);
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPlayer);
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePoly, oPlayer);
|
||
|
|
||
|
object oArmorNew = GetItemInSlot(INVENTORY_SLOT_CARMOUR,oPlayer);
|
||
|
if (bArmor)
|
||
|
{
|
||
|
IPWildShapeCopyItemProperties(oArmorOld,oArmorNew);
|
||
|
IPWildShapeCopyItemProperties(oHelmetOld,oArmorNew);
|
||
|
IPWildShapeCopyItemProperties(oShield,oArmorNew);
|
||
|
}
|
||
|
if (bItems)
|
||
|
{
|
||
|
IPWildShapeCopyItemProperties(oRing1Old,oArmorNew);
|
||
|
IPWildShapeCopyItemProperties(oRing2Old,oArmorNew);
|
||
|
IPWildShapeCopyItemProperties(oAmuletOld,oArmorNew);
|
||
|
IPWildShapeCopyItemProperties(oCloakOld,oArmorNew);
|
||
|
IPWildShapeCopyItemProperties(oBootsOld,oArmorNew);
|
||
|
IPWildShapeCopyItemProperties(oBeltOld,oArmorNew);
|
||
|
}
|
||
|
}
|
||
|
else{
|
||
|
FloatingTextStringOnCreature("Your shifting powers are not yet great enough", oPlayer);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|