1
0

Refactored the TakeDamage API to take equipped weapon and armor into consideration (PvP untested)

http://forum.mc-server.org/showthread.php?tid=625

git-svn-id: http://mc-server.googlecode.com/svn/trunk@1087 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
madmaxoft@gmail.com
2012-12-21 11:04:08 +00:00
parent 231d6aed35
commit 912a1e7adc
62 changed files with 2532 additions and 1140 deletions

View File

@@ -918,7 +918,7 @@ void cClientHandle::HandleUseEntity(int a_TargetEntityID, bool a_IsLeftClick)
if (!a_Entity->GetWorld()->IsPVPEnabled())
{
// PVP is disabled
if (a_Entity->IsA("cPlayer") && Instigator->IsA("cPlayer"))
if (a_Entity->IsA("cPlayer") && m_Attacker->IsA("cPlayer"))
{
// Player is hurting another player which is not allowed when PVP is disabled so ignore it
return true;
@@ -926,17 +926,15 @@ void cClientHandle::HandleUseEntity(int a_TargetEntityID, bool a_IsLeftClick)
}
if (a_Entity->IsA("cPawn"))
{
reinterpret_cast<cPawn *>(a_Entity)->TakeDamage(Damage, Instigator);
reinterpret_cast<cPawn *>(a_Entity)->TakeDamage(*m_Attacker);
}
return true;
}
public:
int Damage;
cEntity * Instigator;
cPawn * m_Attacker;
} Callback;
Callback.Damage = 1; // TODO: Find proper damage from current item equipped
Callback.Instigator = m_Player;
Callback.m_Attacker = m_Player;
cWorld * World = m_Player->GetWorld();
World->DoWithEntityByID(a_TargetEntityID, Callback);