83 lines
2.6 KiB
Plaintext
83 lines
2.6 KiB
Plaintext
#include "hc_inc"
|
|
#include "anph_inc"
|
|
#include "eye_dm_inc"
|
|
|
|
#include "anphrez_inc"
|
|
|
|
string ConvertNumberToFixedString(int iNumber)
|
|
{
|
|
string sNew;
|
|
if (iNumber < 10)
|
|
{
|
|
sNew = "0" + IntToString(iNumber);
|
|
}
|
|
else
|
|
{
|
|
sNew = IntToString(iNumber);
|
|
}
|
|
return sNew;
|
|
}
|
|
|
|
void main()
|
|
{
|
|
object oUser=OBJECT_SELF;
|
|
object oOther=GetLocalObject(oUser,"OTHER");
|
|
object oItem=GetLocalObject(oUser,"ITEM");
|
|
string sNewScalpTag;
|
|
object oPlayerCorpse;
|
|
object oScalp;
|
|
string sScalpAlign;
|
|
object oRespawner;
|
|
DeleteLocalObject(oUser,"ITEM");
|
|
DeleteLocalObject(oUser,"OTHER");
|
|
if(oOther==OBJECT_INVALID) return;
|
|
|
|
if(GetTag(oOther) != "DeathCorpse")
|
|
{
|
|
SendMessageToPC(oUser,"This item can be used on Player Corpses only.");
|
|
return;
|
|
}
|
|
if(GetDistanceBetween(oUser, oOther) > 3.0)
|
|
{
|
|
SendMessageToPC(oUser,"You have to move closer.");
|
|
return;
|
|
}
|
|
AssignCommand(oUser,ActionMoveToLocation(GetLocation(oOther)));
|
|
DelayCommand(1.0,AssignCommand(oUser,ActionPlayAnimation(ANIMATION_LOOPING_GET_LOW)));
|
|
// DelayCommand(1.3,AssignCommand(oOther,SetIsDestroyable(TRUE)));
|
|
if (GetLocalInt(oOther, "Scalped") == 0)
|
|
{
|
|
oRespawner = AnphFindPlayerByKey(GetLocalString (oOther, "Name"), GetLocalString (oOther, "Key"));
|
|
if (AnphGetPlayerTeam(oUser) == AnphGetPlayerTeam(oRespawner))
|
|
{
|
|
SendMessageToPC(oUser, "You can't scalp members of your own team!");
|
|
return;
|
|
}
|
|
sNewScalpTag = "SCP_FC" + AnphGetPlayerTeam(oRespawner) + "_CF" + GetName(oRespawner) + "_MN" + ConvertNumberToFixedString(GetHitDice(oRespawner));
|
|
if (GetIsObjectValid(oRespawner))
|
|
{
|
|
if (GetAlignmentGoodEvil(oRespawner) == ALIGNMENT_GOOD)
|
|
sScalpAlign = "G";
|
|
else if (GetAlignmentGoodEvil(oRespawner) == ALIGNMENT_EVIL)
|
|
sScalpAlign = "E";
|
|
else
|
|
sScalpAlign = "N";
|
|
|
|
sNewScalpTag = "SCP_" + AnphGetPlayerTeam(oRespawner) + "_" + ConvertNumberToFixedString(GetHitDice(oRespawner)) + "_" + sScalpAlign;
|
|
oScalp = CopyObject(GetObjectByTag("PlayerScalp"), GetLocation(oUser), oUser, sNewScalpTag);
|
|
SetLocalInt(oOther, "Scalped", 1);
|
|
oPlayerCorpse = GetItemPossessedBy(oOther, "PlayerCorpse");
|
|
DestroyObject(oPlayerCorpse);
|
|
DelayCommand(5.0, AnphRez (oRespawner, FALSE, oUser, TRUE));
|
|
}
|
|
else
|
|
{
|
|
SendMessageToPC(oUser, "Sorry, the player this corpse belongs to is no longer in this realm.");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
SendMessageToPC(oUser, "This one was scalped already");
|
|
}
|
|
}
|