Dragonmarsh Lowlands cleanup

Dragonmarsh Lowlands cleanup, this area now spawns per PnP.  Made new, dire wolf, monstrous spider, troll, patrol sheriff, patrol footman, patrol knight, displacer beast, dire boat, dire rat & outlaw creatures.  Added several new ProjectQ & CEP models for the above creatures.  Initial pass on Level 9: Displacer Beast Lair.  Added missing portraits to portraits.2da.
This commit is contained in:
Jaysyn904
2022-01-16 01:28:18 -05:00
parent 24b6765aac
commit a5138d8cd7
113 changed files with 127872 additions and 28294 deletions

View File

@@ -0,0 +1,104 @@
//::///////////////////////////////////////////////
//:: Custom User Defined Event
//:: userdef_troll
//:: Copyright (c) 2022 Project RATDOG
//:://////////////////////////////////////////////
/*
*/
//:://////////////////////////////////////////////
//:: Created By: Gordon Bergstrom
//:: Created On: Dec 4, 2002
//:://////////////////////////////////////////////
//:: Modified By: Jaysyn
//:: Modified On: 2022/01/15
//:://////////////////////////////////////////////
void main()
{
int nUser = GetUserDefinedEventNumber();
int nFireDamage = 0;
int nAcidDamage = 0;
effect eSleep = EffectSleep();
effect eSlow = EffectSlow();
if(nUser == 1001) //HEARTBEAT
{
if(GetLocalInt(OBJECT_SELF, "nSubDual") > 0)
{
SetLocalInt(OBJECT_SELF, "nSubDual", GetLocalInt(OBJECT_SELF, "nSubDual") - 5);
if(GetLocalInt(OBJECT_SELF, "nSubDual") < GetCurrentHitPoints(OBJECT_SELF))
RemoveEffect(OBJECT_SELF, eSleep);
//SpeakString("My Subdual is now " + IntToString(GetLocalInt(OBJECT_SELF, "nSubDual")));
}
}
else if(nUser == 1002) // PERCEIVE
{
}
else if(nUser == 1003) // END OF COMBAT
{
}
else if(nUser == 1004) // ON DIALOGUE
{
}
else if(nUser == 1005) // ATTACKED
{
}
else if(nUser == 1006) // DAMAGED
{
int nTotalDamage = GetTotalDamageDealt();
if(GetDamageDealtByType(DAMAGE_TYPE_FIRE) > 0)
nFireDamage = GetDamageDealtByType(DAMAGE_TYPE_FIRE);
if(GetDamageDealtByType(DAMAGE_TYPE_ACID) > 0)
nAcidDamage = GetDamageDealtByType(DAMAGE_TYPE_ACID);
int nSubDmg = nTotalDamage - (nFireDamage + nAcidDamage);
int nActDmg = nFireDamage + nAcidDamage;
effect eHeal = EffectHeal(nSubDmg);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, OBJECT_SELF, 0.0f);
if(GetLocalInt(OBJECT_SELF, "nSubDual") <= GetCurrentHitPoints(OBJECT_SELF))
SetLocalInt(OBJECT_SELF, "nSubDual", nSubDmg + GetLocalInt(OBJECT_SELF, "nSubDual"));
int nSD = GetLocalInt(OBJECT_SELF, "nSubDual");
int nCH = GetCurrentHitPoints(OBJECT_SELF);
/*SpeakString("SD: " + IntToString(nSD));
SpeakString("CH: " + IntToString(nCH));*/
if(nSD > nCH)
{
//SpeakString("I am unconscious!");
SetIsDestroyable(FALSE, TRUE, TRUE);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSleep, OBJECT_SELF, 6.0f);
}
else if(nSD == nCH)
{
//SpeakString("I am staggered!");
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSlow, OBJECT_SELF, 6.0f);
}
}
else if(nUser == 1007) // DEATH
{
SetIsDestroyable(TRUE, FALSE, FALSE);
}
else if(nUser == 1008) // DISTURBED
{
}
//:: Execute the PRC NPC OnUserDef script
ExecuteScript("prc_npc_userdef", OBJECT_SELF);
}