Further file organization
Further file organization
This commit is contained in:
85
nwn/nwnprc/trunk/scripts/prc_alag_cstrike.nss
Normal file
85
nwn/nwnprc/trunk/scripts/prc_alag_cstrike.nss
Normal file
@@ -0,0 +1,85 @@
|
||||
// Clangeddin's Strike Feat
|
||||
// Created 10/30/04
|
||||
// By Vaeliorin
|
||||
#include "prc_inc_combat"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = OBJECT_SELF;
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
||||
if(oPC == oTarget)
|
||||
{
|
||||
SendMessageToPC(oPC,"You cannot attack yourself...");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
object oItem = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND);
|
||||
|
||||
if (GetBaseItemType(oItem) != BASE_ITEM_BATTLEAXE)
|
||||
{
|
||||
SendMessageToPC(oPC, "You must have a battleaxe equipped to use this feat");
|
||||
IncrementRemainingFeatUses(oPC, FEAT_CLANGEDDINS_STRIKE);
|
||||
return;
|
||||
}
|
||||
|
||||
AssignCommand(oPC, ActionMoveToLocation(GetLocation(oTarget), TRUE) );
|
||||
|
||||
effect eDamage1;
|
||||
effect eDamage2;
|
||||
effect eDamage3;
|
||||
|
||||
effect eLink1;
|
||||
effect eLink2;
|
||||
|
||||
int iAttackResult;
|
||||
|
||||
struct BonusDamage sWeaponBonus;
|
||||
struct BonusDamage sSpellBonus;
|
||||
|
||||
int iStrMod = GetAbilityModifier(ABILITY_STRENGTH, oPC);
|
||||
|
||||
sWeaponBonus = GetWeaponBonusDamage(oItem, oTarget);
|
||||
|
||||
sSpellBonus = GetMagicalBonusDamage(oPC, oTarget);
|
||||
|
||||
iAttackResult = GetAttackRoll(oTarget, oPC, oItem, 0, 0, (iStrMod + 1));
|
||||
|
||||
if (iAttackResult == 2)
|
||||
{
|
||||
SendMessageToPC(oPC, "Clangeddin's Strike **Critical Hit!**");
|
||||
eDamage1 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, TRUE, 0, 0, 0);
|
||||
//DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget));
|
||||
eDamage2 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, TRUE, 0, 0, 0);
|
||||
//DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget));
|
||||
eDamage3 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, TRUE, 0, 0, 0);
|
||||
//DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget));
|
||||
eLink1 = EffectLinkEffects(eDamage1, eDamage2);
|
||||
eLink2 = EffectLinkEffects(eLink1, eDamage3);
|
||||
DelayCommand(6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLink2, oTarget));
|
||||
|
||||
}
|
||||
else if (iAttackResult == 1)
|
||||
{
|
||||
SendMessageToPC(oPC, "Clangeddin's Strike Hit!");
|
||||
eDamage1 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, FALSE, 0, 0, 0);
|
||||
//DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget));
|
||||
eDamage2 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, FALSE, 0, 0, 0);
|
||||
//DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget));
|
||||
eDamage3 = GetAttackDamage(oTarget, oPC, oItem, sWeaponBonus, sSpellBonus, 0, 0, FALSE, 0, 0, 0);
|
||||
//DelayCommand(2.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oTarget));
|
||||
eLink1 = EffectLinkEffects(eDamage1, eDamage2);
|
||||
eLink2 = EffectLinkEffects(eLink1, eDamage3);
|
||||
DelayCommand(6.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eLink2, oTarget));
|
||||
}
|
||||
else
|
||||
{
|
||||
SendMessageToPC(oPC, "Clangeddin's Strike Miss!");
|
||||
}
|
||||
AssignCommand(oPC, ActionAttack(oTarget));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user