generated from Jaysyn/ModuleTemplate
58 lines
1.2 KiB
Plaintext
58 lines
1.2 KiB
Plaintext
#include "corpse_lib"
|
|
object GetFinalMaster(object target)
|
|
{
|
|
object master = GetMaster(target);
|
|
object lastMaster = OBJECT_INVALID;
|
|
|
|
|
|
while(GetIsObjectValid(master))
|
|
{
|
|
lastMaster = master;
|
|
|
|
master = GetMaster(lastMaster);
|
|
}
|
|
|
|
return lastMaster;
|
|
}
|
|
void markEquipement(object target,int cursed)
|
|
{
|
|
int slot = 0;
|
|
while(slot<= NUM_INVENTORY_SLOTS)
|
|
{
|
|
object item = GetItemInSlot(slot++,target);
|
|
|
|
if(GetIsObjectValid(item))
|
|
{
|
|
SetLocalInt(item,CorpseWasDroppable,GetItemCursedFlag(item));
|
|
SetLocalInt(item,CorspeWasDroppableSet,TRUE);
|
|
SetItemCursedFlag(item,cursed);
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
void main()
|
|
{
|
|
|
|
object enteringObject = GetEnteringObject();
|
|
|
|
if(!GetIsDM(enteringObject) && !GetIsDMPossessed(enteringObject) && !GetIsDM(GetFinalMaster(enteringObject)) && !GetIsCorpseCopying(enteringObject))
|
|
{
|
|
|
|
//DelayCommand(5.0,deathSpeach(enteringObject));
|
|
effect test = ExtraordinaryEffect(EffectLinkEffects(EffectCutsceneGhost(),EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE)));
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT,test,enteringObject);
|
|
markEquipement(enteringObject,TRUE);
|
|
|
|
SetImmortal(enteringObject,TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|