Module commit
Module commit.
This commit is contained in:
152
_module/nss/werewolf_cure.nss
Normal file
152
_module/nss/werewolf_cure.nss
Normal file
@@ -0,0 +1,152 @@
|
||||
#include "prc_inc_spells"
|
||||
|
||||
void werewolf()
|
||||
{
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
object oCaster = OBJECT_SELF;
|
||||
//SendMessageToPC(oTarget,"DEBUG: Cure Script fired.");
|
||||
int iWolfDays = GetLocalInt(oTarget,"WOLF_PERM");
|
||||
int iYesWolf = GetLocalInt(oTarget,"AFF_WEREWOLF");
|
||||
int iCureSpell = PRCGetSpellId();
|
||||
int iCasterLevel = GetLevelByClass(CLASS_TYPE_CLERIC,oCaster);
|
||||
|
||||
if((iCureSpell == SPELL_HEAL) && (!(iWolfDays)) && (iCasterLevel >= 12))
|
||||
{
|
||||
if(iYesWolf)
|
||||
{
|
||||
object oTool = GetFirstItemInInventory(oTarget);
|
||||
object oWolfTool = GetFirstItemInInventory(oTarget);
|
||||
string sTool = ("controlshapetool");
|
||||
string sWolfTool = ("wolfformtool");
|
||||
|
||||
while(GetIsObjectValid(oTool))
|
||||
{
|
||||
string sDestroy=GetTag(oTool);
|
||||
if(sDestroy==sTool)
|
||||
{
|
||||
DestroyObject(oTool);
|
||||
}
|
||||
oTool = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
|
||||
while(GetIsObjectValid(oWolfTool))
|
||||
{
|
||||
string sDestroy=GetTag(oWolfTool);
|
||||
if(sDestroy==sWolfTool)
|
||||
{
|
||||
DestroyObject(oWolfTool);
|
||||
}
|
||||
oWolfTool = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
SendMessageToPC(oTarget,"You feel refreshed; the curse was lifted.");
|
||||
SetCampaignInt("WWData", "AFF_WEREWOLF",0, oTarget);
|
||||
SetLocalInt(oTarget, "AFF_WEREWOLF",0);
|
||||
}
|
||||
}
|
||||
if((iCureSpell == SPELL_MASS_HEAL) && (!(iWolfDays)) && (iCasterLevel >= 12))
|
||||
{
|
||||
if(iYesWolf)
|
||||
{
|
||||
object oTool = GetFirstItemInInventory(oTarget);
|
||||
object oWolfTool = GetFirstItemInInventory(oTarget);
|
||||
string sTool = ("controlshapetool");
|
||||
string sWolfTool = ("wolfformtool");
|
||||
|
||||
while(GetIsObjectValid(oTool))
|
||||
{
|
||||
string sDestroy=GetTag(oTool);
|
||||
if(sDestroy==sTool)
|
||||
{
|
||||
DestroyObject(oTool);
|
||||
}
|
||||
oTool = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
|
||||
while(GetIsObjectValid(oWolfTool))
|
||||
{
|
||||
string sDestroy=GetTag(oWolfTool);
|
||||
if(sDestroy==sWolfTool)
|
||||
{
|
||||
DestroyObject(oWolfTool);
|
||||
}
|
||||
oWolfTool = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
SendMessageToPC(oTarget,"You feel refreshed; the curse was lifted.");
|
||||
SetCampaignInt("WWData", "AFF_WEREWOLF",0, oTarget);
|
||||
SetLocalInt(oTarget, "AFF_WEREWOLF",0);
|
||||
}
|
||||
}
|
||||
if((iCureSpell == SPELL_REMOVE_DISEASE) && (!(iWolfDays)) && (iCasterLevel >= 12) && (iYesWolf))
|
||||
{
|
||||
if(iYesWolf)
|
||||
{
|
||||
object oTool = GetFirstItemInInventory(oTarget);
|
||||
object oWolfTool = GetFirstItemInInventory(oTarget);
|
||||
string sTool = ("controlshapetool");
|
||||
string sWolfTool = ("wolfformtool");
|
||||
|
||||
while(GetIsObjectValid(oTool))
|
||||
{
|
||||
string sDestroy=GetTag(oTool);
|
||||
if(sDestroy==sTool)
|
||||
{
|
||||
DestroyObject(oTool);
|
||||
}
|
||||
oTool = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
|
||||
while(GetIsObjectValid(oWolfTool))
|
||||
{
|
||||
string sDestroy=GetTag(oWolfTool);
|
||||
if(sDestroy==sWolfTool)
|
||||
{
|
||||
DestroyObject(oWolfTool);
|
||||
}
|
||||
oWolfTool = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
SendMessageToPC(oTarget,"You feel refreshed; the curse was lifted.");
|
||||
SetCampaignInt("WWData", "AFF_WEREWOLF",0, oTarget);
|
||||
SetLocalInt(oTarget, "AFF_WEREWOLF",0);
|
||||
}
|
||||
}
|
||||
object oMod = GetModule();
|
||||
int iFullMoon1 = GetLocalInt(oMod,"FullMoon1");
|
||||
int iFullMoon2 = GetLocalInt(oMod,"FullMoon2");
|
||||
int iFullMoon3 = GetLocalInt(oMod,"FullMoon3");
|
||||
int iCurrentDay = GetCalendarDay();
|
||||
|
||||
if((iCureSpell == SPELL_REMOVE_CURSE) && ((iCurrentDay == iFullMoon1) || (iCurrentDay == iFullMoon2) || (iCurrentDay == iFullMoon3)))
|
||||
{
|
||||
int iWillSave = WillSave(oTarget,20);
|
||||
if((iWillSave)&& (iYesWolf))
|
||||
{
|
||||
object oTool = GetFirstItemInInventory(oTarget);
|
||||
object oWolfTool = GetFirstItemInInventory(oTarget);
|
||||
string sTool = ("controlshapetool");
|
||||
string sWolfTool = ("wolfformtool");
|
||||
|
||||
while(GetIsObjectValid(oTool))
|
||||
{
|
||||
string sDestroy=GetTag(oTool);
|
||||
if(sDestroy==sTool)
|
||||
{
|
||||
DestroyObject(oTool);
|
||||
}
|
||||
oTool = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
|
||||
while(GetIsObjectValid(oWolfTool))
|
||||
{
|
||||
string sDestroy=GetTag(oWolfTool);
|
||||
if(sDestroy==sWolfTool)
|
||||
{
|
||||
DestroyObject(oWolfTool);
|
||||
}
|
||||
oWolfTool = GetNextItemInInventory(oTarget);
|
||||
}
|
||||
SendMessageToPC(oTarget,"You feel refreshed; the curse was lifted.");
|
||||
SetCampaignInt("WWData", "AFF_WEREWOLF",0, oTarget);
|
||||
SetLocalInt(oTarget, "AFF_WEREWOLF",0);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user