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); } }
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)); } }