1381 lines
50 KiB
Plaintext
1381 lines
50 KiB
Plaintext
|
|
||
|
effect eVis;
|
||
|
effect eFinal;
|
||
|
|
||
|
// Removes Supernatural Bonuses when set-gear is unequipped
|
||
|
void SD_REMOVE(object oSubraceCharacter);
|
||
|
|
||
|
//Applies Damage Vulernability to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iType = DAMAGE_TYPE_*
|
||
|
// iAmount = nPercentImmunity
|
||
|
void BonusDamageVulnerability(object oPC, int iType, int iAmount);
|
||
|
|
||
|
//Applies Miss Chance Effect to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAmount = 1-100 inclusive
|
||
|
void BonusCTM(object oPC, int iAmount);
|
||
|
void m_BonusCTM(object oPC);
|
||
|
|
||
|
//Applies Bonus Attacks/Round to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAmount = maximum is 5, even with the effect stacked
|
||
|
void BonusAPR(object oPC, int iAmount);
|
||
|
void m_BonusAPR(object oPC);
|
||
|
|
||
|
//Applies Regeneration to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAmount = amount of damage to be regenerated per time interval
|
||
|
void BonusRegen(object oPC, int iAmount);
|
||
|
void m_BonusRegen(object oPC);
|
||
|
|
||
|
//Applies Temporary Hit Points to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAmount = # of Temporary HitPoints to award
|
||
|
void BonusHP(object oPC, int iHP);
|
||
|
|
||
|
//Applies Ability Bonus Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAbility = ABILITY_*
|
||
|
// eg:
|
||
|
// ABILITY_CHARISMA, ABILITY_CONSTITUTION, ABILITY_DEXTERITY
|
||
|
// ABILITY_INTELLIGENCE, ABILITY_STRENGTH, ABILITY_WISDOM
|
||
|
// iAmount = Amount to Increase
|
||
|
void BonusAbility(object oPC, int iAbility, int iAmount);
|
||
|
void m_BonusAbility(object oPC, int iAbility, int iAmount);
|
||
|
|
||
|
//Applies AC Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAmount = Amount to Increase
|
||
|
// iType = AC_*_BONUS
|
||
|
void BonusAC(object oPC, int iAmount, int iType);
|
||
|
void m_BonusAC(object oPC, int iAmount);
|
||
|
|
||
|
//Applies Bonus Movement Speed to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAmount = range 0 through 99
|
||
|
// eg.
|
||
|
// 0 = no change in speed
|
||
|
// 50 = 50% faster
|
||
|
// 99 = almost twice as fast
|
||
|
void BonusSpeed(object oPC, int iAmount);
|
||
|
void m_BonusSpeed(object oPC, int iAmount);
|
||
|
|
||
|
//Applies Attack Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAmount = size of attack bonus
|
||
|
void BonusAttack(object oPC, int iAmount);
|
||
|
void m_BonusAttack(object oPC, int iAmount);
|
||
|
|
||
|
//Applies Damage Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iType = DAMAGE_TYPE_*
|
||
|
// iAmount = DAMAGE_BONUS_*
|
||
|
void BonusDamage(object oPC, int iType, int iAmount);
|
||
|
void m_BonusDamage(object oPC, int iType, int iAmount);
|
||
|
|
||
|
//Applies Immunity Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iType = IMMUNITY_TYPE_*
|
||
|
void BonusImmunity(object oPC, int iType);
|
||
|
void m_BonusImmunity(object oPC, int iType);
|
||
|
|
||
|
//Applies Save Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iType = SAVING_THROW_* (not SAVING_THROW_TYPE_*)
|
||
|
// iAmount = size of the Saving Throw increase
|
||
|
void BonusSave(object oPC, int iType, int iAmount);
|
||
|
void m_BonusSave(object oPC, int iType, int iAmount);
|
||
|
|
||
|
//Applies Save Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iSkill = SKILL_*
|
||
|
// iAmount = size of the skill increase
|
||
|
//* Returns an effect of type EFFECT_TYPE_INVALIDEFFECT if nSkill is invalid.
|
||
|
void BonusSkill(object oPC, int iSkill, int iAmount);
|
||
|
void m_BonusSkill(object oPC, int iSkill, int iAmount);
|
||
|
|
||
|
//Applies Damage Immunity Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iType = DAMAGE_TYPE_*
|
||
|
// iAmount = Percentage of immunity
|
||
|
void BonusDamageImmunity(object oPC, int iType, int iAmount);
|
||
|
void m_BonusDamageImmunity(object oPC, int iType, int iAmount);
|
||
|
|
||
|
//Applies Spell Immunity Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iSpell = SPELL_*
|
||
|
// There is a known bug with this function. There *must* be a parameter specified
|
||
|
// when this is called (even if the desired parameter is SPELL_ALL_SPELLS)
|
||
|
void BonusSpellImmunity(object oPC, int iSpell);
|
||
|
void m_BonusSpellImmunity(object oPC, int iSpell);
|
||
|
|
||
|
//Applies Concealment Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
// iAmount = Percentage > 100
|
||
|
// iType = MISS_CHANCE_TYPE_*
|
||
|
void BonusConcealment(object oPC, int iAmount, int iType);
|
||
|
void m_BonusConcealment(object oPC, int iAmount);
|
||
|
|
||
|
//Applies Ultravision Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
void BonusUltravision(object oPC);
|
||
|
void m_BonusUltravision(object oPC);
|
||
|
|
||
|
//Applies Truseeing Bonus to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
void BonusTruseeing(object oPC);
|
||
|
void m_BonusTruseeing(object oPC);
|
||
|
|
||
|
//Applies Haste to Target
|
||
|
//========================================
|
||
|
// oPC = Target to apply the effect to
|
||
|
void BonusHaste(object oPC);
|
||
|
void m_BonusHaste(object oPC);
|
||
|
|
||
|
//Applies Haste to Target
|
||
|
//========================================
|
||
|
// oPC = Target to send message to
|
||
|
// sMessage = "Subrace Bonus: " + input
|
||
|
void SubMessage(object oPC, string sMessage);
|
||
|
|
||
|
//Applies Damage Reduction to Target
|
||
|
//========================================
|
||
|
// oPC = Target to send message to
|
||
|
// iPwr = Damage Power
|
||
|
// eg:
|
||
|
// DAMAGE_POWER_PLUS_ONE to DAMAGE_POWER_PLUS_TWENTY
|
||
|
// iAmount = Amount of Damage to Soak
|
||
|
void BonusDR(object oPC, int iPwr, int iAmount);
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
void SubMessage(object oPC, string sMessage)
|
||
|
{
|
||
|
SendMessageToPC(oPC, "Subrace Bonus: "+sMessage);
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
//:Ability Wrappers
|
||
|
//:
|
||
|
//:
|
||
|
//:
|
||
|
|
||
|
void BonusDamageVulnerability(object oPC, int iType, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectDamageImmunityDecrease(iType, iAmount)), oPC);
|
||
|
}
|
||
|
|
||
|
void BonusDR(object oPC, int iPwr, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectDamageReduction(iAmount, iPwr, 0)), oPC);
|
||
|
}
|
||
|
|
||
|
void BonusCTM(object oPC, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectMissChance(iAmount)), oPC);
|
||
|
}
|
||
|
|
||
|
void m_BonusCTM(object oPC)
|
||
|
{
|
||
|
SubMessage(oPC, "You can anticipate your enemy's next move with uncanny accuracy");
|
||
|
}
|
||
|
void BonusAPR(object oPC, int iAmount)
|
||
|
{
|
||
|
if (iAmount>5)iAmount=5;
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectModifyAttacks(iAmount)), oPC);
|
||
|
}
|
||
|
void m_BonusAPR(object oPC)
|
||
|
{
|
||
|
SubMessage(oPC, "You attack with more ferocity");
|
||
|
}
|
||
|
void BonusRegen(object oPC, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectRegenerate(iAmount, 6.0)), oPC);
|
||
|
}
|
||
|
void m_BonusRegen(object oPC)
|
||
|
{
|
||
|
SubMessage(oPC, "Your wounds begin to heal themselves");
|
||
|
}
|
||
|
void BonusHP(object oPC, int iHP)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectTemporaryHitpoints(iHP)), oPC);
|
||
|
}
|
||
|
void BonusAbility(object oPC, int iAbility, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectAbilityIncrease(iAbility, iAmount)), oPC);
|
||
|
}
|
||
|
void m_BonusAbility(object oPC, int iAbility, int iAmount)
|
||
|
{
|
||
|
switch (iAbility)
|
||
|
{
|
||
|
case ABILITY_CHARISMA: {SubMessage(oPC, "You feel more talented");}break;
|
||
|
case ABILITY_CONSTITUTION: {SubMessage(oPC, "You feel more stalwart");}break;
|
||
|
case ABILITY_DEXTERITY: {SubMessage(oPC, "You feel more agile");}break;
|
||
|
case ABILITY_INTELLIGENCE: {SubMessage(oPC, "You feel smarter");}break;
|
||
|
case ABILITY_STRENGTH: {SubMessage(oPC, "You feel stronger");}break;
|
||
|
case ABILITY_WISDOM: {SubMessage(oPC, "You feel wiser");}break;
|
||
|
}
|
||
|
}
|
||
|
void BonusAC(object oPC, int iAmount, int iType)
|
||
|
{
|
||
|
if (iAmount<0)iAmount=1;
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectACIncrease(iAmount, iType)), oPC);
|
||
|
}
|
||
|
void m_BonusAC(object oPC, int iAmount)
|
||
|
{
|
||
|
SubMessage(oPC, "AC increased");
|
||
|
}
|
||
|
void BonusSpeed(object oPC, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,SupernaturalEffect
|
||
|
(EffectMovementSpeedIncrease(iAmount)), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusSpeed(object oPC, int iAmount)
|
||
|
{
|
||
|
SubMessage(oPC, "You feel faster");
|
||
|
}
|
||
|
void BonusAttackDecrease(object oPC, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectAttackDecrease(iAmount)), oPC);
|
||
|
|
||
|
}
|
||
|
void BonusAttack(object oPC, int iAmount)
|
||
|
{
|
||
|
if (iAmount<0)iAmount=1;
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectAttackIncrease(iAmount)), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusAttack(object oPC, int iAmount)
|
||
|
{
|
||
|
SubMessage(oPC, "Your melee skill improves");
|
||
|
}
|
||
|
void BonusDamage(object oPC, int iType, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,SupernaturalEffect
|
||
|
(EffectDamageIncrease(iAmount, iType)), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusDamage(object oPC, int iType, int iAmount)
|
||
|
{
|
||
|
|
||
|
SubMessage(oPC, "Your blows are more damaging");
|
||
|
}
|
||
|
void BonusImmunity(object oPC, int iType)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectImmunity(iType)), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusImmunity(object oPC, int iType)
|
||
|
{
|
||
|
|
||
|
switch (iType)
|
||
|
{
|
||
|
case IMMUNITY_TYPE_BLINDNESS: {SubMessage(oPC, "Immunity to blindness");}break;
|
||
|
case IMMUNITY_TYPE_DEATH: {SubMessage(oPC, "You no longer fear death ");}break;
|
||
|
case IMMUNITY_TYPE_DISEASE: {SubMessage(oPC, "You shrug off disease");}break;
|
||
|
case IMMUNITY_TYPE_FEAR: {SubMessage(oPC, "Your fear dissapears");}break;
|
||
|
case IMMUNITY_TYPE_MOVEMENT_SPEED_DECREASE: {SubMessage(oPC, "Immunity to speed decrease");}break;
|
||
|
case IMMUNITY_TYPE_PARALYSIS: {SubMessage(oPC, "Immunity to paralysis");}break;
|
||
|
case IMMUNITY_TYPE_POISON: {SubMessage(oPC, "You drink poison for breakfast");}break;
|
||
|
case IMMUNITY_TYPE_STUN: {SubMessage(oPC, "Immunity to stun");}break;
|
||
|
case IMMUNITY_TYPE_NEGATIVE_LEVEL: {SubMessage(oPC, "Immunity to level drain");}break;
|
||
|
case IMMUNITY_TYPE_ABILITY_DECREASE: {SubMessage(oPC, "Immunity to ability decrease");}break;
|
||
|
case IMMUNITY_TYPE_CURSED: {SubMessage(oPC, "You laugh at curses");}break;
|
||
|
}
|
||
|
}
|
||
|
void BonusSave(object oPC, int iType, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectSavingThrowIncrease(iType, iAmount, SAVING_THROW_TYPE_ALL)), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusSave(object oPC, int iType, int iAmount)
|
||
|
{
|
||
|
switch (iType)
|
||
|
{
|
||
|
case SAVING_THROW_FORT: {SubMessage(oPC, "You feel more fortuitous");}break;
|
||
|
case SAVING_THROW_REFLEX: {SubMessage(oPC, "Your reflexes improve");}break;
|
||
|
case SAVING_THROW_WILL: {SubMessage(oPC, "Your will strengthens");}break;
|
||
|
case SAVING_THROW_TYPE_FEAR: {SubMessage(oPC, "You are more fearless");}break;
|
||
|
case SAVING_THROW_TYPE_DEATH: {SubMessage(oPC, "You are less concerned about death");}break;
|
||
|
}
|
||
|
}
|
||
|
void BonusSkill(object oPC, int iSkill, int iAmount)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectSkillIncrease(iSkill, iAmount)), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusSkill(object oPC, int iSkill, int iAmount)
|
||
|
{
|
||
|
switch (iSkill)
|
||
|
{
|
||
|
case SKILL_CONCENTRATION: {SubMessage(oPC, "Your concentration improves");}break;
|
||
|
case SKILL_DISCIPLINE: {SubMessage(oPC, "You feel more disciplined");}break;
|
||
|
case SKILL_HEAL: {SubMessage(oPC, "Your healing skills improve");}break;
|
||
|
case SKILL_HIDE: {SubMessage(oPC, "You are able to hide better");}break;
|
||
|
case SKILL_LISTEN: {SubMessage(oPC, "Your hearing improves");}break;
|
||
|
case SKILL_MOVE_SILENTLY: {SubMessage(oPC, "Your footsteps become quieter");}break;
|
||
|
case SKILL_SPELLCRAFT: {SubMessage(oPC, "Your knowledge of magic improves");}break;
|
||
|
case SKILL_TUMBLE: {SubMessage(oPC, "You can tumble more proficiently");}break;
|
||
|
case SKILL_TAUNT: {SubMessage(oPC, "Your antagonistic abilities improve");}break;
|
||
|
case SKILL_USE_MAGIC_DEVICE: {SubMessage(oPC, "Your understanding of magic devices increases");}break;
|
||
|
}
|
||
|
}
|
||
|
void BonusDamageImmunity(object oPC, int iType, int iAmount)
|
||
|
{
|
||
|
if (iAmount<0)iAmount=1;
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectDamageImmunityIncrease(iType, iAmount)), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusDamageImmunity(object oPC, int iType, int iAmount)
|
||
|
{
|
||
|
switch (iType)
|
||
|
{
|
||
|
case DAMAGE_TYPE_ACID: {SubMessage(oPC, IntToString(iAmount)+"% acid damage immunity increase");}break;
|
||
|
case DAMAGE_TYPE_BLUDGEONING: {SubMessage(oPC, IntToString(iAmount)+"% bludgeoning damage immunity increase");}break;
|
||
|
case DAMAGE_TYPE_COLD: {SubMessage(oPC, IntToString(iAmount)+"% cold immunity damage increase");}break;
|
||
|
case DAMAGE_TYPE_MAGICAL: {SubMessage(oPC, IntToString(iAmount)+"% magical damage immunity increase");}break;
|
||
|
case DAMAGE_TYPE_ELECTRICAL: {SubMessage(oPC, IntToString(iAmount)+"% electrical damage immunity increase");}break;
|
||
|
case DAMAGE_TYPE_SLASHING: {SubMessage(oPC, IntToString(iAmount)+"% slashing damage immunity increase");}break;
|
||
|
case DAMAGE_TYPE_PIERCING: {SubMessage(oPC, IntToString(iAmount)+"% piercing damage immunity increase");}break;
|
||
|
case DAMAGE_TYPE_FIRE: {SubMessage(oPC, IntToString(iAmount)+"% fire damage immunity increase");}break;
|
||
|
case DAMAGE_TYPE_NEGATIVE: {SubMessage(oPC, IntToString(iAmount)+"% negative damage immunity increase");}break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void BonusSpellImmunity(object oPC, int iSpell)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectSpellImmunity(iSpell)), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusSpellImmunity(object oPC, int iSpell)
|
||
|
{
|
||
|
switch (iSpell)
|
||
|
{
|
||
|
case SPELL_DOOM: {SubMessage(oPC, "Immune to spell: Doom");}break;
|
||
|
case SPELL_DAZE: {SubMessage(oPC, "Immune to spell: Daze");}break;
|
||
|
case SPELL_STORM_OF_VENGEANCE: {SubMessage(oPC, "Immune to spell: Storm of Vengeance");}break;
|
||
|
case SPELL_HARM: {SubMessage(oPC, "Immune to spell: Harm");}break;
|
||
|
}
|
||
|
}
|
||
|
void BonusConcealment(object oPC, int iAmount, int iType)
|
||
|
{
|
||
|
int eVis;
|
||
|
if (iAmount>50)eVis = VFX_DUR_ETHEREAL_VISAGE;
|
||
|
else eVis = VFX_DUR_GHOSTLY_VISAGE_NO_SOUND;
|
||
|
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectConcealment(iAmount, iType)), oPC);
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectVisualEffect(eVis)), oPC);
|
||
|
}
|
||
|
void m_BonusConcealment(object oPC, int iAmount)
|
||
|
{
|
||
|
SubMessage(oPC, "You partially fade from sight");
|
||
|
}
|
||
|
void BonusUltravision(object oPC)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectUltravision()), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusUltravision(object oPC)
|
||
|
{
|
||
|
SubMessage(oPC, "Your vision becomes all penetrating");
|
||
|
}
|
||
|
void BonusTruseeing(object oPC)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectTrueSeeing()), oPC);
|
||
|
|
||
|
}
|
||
|
void m_BonusTruseeing(object oPC)
|
||
|
{
|
||
|
SubMessage(oPC, "Your vision penetrates even the thickest of vales");
|
||
|
}
|
||
|
void BonusHaste(object oPC)
|
||
|
{
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,
|
||
|
SupernaturalEffect(EffectHaste()), oPC);
|
||
|
}
|
||
|
void m_BonusHaste(object oPC)
|
||
|
{
|
||
|
SubMessage(oPC, "The world around you somehow seems slower");
|
||
|
}
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
//:General Utilities
|
||
|
//:
|
||
|
//:
|
||
|
//:
|
||
|
|
||
|
void UnSet(object oPC, effect eSubraceEffect)
|
||
|
{
|
||
|
if((GetEffectCreator(eSubraceEffect) == GetModule()) &&
|
||
|
(GetEffectSubType(eSubraceEffect) == SUBTYPE_SUPERNATURAL))
|
||
|
{
|
||
|
RemoveEffect(oPC, eSubraceEffect);
|
||
|
}
|
||
|
}
|
||
|
void SD_REMOVE(object oPC)
|
||
|
{
|
||
|
effect eSpeed = SupernaturalEffect(EffectMovementSpeedIncrease(80));
|
||
|
effect eFX = GetFirstEffect(oPC);
|
||
|
while(GetIsEffectValid(eFX))
|
||
|
{
|
||
|
UnSet(oPC, eFX);
|
||
|
eFX = GetNextEffect(oPC);
|
||
|
}
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSpeed, oPC);
|
||
|
}
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
//:Set Specifics
|
||
|
//:
|
||
|
//:
|
||
|
//:
|
||
|
//:
|
||
|
|
||
|
///////////////////////////////
|
||
|
//:Dorian's Battlegear
|
||
|
//:
|
||
|
|
||
|
void DoriansBattlegearEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_IMP_EVIL_HELP);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_STRENGTH, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Dorian's Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_STRENGTH, 4));
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_STRENGTH, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_FIRE, DAMAGE_BONUS_1d4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Dorian's Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_STRENGTH, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_FIRE, DAMAGE_BONUS_1d4));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_STRENGTH, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_FIRE, DAMAGE_BONUS_1d4));
|
||
|
DelayCommand(0.1, BonusAPR(oPC, 2));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Dorian's Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void DoriansBattlegearUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Set Dorian's Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_STRENGTH, 4);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_STRENGTH, 4);
|
||
|
FloatingTextStringOnCreature("* Dorian's Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_STRENGTH, 4);
|
||
|
BonusDamage(oPC, DAMAGE_TYPE_FIRE, DAMAGE_BONUS_1d4);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_STRENGTH, 4);
|
||
|
BonusDamage(oPC, DAMAGE_TYPE_FIRE, DAMAGE_BONUS_1d4);
|
||
|
FloatingTextStringOnCreature("* Dorian's Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
///////////////////////////////
|
||
|
//:Mystra's Rainment
|
||
|
//:
|
||
|
|
||
|
void MystrasRainmentEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_FNF_PWKILL);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_INTELLIGENCE, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Mystra's Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_INTELLIGENCE, 4));
|
||
|
} break;
|
||
|
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_INTELLIGENCE, 4));
|
||
|
DelayCommand(0.1, BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Mystra's Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_INTELLIGENCE, 4));
|
||
|
DelayCommand(0.1, BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_INTELLIGENCE, 4));
|
||
|
DelayCommand(0.1, BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL));
|
||
|
DelayCommand(0.1, BonusHaste(oPC));
|
||
|
DelayCommand(0.1, BonusImmunity(oPC, IMMUNITY_TYPE_CRITICAL_HIT));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Mystra's Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void MystrasRainmentUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Mystra's Set Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_INTELLIGENCE, 4);
|
||
|
}; break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_INTELLIGENCE, 4);
|
||
|
FloatingTextStringOnCreature("* Mystra's Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_INTELLIGENCE, 4);
|
||
|
BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL);
|
||
|
}; break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_INTELLIGENCE, 4);
|
||
|
BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL);
|
||
|
FloatingTextStringOnCreature("* Mystra's Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
///////////////////////////////
|
||
|
//:Thera's Vestments
|
||
|
//:
|
||
|
|
||
|
void TherasVestmentsEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_IMP_CHARM);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Thera's Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
} break;
|
||
|
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
DelayCommand(0.1, BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Thera's Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
DelayCommand(0.1, BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
DelayCommand(0.1, BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL));
|
||
|
DelayCommand(0.1, BonusHaste(oPC));
|
||
|
DelayCommand(0.1, BonusImmunity(oPC, IMMUNITY_TYPE_CRITICAL_HIT));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Thera's Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void TherasVestmentsUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Thera's Set Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_CHARISMA, 4);
|
||
|
}; break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_CHARISMA, 4);
|
||
|
FloatingTextStringOnCreature("* Thera's Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_CHARISMA, 4);
|
||
|
BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL);
|
||
|
}; break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_INTELLIGENCE, 4);
|
||
|
BonusConcealment(oPC, 30, MISS_CHANCE_TYPE_NORMAL);
|
||
|
FloatingTextStringOnCreature("* Thera's Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
///////////////////////////////
|
||
|
//:Shinobi's Garb
|
||
|
//:
|
||
|
|
||
|
void ShinobisGarbEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_IMP_DEATH_WARD);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Shinobi's Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_DEXTERITY, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Shinobi's Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_DEXTERITY, 4));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_DEXTERITY, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_PIERCING, DAMAGE_BONUS_1d4));
|
||
|
DelayCommand(0.1, BonusConcealment(oPC, 60, MISS_CHANCE_TYPE_NORMAL));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Shinobi's Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void ShinobisGarbUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Shinobi's Set Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
FloatingTextStringOnCreature("* Shinobi's Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_DEXTERITY, 4));
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 50));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_DEXTERITY, 4));
|
||
|
FloatingTextStringOnCreature("* Shinobi's Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
}
|
||
|
///////////////////////////////
|
||
|
//:Benedict's Herald
|
||
|
//:
|
||
|
|
||
|
void BenedictsHeraldEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_IMP_LIGHTNING_M);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Benedict's Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_DIVINE, DAMAGE_BONUS_1d4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Benedict's Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_DIVINE, DAMAGE_BONUS_1d4));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_DIVINE, DAMAGE_BONUS_1d4));
|
||
|
DelayCommand(0.1, BonusImmunity(oPC, IMMUNITY_TYPE_NEGATIVE_LEVEL));
|
||
|
DelayCommand(0.1, BonusHaste(oPC));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Benedict's Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void BenedictsHeraldUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Benedict's Set Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
FloatingTextStringOnCreature("* Benedict's Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_DIVINE, DAMAGE_BONUS_1d4));
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_DIVINE, DAMAGE_BONUS_1d4));
|
||
|
FloatingTextStringOnCreature("* Benedict's Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
///////////////////////////////
|
||
|
//:Armor of Divinity
|
||
|
//:
|
||
|
|
||
|
void ArmorOfDivinityEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_IMP_GOOD_HELP);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Zealot's Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_SLASHING, DAMAGE_BONUS_1d4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Zealot's Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_SLASHING, DAMAGE_BONUS_1d4));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CHARISMA, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_SLASHING, DAMAGE_BONUS_1d4));
|
||
|
DelayCommand(0.1, BonusAPR(oPC, 1));
|
||
|
DelayCommand(0.1, BonusAttack(oPC, 2));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Zealot's Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void ArmorOfDivinityUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Set Zealot's Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_STRENGTH, 4);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_STRENGTH, 4);
|
||
|
FloatingTextStringOnCreature("* Zealot's Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_STRENGTH, 4);
|
||
|
BonusDamage(oPC, DAMAGE_TYPE_SLASHING, DAMAGE_BONUS_1d4);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_STRENGTH, 4);
|
||
|
BonusDamage(oPC, DAMAGE_TYPE_SLASHING, DAMAGE_BONUS_1d4);
|
||
|
FloatingTextStringOnCreature("* Zealot's Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
///////////////////////////////
|
||
|
//:Soothsayer's Regalia
|
||
|
//:
|
||
|
|
||
|
void SoothsayersRegaliaEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Oracle's Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
} break;
|
||
|
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 40));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Oracle's Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 40));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 40));
|
||
|
DelayCommand(0.1, BonusHaste(oPC));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_ELECTRICAL, DAMAGE_BONUS_1d4));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Oracle's Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void SoothsayersRegaliaUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Oracle's Set Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_WISDOM, 4);
|
||
|
}; break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_WISDOM, 4);
|
||
|
FloatingTextStringOnCreature("* Oracle's Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_WISDOM, 4);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 40));
|
||
|
}; break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
BonusAbility(oPC, ABILITY_WISDOM, 4);
|
||
|
DelayCommand(0.1, BonusSpeed(oPC, 40));
|
||
|
FloatingTextStringOnCreature("* Oracle's Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
///////////////////////////////
|
||
|
//:Robes of Enlightenment
|
||
|
//:
|
||
|
|
||
|
void RobesOfEnlightenmentEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_FNF_SCREEN_SHAKE);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Trancendent Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusDR(oPC, 5, DAMAGE_POWER_PLUS_TEN));
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusDR(oPC, 5, DAMAGE_POWER_PLUS_TEN));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Trancendent Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusDR(oPC, 5, DAMAGE_POWER_PLUS_TEN));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusDR(oPC, 5, DAMAGE_POWER_PLUS_TEN));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
DelayCommand(0.1, BonusDamage(oPC, DAMAGE_TYPE_SONIC, DAMAGE_BONUS_1d4));
|
||
|
DelayCommand(0.1, BonusRegen(oPC, 4));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Trancendent Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void RobesOfEnlightenmentUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Trancendent Set Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusDR(oPC, 5, DAMAGE_POWER_PLUS_TEN));
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusDR(oPC, 5, DAMAGE_POWER_PLUS_TEN));
|
||
|
FloatingTextStringOnCreature("* Trancendent Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusDR(oPC, 5, DAMAGE_POWER_PLUS_TEN));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusDR(oPC, 5, DAMAGE_POWER_PLUS_TEN));
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_WISDOM, 4));
|
||
|
FloatingTextStringOnCreature("* Trancendent Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
///////////////////////////////
|
||
|
//:Vestments of Rage
|
||
|
//:barbarian set
|
||
|
|
||
|
void VestmentsofRageEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
|
||
|
eFinal = EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1: {} break;
|
||
|
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Conan's Set Bonus I Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
} break;
|
||
|
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
DelayCommand(0.1, BonusDR(oPC, DAMAGE_POWER_PLUS_TEN, 10));
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Conan's Set Bonus II Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
DelayCommand(0.1, BonusDR(oPC, DAMAGE_POWER_PLUS_TEN, 10));
|
||
|
} break;
|
||
|
case 6:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
DelayCommand(0.1, BonusDR(oPC, DAMAGE_POWER_PLUS_TEN, 10));
|
||
|
DelayCommand(0.1, BonusHaste(oPC));
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eFinal, oPC);
|
||
|
if (iFlag==0)FloatingTextStringOnCreature("* Conan's Set Completion Bonus Applied *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
} break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
//////////////////////////////////////////////////////
|
||
|
void VestmentsofRageUnEquip(object oPC, int iPieces, int iFlag)
|
||
|
{
|
||
|
eVis = EffectVisualEffect(VFX_FNF_LOS_EVIL_10);
|
||
|
|
||
|
switch (iPieces)
|
||
|
{
|
||
|
case 1:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
FloatingTextStringOnCreature("* Conan's Set Bonus I Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
case 2:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
}; break;
|
||
|
case 3:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
FloatingTextStringOnCreature("* Conan's Set Bonus II Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
case 4:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
DelayCommand(0.1, BonusDR(oPC, DAMAGE_POWER_PLUS_TEN, 10));
|
||
|
}; break;
|
||
|
case 5:
|
||
|
{
|
||
|
SD_REMOVE(oPC);
|
||
|
DelayCommand(0.1, BonusAbility(oPC, ABILITY_CONSTITUTION, 6));
|
||
|
DelayCommand(0.1, BonusDR(oPC, DAMAGE_POWER_PLUS_TEN, 10));
|
||
|
FloatingTextStringOnCreature("* Conan's Set Completion Bonus Lost *", oPC);
|
||
|
if (iFlag==0)ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
||
|
}; break;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
//:Reapply set bonuses after death
|
||
|
//:
|
||
|
//:
|
||
|
//:
|
||
|
|
||
|
void ApplySetBonus(object oPC)
|
||
|
{
|
||
|
string sID, sSetName;
|
||
|
int iPieces;
|
||
|
object oItem;
|
||
|
|
||
|
sID = "Dorian's Battlegear_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)DoriansBattlegearEquip(oPC, iPieces, 1);
|
||
|
sID = "Mystra's Rainment_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)MystrasRainmentEquip(oPC, iPieces, 1);
|
||
|
sID = "Thera's Vestments_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)TherasVestmentsEquip(oPC, iPieces, 1);
|
||
|
sID = "Shinobi's Garb_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)ShinobisGarbEquip(oPC, iPieces, 1);
|
||
|
sID = "Benedict's Herald_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)BenedictsHeraldEquip(oPC, iPieces, 1);
|
||
|
sID = "Armor of Divinity_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)ArmorOfDivinityEquip(oPC, iPieces, 1);
|
||
|
sID = "Soothsayer's Regalia_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)SoothsayersRegaliaEquip(oPC, iPieces, 1);
|
||
|
sID = "Robes of Enlightenment_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)RobesOfEnlightenmentEquip(oPC, iPieces, 1);
|
||
|
sID = "Vestments of Rage_equ";
|
||
|
iPieces = GetLocalInt(oPC, sID);
|
||
|
if (iPieces>0)VestmentsofRageEquip(oPC, iPieces, 1);
|
||
|
}
|
||
|
|
||
|
|
||
|
///////////////////////
|
||
|
//: For Test Compiling
|
||
|
//: void main(){}
|
||
|
|
||
|
|