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

476 lines
18 KiB
Plaintext

#include "custom_set_lib"
struct perceivedEvent
{
int isValid;
object lastPerceived;
int lastPerceptionHeard;
int lastPerceptionInaudible;
int lastPerceptionSeen;
int lastPerceptionVanished;
};
struct disturbedEvent
{
int isValid;
object lastDisturbed;
object inventoryDisturbItem;
int inventoryDisturbType;
};
struct attackedEvent
{
int isValid;
object lastAttacker;
};
struct damagedEvent
{
int isValid;
object lastdamager;
int totalDamageDealt;
int damageAcid;
int damageBludgeoning;
int damageCold;
int damageDivine;
int damageElectrical;
int damageFire;
int damageMagical;
int damageNegative;
int damagePiercing;
int damagePositive;
int damageSlashing;
int damageSonic;
};
struct blockedEvent
{
int isValid;
object blockingDoor;
};
//::///////////////////////////////////////////////
//:: GetLastPerceivedEvent
//:://////////////////////////////////////////////
//
// Retrieves the last perception event data from target.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct perceivedEvent GetLastPerceivedEvent(object target = OBJECT_SELF);
//::///////////////////////////////////////////////
//:: SetLastPerceivedEvent
//:://////////////////////////////////////////////
//
// Stores the perception event data for the caller.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
void SetLastPerceivedEvent(struct perceivedEvent evt);
//::///////////////////////////////////////////////
//:: PerceivedEvent
//:://////////////////////////////////////////////
//
// Returns the data available for a caller perception event.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct perceivedEvent PerceivedEvent();
//::///////////////////////////////////////////////
//:: GetLastDisturbedEvent
//:://////////////////////////////////////////////
//
// Retrieves the last inventory dirsturbed event data from target.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct disturbedEvent GetLastDisturbedEvent(object target = OBJECT_SELF);
//::///////////////////////////////////////////////
//:: SetLastDisturbedEvent
//:://////////////////////////////////////////////
//
// Stores the inventory dirsturbed event data for the caller.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
void SetLastDisturbedEvent(struct disturbedEvent evt);
//::///////////////////////////////////////////////
//:: DisturbedEvent
//:://////////////////////////////////////////////
//
// Returns the data available for a caller inventory dirsturbed event.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct disturbedEvent DisturbedEvent();
//::///////////////////////////////////////////////
//:: GetLastAttackedEvent
//:://////////////////////////////////////////////
//
// Retrieves the last on attacked event data from target.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct attackedEvent GetLastAttackedEvent(object target = OBJECT_SELF);
//::///////////////////////////////////////////////
//:: SetLastAttackedEvent
//:://////////////////////////////////////////////
//
// Stores the on attacked event data on the caller.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
void SetLastAttackedEvent(struct attackedEvent evt);
//::///////////////////////////////////////////////
//:: AttackedEvent
//:://////////////////////////////////////////////
//
// Returns the available on attacked event data.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct attackedEvent AttackedEvent();
//::///////////////////////////////////////////////
//:: CreatePCClone
//:://////////////////////////////////////////////
//
// Creates a clone of PC at cloneLocation. The clone will
// use the set of script corresponding to scriptset.
// If spawn is TRUE then CustomSet_respawn is called.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
object CreatePCClone(object PC,location cloneLocation,int scriptset = CustomSet_DefaultSet,int spawn = TRUE);
//::///////////////////////////////////////////////
//:: GetLastDamagedEvent
//:://////////////////////////////////////////////
//
// Retrieves the last on damaged event data from target.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct damagedEvent GetLastDamagedEvent(object target = OBJECT_SELF);
//::///////////////////////////////////////////////
//:: SetLastDamagedEvent
//:://////////////////////////////////////////////
//
// Stores the on damaged event data on the caller.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
void SetLastDamagedEvent(struct damagedEvent evt);
//::///////////////////////////////////////////////
//:: DamagedEvent
//:://////////////////////////////////////////////
//
// Returns the data available for a caller on damaged event.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct damagedEvent DamagedEvent();
//::///////////////////////////////////////////////
//:: GetLastBlockedEvent
//:://////////////////////////////////////////////
//
// Retrieves the last on blocked event data from target.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct blockedEvent GetLastBlockedEvent(object target = OBJECT_SELF);
//::///////////////////////////////////////////////
//:: SetLastBlockedEvent
//:://////////////////////////////////////////////
//
// Stores the on blocked event data on the caller.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
void SetLastBlockedEvent(struct blockedEvent evt);
//::///////////////////////////////////////////////
//:: BlockedEvent
//:://////////////////////////////////////////////
//
// Returns the data available for a caller on blocked event.
//
//:://////////////////////////////////////////////
//:: Created By: Alexandre Brunel
//:: Created On: 04/11/2004
//:://////////////////////////////////////////////
struct blockedEvent BlockedEvent();
void SetDialog(string dialog,object target= OBJECT_SELF);
string GetDialog(object target= OBJECT_SELF);
struct perceivedEvent GetLastPerceivedEvent(object target = OBJECT_SELF)
{
struct perceivedEvent retval;
retval.isValid = GetLocalInt(target,"PC_CLONE_SYSTEM_GetLastPerceivedIsValid");
retval.lastPerceived = GetLocalObject(target,"PC_CLONE_SYSTEM_GetLastPerceived");
retval.lastPerceptionInaudible = GetLocalInt(target,"PC_CLONE_SYSTEM_GetLastPerceptionInaudible");
retval.lastPerceptionSeen = GetLocalInt(target,"PC_CLONE_SYSTEM_GetLastPerceptionSeen");
retval.lastPerceptionVanished = GetLocalInt(target,"PC_CLONE_SYSTEM_GetLastPerceptionVanished");
return retval;
}
void SetLastPerceivedEvent(struct perceivedEvent evt)
{
object target = OBJECT_SELF;
SetLocalInt(target,"PC_CLONE_SYSTEM_GetLastPerceivedIsValid",evt.isValid);
SetLocalObject(target,"PC_CLONE_SYSTEM_GetLastPerceived",evt.lastPerceived);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetLastPerceptionInaudible",evt.lastPerceptionInaudible);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetLastPerceptionSeen",evt.lastPerceptionSeen);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetLastPerceptionVanished",evt.lastPerceptionVanished);
}
struct perceivedEvent PerceivedEvent()
{
struct perceivedEvent retval;
retval.lastPerceived = GetLastPerceived();
retval.isValid = GetIsObjectValid(retval.lastPerceived);
retval.lastPerceptionInaudible = GetLastPerceptionInaudible();
retval.lastPerceptionSeen = GetLastPerceptionSeen();
retval.lastPerceptionVanished = GetLastPerceptionVanished();
return retval;
}
struct disturbedEvent GetLastDisturbedEvent(object target = OBJECT_SELF)
{
struct disturbedEvent retval;
retval.isValid = GetLocalInt(target,"PC_CLONE_SYSTEM_GetLastDisturbedValid");
retval.lastDisturbed = GetLocalObject(target,"PC_CLONE_SYSTEM_GetLastDisturbed");
retval.inventoryDisturbItem = GetLocalObject(target,"PC_CLONE_SYSTEM_InventoryDisturbItem");
retval.inventoryDisturbType = GetLocalInt(target,"PC_CLONE_SYSTEM_inventoryDisturbType");
return retval;
}
void SetLastDisturbedEvent(struct disturbedEvent evt)
{
object target = OBJECT_SELF;
SetLocalInt(target,"PC_CLONE_SYSTEM_GetLastDisturbedValid",evt.isValid);
SetLocalObject(target,"PC_CLONE_SYSTEM_GetLastDisturbed",evt.lastDisturbed);
SetLocalObject(target,"PC_CLONE_SYSTEM_InventoryDisturbItem",evt.inventoryDisturbItem);
SetLocalInt(target,"PC_CLONE_SYSTEM_inventoryDisturbType",evt.inventoryDisturbType);
}
struct disturbedEvent DisturbedEvent()
{
struct disturbedEvent retval;
retval.lastDisturbed = GetLastDisturbed();
retval.inventoryDisturbItem = GetInventoryDisturbItem();
retval.isValid = GetIsObjectValid(retval.lastDisturbed) && GetIsObjectValid(retval.inventoryDisturbItem);
retval.inventoryDisturbType = GetInventoryDisturbType();
return retval;
}
struct attackedEvent GetLastAttackedEvent(object target = OBJECT_SELF)
{
struct attackedEvent retval;
retval.isValid = GetLocalInt(target,"PC_CLONE_SYSTEM_GetLastAttackerValid");
retval.lastAttacker = GetLocalObject(target,"PC_CLONE_SYSTEM_GetLastAttacker");
return retval;
}
void SetLastAttackedEvent(struct attackedEvent evt)
{
object target = OBJECT_SELF;
SetLocalInt(target,"PC_CLONE_SYSTEM_GetLastAttackerValid",evt.isValid);
SetLocalObject(target,"PC_CLONE_SYSTEM_GetLastAttacker",evt.lastAttacker);
}
struct attackedEvent AttackedEvent()
{
struct attackedEvent retval;
retval.lastAttacker = GetLastAttacker();
retval.isValid = GetIsObjectValid(retval.lastAttacker);
return retval;
}
object CreatePCClone(object PC,location cloneLocation,int scriptset = CustomSet_DefaultSet,int spawn = TRUE)
{
object copy = CopyObject(PC,cloneLocation);
SetLocalInt(copy,"PC_CLONE_SYSTEM",TRUE);
SetLocalInt(copy,CustomSetScriptSet,scriptset);
if(spawn)
{
CustomSet_respawn(copy);
}
AssignCommand(copy,DelayCommand(RoundsToSeconds(1),ExecuteScript("clone_heartbeat",copy)));
return copy;
}
struct damagedEvent GetLastDamagedEvent(object target = OBJECT_SELF)
{
struct damagedEvent retval;
retval.isValid = GetLocalInt(target,"PC_CLONE_SYSTEM_GetLastDamagerValid");
retval.lastdamager = GetLocalObject(target,"PC_CLONE_SYSTEM_GetLastDamager");
retval.totalDamageDealt = GetLocalInt(target,"PC_CLONE_SYSTEM_GetTotalDamageDealt");
retval.damageAcid = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_ACID));
retval.damageBludgeoning = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_BLUDGEONING));
retval.damageCold = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_COLD));
retval.damageDivine = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_DIVINE));
retval.damageElectrical = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_ELECTRICAL));
retval.damageFire = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_FIRE));
retval.damageMagical = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_MAGICAL));
retval.damageNegative = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_NEGATIVE));
retval.damagePiercing = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_PIERCING));
retval.damagePositive = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_POSITIVE));
retval.damageSlashing = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_SLASHING));
retval.damageSonic = GetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_SONIC));
return retval;
}
void SetLastDamagedEvent(struct damagedEvent evt)
{
object target = OBJECT_SELF;
SetLocalInt(target,"PC_CLONE_SYSTEM_GetLastDamagerValid",evt.isValid);
SetLocalObject(target,"PC_CLONE_SYSTEM_GetLastDamager",evt.lastdamager);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetTotalDamageDealt",evt.totalDamageDealt);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_ACID),evt.damageAcid);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_BLUDGEONING),evt.damageBludgeoning);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_COLD),evt.damageCold);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_DIVINE),evt.damageDivine);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_ELECTRICAL),evt.damageElectrical);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_FIRE),evt.damageFire);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_MAGICAL),evt.damageMagical);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_NEGATIVE),evt.damageNegative);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_PIERCING),evt.damagePiercing);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_POSITIVE),evt.damagePositive);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_SLASHING),evt.damageSlashing);
SetLocalInt(target,"PC_CLONE_SYSTEM_GetDamageDealtByType"+IntToString(DAMAGE_TYPE_SONIC),evt.damageSonic);
}
struct damagedEvent DamagedEvent()
{
struct damagedEvent retval;
retval.lastdamager = GetLastDamager();
retval.isValid = GetIsObjectValid(retval.lastdamager);
retval.totalDamageDealt = GetTotalDamageDealt();
retval.damageAcid = GetDamageDealtByType(DAMAGE_TYPE_ACID);
retval.damageBludgeoning = GetDamageDealtByType(DAMAGE_TYPE_BLUDGEONING);
retval.damageCold = GetDamageDealtByType(DAMAGE_TYPE_COLD);
retval.damageDivine = GetDamageDealtByType(DAMAGE_TYPE_DIVINE);
retval.damageElectrical = GetDamageDealtByType(DAMAGE_TYPE_ELECTRICAL);
retval.damageFire = GetDamageDealtByType(DAMAGE_TYPE_FIRE);
retval.damageMagical = GetDamageDealtByType(DAMAGE_TYPE_MAGICAL);
retval.damageNegative = GetDamageDealtByType(DAMAGE_TYPE_NEGATIVE);
retval.damagePiercing = GetDamageDealtByType(DAMAGE_TYPE_PIERCING);
retval.damagePositive = GetDamageDealtByType(DAMAGE_TYPE_POSITIVE);
retval.damageSlashing = GetDamageDealtByType(DAMAGE_TYPE_SLASHING);
retval.damageSonic = GetDamageDealtByType(DAMAGE_TYPE_SONIC);
return retval;
}
struct blockedEvent GetLastBlockedEvent(object target = OBJECT_SELF)
{
struct blockedEvent retval;
retval.isValid = GetLocalInt(target,"PC_CLONE_SYSTEM_GetBlockingDoorIsValid");
retval.blockingDoor = GetLocalObject(target,"PC_CLONE_SYSTEM_GetBlockingDoor");
return retval;
}
void SetLastBlockedEvent(struct blockedEvent evt)
{
SetLocalInt(OBJECT_SELF,"PC_CLONE_SYSTEM_GetBlockingDoorIsValid",evt.isValid);
SetLocalObject(OBJECT_SELF,"PC_CLONE_SYSTEM_GetBlockingDoor",evt.blockingDoor);
}
struct blockedEvent BlockedEvent()
{
struct blockedEvent retval;
retval.blockingDoor = GetBlockingDoor();
retval.isValid = GetIsObjectValid(retval.blockingDoor);
return retval;
}
void SetDialog(string dialog,object target= OBJECT_SELF)
{
SetLocalString(target,"PC_CLONE_SYSTEM_DLG",dialog);
}
string GetDialog(object target= OBJECT_SELF)
{
return GetLocalString(target,"PC_CLONE_SYSTEM_DLG");
}