public void OnEntityAttack(EntityAttackPacket packet) { var attacker = UnityExtensions.GetEntity(packet.AttackerUID); var defender = UnityExtensions.GetEntity(packet.DefenderUID); var damage = packet.Damage; attacker.PerformAttackAnimation(defender, damage); }
//EntityAttackPacket private static void HandlePacket(EntityAttackPacket packet) { var id = packet.Id; var type = packet.Type; var mapId = packet.MapId; var attackTimer = packet.AttackTimer; Entity en = null; if (type < EntityTypes.Event) { if (!Globals.Entities.ContainsKey(id)) { return; } en = Globals.Entities[id]; } else { var entityMap = MapInstance.Get(mapId); if (entityMap == null) { return; } if (!entityMap.LocalEntities.ContainsKey(id)) { return; } en = entityMap.LocalEntities[id]; } if (en == null) { return; } if (attackTimer > -1 && en != Globals.Me) { en.AttackTimer = Globals.System.GetTimeMs() + attackTimer; } }