// game/src/packet.h -> search this: typedef struct packet_damage_info { BYTE header; DWORD dwVID; BYTE flag; int damage; } TPacketGCDamageInfo; // replace with this: typedef struct packet_damage_info { BYTE header; DWORD dwVictimVID; DWORD dwAttackerVID; BYTE flag; int damage; } TPacketGCDamageInfo; // game/src/char_battle.cpp //In function void CHARACTER::SendDamagePacket search this: damageInfo.dwVID = (DWORD)GetVID(); // replace with this: damageInfo.dwVictimVID = (DWORD)GetVID(); damageInfo.dwAttackerVID = (DWORD)pAttacker->GetVID(); //In function void CHARACTER::Dead(LPCHARACTER pkKiller, bool bImmediateDead) search this: if (IsRevive() == false && HasReviverInParty() == true) { m_pkDeadEvent = event_create(dead_event, pEventInfo, bImmediateDead ? 1 : PASSES_PER_SEC(3)); } else { m_pkDeadEvent = event_create(dead_event, pEventInfo, bImmediateDead ? 1 : PASSES_PER_SEC(10)); } // replace with this: m_pkDeadEvent = event_create(dead_event, pEventInfo, bImmediateDead ? 1 : PASSES_PER_SEC(1)); CLİENT SİDE // UserInterface/Packet.h -> search this: typedef struct packet_damage_info { BYTE header; DWORD dwVID; BYTE flag; int damage; } TPacketGCDamageInfo; // replace with this: typedef struct packet_damage_info { BYTE header; DWORD dwVictimVID; DWORD dwAttackerVID; BYTE flag; int damage; } TPacketGCDamageInfo; // UserInterface/InstanceBase.cpp -> search this: ProcessDamage(); // replace with this: ProcessRemoveOldDamage(); ProcessDamage(); // UserInterface/InstanceBase.h -> search this: struct SEffectDamage { DWORD damage; BYTE flag; BOOL bSelf; BOOL bTarget; }; typedef std::list CommandDamageQueue; CommandDamageQueue m_DamageQueue; void ProcessDamage(); public: void AddDamageEffect(DWORD damage, BYTE flag, BOOL bSelf, BOOL bTarget); //replace struct SEffectDamage { DWORD damage; BYTE flag; BOOL bSelf; BOOL bTarget; DWORD dwVictimVID; DWORD dwAttackerVID; }; typedef std::list CommandDamageQueue; CommandDamageQueue m_DamageQueue; void ProcessDamage(); void ProcessRemoveOldDamage(); public: void AddDamageEffect(DWORD damage, BYTE flag, BOOL bSelf, BOOL bTarget, DWORD dwVictimVID, DWORD dwAttackerVID);