forked from Jaysyn/PRC8
71 lines
2.5 KiB
Plaintext
71 lines
2.5 KiB
Plaintext
|
//::///////////////////////////////////////////////
|
||
|
//:: High Sword Low Axe
|
||
|
//:: prc_ft_highlow.nss
|
||
|
//::///////////////////////////////////////////////
|
||
|
/*
|
||
|
If you hit the same creature with both your
|
||
|
sword and your axe in the same round, you may
|
||
|
make a free trip attempt against that foe.
|
||
|
*/
|
||
|
//:://////////////////////////////////////////////
|
||
|
//:: Modified By: Stratovarius
|
||
|
//:: Modified On: 11.11.2018
|
||
|
//:://////////////////////////////////////////////
|
||
|
|
||
|
#include "prc_inc_combmove"
|
||
|
|
||
|
int AnvilThunder(object oRight, object oLeft)
|
||
|
{
|
||
|
if ((GetBaseItemType(oRight) == BASE_ITEM_BASTARDSWORD ||
|
||
|
GetBaseItemType(oRight) == BASE_ITEM_LONGSWORD ||
|
||
|
GetBaseItemType(oRight) == BASE_ITEM_SCIMITAR) &&
|
||
|
(GetBaseItemType(oLeft) == BASE_ITEM_BATTLEAXE ||
|
||
|
GetBaseItemType(oLeft) == BASE_ITEM_DWARVENWARAXE ||
|
||
|
GetBaseItemType(oLeft) == BASE_ITEM_HANDAXE)) return TRUE;
|
||
|
|
||
|
if ((GetBaseItemType(oLeft) == BASE_ITEM_BASTARDSWORD ||
|
||
|
GetBaseItemType(oLeft) == BASE_ITEM_LONGSWORD ||
|
||
|
GetBaseItemType(oLeft) == BASE_ITEM_SCIMITAR) &&
|
||
|
(GetBaseItemType(oRight) == BASE_ITEM_BATTLEAXE ||
|
||
|
GetBaseItemType(oRight) == BASE_ITEM_DWARVENWARAXE ||
|
||
|
GetBaseItemType(oRight) == BASE_ITEM_HANDAXE)) return TRUE;
|
||
|
|
||
|
return FALSE;
|
||
|
}
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oPC = OBJECT_SELF;
|
||
|
object oTarget = PRCGetSpellTargetObject();
|
||
|
effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M);
|
||
|
effect eDummy;
|
||
|
|
||
|
object oRight = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
|
||
|
object oLeft = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
|
||
|
|
||
|
if (AnvilThunder(oRight, oLeft))
|
||
|
{
|
||
|
int nHit;
|
||
|
// Main hand
|
||
|
PerformAttack(oTarget, oPC, eDummy, 0.0, 0, 0, 0, "High Sword Low Axe Hit", "High Sword Low Axe Miss");
|
||
|
if (GetLocalInt(oTarget, "PRCCombat_StruckByAttack"))
|
||
|
{
|
||
|
nHit += 1;
|
||
|
DeleteLocalInt(oTarget, "PRCCombat_StruckByAttack");
|
||
|
}
|
||
|
// Off Hand
|
||
|
PerformAttack(oTarget, oPC, eDummy, 0.0, 0, 0, 0, "High Sword Low Axe Hit", "High Sword Low Axe Miss", FALSE, OBJECT_INVALID, OBJECT_INVALID, TRUE);
|
||
|
if (GetLocalInt(oTarget, "PRCCombat_StruckByAttack")) nHit += 1;
|
||
|
|
||
|
if (nHit > 1)
|
||
|
{
|
||
|
DoTrip(oPC, oTarget, 0);
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
FloatingTextStringOnCreature("You do not have the right weapons equipped for High Sword Low Axe", oPC, FALSE);
|
||
|
PerformAttackRound(oTarget, oPC, eDummy);
|
||
|
}
|
||
|
}
|