Clear out experimental .35 files
Clear out experimental .35 files
This commit is contained in:
@@ -1,169 +0,0 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Lasher - Third Hand
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
Script to add lasher bonuses
|
||||
|
||||
code "borrowed" from far hand, ranged disarm
|
||||
disarm gets weapon sizes using Get2DACache
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Flaming_Sword
|
||||
//:: Created On: Sept 25, 2005
|
||||
//:: Modified: Sept 27, 2005
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "prc_inc_combat"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = OBJECT_SELF;
|
||||
object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
|
||||
string sMessage = "";
|
||||
|
||||
if(GetBaseItemType(oWeapon) == BASE_ITEM_WHIP)
|
||||
{
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
float fRange = 4.5;
|
||||
float fDistance = GetDistanceToObject(oTarget);
|
||||
|
||||
if(fDistance < fRange)
|
||||
{
|
||||
object oCopy;
|
||||
int nWeight;
|
||||
int nDC;
|
||||
int nType = GetObjectType(oTarget);
|
||||
int nAttack = GetAttackBonus(oTarget, oPC, oWeapon);
|
||||
|
||||
if(nType == OBJECT_TYPE_PLACEABLE) //code for use on placeables here
|
||||
{
|
||||
if(GetTag(oTarget) == "BodyBag")
|
||||
{
|
||||
oTarget = GetFirstItemInInventory(oTarget);
|
||||
nWeight = GetWeight(oTarget);
|
||||
nDC = 20;
|
||||
|
||||
if(nWeight <= 200)
|
||||
{
|
||||
if(nAttack + d20() >= nDC)
|
||||
{
|
||||
oCopy = CopyItem(oTarget, oPC);
|
||||
if(GetIsObjectValid(oCopy)) //wouldn't want to destroy objects that can't be copied
|
||||
{
|
||||
sMessage = "Third Hand picked up " + GetName(oTarget);
|
||||
DestroyObject(oTarget);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(GetBaseItemType(oTarget) == BASE_ITEM_LARGEBOX)
|
||||
sMessage = "You cannot pick up a container that is not empty";
|
||||
}
|
||||
}
|
||||
else
|
||||
sMessage = "Third Hand failed";
|
||||
}
|
||||
else
|
||||
sMessage = "This item is too heavy";
|
||||
}
|
||||
}
|
||||
else if(nType == OBJECT_TYPE_DOOR) //code for use on doors here
|
||||
{
|
||||
nDC = 15;
|
||||
}
|
||||
else if(nType == OBJECT_TYPE_ITEM)
|
||||
{
|
||||
nWeight = GetWeight(oTarget);
|
||||
nDC = 20;
|
||||
|
||||
if(nWeight <= 200)
|
||||
{
|
||||
if(nAttack + d20() >= nDC)
|
||||
{
|
||||
oCopy = CopyItem(oTarget, oPC);
|
||||
if(GetIsObjectValid(oCopy)) //wouldn't want to destroy objects that can't be copied
|
||||
{
|
||||
sMessage = "Third Hand picked up " + GetName(oTarget);
|
||||
DestroyObject(oTarget);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(GetBaseItemType(oTarget) == BASE_ITEM_LARGEBOX)
|
||||
sMessage = "You cannot pick up a container that is not empty";
|
||||
}
|
||||
}
|
||||
else
|
||||
sMessage = "Third Hand failed";
|
||||
}
|
||||
else
|
||||
sMessage = "This item is too heavy";
|
||||
}
|
||||
else if(nType == OBJECT_TYPE_CREATURE)
|
||||
{
|
||||
if(GetLevelByClass(CLASS_TYPE_LASHER, oPC) > 5)
|
||||
{//string string Get2DACache(string s2DA, string sColumn, int nRow, string s = "", int nDebug = FALSE)
|
||||
if (GetIsCreatureDisarmable(oTarget) && !GetPRCSwitch(PRC_PNP_DISARM))
|
||||
{
|
||||
object oEnemyWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oTarget);
|
||||
|
||||
//weapon size
|
||||
int nSize = StringToInt(Get2DACache("baseitems", "WeaponSize", GetBaseItemType(oEnemyWeapon)));
|
||||
PRCSignalSpellEvent(oTarget, TRUE, GetSpellId());
|
||||
|
||||
//whip treated as medium from feat but -4 penalty on improved disarm
|
||||
int nModifier = (2 - nSize) * 4;
|
||||
int iHit = GetAttackRoll(oTarget, OBJECT_SELF, oWeapon, 0, nAttack, nModifier);
|
||||
|
||||
if(iHit)
|
||||
{
|
||||
if(GetSkill(oTarget, SKILL_DISCIPLINE) + d20() < nAttack)
|
||||
{
|
||||
nWeight = GetWeight(oEnemyWeapon);
|
||||
nDC = 20;
|
||||
|
||||
FloatingTextStringOnCreature("*Disarm: Hit*", oPC, FALSE);
|
||||
|
||||
if(nWeight <= 200)
|
||||
{
|
||||
if(nAttack + d20() >= nDC)
|
||||
{
|
||||
oCopy = CopyItem(oEnemyWeapon, oPC);
|
||||
if(GetIsObjectValid(oCopy)) //wouldn't want to destroy objects that can't be copied
|
||||
{
|
||||
sMessage = "Third Hand picked up " + GetName(oTarget);
|
||||
}
|
||||
else
|
||||
{
|
||||
sMessage = "DEBUG: CopyItem Failed (" + GetName(oTarget) + ")";
|
||||
CopyObject(oEnemyWeapon, GetLocation(oTarget));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
CopyObject(oEnemyWeapon, GetLocation(oTarget));
|
||||
}
|
||||
DestroyObject(oEnemyWeapon);
|
||||
}
|
||||
else
|
||||
sMessage = "This item is too heavy";
|
||||
}
|
||||
else
|
||||
FloatingTextStringOnCreature("*Disarm: Failed*", oPC, FALSE);
|
||||
|
||||
}
|
||||
else
|
||||
FloatingTextStringOnCreature("*Disarm: Miss*", oPC, FALSE);
|
||||
}
|
||||
else
|
||||
sMessage = "That target is not disarmable";
|
||||
}
|
||||
else
|
||||
sMessage = "You cannot use Third Hand to disarm opponents until level 6";
|
||||
}
|
||||
}
|
||||
else
|
||||
sMessage = "The target is too far away";
|
||||
}
|
||||
else
|
||||
sMessage = "You must use a whip";
|
||||
SendMessageToPC(oPC, sMessage);
|
||||
}
|
Reference in New Issue
Block a user