void CHARACTER::SendDamagePacket(LPCHARACTER pAttacker, int Damage, BYTE DamageFlag)
{
if (IsPC() == true || (pAttacker->IsPC() == true && pAttacker->GetTarget() == this))
{
TPacketGCDamageInfo damageInfo;
memset(&damageInfo, 0, sizeof(TPacketGCDamageInfo));
damageInfo.header = HEADER_GC_DAMAGE_INFO;
damageInfo.dwVID = (DWORD)GetVID();
damageInfo.flag = DamageFlag;
damageInfo.damage = Damage;
if (GetDesc() != NULL)
{
GetDesc()->Packet(&damageInfo, sizeof(TPacketGCDamageInfo));
}
if (pAttacker->GetDesc() != NULL)
{
pAttacker->GetDesc()->Packet(&damageInfo, sizeof(TPacketGCDamageInfo));
}
/*
if (GetArenaObserverMode() == false && GetArena() != NULL)
{
GetArena()->SendPacketToObserver(&damageInfo, sizeof(TPacketGCDamageInfo));
}
*/
}
}
#include <gmpxx.h>
void CHARACTER::SendDamagePacket(LPCHARACTER pAttacker, const mpz_class &Damage, BYTE DamageFlag)
{
if (IsPC() == true || (pAttacker->IsPC() == true && pAttacker->GetTarget() == this))
{
TPacketGCDamageInfo damageInfo;
memset(&damageInfo, 0, sizeof(TPacketGCDamageInfo));
damageInfo.header = HEADER_GC_DAMAGE_INFO;
damageInfo.dwVID = (DWORD)GetVID();
damageInfo.flag = DamageFlag;
// GMP -> int / DWORD dönüşümü
damageInfo.damage = Damage.get_ui(); // protokol alanına sığacak şekilde
if (GetDesc() != NULL)
{
GetDesc()->Packet(&damageInfo, sizeof(TPacketGCDamageInfo));
}
if (pAttacker->GetDesc() != NULL)
{
pAttacker->GetDesc()->Packet(&damageInfo, sizeof(TPacketGCDamageInfo));
}
/*
if (GetArenaObserverMode() == false && GetArena() != NULL)
{
GetArena()->SendPacketToObserver(&damageInfo, sizeof(TPacketGCDamageInfo));
}
*/
}
}