Initial commit. Updated release archive.
This commit is contained in:
60
_module/nss/i420_cr_nyth_dmg.nss
Normal file
60
_module/nss/i420_cr_nyth_dmg.nss
Normal file
@@ -0,0 +1,60 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Invizible420's Nyth
|
||||
// Created On: 3/15/03
|
||||
//
|
||||
// Script Name: i420_cr_nyth_dmg
|
||||
// Nyth OnDamaged Event
|
||||
// Bug Reports: Digiddy777@yahoo.com
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Checks last damage dealt to oNyth for fire/electrical damage, if
|
||||
// there has been fire/electical damage, heal that damage and then
|
||||
// give temporary hitpoints for that amount, if the tempHP
|
||||
// has exceeded the total HP
|
||||
#include "prc_inc_racial"
|
||||
|
||||
void main()
|
||||
{
|
||||
if (GetLastSpell() == SPELL_MAGIC_MISSILE) {
|
||||
int iMMDmg = GetDamageDealtByType(DAMAGE_TYPE_MAGICAL);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(iMMDmg),OBJECT_SELF);
|
||||
}
|
||||
int iFDmg = GetDamageDealtByType(DAMAGE_TYPE_FIRE);
|
||||
int iEDmg = GetDamageDealtByType(DAMAGE_TYPE_ELECTRICAL);
|
||||
if (iFDmg > 0) {
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(iFDmg),OBJECT_SELF);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectTemporaryHitpoints(iFDmg*10),OBJECT_SELF);
|
||||
}
|
||||
if (iEDmg > 0) {
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(iEDmg),OBJECT_SELF);
|
||||
ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectTemporaryHitpoints(iEDmg*10),OBJECT_SELF);
|
||||
}
|
||||
if (GetCurrentHitPoints(OBJECT_SELF) > 60) {
|
||||
if (GetLocalInt(OBJECT_SELF,"SPAWNED_ONCE") != 1) {
|
||||
SendMessageToPC(GetLastDamager(),"The "+GetName(OBJECT_SELF)+" fissures into two.");
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_FROST_L),GetLocation(OBJECT_SELF));
|
||||
|
||||
// Loop through all the living creatures in the in (30 ft radius) apply
|
||||
// visual light effects, and shoot magic missles at the targets
|
||||
object oMMTarget;
|
||||
oMMTarget = GetFirstObjectInShape(SHAPE_SPHERE,30.0,GetLocation(OBJECT_SELF),FALSE,OBJECT_TYPE_CREATURE);
|
||||
ClearAllActions(TRUE);
|
||||
while (oMMTarget != OBJECT_INVALID) {
|
||||
if (MyPRCGetRacialType(oMMTarget) != RACIAL_TYPE_UNDEAD) {
|
||||
ActionCastSpellAtObject(SPELL_MAGIC_MISSILE,oMMTarget,METAMAGIC_ANY,TRUE,Random(2),PROJECTILE_PATH_TYPE_DEFAULT,TRUE);
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_FROST_L),GetLocation(OBJECT_SELF));
|
||||
AssignCommand(OBJECT_SELF,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(d4(1)+1*Random(3)+1),oMMTarget));
|
||||
}
|
||||
oMMTarget = GetNextObjectInShape(SHAPE_SPHERE,30.0,GetLocation(OBJECT_SELF),FALSE,OBJECT_TYPE_CREATURE);
|
||||
}
|
||||
|
||||
DestroyObject(OBJECT_SELF,0.4);
|
||||
DelayCommand(0.75,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_FROST_L),GetLocation(OBJECT_SELF)));
|
||||
DelayCommand(1.25,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_BREACH),GetLocation(OBJECT_SELF)));
|
||||
CreateObject(OBJECT_TYPE_CREATURE, "i420_cr_nyth2",GetLocation(OBJECT_SELF));
|
||||
CreateObject(OBJECT_TYPE_CREATURE, "i420_cr_nyth2",GetLocation(OBJECT_SELF));
|
||||
SetLocalInt(OBJECT_SELF,"SPAWNED_ONCE",1);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user