Beispiel #1
0
        public void OnModifyPlayerProperty(ModifyPlayerProperty packet)
        {
            foreach (var pair in packet.Property)
            {
                Player.Property[pair.Key] = pair.Value;
            }

            if (packet.RemovedKeys != null)
            {
                foreach (var key in packet.RemovedKeys)
                {
                    Player.Property.Remove(key);
                }
            }

            if (packet.Slient)
            {
                return;
            }

            lock (Sessions)
            {
                packet.Player = Player;
                Sessions.Broadcast(packet);
            }
        }
Beispiel #2
0
    private void ProcessModifyPlayerProperty(ModifyPlayerProperty packet)
    {
        if (packet.Player.PlayerId == player.PlayerId)
        {
            return;
        }

        EzPlayer targetPlayer = null;

        lock (players)
            targetPlayer = players.Find(x => x.PlayerId == packet.Player.PlayerId);

        foreach (var pair in packet.Property)
        {
            targetPlayer.Property[pair.Key] = pair.Value;
        }
        if (packet.RemovedKeys != null)
        {
            foreach (var key in packet.RemovedKeys)
            {
                targetPlayer.Property.Remove(key);
            }
        }

        if (onModifyPlayerProperty != null)
        {
            AddTask(() => onModifyPlayerProperty.Invoke(packet));
        }
    }