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

76 lines
2.9 KiB
Plaintext

// THIS SCRIPT IS NO LONGER IN USE
// USE DR_REST!
// This script handles vampires resting
// this returns a formerly dead Vampire to normal.
void vamp_coffin_returnToSelf(object oPC)
{
// Get the original appearance of the Vampire.
int iOriginalAppearance = GetCampaignInt("Vampire","Appearance",oPC);
// If they have died and original appearance equals SOMETHING, then
// change them back.
if (GetCampaignInt("Vampire","PermaSpectre",oPC)==TRUE && iOriginalAppearance > 0)
{
// reset this boolean
SetCampaignInt("Vampire","PermaSpectre",FALSE,oPC);
// change them back.
PrintString("vamp_coffin: vamp_coffin_returnToSelf() - GetAppearanceType was ["+IntToString(GetAppearanceType(oPC))+"] "+GetName(oPC));
SetCreatureAppearanceType(oPC, iOriginalAppearance);
PrintString("vamp_coffin: vamp_coffin_returnToSelf() - GetAppearanceType is now ["+IntToString(GetAppearanceType(oPC))+"] "+GetName(oPC));
}
}
void main()
{
// Get resting pc.
object oPC = GetLastPCRested();
if (GetImmortal(oPC)==TRUE)
SetImmortal(oPC,FALSE);
// If resting pc is vampire and rest event is in start stage
if (GetLastRestEventType()==REST_EVENTTYPE_REST_STARTED
&&GetSubRace(oPC)=="Vampire")
{
// Get coffin
string sCoffin = GetPCPublicCDKey(oPC);
if (sCoffin == "")
{
sCoffin = "VampireCoffin";
}
object oTarget = GetObjectByTag(sCoffin);
PrintString("vamp_rest: Looking for this coffin tag ["+sCoffin+"] LITERAL TAG:["+GetTag(oTarget)+"]");
// If there is no coffin. Inform PC
if (GetIsObjectValid(oTarget)==FALSE)
{
SendMessageToPC(oPC,"There is no coffin nearby. You need to rest in your coffin.");
// Cancel rest
AssignCommand(oPC,ClearAllActions());
PrintString("vamp_rest: Found nothing. TAG:"+GetTag(oTarget));
return;
}
// If distance to coffin is over 3m, inform PC
else if (GetDistanceBetween(oPC, oTarget) >=3.0f)
{
SendMessageToPC(oPC,"There is no coffin nearby. You need to rest in your coffin.");
// Cancel rest
AssignCommand(oPC,ClearAllActions());
PrintString("vamp_rest: Target exists, but is too far away to use. TAG:"+GetTag(oTarget));
return;
}
// Check if vampire has died and he need to rest in his coffin.
if (GetCampaignInt("Vampire", "VampireMustRest", oPC)==1)
{
SendMessageToPC(oPC,"You rest near your coffin.");
// If yes, vampire has rested and now he dosnt die after 5 hours
SetCampaignInt("Vampire", "VampireMustRest",0,oPC);
PrintString("vamp_rest: Vampire must rest set to ZERO. COFFIN TAG:["+GetTag(oTarget)+"] Resetting vampire appearance as well.");
// reset the vampire's appearance
vamp_coffin_returnToSelf(oPC);
}
}
}