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.
108 lines
3.7 KiB
Plaintext
108 lines
3.7 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Lasher - Crack of Fate/Doom
|
|
//:: Copyright (c) 2005
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Gives and removes extra attack from PC
|
|
|
|
code "borrowed" from tempest two weapon feats
|
|
|
|
code modified to allow toggling, switching
|
|
between crack of fate/doom
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Flaming_Sword
|
|
//:: Created On: Sept 24, 2005
|
|
//:: Modified: Jan 23, 2006
|
|
//:://////////////////////////////////////////////
|
|
|
|
//compiler would completely crap itself unless this include was here
|
|
#include "prc_alterations"
|
|
|
|
void main()
|
|
{
|
|
object oPC = PRCGetSpellTargetObject();
|
|
//string sMessage = "";
|
|
|
|
int iClassLevel = GetLevelByClass(CLASS_TYPE_LASHER, oPC);
|
|
int nAttacks;
|
|
int nPenalty;
|
|
int nSpellID = GetSpellId();
|
|
int nCrackLevel = GetLocalInt(oPC, "PRC_LASHER_CRACK");
|
|
|
|
|
|
//new toggle code
|
|
PRCRemoveSpellEffects(SPELL_LASHER_CRACK_FATE, oPC, oPC);
|
|
PRCRemoveSpellEffects(SPELL_LASHER_CRACK_DOOM, oPC, oPC);
|
|
|
|
if(GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) != BASE_ITEM_WHIP)
|
|
{
|
|
if(nCrackLevel == 1)
|
|
FloatingTextStringOnCreature("*Crack of Fate Deactivated*", oPC, FALSE);
|
|
else if(nCrackLevel == 2)
|
|
FloatingTextStringOnCreature("*Crack of Doom Deactivated*", oPC, FALSE);
|
|
DeleteLocalInt(oPC, "PRC_LASHER_CRACK");
|
|
SendMessageToPC(oPC, "You must have a whip equipped for this feat to work");
|
|
return;
|
|
}
|
|
|
|
if(nSpellID == SPELL_LASHER_CRACK_FATE)
|
|
nAttacks = 1;
|
|
else if(nSpellID == SPELL_LASHER_CRACK_DOOM)
|
|
nAttacks = 2;
|
|
|
|
if(nAttacks == nCrackLevel) //toggle off, effects removed already
|
|
{
|
|
if(nAttacks == 1)
|
|
FloatingTextStringOnCreature("*Crack of Fate Deactivated*", oPC, FALSE);
|
|
else if(nAttacks == 2)
|
|
FloatingTextStringOnCreature("*Crack of Doom Deactivated*", oPC, FALSE);
|
|
DeleteLocalInt(oPC, "PRC_LASHER_CRACK");
|
|
return;
|
|
}
|
|
else
|
|
{ //apply extra attacks
|
|
nPenalty = nAttacks * 2;
|
|
effect eAttacks = SupernaturalEffect(EffectModifyAttacks(nAttacks));
|
|
effect ePenalty = SupernaturalEffect(EffectAttackDecrease(nPenalty));
|
|
effect eLink = EffectLinkEffects(eAttacks, ePenalty);
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC);
|
|
|
|
if(nAttacks == 1)
|
|
FloatingTextStringOnCreature("*Crack of Fate Activated*", oPC, FALSE);
|
|
else if(nAttacks == 2)
|
|
FloatingTextStringOnCreature("*Crack of Doom Activated*", oPC, FALSE);
|
|
SetLocalInt(oPC, "PRC_LASHER_CRACK", nAttacks);
|
|
}
|
|
|
|
/* old code
|
|
if(!GetHasSpellEffect(SPELL_LASHER_CRACK, oPC) )
|
|
{
|
|
if(GetBaseItemType(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == BASE_ITEM_WHIP)
|
|
{ //apply effects if holding a whip
|
|
if(iClassLevel > 2)
|
|
{
|
|
nAttacks = ((iClassLevel + 2) / 5);
|
|
if(nAttacks > 2)
|
|
nAttacks = 2;
|
|
nPenalty = nAttacks * 2;
|
|
|
|
effect eAttacks = SupernaturalEffect(EffectModifyAttacks(nAttacks));
|
|
effect ePenalty = SupernaturalEffect(EffectAttackDecrease(nPenalty));
|
|
effect eLink = EffectLinkEffects(eAttacks, ePenalty);
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oPC);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
FloatingTextStringOnCreature("*Invalid Weapon. Ability Not Activated!*", oPC, FALSE);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// Removes effects, not too sure if I need this bit
|
|
PRCRemoveSpellEffects(SPELL_LASHER_CRACK, oPC, oPC);
|
|
|
|
}
|
|
*/
|
|
} |