Esempio n. 1
0
 /// <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);
         }
     }
 }
Esempio n. 2
0
        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;
                }
            }
        }