Added NWN Dark Sun module contents
Added NWN Dark Sun module contents.
This commit is contained in:
121
nwnds_module/ds_cw_ondisturb.nss
Normal file
121
nwnds_module/ds_cw_ondisturb.nss
Normal file
@@ -0,0 +1,121 @@
|
||||
void WhatsBeenPutIn();
|
||||
void WhatsBeenTakenOut();
|
||||
void CreateSomething(string szThing);
|
||||
|
||||
void main()
|
||||
{
|
||||
if (GetInventoryDisturbType() == INVENTORY_DISTURB_TYPE_ADDED)
|
||||
{
|
||||
WhatsBeenPutIn();
|
||||
|
||||
if ((GetLocalInt(OBJECT_SELF, "nIceKey") > 0) && (GetLocalInt(OBJECT_SELF, "nFireKey") > 0) && (GetLocalInt(OBJECT_SELF, "nEarthKey") > 0) && (GetLocalInt(OBJECT_SELF, "nAirKey") > 0) && (GetLocalInt(OBJECT_SELF, "nClockworkAmulet1") > 0) && (GetLocalInt(OBJECT_SELF, "nClockworkAmulet2") > 0) && (GetLocalInt(OBJECT_SELF, "nClockworkAmulet3") > 0))
|
||||
{
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), OBJECT_SELF));
|
||||
DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), OBJECT_SELF));
|
||||
DelayCommand(1.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HARM), OBJECT_SELF));
|
||||
|
||||
DelayCommand(0.5, CreateSomething("elementalkey"));
|
||||
|
||||
SetLocalInt(OBJECT_SELF, "nIceKey", GetLocalInt(OBJECT_SELF, "nIceKey") - 1);
|
||||
SetLocalInt(OBJECT_SELF, "nFireKey", GetLocalInt(OBJECT_SELF, "nFireKey") - 1);
|
||||
SetLocalInt(OBJECT_SELF, "nEarthKey", GetLocalInt(OBJECT_SELF, "nEarthKey") - 1);
|
||||
SetLocalInt(OBJECT_SELF, "nAirKey", GetLocalInt(OBJECT_SELF, "nAirKey") - 1);
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet1", GetLocalInt(OBJECT_SELF, "nClockworkAmulet1") - 1);
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet2", GetLocalInt(OBJECT_SELF, "nClockworkAmulet2") - 1);
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet3", GetLocalInt(OBJECT_SELF, "nClockworkAmulet3") - 1);
|
||||
|
||||
|
||||
object oToDestroy = GetItemPossessedBy(OBJECT_SELF, "icekey");
|
||||
DelayCommand(0.2, DestroyObject(oToDestroy));
|
||||
oToDestroy = GetItemPossessedBy(OBJECT_SELF, "firekey");
|
||||
DelayCommand(0.2, DestroyObject(oToDestroy));
|
||||
oToDestroy = GetItemPossessedBy(OBJECT_SELF, "earthkey");
|
||||
DelayCommand(0.2, DestroyObject(oToDestroy));
|
||||
oToDestroy = GetItemPossessedBy(OBJECT_SELF, "airkey");
|
||||
DelayCommand(0.2, DestroyObject(oToDestroy));
|
||||
oToDestroy = GetItemPossessedBy(OBJECT_SELF, "clockworkamulet");
|
||||
DelayCommand(0.2, DestroyObject(oToDestroy));
|
||||
oToDestroy = GetItemPossessedBy(OBJECT_SELF, "clockworkamul001");
|
||||
DelayCommand(0.2, DestroyObject(oToDestroy));
|
||||
oToDestroy = GetItemPossessedBy(OBJECT_SELF, "clockworkamul002");
|
||||
DelayCommand(0.2, DestroyObject(oToDestroy));
|
||||
}
|
||||
}
|
||||
|
||||
if (GetInventoryDisturbType() == INVENTORY_DISTURB_TYPE_REMOVED)
|
||||
WhatsBeenTakenOut();
|
||||
}
|
||||
|
||||
void WhatsBeenPutIn()
|
||||
{
|
||||
string sTag;
|
||||
object oItem = GetInventoryDisturbItem();
|
||||
if (GetIsObjectValid(oItem))
|
||||
{
|
||||
sTag = GetTag(oItem);
|
||||
if (sTag == "icekey")
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, "nIceKey", GetLocalInt(OBJECT_SELF, "nIceKey") + 1);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_ICESTORM), OBJECT_SELF));
|
||||
}
|
||||
else if (sTag == "firekey")
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, "nFireKey", GetLocalInt(OBJECT_SELF, "nFireKey") + 1);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_METEOR_SWARM), OBJECT_SELF));
|
||||
}
|
||||
else if (sTag == "earthkey")
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, "nEarthKey", GetLocalInt(OBJECT_SELF, "nEarthKey") + 1);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_SCREEN_SHAKE), OBJECT_SELF, 6.0));
|
||||
}
|
||||
else if (sTag == "airkey")
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, "nAirKey", GetLocalInt(OBJECT_SELF, "nAirKey") + 1);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), OBJECT_SELF));
|
||||
}
|
||||
else if (sTag == "clockworkamulet")
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet1", GetLocalInt(OBJECT_SELF, "nClockworkAmulet1") + 1);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_LIGHT_BLUE_20), OBJECT_SELF, 12.0));
|
||||
}
|
||||
else if (sTag == "clockworkamul001")
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet2", GetLocalInt(OBJECT_SELF, "nClockworkAmulet2") + 1);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_LIGHT_RED_20), OBJECT_SELF, 12.0));
|
||||
}
|
||||
else if (sTag == "clockworkamul002")
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet3", GetLocalInt(OBJECT_SELF, "nClockworkAmulet3") + 1);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_LIGHT_PURPLE_20), OBJECT_SELF, 12.0));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WhatsBeenTakenOut()
|
||||
{
|
||||
string sTag;
|
||||
object oItem = GetInventoryDisturbItem();
|
||||
if (GetIsObjectValid(oItem))
|
||||
{
|
||||
sTag = GetTag(oItem);
|
||||
if (sTag == "icekey")
|
||||
SetLocalInt(OBJECT_SELF, "nIceKey", GetLocalInt(OBJECT_SELF, "nIceKey") - 1);
|
||||
else if (sTag == "firekey")
|
||||
SetLocalInt(OBJECT_SELF, "nFireKey", GetLocalInt(OBJECT_SELF, "nFireKey") - 1);
|
||||
else if (sTag == "earthkey")
|
||||
SetLocalInt(OBJECT_SELF, "nEarthKey", GetLocalInt(OBJECT_SELF, "nEarthKey") - 1);
|
||||
else if (sTag == "airkey")
|
||||
SetLocalInt(OBJECT_SELF, "nAirKey", GetLocalInt(OBJECT_SELF, "nAirKey") - 1);
|
||||
else if (sTag == "clockworkamulet")
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet1", GetLocalInt(OBJECT_SELF, "nClockworkAmulet1") - 1);
|
||||
else if (sTag == "clockworkamul001")
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet2", GetLocalInt(OBJECT_SELF, "nClockworkAmulet2") - 1);
|
||||
else if (sTag == "clockworkamul002")
|
||||
SetLocalInt(OBJECT_SELF, "nClockworkAmulet3", GetLocalInt(OBJECT_SELF, "nClockworkAmulet3") - 1);
|
||||
}
|
||||
}
|
||||
|
||||
void CreateSomething(string szThing)
|
||||
{
|
||||
CreateItemOnObject(szThing);
|
||||
}
|
Reference in New Issue
Block a user