Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
59 lines
1.8 KiB
Plaintext
59 lines
1.8 KiB
Plaintext
//Spell script for reserve feat dimensional reach
|
|
//prc_reservdimrch
|
|
//by ebonfowl
|
|
//Dedicated to Edgar, the real Ebonfowl
|
|
|
|
#include "spinc_dimdoor"
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
object oItem;
|
|
int nTargetType = GetObjectType(oTarget);
|
|
int nBonus = GetLocalInt(oPC, "DimensionalReachBonus");
|
|
int nMaxWeight = nBonus*2;
|
|
int nSpellID = PRCGetSpellId();
|
|
float fMaxDistance = FeetToMeters(IntToFloat(nBonus*5));
|
|
float fDistance = GetDistanceBetween(oTarget, oPC);
|
|
|
|
if (!GetLocalInt(oPC, "DimensionalReachBonus"))
|
|
{
|
|
FloatingTextStringOnCreature("You do not have a spell available of adequate level or type", oPC, FALSE);
|
|
return;
|
|
}
|
|
|
|
//Range check
|
|
if(fDistance > fMaxDistance)
|
|
{
|
|
string sPretty = FloatToString(fMaxDistance);
|
|
sPretty = GetSubString(sPretty, 0, FindSubString(sPretty, ".") + 2); // Trunctate decimals to the last two
|
|
sPretty += "m"; // Note the unit. Since this is SI, the letter should be universal
|
|
FloatingTextStringOnCreature("Dimensional Reach range limited to " + sPretty, oPC, FALSE);
|
|
return;
|
|
}
|
|
|
|
//Object check
|
|
if(nTargetType == OBJECT_TYPE_ITEM)
|
|
{
|
|
oItem = oTarget;
|
|
}
|
|
else
|
|
{
|
|
FloatingTextStrRefOnCreature(16826245, oPC, FALSE); // "* Target is not an item *"
|
|
return;
|
|
}
|
|
|
|
if(!GetIsObjectValid(oItem))
|
|
FloatingTextStrRefOnCreature(16826245, oPC, FALSE); // "* Target is not an item *"
|
|
|
|
// And light enough
|
|
if(GetWeight(oItem) <= nMaxWeight)
|
|
{
|
|
//ActionGiveItem(oTarget, oPC);
|
|
CopyItem(oItem, oPC, FALSE);
|
|
MyDestroyObject(oItem); // Make sure the item does get destroyed
|
|
}
|
|
else
|
|
FloatingTextStrRefOnCreature(16824062, oPC, FALSE); // "This item is too heavy for you to pick up"
|
|
} |