Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
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"
|
|
} |