Exemple #1
0
    public void RequestAttack(int abilityId, int targetId, Vector3 position)
    {
        Combat_AttackRequest packet = (Combat_AttackRequest)IntrepidSerialize.TakeFromPool(PacketType.Combat_AttackRequest);

        packet.frameId   = Client.FrameID;
        packet.abilityId = abilityId;
        packet.targetId  = targetId;
        packet.position  = position;
        Client.Send(packet);
    }
Exemple #2
0
    private void AttackRequestPacket(Combat_AttackRequest packet)
    {
        // TODO: Validate attack.
        Combat_AttackOriginate ao = (Combat_AttackOriginate)IntrepidSerialize.TakeFromPool(PacketType.Combat_AttackOriginate);

        ao.attackerId = EntityId;
        ao.frameId    = Server.FrameID;
        ao.abilityId  = packet.abilityId;
        ao.targetId   = packet.targetId;
        ao.position   = packet.position;

        // keep in mind threading things
        /*int nearbyPlayersCount = */ SpatialPartitioning.GetEntitiesInRadius(ref nearbyPlayers, Position);
        Server.Send(ao, nearbyPlayers.Select(e => e.EntityId));
    }