SKELIES!!
This commit is contained in:
parent
aba81d8b83
commit
b236c6d871
Binary file not shown.
Binary file not shown.
@ -6,7 +6,125 @@
|
||||
*/
|
||||
//:://////////////////////////////////////////////////
|
||||
|
||||
#include "NW_I0_GENERIC"
|
||||
#include "nw_i0_plot"
|
||||
#include "rd_level"
|
||||
#include "inc_sqlite_time"
|
||||
|
||||
void ReallyEquipItemInSlot(object oNPC, object oItem, int nSlot);
|
||||
|
||||
void main()
|
||||
{
|
||||
ExecuteScript("prc_npc_spawn", OBJECT_SELF);
|
||||
}
|
||||
//:: Initialize Major Variables
|
||||
effect eVFX;
|
||||
|
||||
int nTotalPCs;
|
||||
int nTotalPCLevel;
|
||||
int nAveragePCLevel;
|
||||
|
||||
string sCurrentDate = SQLite_GetSystemDate();
|
||||
string sMonthDay = GetSubString(sCurrentDate, 0, 5);
|
||||
|
||||
object oArea = GetArea(OBJECT_SELF);
|
||||
object oSkelly;
|
||||
object oPC = GetFirstObjectInArea(oArea);
|
||||
|
||||
ExecuteScript("prc_npc_spawn", OBJECT_SELF);
|
||||
|
||||
//: Don't spawn skeletons from skeletons
|
||||
if (GetResRef(OBJECT_SELF) == "nw_skeleton")
|
||||
return;
|
||||
|
||||
//:: Get average PC level for area
|
||||
//:: Cycle through PCs in Area
|
||||
|
||||
while (oPC != OBJECT_INVALID)
|
||||
{
|
||||
if (GetIsPC(oPC) == TRUE)
|
||||
{
|
||||
nTotalPCs++;
|
||||
nTotalPCLevel = nTotalPCLevel + GetHitDice(oPC);
|
||||
}
|
||||
|
||||
oPC = GetNextObjectInArea(oArea);
|
||||
}
|
||||
|
||||
if (nTotalPCs > 0)
|
||||
{
|
||||
nAveragePCLevel = nTotalPCLevel / nTotalPCs;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
nAveragePCLevel = 3;
|
||||
}
|
||||
|
||||
//:: Only active during Halloween week.
|
||||
if ((sMonthDay == "10/24") ||
|
||||
(sMonthDay == "10/25") ||
|
||||
(sMonthDay == "10/26") ||
|
||||
(sMonthDay == "10/27") ||
|
||||
(sMonthDay == "10/28") ||
|
||||
(sMonthDay == "10/29") ||
|
||||
(sMonthDay == "10/30") ||
|
||||
(sMonthDay == "10/31") ||
|
||||
(sMonthDay == "11/01"))
|
||||
{
|
||||
//:: 50% chance to spawn
|
||||
if ( Random(100) < 50 )
|
||||
{
|
||||
//:: Spawn Skeleton.
|
||||
eVFX = EffectVisualEffect(VFX_IMP_EVIL_HELP);
|
||||
oSkelly = CreateObject(OBJECT_TYPE_CREATURE, "nw_skeleton", GetLocation(OBJECT_SELF));
|
||||
LevelMob(oSkelly, nAveragePCLevel);
|
||||
|
||||
//:: Assign Weapon
|
||||
int nResult = d6(1);
|
||||
int nStackSize = 1; // Create 1 items;
|
||||
string sItem;
|
||||
|
||||
if (nResult == 1)
|
||||
{
|
||||
sItem = "nw_wplhb001"; //:: Halberd
|
||||
}
|
||||
else if(nResult == 2)
|
||||
{
|
||||
sItem = "nw_wplsc001"; //:: Scythe
|
||||
}
|
||||
else if(nResult == 3)
|
||||
{
|
||||
sItem = "nw_wplss001"; //:: Spear
|
||||
}
|
||||
else if(nResult ==4)
|
||||
{
|
||||
sItem = "nw_wblfh001"; //:: Heavy Flail
|
||||
}
|
||||
else if(nResult == 5)
|
||||
{
|
||||
sItem = "nw_wswgs001"; //:: Greatsword
|
||||
}
|
||||
else
|
||||
|
||||
sItem = "nw_waxgr001"; //:: Greataxe
|
||||
|
||||
object oWeapon = CreateItemOnObject(sItem, oSkelly, nStackSize);
|
||||
ReallyEquipItemInSlot(oSkelly, oWeapon, INVENTORY_SLOT_RIGHTHAND);
|
||||
|
||||
//:: Apply VFX & Attack
|
||||
AssignCommand(oSkelly, DetermineCombatRound(OBJECT_SELF));
|
||||
DelayCommand(0.3, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oSkelly));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ReallyEquipItemInSlot(object oNPC, object oItem, int nSlot)
|
||||
{
|
||||
if (GetItemInSlot(nSlot) != oItem)
|
||||
{
|
||||
ClearAllActions();
|
||||
ActionEquipItem(oItem, nSlot);
|
||||
DelayCommand(1.0, ReallyEquipItemInSlot(oNPC, oItem, nSlot));
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user