forked from Jaysyn/PRC8
65 lines
2.6 KiB
Plaintext
65 lines
2.6 KiB
Plaintext
// The error code 5 prevention entry. Comment out or uncomment as necessary.
|
|
//Part Deux, Primogenitor 05/07/05
|
|
//const int COMPILER_BREAKS_ON_ME_OR_NOT_AGAIN = 0xffffffff;
|
|
|
|
//:://////////////////////////////////////////////
|
|
//:: FileName: "ss_ep_alliedmart"
|
|
/* Purpose: Allied Martyr - The subject of this spell willingly allows all
|
|
damage suffered by the caster to be transfered to the subject.
|
|
NOTE: It is ASSUMED that any NPC partymember is automatically willing.
|
|
Other party members who are actual players will have a conversation
|
|
pop up where they are asked if they are willing to let it happen.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Boneshank
|
|
//:: Last Updated On: March 12, 2004
|
|
//:://////////////////////////////////////////////
|
|
#include "prc_alterations"
|
|
#include "inc_epicspells"
|
|
#include "inc_dispel"
|
|
//#include "x2_inc_spellhook"
|
|
|
|
void main()
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_CONJURATION);
|
|
|
|
if (!X2PreSpellCastCode())
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
return;
|
|
}
|
|
if (GetCanCastSpell(OBJECT_SELF, SPELL_EPIC_AL_MART))
|
|
{
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
// Twice per round, for 20 hours.
|
|
int nDuration = FloatToInt(HoursToSeconds(20) / 3);
|
|
// Is the target an ally (in the caster's party)?
|
|
effect eVis = EffectVisualEffect(VFX_IMP_HOLY_AID);
|
|
if (GetFactionEqual(oTarget, OBJECT_SELF))
|
|
{
|
|
SetLocalObject(oTarget, "oAllyForMyMartyrdom", OBJECT_SELF);
|
|
SetLocalString(oTarget,
|
|
"sAllyForMyMartyrdom", GetName(OBJECT_SELF));
|
|
SetLocalInt(oTarget, "nTimeForMartyrdomFor", nDuration);
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
|
|
SPApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
|
|
// Is the party member another player?
|
|
if (GetIsPC(oTarget))
|
|
{
|
|
//We have to get the player's permission for this.
|
|
// A "Yes" from the player will use ActionTaken to run script.
|
|
AssignCommand(oTarget, ActionStartConversation(OBJECT_SELF,
|
|
"ss_alliedmartyr", TRUE, FALSE));
|
|
}
|
|
// The party member is NOT a player.
|
|
else
|
|
{
|
|
ExecuteScript("run_all_martyr", oTarget);
|
|
}
|
|
|
|
}
|
|
}
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
}
|