Aschbourne_PRC8/_module/nss/ww_inc_on_act.nss
GetOffMyYarn 69879d6957 Areas and Fixes
Added CCOH and missing areas
Changed some areas to be craftable,
Fixed some on death issues,
Fixed the Gaurd
2024-08-30 11:38:44 -04:00

198 lines
8.2 KiB
Plaintext

void wolf_form(object oActivator)
{
object oItem = GetItemActivated();
object oOther=GetItemActivatedTarget();
string sItemTag=GetTag(oItem);
if((sItemTag=="wolfformtool")&&(oActivator==oOther))
{
object oMod = GetModule();
int iFullMoon1 = GetLocalInt(oMod,"FullMoon1");
int iFullMoon2 = GetLocalInt(oMod,"FullMoon2");
int iFullMoon3 = GetLocalInt(oMod,"FullMoon3");
int iCurrentDay = GetCalendarDay();
int iIsWolf = GetLocalInt(oActivator,"HAS_WEREWOLF_EFFECT");
int iUsed = GetLocalInt(oActivator,"WOLF_TOOL_CHARGE");
if((iFullMoon1==iCurrentDay||iFullMoon2==iCurrentDay||iFullMoon3==iCurrentDay) && !(iIsWolf))
{
int iChange =WillSave(oActivator,10);
if((iChange)&&(!(iUsed)))
{
ExecuteScript("wwamrbrk",oActivator);
SetCampaignInt("WWData","HAS_WEREWOLF_EFFECT",1,oActivator);
SetLocalInt(oActivator,"HAS_WEREWOLF_EFFECT",1);
//Polymorping to wolf form.
effect ePolymorphWolf = EffectPolymorph(POLYMORPH_TYPE_WOLF);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePolymorphWolf, oActivator);
AdjustAlignment(oActivator,ALIGNMENT_EVIL,50);
SetCampaignInt("WWData","WOLF_TOOL_CHARGE",1,oActivator);
SetLocalInt(oActivator,"WOLF_TOOL_CHARGE",1);
location lPC = GetLocation(oActivator);
object oFirstNPC = GetFirstObjectInShape(SHAPE_SPHERE,10.0,lPC,FALSE,OBJECT_TYPE_CREATURE);
while(oFirstNPC != OBJECT_INVALID)
{
int iSeen = GetObjectSeen(oActivator,oFirstNPC);
if (iSeen)
{
SetLocalInt(oActivator,"WasSeen",1);
}
//Get next object.
oFirstNPC = GetNextObjectInShape(SHAPE_SPHERE,10.0,lPC,FALSE,OBJECT_TYPE_CREATURE);
}
}
else
{
SendMessageToPC(oActivator,"You have failed to change.");
int iWait=GetCalendarDay();
int iWait1=(iWait+1);
SetCampaignInt("WWData","iWait",iWait1,oActivator);
SetLocalInt(oActivator,"iWait",iWait1);
SetCampaignInt("WWData","WOLF_TOOL_CHARGE",1,oActivator);
SetLocalInt(oActivator,"WOLF_TOOL_CHARGE",1);
}
}
if((iFullMoon1!=iCurrentDay||iFullMoon2!=iCurrentDay||iFullMoon3!=iCurrentDay) && !(iIsWolf))
{
int iChange =WillSave(oActivator,15);
if((iChange)&&(!(iUsed)))
{
ExecuteScript("wwamrbrk",oActivator);
SetCampaignInt("WWData","HAS_WEREWOLF_EFFECT",1,oActivator);
SetLocalInt(oActivator,"HAS_WEREWOLF_EFFECT",1);
//Polymorping to wolf form.
effect ePolymorphWolf = EffectPolymorph(POLYMORPH_TYPE_WOLF);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, ePolymorphWolf, oActivator);
AdjustAlignment(oActivator,ALIGNMENT_EVIL,50);
SetCampaignInt("WWData","WOLF_TOOL_CHARGE",1,oActivator);
SetLocalInt(oActivator,"WOLF_TOOL_CHARGE",1);
location lPC = GetLocation(oActivator);
object oFirstNPC = GetFirstObjectInShape(SHAPE_SPHERE,10.0,lPC,FALSE,OBJECT_TYPE_CREATURE);
while(oFirstNPC != OBJECT_INVALID)
{
int iSeen = GetObjectSeen(oActivator,oFirstNPC);
if (iSeen)
{
SetLocalInt(oActivator,"WasSeen",1);
}
//Get next object.
oFirstNPC = GetNextObjectInShape(SHAPE_SPHERE,10.0,lPC,FALSE,OBJECT_TYPE_CREATURE);
}
}
else
{
SendMessageToPC(oActivator,"You have failed to change.");
int iWait=GetCalendarDay();
int iWait1=(iWait+1);
SetCampaignInt("WWData","iWait",iWait1,oActivator);
SetLocalInt(oActivator,"iWait",iWait1);
SetCampaignInt("WWData","WOLF_TOOL_CHARGE",1,oActivator);
SetLocalInt(oActivator,"WOLF_TOOL_CHARGE",1);
}
}
SendMessageToPC(oActivator,"You may only use this tool once per day.");
}
}
void werewolf_form(object oActivator)
{
object oItem = GetItemActivated();
object oOther=GetItemActivatedTarget();
string sItemTag=GetTag(oItem);
if((sItemTag=="controlshapetool")&&(oActivator==oOther))
{
object oMod = GetModule();
int iFullMoon1 = GetLocalInt(oMod,"FullMoon1");
int iFullMoon2 = GetLocalInt(oMod,"FullMoon2");
int iFullMoon3 = GetLocalInt(oMod,"FullMoon3");
int iCurrentDay = GetCalendarDay();
int iIsWolf = GetLocalInt(oActivator,"HAS_WEREWOLF_EFFECT");
int iUsed = GetLocalInt(oActivator,"WOLF_TOOL_CHARGE");
if((iFullMoon1==iCurrentDay||iFullMoon2==iCurrentDay||iFullMoon3==iCurrentDay) && !(iIsWolf))
{
int iChange =WillSave(oActivator,10);
if((iChange)&&(!(iUsed)))
{
ExecuteScript("wwamrbrk",oActivator);
SetCampaignInt("WWData","HAS_WEREWOLF_EFFECT",1,oActivator);
SetLocalInt(oActivator,"HAS_WEREWOLF_EFFECT",1);
effect eMorph = EffectPolymorph(POLYMORPH_TYPE_WEREWOLF);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eMorph, oActivator);
AdjustAlignment(oActivator,ALIGNMENT_EVIL,50);
SetCampaignInt("WWData","WOLF_TOOL_CHARGE",1,oActivator);
SetLocalInt(oActivator,"WOLF_TOOL_CHARGE",1);
location lPC = GetLocation(oActivator);
object oFirstNPC = GetFirstObjectInShape(SHAPE_SPHERE,10.0,lPC,FALSE,OBJECT_TYPE_CREATURE);
while(oFirstNPC != OBJECT_INVALID)
{
int iSeen = GetObjectSeen(oActivator,oFirstNPC);
if (iSeen)
{
SetLocalInt(oActivator,"WasSeen",1);
}
//Get next object.
oFirstNPC = GetNextObjectInShape(SHAPE_SPHERE,10.0,lPC,FALSE,OBJECT_TYPE_CREATURE);
}
}
else
{
SendMessageToPC(oActivator,"You have failed to change.");
int iWait=GetCalendarDay();
int iWait1=(iWait+1);
SetCampaignInt("WWData","iWait",iWait1,oActivator);
SetLocalInt(oActivator,"iWait",iWait1);
SetCampaignInt("WWData","WOLF_TOOL_CHARGE",1,oActivator);
SetLocalInt(oActivator,"WOLF_TOOL_CHARGE",1);
}
}
if((iFullMoon1!=iCurrentDay||iFullMoon2!=iCurrentDay||iFullMoon3!=iCurrentDay) && !(iIsWolf))
{
int iChange =WillSave(oActivator,15);
if((iChange)&&(!(iUsed)))
{
ExecuteScript("wwamrbrk",oActivator);
SetCampaignInt("WWData","HAS_WEREWOLF_EFFECT",1,oActivator);
SetLocalInt(oActivator,"HAS_WEREWOLF_EFFECT",1);
effect eMorph = EffectPolymorph(POLYMORPH_TYPE_WEREWOLF);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eMorph,oActivator);
AdjustAlignment(oActivator,ALIGNMENT_EVIL,50);
SetCampaignInt("WWData","WOLF_TOOL_CHARGE",1,oActivator);
SetLocalInt(oActivator,"WOLF_TOOL_CHARGE",1);
location lPC = GetLocation(oActivator);
object oFirstNPC = GetFirstObjectInShape(SHAPE_SPHERE,10.0,lPC,FALSE,OBJECT_TYPE_CREATURE);
while(oFirstNPC != OBJECT_INVALID)
{
int iSeen = GetObjectSeen(oActivator,oFirstNPC);
if (iSeen)
{
SetLocalInt(oActivator,"WasSeen",1);
}
//Get next object.
oFirstNPC = GetNextObjectInShape(SHAPE_SPHERE,10.0,lPC,FALSE,OBJECT_TYPE_CREATURE);
}
}
else
{
SendMessageToPC(oActivator,"You have failed to change.");
int iWait=GetCalendarDay();
int iWait1=(iWait+1);
SetCampaignInt("WWData","iWait",iWait1,oActivator);
SetLocalInt(oActivator,"iWait",iWait1);
SetCampaignInt("WWData","WOLF_TOOL_CHARGE",1,oActivator);
SetLocalInt(oActivator,"WOLF_TOOL_CHARGE",1);
}
}
SendMessageToPC(oActivator,"You may only use this tool once per day.");
}
}