Battledale_PRC8/_module/nss/nk_fp_polyimp.nss
Jaysyn904 7b9e44ebbb Initial upload
Initial upload.  PRC8 has been added.  Module compiles, PRC's default AI & treasure scripts have been integrated.  Started work on top hak for SLA / Ability / Scripting modifications.
2024-03-11 23:44:08 -04:00

41 lines
2.0 KiB
Plaintext

void main()
{
int nUser = GetUserDefinedEventNumber();
if(nUser == 1001) //POLYMORPH
{
int nCount = 1;
object oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, nCount);
int nLever1 = GetLocalInt(OBJECT_SELF, "NK_FP_POLYLEVER1");
int nLever2 = GetLocalInt(OBJECT_SELF, "NK_FP_POLYLEVER2");
if ((nLever1==1) && (nLever2==1))
{
float fDuration = 300.0;
effect eImp = EffectPolymorph(POLYMORPH_TYPE_IMP);
effect eVisual = EffectVisualEffect(VFX_IMP_LIGHTNING_M ,FALSE);
effect eBeam1 = EffectBeam(VFX_BEAM_LIGHTNING, GetNearestObjectByTag("NK_FP_POLYBRAZIER", OBJECT_SELF, 1), BODY_NODE_CHEST, FALSE);
effect eBeam2 = EffectBeam(VFX_BEAM_LIGHTNING, GetNearestObjectByTag("NK_FP_POLYBRAZIER", OBJECT_SELF, 2), BODY_NODE_CHEST, FALSE);
SetLocalObject(GetModule(), "NK_FP_POLY_ENEMY", OBJECT_SELF);
while (oPC != OBJECT_INVALID)
{
if (GetLocalInt(oPC, "NK_FP_POLYME") == 1)
{
DelayCommand(1.5, AssignCommand(OBJECT_SELF, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eImp, oPC, fDuration)));
DelayCommand(1.5, AssignCommand(OBJECT_SELF, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oPC)));
AssignCommand(OBJECT_SELF, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam1, oPC, 2.0));
AssignCommand(OBJECT_SELF, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam2, oPC, 2.0));
SetStandardFactionReputation(STANDARD_FACTION_HOSTILE , 100, oPC);
CreateItemOnObject("nk_fp_poly", oPC);
object oGem = GetItemPossessedBy(oPC, "NK_FP_POLY");
DelayCommand (fDuration+2.0, AssignCommand(OBJECT_SELF, ActionTakeItem(oGem, oPC)));
}
nCount++;
oPC = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, OBJECT_SELF, nCount);
}
}
}
}