예제 #1
0
    private void SendDirtyMemoryVar(ServerPlayer[] playerInRange)
    {
        if (playerInRange.Length > 0)
        {
            NPC_BlackBoard packet = IntrepidSerialize.TakeFromPool(PacketType.NPC_BlackBoard) as NPC_BlackBoard;

            MemoryStream memoryStream = new MemoryStream();
            BinaryWriter bw           = new BinaryWriter(memoryStream);

            bw.Write(dirtyVars.Count);


            for (int i = 0; i < dirtyVars.Count; i++)
            {
                BBWriterReader.Write(dirtyVars[i], bw);
            }

            packet.bbDelta = memoryStream.ToArray();

            packet.entityId = EntityId;

            Server.Send(packet, playerInRange.Select(e => e.EntityId));

            dirtyVars.Clear();
        }
    }
예제 #2
0
 private void ReceiveBBPacket(NPC_BlackBoard obj)
 {
     OnBBStateFromServer?.Invoke(obj);
 }