Files
HeroesStone_PRC8/_module/nss/werewolf_cure.nss
Jaysyn904 1eefc84201 Initial Commit
Initial Commit.
2025-09-14 15:40:46 -04:00

72 lines
2.2 KiB
Plaintext

//Werewolf Cure, just import
void werewolf()
{
//SpeakString("Cure Script fired.");
object oTarget = GetSpellTargetObject();
object oCaster = OBJECT_SELF;
int iWolfDays = GetLocalInt(oTarget,"WOLF_PERM");
int iWolfDay = GetLocalInt(oTarget,"WOLF_DAYS");
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);
string sTool = ("ControlShapeTool");
while(GetIsObjectValid(oTool))
{
string sDestroy=GetTag(oTool);
if(sDestroy==sTool)
{
DestroyObject(oTool);
}
oTool = GetNextItemInInventory(oTarget);
}
SendMessageToPC(oTarget,"The Curse of Lycanthropy has been lifted.");
DeleteLocalInt(oTarget,"AFF_WEREWOLF");
}
}
if((iCureSpell == SPELL_REMOVE_DISEASE) && (!(iWolfDays)) && (iCasterLevel >= 12) && (iYesWolf))
{
if(iYesWolf)
{
object oTool = GetFirstItemInInventory(oTarget);
string sTool = ("ControlShapeTool");
while(GetIsObjectValid(oTool))
{
string sDestroy=GetTag(oTool);
if(sDestroy==sTool)
{
DestroyObject(oTool);
}
oTool = GetNextItemInInventory(oTarget);
}
SendMessageToPC(oTarget,"The Curse of Lycanthropy has been lifted.");
DeleteLocalInt(oTarget,"AFF_WEREWOLF");
}
}
if((iCureSpell == SPELL_REMOVE_CURSE) && (iWolfDay < 4))
{
int iWillSave = WillSave(oTarget,20);
if((iWillSave)&& (iYesWolf))
{
object oTool = GetFirstItemInInventory(oTarget);
string sTool = ("ControlShapeTool");
while(GetIsObjectValid(oTool))
{
string sDestroy=GetTag(oTool);
if(sDestroy==sTool)
{
DestroyObject(oTool);
}
oTool = GetNextItemInInventory(oTarget);
}
SendMessageToPC(oTarget,"The Curse of Lycanthropy has been lifted.");
DeleteLocalInt(oTarget,"AFF_WEREWOLF");
}
}
}