public TakeSilverEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                if (parameters.ContainsKey(0))
                {
                    ObjectId = parameters[0].ObjectToLong();
                }

                if (parameters.ContainsKey(1))
                {
                    TimeStamp = parameters[1].ObjectToLong() ?? 0;
                }

                if (parameters.ContainsKey(2))
                {
                    TargetEntityId = parameters[2].ObjectToLong();
                }

                if (parameters.ContainsKey(3))
                {
                    var yieldPreTax = parameters[3].ObjectToLong();
                    YieldPreTax = FixPoint.FromInternalValue(yieldPreTax ?? 0);
                }

                if (parameters.ContainsKey(5))
                {
                    var guildTax = parameters[5].ObjectToLong();
                    GuildTax = FixPoint.FromInternalValue(guildTax ?? 0);
                }

                if (parameters.ContainsKey(6))
                {
                    var clusterTax = parameters[6].ObjectToLong();
                    ClusterTax = FixPoint.FromInternalValue(clusterTax ?? 0);
                }

                if (parameters.ContainsKey(7))
                {
                    IsPremiumBonus = parameters[7] as bool? ?? false;
                }

                if (parameters.ContainsKey(8))
                {
                    var multiplier = parameters[8].ObjectToLong();
                    Multiplier = FixPoint.FromInternalValue(multiplier ?? 0);
                }

                YieldAfterTax        = YieldPreTax - GuildTax;
                ClusterYieldPreTax   = FixPoint.FromFloatingPointValue(YieldPreTax.DoubleValue - (YieldPreTax.DoubleValue / Multiplier.DoubleValue));
                PremiumAfterTax      = ClusterYieldPreTax - ClusterTax;
                ClusterYieldAfterTax = FixPoint.FromFloatingPointValue((ClusterYieldPreTax.DoubleValue / Multiplier.DoubleValue) - ClusterTax.DoubleValue);
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
        public UpdateFactionStandingEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                if (parameters.ContainsKey(0))
                {
                    CityFaction = FactionWarfareController.GetCityFactionFlagType(parameters[0].ObjectToByte());
                }

                if (parameters.ContainsKey(1))
                {
                    GainedFactionFlagPoints = FixPoint.FromInternalValue(parameters[1].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(2))
                {
                    BonusPremiumGainedFractionFlagPoints = FixPoint.FromInternalValue(parameters[2].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(3))
                {
                    TotalPlayerFactionFlagPoints = FixPoint.FromInternalValue(parameters[3].ObjectToLong() ?? 0);
                }
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
示例#3
0
        public PartySilverGainedEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            try
            {
                Debug.Print($"--- PartySilverGained (Event) ---");
                foreach (var parameter in parameters)
                {
                    Debug.Print($"{parameter}");
                }

                if (parameters.ContainsKey(0))
                {
                    TimeStamp = new GameTimeStamp(parameters[0].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(1))
                {
                    TargetEntityId = parameters[1].ObjectToLong();
                }

                if (parameters.ContainsKey(2))
                {
                    SilverNet = FixPoint.FromInternalValue(parameters[2].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(3))
                {
                    SilverPreTax = FixPoint.FromInternalValue(parameters[3].ObjectToLong() ?? 0);
                }
            }
            catch (Exception e)
            {
                Debug.Print(e.Message);
            }
        }
        public TakeSilverEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            try
            {
                if (parameters.ContainsKey(1))
                {
                    TimeStamp = parameters[1].ObjectToLong() ?? 0;
                }

                if (parameters.ContainsKey(2))
                {
                    TargetEntityId = parameters[2].ObjectToLong();
                }

                if (parameters.ContainsKey(3))
                {
                    var yieldPreTax = parameters[3].ObjectToLong();
                    YieldPreTax = FixPoint.FromInternalValue(yieldPreTax ?? 0);
                }

                if (parameters.ContainsKey(5))
                {
                    var guildTax = parameters[5].ObjectToLong();
                    GuildTax = FixPoint.FromInternalValue(guildTax ?? 0);
                }

                if (parameters.ContainsKey(6))
                {
                    var clusterTax = parameters[6].ObjectToLong();
                    ClusterTax = FixPoint.FromInternalValue(clusterTax ?? 0);
                }

                if (parameters.ContainsKey(7))
                {
                    PremiumBonus = parameters[7] as bool? ?? false;
                }

                if (parameters.ContainsKey(8))
                {
                    var multiplier = parameters[8].ObjectToLong();
                    Multiplier = FixPoint.FromInternalValue(multiplier ?? 0);
                }

                YieldAfterTax = YieldPreTax - GuildTax;
            }
            catch (Exception e)
            {
                Debug.Print(e.Message);
            }
        }
        public UpdateCurrencyEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                if (parameters.ContainsKey(2))
                {
                    CityFaction = FactionWarfareController.GetCityFactionType(parameters[2].ObjectToByte());
                }

                if (parameters.ContainsKey(3))
                {
                    GainedFactionCoins = FixPoint.FromInternalValue(parameters[3].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(4))
                {
                    FactionRankPoints = FixPoint.FromInternalValue(parameters[4].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(6))
                {
                    FactionRankPointsPopulationBonus = FixPoint.FromInternalValue(parameters[6].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(8))
                {
                    FactionRankPointsPremiumBonus = FixPoint.FromInternalValue(parameters[8].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(9))
                {
                    TotalPlayerFactionPoints = FixPoint.FromInternalValue(parameters[9].ObjectToLong() ?? 0);
                }
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
        public UpdateReSpecPointsEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                if (parameters.ContainsKey(0) && parameters[0] != null)
                {
                    var parameterType = parameters[0].GetType();

                    if (parameterType.Name == "Int32[]")
                    {
                        var reSpecPointsArray = ((int[])parameters[0]).ToDictionary();

                        if (!reSpecPointsArray.IsNullOrEmpty() && reSpecPointsArray.ContainsKey(1))
                        {
                            CurrentReSpecPoints = FixPoint.FromInternalValue(reSpecPointsArray[1].ObjectToLong() ?? 0);
                        }
                    }
                    else if (parameterType.Name == "Int64[]")
                    {
                        var reSpecPointsArray = ((long[])parameters[0]).ToDictionary();

                        if (!reSpecPointsArray.IsNullOrEmpty() && reSpecPointsArray.ContainsKey(1))
                        {
                            CurrentReSpecPoints = FixPoint.FromInternalValue(reSpecPointsArray[1].ObjectToLong() ?? 0);
                        }
                    }
                }
            }
            catch (ArgumentNullException e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
                Log.Error(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
            catch (InvalidCastException e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
                Log.Error(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
        public UpdateMoneyEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                if (parameters.ContainsKey(1))
                {
                    CurrentPlayerSilver = FixPoint.FromInternalValue(parameters[1].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(2))
                {
                    CurrentPlayerGold = FixPoint.FromInternalValue(parameters[2].ObjectToLong() ?? 0);
                }
            }
            catch (ArgumentNullException e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
                Log.Error(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
示例#8
0
        public PartySilverGainedEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            try
            {
                foreach (var parameter in parameters)
                {
                    Debug.Print($"{parameter}");
                }

                if (parameters.ContainsKey(0))
                {
                    TimeStamp = new GameTimeStamp(parameters[0].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(1))
                {
                    TargetEntityId = parameters[1].ObjectToLong();
                }

                if (parameters.ContainsKey(2))
                {
                    SilverNet = FixPoint.FromInternalValue(parameters[2].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(3))
                {
                    SilverPreTax = FixPoint.FromInternalValue(parameters[3].ObjectToLong() ?? 0);
                }
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
        public UpdateFameEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            ConsoleManager.WriteLineForNetworkHandler(GetType().Name, parameters);

            // Array[10] exist only by Crafting...
            try
            {
                //Debug.Print($"----- UpdateFame (Events) -----");
                //foreach (var parameter in parameters)
                //{
                //    Debug.Print($"{parameter}");
                //}

                if (parameters.ContainsKey(1))
                {
                    var totalPlayerFame = parameters[1] as long? ?? 0;
                    TotalPlayerFame = FixPoint.FromInternalValue(totalPlayerFame);
                }

                if (parameters.ContainsKey(3))
                {
                    GroupSize = parameters[3] as byte? ?? 0;
                }

                if (parameters.ContainsKey(4))
                {
                    Multiplier = FixPoint.FromInternalValue(parameters[4].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(5))
                {
                    IsPremiumBonus = parameters[5] as bool? ?? false;
                }

                if (parameters.ContainsKey(6))
                {
                    BonusFactor          = parameters[6] as float? ?? 1;
                    BonusFactorInPercent = (BonusFactor - 1) * 100;

                    IsBonusFactorActive = (BonusFactorInPercent > 0);
                }

                if (parameters.ContainsKey(2))
                {
                    var fameWithZoneMultiplier = FixPoint.FromInternalValue(parameters[2].ObjectToLong() ?? 0);
                    FameWithZoneMultiplier = FixPoint.FromFloatingPointValue(fameWithZoneMultiplier.DoubleValue * BonusFactor);
                }

                if (parameters.ContainsKey(9))
                {
                    SatchelFame = FixPoint.FromInternalValue(parameters[9].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(252))
                {
                    UsedItemType = parameters[252].ObjectToInt();
                }

                if (FameWithZoneMultiplier.DoubleValue > 0 && Multiplier.DoubleValue > 0)
                {
                    var newNormalFame = FameWithZoneMultiplier.DoubleValue / Multiplier.DoubleValue * BonusFactor;
                    NormalFame = FixPoint.FromFloatingPointValue(newNormalFame);
                }

                double fameWithZoneAndPremium = 0;
                if (FameWithZoneMultiplier.DoubleValue > 0)
                {
                    if (IsPremiumBonus)
                    {
                        fameWithZoneAndPremium = FameWithZoneMultiplier.DoubleValue * 1.5f;
                    }
                    else
                    {
                        fameWithZoneAndPremium = FameWithZoneMultiplier.DoubleValue;
                    }
                }

                if (fameWithZoneAndPremium > 0 && FameWithZoneMultiplier.DoubleValue > 0)
                {
                    var newPremiumFame = fameWithZoneAndPremium - FameWithZoneMultiplier.DoubleValue;
                    PremiumFame = FixPoint.FromFloatingPointValue(newPremiumFame);
                }

                if (FameWithZoneMultiplier.InternalValue >= NormalFame.InternalValue)
                {
                    ZoneFame = FixPoint.FromFloatingPointValue(FameWithZoneMultiplier.DoubleValue - (FameWithZoneMultiplier.DoubleValue / Multiplier.DoubleValue));
                }

                TotalGainedFame = FameWithZoneMultiplier + PremiumFame + SatchelFame;
            }
            catch (Exception e)
            {
                ConsoleManager.WriteLineForError(MethodBase.GetCurrentMethod().DeclaringType, e);
            }
        }
        public UpdateFameEvent(Dictionary <byte, object> parameters) : base(parameters)
        {
            // Array[10] exist only by Crafting...
            try
            {
                //Debug.Print($"----- UpdateFame (Events) -----");
                //foreach (var parameter in parameters)
                //{
                //    Debug.Print($"{parameter}");
                //}

                if (parameters.ContainsKey(1))
                {
                    var totalPlayerFame = parameters[1] as long? ?? 0;
                    TotalPlayerFame = FixPoint.FromInternalValue(totalPlayerFame);
                }

                if (parameters.ContainsKey(2))
                {
                    Change = FixPoint.FromInternalValue(parameters[2].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(3))
                {
                    GroupSize = parameters[3] as byte? ?? 0;
                }

                if (parameters.ContainsKey(4))
                {
                    Multiplier = FixPoint.FromInternalValue(parameters[4].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(5))
                {
                    IsPremiumBonus = parameters[5] as bool? ?? false;
                }

                if (parameters.ContainsKey(6))
                {
                    BonusFactor = parameters[6] as float? ?? 0;
                }

                if (parameters.ContainsKey(9))
                {
                    SatchelFame = FixPoint.FromInternalValue(parameters[9].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(252))
                {
                    UsedItemType = parameters[252].ObjectToInt();
                }

                if (Change.DoubleValue > 0 && Multiplier.DoubleValue > 0)
                {
                    var newNormalFame = Change.DoubleValue / Multiplier.DoubleValue;
                    NormalFame = FixPoint.FromFloatingPointValue(newNormalFame);
                }

                double fameWithZoneAndPremium = 0;
                if (Change.DoubleValue > 0)
                {
                    if (IsPremiumBonus)
                    {
                        fameWithZoneAndPremium = Change.DoubleValue * 1.5f;
                    }
                    else
                    {
                        fameWithZoneAndPremium = Change.DoubleValue;
                    }
                }

                if (fameWithZoneAndPremium > 0 && Change.DoubleValue > 0)
                {
                    var newPremiumFame = fameWithZoneAndPremium - Change.DoubleValue;
                    PremiumFame = FixPoint.FromFloatingPointValue(newPremiumFame);
                }

                if (Change.InternalValue >= NormalFame.InternalValue)
                {
                    ZoneFame = FixPoint.FromInternalValue(Change.InternalValue - NormalFame.InternalValue);
                }

                TotalGainedFame = NormalFame + ZoneFame + PremiumFame + SatchelFame;
            }
            catch (Exception e)
            {
                Debug.Print(e.Message);
            }
        }
示例#11
0
 private void DeserializeFixpoint(object output, object input)
 {
     _propertyInfo.SetValue(output, FixPoint.FromInternalValue((long)input));
 }
示例#12
0
        public JoinResponse(Dictionary <byte, object> parameters) : base(parameters)
        {
            try
            {
                Debug.Print("---------- UserInformation (Response) ----------");
                ConsoleManager.WriteLineForMessage(MethodBase.GetCurrentMethod().DeclaringType, "---------- UserInformation (Response) ----------", ConsoleManager.EventMapChangeColor);

                UserObjectId = null;
                if (parameters.ContainsKey(0))
                {
                    UserObjectId = parameters[0].ObjectToLong();
                    Debug.Print($"Local user ObjectId: {UserObjectId}");
                    ConsoleManager.WriteLineForMessage(MethodBase.GetCurrentMethod().DeclaringType, $"Local user ObjectId: {UserObjectId}", ConsoleManager.EventMapChangeColor);
                }

                if (parameters.ContainsKey(1))
                {
                    Guid = parameters[1].ObjectToGuid();
                    Debug.Print($"Local user Guid: {Guid}");
                    ConsoleManager.WriteLineForMessage(MethodBase.GetCurrentMethod().DeclaringType, $"Local user Guid: {Guid}", ConsoleManager.EventMapChangeColor);
                }

                if (parameters.ContainsKey(2))
                {
                    Username = parameters[2].ToString();
                }

                if (parameters.ContainsKey(8))
                {
                    MapIndex    = parameters[8].ToString();
                    MapType     = WorldData.GetMapType(MapIndex);
                    DungeonGuid = WorldData.GetDungeonGuid(MapIndex);
                }

                if (parameters.ContainsKey(23))
                {
                    CurrentFocusPoints = parameters[23].ObjectToDouble();
                }

                if (parameters.ContainsKey(24))
                {
                    MaxCurrentFocusPoints = parameters[24].ObjectToDouble();
                }

                if (parameters.ContainsKey(28))
                {
                    Silver = FixPoint.FromInternalValue(parameters[28].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(29))
                {
                    Gold = FixPoint.FromInternalValue(parameters[29].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(32))
                {
                    LearningPoints = FixPoint.FromInternalValue(parameters[32].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(36))
                {
                    Reputation = parameters[36].ObjectToDouble();
                }

                if (parameters.ContainsKey(38) && parameters[38] != null && parameters[38] is long[] reSpecArray && reSpecArray.Length > 1)
                {
                    ReSpecPoints = FixPoint.FromInternalValue(reSpecArray[1]);
                }

                if (parameters.ContainsKey(47))
                {
                    InteractGuid = parameters[47].ObjectToGuid();
                    ConsoleManager.WriteLineForMessage(MethodBase.GetCurrentMethod().DeclaringType, $"Local interact object Guid: {InteractGuid}", ConsoleManager.EventMapChangeColor);
                }

                if (parameters.ContainsKey(51))
                {
                    GuildName = string.IsNullOrEmpty(parameters[51].ToString()) ? string.Empty : parameters[51].ToString();
                }

                if (parameters.ContainsKey(58))
                {
                    MainMapIndex = string.IsNullOrEmpty(parameters[58].ToString()) ? string.Empty : parameters[58].ToString();
                }

                if (parameters.ContainsKey(61))
                {
                    PlayTimeInSeconds = parameters[61].ObjectToInt();
                }

                if (parameters.ContainsKey(70))
                {
                    AllianceName = string.IsNullOrEmpty(parameters[70].ToString()) ? string.Empty : parameters[70].ToString();
                }
            }
            catch (Exception e)
            {
                Log.Debug(nameof(JoinResponse), e);
            }
        }
        public JoinResponse(Dictionary <byte, object> parameters) : base(parameters)
        {
            try
            {
                Debug.Print($"---------- UserInformation (Response) ----------");
                //foreach (var parameter in parameters)
                //{
                //    Debug.Print($"{parameter}");
                //}

                UserObjectId = null;
                if (parameters.ContainsKey(0))
                {
                    UserObjectId = parameters[0].ObjectToLong();
                    Debug.Print($"UserObjectId: {parameters[0].ObjectToLong()}");
                }

                if (parameters.ContainsKey(2))
                {
                    Username = parameters[2].ToString();
                }

                if (parameters.ContainsKey(8))
                {
                    MapIndex      = parameters[8].ToString();
                    UniqueMapName = WorldData.GetUniqueNameOrDefault(MapIndex);
                    MapType       = WorldData.GetMapType(MapIndex);
                    DungeonGuid   = WorldData.GetDungeonGuid(MapIndex);
                }

                if (parameters.ContainsKey(23))
                {
                    CurrentFocusPoints = parameters[23].ObjectToDouble();
                }

                if (parameters.ContainsKey(24))
                {
                    MaxCurrentFocusPoints = parameters[24].ObjectToDouble();
                }

                if (parameters.ContainsKey(28))
                {
                    Silver = FixPoint.FromInternalValue(parameters[28].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(29))
                {
                    Gold = FixPoint.FromInternalValue(parameters[29].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(32))
                {
                    LearningPoints = FixPoint.FromInternalValue(parameters[32].ObjectToLong() ?? 0);
                }

                if (parameters.ContainsKey(36))
                {
                    Reputation = parameters[36].ObjectToDouble();
                }

                if (parameters.ContainsKey(38) && parameters[38] != null && parameters[38] is long[] reSpecArray && reSpecArray.Length > 1)
                {
                    ReSpecPoints = FixPoint.FromInternalValue(reSpecArray[1]);
                }

                if (parameters.ContainsKey(51))
                {
                    GuildName = string.IsNullOrEmpty(parameters[51].ToString()) ? string.Empty : parameters[51].ToString();
                }

                if (parameters.ContainsKey(58))
                {
                    MainMapIndex = string.IsNullOrEmpty(parameters[58].ToString()) ? string.Empty : parameters[58].ToString();
                }

                if (parameters.ContainsKey(61))
                {
                    PlayTimeInSeconds = parameters[61].ObjectToInt();
                }

                if (parameters.ContainsKey(69))
                {
                    AllianceName = string.IsNullOrEmpty(parameters[69].ToString()) ? string.Empty : parameters[69].ToString();
                }

                if (parameters.ContainsKey(92))
                {
                    CurrentDailyBonusPoints = parameters[92].ObjectToLong();
                }
            }
            catch (Exception e)
            {
                Log.Debug(nameof(JoinResponse), e);
            }
        }