/// <summary> /// Sendet eine Nachricht an alle Client, dass sich ein wert eines Benutzers geändert hat. /// </summary> /// <param name="client">Benutzer bei dem sich ein Wert verändert hat.</param> /// <param name="type">Typ des Wertes.</param> /// <param name="value">Wert der gesendet werden soll.</param> private void SendChangedPropertie(long client, ChangedPropertieType type, string value) { foreach (long otherClient in _connections.Keys) { if (otherClient != client) { Send(ServerMessageId.PropertieChanged, otherClient, client.ToString(), Convert.ToInt32(type).ToString(), value); } } }
private void HandleMessage_PropertieChanged(User user, NetworkMessage message) { if (message.Parameter.Length == 2) { ChangedPropertieType propertieType = (ChangedPropertieType)StringHelper.ParseInt(message.Parameter[0], -1); string value = message.Parameter[1]; #if DEBUG Console.WriteLine("{0} - Propertie changed: {1},{2}", message.EndPoint, propertieType, value); #endif switch ((ChangedPropertieType)StringHelper.ParseInt(message.Parameter[0], -1)) { case ChangedPropertieType.CharacterSelection: user.CharacterSelection = message.Parameter[1] == "1"; SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.Name: user.Name = value; SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.Hp: user.HP = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.MaxHp: user.MaxHP = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.Sp: user.SP = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.MaxSp: user.MaxSP = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.Map: user.Map = value; SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.BaseLevel: user.BaseLevel = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.JobLevel: user.JobLevel = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.BaseExp: user.BaseEXP = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.JobExp: user.JobEXP = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; case ChangedPropertieType.KilledMobs: user.KilledMobs = StringHelper.ParseInt(value, 0); SendChangedPropertie(message.Client, propertieType, value); break; } } }