示例#1
0
        protected override void OnCollision(GameObject obj)
        {
            var rand = new Random(GameUtils.GetRandomSeed());

            brush = new SolidBrush(Color.FromArgb(rand.Next(256), rand.Next(256), rand.Next(256)));
        }
示例#2
0
 public void PlaySound(AudioClip clip)
 {
     GameUtils.PlaySound(clip, audioPlayer);
 }
示例#3
0
        public static void GetInfo(ClientInfo _cInfo, bool _announce)
        {
            string        _fps          = GameManager.Instance.fps.Counter.ToString();
            int           _playerCount  = ConnectionManager.Instance.ClientCount();
            int           _zombies      = 0;
            int           _animals      = 0;
            int           _feralZombies = 0;
            int           _supplyCrates = 0;
            int           _miniBikes    = 0;
            int           _stag         = 0;
            int           _bear         = 0;
            int           _rabbit       = 0;
            int           _chicken      = 0;
            int           _pig          = 0;
            int           _dog          = 0;
            int           _hornet       = 0;
            int           _cop          = 0;
            int           _screamer     = 0;
            int           _daysUntil7   = 7 - GameUtils.WorldTimeToDays(GameManager.Instance.World.GetWorldTime()) % 7;
            List <Entity> _entities     = GameManager.Instance.World.Entities.list;

            foreach (Entity _e in _entities)
            {
                string _name = EntityClass.list[_e.entityClass].entityClassName;
                if (_name == "playerMale" || _name == "playerFemale" || _name == "item" || _name == "fallingBlock" || _name == "Backpack" || _name == "traderBob" || _name == "fallingTree" || _name == "traderJoel" || _name == "traderRekt")
                {
                    continue;
                }
                else if (_name == "zombieMarlene" || _name == "zombieDarlene" || _name == "zombieArlene" || _name == "zombieBoe" || _name == "zombieYo" || _name == "zombieSteveCrawler" || _name == "zombieNurse" || _name == "zombieMoe" || _name == "zombieJoe" || _name == "burntzombie" || _name == "spiderzombie" || _name == "snowzombie" || _name == "zombieSteve" || _name == "ZombieStripper" || _name == "ZombieFarmer" || _name == "ZombieBiker" || _name == "ZombieFemaleUMA" || _name == "ZombieFemaleFatUMA" || _name == "ZombieMaleUMA" || _name == "zombieMaleHazmat" || _name == "ZombieCheerleader" || _name == "ZombieSoldier" || _name == "ZombieSkateboarder" || _name == "zombieFemaleHazmat" || _name == "ZombieMiner" || _name == "ZombieUtilityWorker" || _name == "ZombieFootballPlayer")
                {
                    if (_e.IsAlive())
                    {
                        _zombies = _zombies + 1;
                    }
                    continue;
                }
                else if (_name == "animalRabbit")
                {
                    if (_e.IsAlive())
                    {
                        _animals = _animals + 1;
                        _rabbit  = _rabbit + 1;
                    }
                    continue;
                }
                else if (_name == "animalChicken")
                {
                    if (_e.IsAlive())
                    {
                        _animals = _animals + 1;
                        _chicken = _chicken + 1;
                    }
                    continue;
                }
                else if (_name == "animalStag")
                {
                    if (_e.IsAlive())
                    {
                        _animals = _animals + 1;
                        _stag    = _stag + 1;
                    }
                    continue;
                }
                else if (_name == "animalPig")
                {
                    if (_e.IsAlive())
                    {
                        _animals = _animals + 1;
                        _pig     = _pig + 1;
                    }
                    continue;
                }
                else if (_name == "animalBear" || _name == "zombieBear")
                {
                    if (_e.IsAlive())
                    {
                        _animals = _animals + 1;
                        _bear    = _bear + 1;
                    }
                    continue;
                }
                else if (_name == "zombiedog")
                {
                    if (_e.IsAlive())
                    {
                        _zombies = _zombies + 1;
                        _dog     = _dog + 1;
                    }
                    continue;
                }
                else if (_name == "zombieScreamer")
                {
                    if (_e.IsAlive())
                    {
                        _zombies  = _zombies + 1;
                        _screamer = _screamer + 1;
                    }
                    continue;
                }
                else if (_name == "zombieferal")
                {
                    if (_e.IsAlive())
                    {
                        _zombies      = _zombies + 1;
                        _feralZombies = _feralZombies + 1;
                    }
                    continue;
                }
                else if (_name == "hornet")
                {
                    if (_e.IsAlive())
                    {
                        _zombies = _zombies + 1;
                        _hornet  = _hornet + 1;
                    }
                    continue;
                }
                else if (_name == "fatzombiecop")
                {
                    if (_e.IsAlive())
                    {
                        _zombies = _zombies + 1;
                        _cop     = _cop + 1;
                    }
                    continue;
                }
                else if (_name == "minibike")
                {
                    _miniBikes = _miniBikes + 1;
                    continue;
                }
                else if (_name == "sc_General")
                {
                    _supplyCrates = _supplyCrates + 1;
                    continue;
                }
                else
                {
                    Log.Out(string.Format("[SERVERTOOLS] Entity Class Name is: {0}", _name));
                }
            }
            string _phrase300;
            string _phrase301;
            string _phrase302;
            string _phrase303;
            string _phrase304;
            string _phrase305;
            string _phrase306;

            if (!Phrases.Dict.TryGetValue(300, out _phrase300))
            {
                _phrase300 = "Server FPS: {Fps}";
            }
            if (!Phrases.Dict.TryGetValue(301, out _phrase301))
            {
                _phrase301 = "Next 7th day is in {DaysUntil7} days";
            }
            if (!Phrases.Dict.TryGetValue(302, out _phrase302))
            {
                _phrase302 = "Total Players:{Players} Total Zombies:{Zombies} Total Animals:{Animals}";
            }
            if (!Phrases.Dict.TryGetValue(303, out _phrase303))
            {
                _phrase303 = "Feral Zombies:{Ferals} Cops:{Cops} Dogs:{Dogs} Bees:{Bees} Screamers:{Screamers}";
            }
            if (!Phrases.Dict.TryGetValue(304, out _phrase304))
            {
                _phrase304 = "Bears:{Bears} Stags:{Stags} Pigs:{Pigs} Rabbits:{Rabbits} Chickens:{Chickens}";
            }
            if (!Phrases.Dict.TryGetValue(305, out _phrase305))
            {
                _phrase305 = "Total Supply Crates:{SupplyCrates} Total Mini Bikes:{MiniBikes}";
            }
            if (!Phrases.Dict.TryGetValue(306, out _phrase306))
            {
                _phrase306 = "Next 7th day is today";
            }
            _phrase300 = _phrase300.Replace("{Fps}", _fps);
            _phrase301 = _phrase301.Replace("{DaysUntil7}", _daysUntil7.ToString());
            _phrase302 = _phrase302.Replace("{Players}", _playerCount.ToString());
            _phrase302 = _phrase302.Replace("{Zombies}", _zombies.ToString());
            _phrase302 = _phrase302.Replace("{Animals}", _animals.ToString());
            _phrase303 = _phrase303.Replace("{Ferals}", _feralZombies.ToString());
            _phrase303 = _phrase303.Replace("{Cops}", _cop.ToString());
            _phrase303 = _phrase303.Replace("{Dogs}", _dog.ToString());
            _phrase303 = _phrase303.Replace("{Bees}", _hornet.ToString());
            _phrase303 = _phrase303.Replace("{Screamers}", _screamer.ToString());
            _phrase304 = _phrase304.Replace("{Bears}", _bear.ToString());
            _phrase304 = _phrase304.Replace("{Stags}", _stag.ToString());
            _phrase304 = _phrase304.Replace("{Pigs}", _pig.ToString());
            _phrase304 = _phrase304.Replace("{Rabbits}", _rabbit.ToString());
            _phrase304 = _phrase304.Replace("{Chickens}", _chicken.ToString());
            _phrase305 = _phrase305.Replace("{SupplyCrates}", _supplyCrates.ToString());
            _phrase305 = _phrase305.Replace("{MiniBikes}", _miniBikes.ToString());
            if (_announce)
            {
                GameManager.Instance.GameMessageServer(_cInfo, EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase300, CustomCommands.ChatColor), "Server", false, "", false);
                if (_daysUntil7 == 7)
                {
                    GameManager.Instance.GameMessageServer(_cInfo, EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase306, CustomCommands.ChatColor), "Server", false, "", false);
                }
                else
                {
                    GameManager.Instance.GameMessageServer(_cInfo, EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase301, CustomCommands.ChatColor), "Server", false, "", false);
                }
                GameManager.Instance.GameMessageServer(_cInfo, EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase302, CustomCommands.ChatColor), "Server", false, "", false);
                GameManager.Instance.GameMessageServer(_cInfo, EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase303, CustomCommands.ChatColor), "Server", false, "", false);
                GameManager.Instance.GameMessageServer(_cInfo, EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase304, CustomCommands.ChatColor), "Server", false, "", false);
                GameManager.Instance.GameMessageServer(_cInfo, EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase305, CustomCommands.ChatColor), "Server", false, "", false);
            }
            else
            {
                _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase300, CustomCommands.ChatColor), "Server", false, "", false));
                if (_daysUntil7 == 7)
                {
                    _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase306, CustomCommands.ChatColor), "Server", false, "", false));
                }
                else
                {
                    _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase301, CustomCommands.ChatColor), "Server", false, "", false));
                }
                _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase302, CustomCommands.ChatColor), "Server", false, "", false));
                _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase303, CustomCommands.ChatColor), "Server", false, "", false));
                _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase304, CustomCommands.ChatColor), "Server", false, "", false));
                _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase305, CustomCommands.ChatColor), "Server", false, "", false));
            }
        }
示例#4
0
        internal override void Process()
        {
            if (!this.Device.Player.Avatar.Modes.IsAttackingOwnBase && this.Device.State == Logic.Enums.State.IN_PC_BATTLE)
            {
                Resources.Battles.Get(this.Device.Player.Avatar.Battle_ID).Battle_Tick = (int)this.CTick;
            }

            if (this.Count > -1)
            {
                if (Constants.MaxCommand == 0 || this.Count <= Constants.MaxCommand)
                {
                    //this.Device.Player.Tick();
                    using (Reader Reader = new Reader(this.Commands))
                    {
                        for (int _Index = 0; _Index < this.Count; _Index++)
                        {
                            int CommandID = Reader.ReadInt32();
                            if (CommandFactory.Commands.ContainsKey(CommandID))
                            {
                                var Command = Activator.CreateInstance(CommandFactory.Commands[CommandID], Reader,
                                                                       this.Device, CommandID) as Command;

                                if (Command != null)
                                {
#if DEBUG
                                    Console.ForegroundColor = ConsoleColor.Blue;
                                    Console.WriteLine("Command " + CommandID + " has  been handled.");
                                    Console.ResetColor();
#endif
                                    try
                                    {
                                        Command.Decode();
                                    }
                                    catch (Exception Exception)
                                    {
                                        Exceptions.Log(Exception,
                                                       Exception.Message + Environment.NewLine + Exception.StackTrace +
                                                       Environment.NewLine + Exception.Data, this.Device.Model,
                                                       this.Device.OSVersion,
                                                       this.Device.Player.Avatar.Token,
                                                       this.Device.Player?.Avatar.UserId ?? 0);

                                        Loggers.Log(Utils.Padding(Exception.GetType().Name, 15) + " : " +
                                                    Exception.Message + ". [" +
                                                    (this.Device.Player != null
                                                            ? this.Device.Player.Avatar.UserId + ":" +
                                                     GameUtils.GetHashtag(this.Device.Player.Avatar.UserId)
                                                            : "---") + ']' + Environment.NewLine + Exception.StackTrace,
                                                    true,
                                                    Defcon.ERROR);
                                    }

                                    try
                                    {
                                        Command.Process();
                                    }
                                    catch (Exception Exception)
                                    {
                                        Exceptions.Log(Exception,
                                                       Exception.Message + Environment.NewLine + Exception.StackTrace +
                                                       Environment.NewLine + Exception.Data, this.Device.Model,
                                                       this.Device.OSVersion,
                                                       this.Device.Player.Avatar.Token,
                                                       this.Device.Player?.Avatar.UserId ?? 0);

                                        Loggers.Log(Utils.Padding(Exception.GetType().Name, 15) + " : " +
                                                    Exception.Message + ". [" +
                                                    (this.Device.Player != null
                                                            ? this.Device.Player.Avatar.UserId + ":" +
                                                     GameUtils.GetHashtag(this.Device.Player.Avatar.UserId)
                                                            : "---") + ']' + Environment.NewLine + Exception.StackTrace,
                                                    true,
                                                    Defcon.ERROR);
                                    }
#if DEBUG
                                    this.LCommands.Add(Command);
#endif
                                }
                            }
                            else
                            {
#if DEBUG
                                Console.ForegroundColor = ConsoleColor.Red;
                                Console.WriteLine("Command " + CommandID + " has not been handled.");
                                if (this.LCommands.Any())
                                {
                                    Console.WriteLine("Previous command was " + this.LCommands.Last().Identifier +
                                                      ". [" + (_Index + 1) + " / " + this.Count + "]");
                                }
                                Console.ResetColor();
                                break;
#endif
                            }
                        }
                    }
                }
            }
            else
            {
                Exceptions.RavenClient.Capture(new SentryEvent($"Count value is weird {this.Count}"));
                new Out_Of_Sync(this.Device).Send();
            }
        }
示例#5
0
 public void OnClickRechage()
 {
     GameUtils.GotoUiTab(79, 0);
 }
示例#6
0
        public bool TypeConvert(object o, TargetBindingProperty target)
        {
            if (string.IsNullOrEmpty(target.name))
            {
                return(false);
            }
            if (target.name == "atlas")
            {
                var sprite = target.target.GetComponent <UISprite>();
                if (sprite == null)
                {
                    return(true);
                }
                var currentValue = "";
                if (sprite.atlas != null)
                {
                    currentValue = sprite.atlas.name;
                    if (currentValue.Equals(o.ToString()))
                    {
                        return(true);
                    }
                }
                var targetValue = "";
                var value       = o.ToString();
                if (value == "Grey")
                {
//需要把原本的设为灰度
                    if (currentValue.Contains("Grey"))
                    {
                        return(true);
                    }
                    //原来不是灰度
                    targetValue = currentValue + "Grey";
                }
                else if (value == "NotGrey")
                {
//需要把原本的设为彩色
                    if (currentValue.Contains("Grey"))
                    {
                        targetValue = currentValue.Remove(currentValue.Length - 4, 4);
                    }
                    else
                    {
//原来不是灰度
                        return(true);
                    }
                }
                else
                {
                    targetValue = value;
                }

                if (currentValue.Equals(targetValue))
                {
                    return(true);
                }
                target.AtlasValue = targetValue;

                if (targetValue.Contains("Circle"))
                {
                    var i = 1;
                }
                ResourceManager.PrepareResource <GameObject>("UI/Atlas/" + target.AtlasValue + ".prefab",
                                                             res =>
                {
                    if (res == null)
                    {
                        return;
                    }
                    //异步加载找不到原控件
                    if (target.target == null)
                    {
                        return;
                    }
                    if (targetValue == target.AtlasValue)
                    {
                        target.Set(res.GetComponent <UIAtlas>());
                    }
                }, true, true, true, false, true);
                return(true);
            }
            if (target.name == "mainTexture")
            {
                target.AtlasValue = o.ToString();
                ResourceManager.PrepareResource <Texture>(o.ToString(), res =>
                {
                    if (o.ToString() == target.AtlasValue)
                    {
                        target.Set(res);
                    }
                }, true, true, false, false, true);
                return(true);
            }
            if (target.name == "color")
            {
                if (o is string)
                {
                    var c = GameUtils.StringToColor(o.ToString());
                    target.Set(c);
                    return(true);
                }
            }
            return(false);
        }
示例#7
0
 public bool CheckWeatherCondition()
 {
     return(WorkingWeather == null || WorkingWeather.Any(s => s == GameUtils.GetCurrentWeather()));
 }
示例#8
0
    private IEnumerator ConnectCoroutine(AsyncResult <int> result)
    {
        if (Instance.Connected)
        {
            IsReconnecting = false;
            Logger.Debug("Connect to [" + ServerAddress + "] succeed!");
        }
        else
        {
            yield return(Instance.StartAndWaitConnect(TimeSpan.FromSeconds(3)));

            if (Instance.Connected)
            {
                Logger.Debug("Connect to [" + ServerAddress + "] succeed!");
                IsReconnecting = false;
            }
            else
            {
                yield return(Instance.StartAndWaitConnect(TimeSpan.FromSeconds(3)));

                if (Instance.Connected)
                {
                    Logger.Debug("Connect to [" + ServerAddress + "] succeed!");
                    IsReconnecting = false;
                }
                else
                {
                    yield return(Instance.StartAndWaitConnect(TimeSpan.FromSeconds(3)));

                    if (Instance.Connected)
                    {
                        Logger.Debug("Connect to [" + ServerAddress + "] succeed!");
                        IsReconnecting = false;
                    }
                    else
                    {
                        Logger.Debug("Connect to [" + ServerAddress + "] failed!");
                        result.Result = 0;
                        yield return(0);

                        yield break;
                    }
                }
            }
        }

        //SendReconnectMessageToGate();

        var game = Game.Instance;
        var msg1 = Instance.QueryServerTimezone(0);

        yield return(msg1.SendAndWaitUntilDone());

        if (msg1.State == MessageState.Reply && msg1.ErrorCode == 0)
        {
            var now  = DateTime.Now;
            var diff = (int)Math.Round((now - DateTime.UtcNow).TotalMinutes);
            game.ServerZoneDiff = TimeSpan.FromMinutes(msg1.Response - diff);
            if (TimeZone.CurrentTimeZone.IsDaylightSavingTime(now))
            {
                game.ServerZoneDiff = game.ServerZoneDiff.Add(TimeSpan.FromHours(1));
            }
        }

        var msg   = Instance.SyncTime(0);
        var watch = new Stopwatch();

        watch.Start();
        yield return(msg.SendAndWaitUntilDone());

        watch.Stop();

        if (msg.State == MessageState.Reply)
        {
            if (msg.ErrorCode == (int)ErrorCodes.OK)
            {
                game.ServerTimeDiff = (DateTime.Now - Extension.FromServerBinary((long)msg.Response)) -
                                      TimeSpan.FromMilliseconds(watch.ElapsedMilliseconds / 2);

                var now        = game.ServerTime;
                var targetTime = new DateTime(now.Year, now.Month, now.Day, 0, 0, 10).AddDays(1);

                //半夜十二点重置某些状态
                if (ZeroReplyTrigger != null)
                {
                    TimeManager.Instance.DeleteTrigger(ZeroReplyTrigger);
                    ZeroReplyTrigger = null;
                }
                ZeroReplyTrigger = TimeManager.Instance.CreateTrigger(targetTime, () =>
                {
                    game.LoginTime = game.ServerTime;
                    PlayerDataManager.Instance.ApplyAcitvityCompensate();
                    var cl = UIManager.Instance.GetController(UIConfig.PlayFrame);
                    if (cl != null)
                    {
                        cl.CallFromOtherClass("RefreshCells", null);
                    }
                }, TimeSpan.FromDays(1).Milliseconds);

                //战场双倍提示
                var time = Table.GetClientConfig(282).ToInt();
                var hour = time / 100;
                var min  = time % 100;
                targetTime = new DateTime(now.Year, now.Month, now.Day, hour, min, 0);
                if (targetTime < now)
                {
                    targetTime = targetTime.AddDays(1);
                }
                if (ZeroBattleReplyTrigger != null)
                {
                    TimeManager.Instance.DeleteTrigger(ZeroBattleReplyTrigger);
                    ZeroBattleReplyTrigger = null;
                }
                ZeroBattleReplyTrigger = TimeManager.Instance.CreateTrigger(targetTime, () =>
                {
                    TimeManager.Instance.DeleteTrigger(ZeroBattleReplyTrigger);
                    ZeroBattleReplyTrigger = null;
                    var content            = new ChatMessageContent();
                    content.Content        = GameUtils.GetDictionaryText(220455);
                    GameUtils.OnReceiveChatMsg((int)eChatChannel.SystemScroll, 0, string.Empty, content);
                }, TimeSpan.FromDays(1).Milliseconds);
                result.Result = 1;
                yield break;
            }
            UIManager.Instance.ShowNetError(msg.ErrorCode);
        }
        result.Result = 0;
        yield return(0);
    }
示例#9
0
    /// <summary>
    /// 把ui从堆栈中移除(可以不是栈顶的ui)
    /// </summary>
    /// <param name="ui"></param>
    /// <returns></returns>
    private IEnumerator Remove(IStackableUI ui)
    {
        EB.Debug.LogUI("界面UIStack:【<color=#00ff00>{0}</color>】在<color=#fff348>UIStack</color>中<color=#ff0000>从非栈顶出栈</color>,调用Remove方法", ui);
        // assume invisible first, update later
        _isInputBlockerVisible = false;
        _isFullScreenOpened    = false;

        // remove from backStack
        IStackableWrapper wrapper = null;

        EB.Collections.Stack <IStackableWrapper> tmp = new EB.Collections.Stack <IStackableWrapper>();
        while (_backStack.Count > 0)
        {
            var top = _backStack.Pop();
            if (top.stackable != ui)
            {
                if (top.stackable.IsFullscreen())
                {
                    _isFullScreenOpened = true;
                }
                if (top.inputBlockerInstance != null && !_isInputBlockerVisible)
                {
                    _isInputBlockerVisible = true;
                    top.inputBlockerInstance.GetComponent <UIPanel>().alpha = top.inputBlockerInstance.GetComponentInChildren <TweenAlpha>().to;
                }
                tmp.Push(top);
            }
            else
            {
                wrapper = top;
                break;
            }
        }

        IStackableWrapper[] below = _backStack.ToArray();

        while (tmp.Count > 0)
        {
            _backStack.Push(tmp.Pop());
        }

        // remove from fullStack
        EB.Collections.Stack <StackedItem> fullTmp = new EB.Collections.Stack <StackedItem>();
        while (_fullStack.Count > 0)
        {
            var top = _fullStack.Pop();
            if (top != wrapper)
            {
                fullTmp.Push(top);
            }
            else
            {
                break;
            }
        }

        while (fullTmp.Count > 0)
        {
            _fullStack.Push(fullTmp.Pop());
        }

        // update visibility
        for (int i = 0; i < below.Length; ++i)
        {
            if (!_isFullScreenOpened)
            {
                below[i].stackable.Show(true);

                if (below[i].inputBlockerInstance != null && !_isInputBlockerVisible)
                {
                    _isInputBlockerVisible = true;
                    below[i].inputBlockerInstance.GetComponent <UIPanel>().alpha = below[i].inputBlockerInstance.GetComponentInChildren <TweenAlpha>().to;
                }

                if (below[i].stackable.IsFullscreen())
                {
                    _isFullScreenOpened = true;

                    GameUtils.SetMainCameraActive(below[i].stackable.IsRenderingWorldWhileFullscreen());
                }
            }

            if (_isFullScreenOpened)
            {
                break;
            }
        }

        if (!_isFullScreenOpened && !IsLoadingScreenUp)
        {
            GameUtils.SetMainCameraActive(true);
        }

        // remove
        if (wrapper.inputBlockerInstance != null)
        {
            TweenAlpha ta = wrapper.inputBlockerInstance.GetComponentInChildren <TweenAlpha>();
            ta.tweenFactor = _isInputBlockerVisible ? 0.1f : 1.0f;
            EventDelegate.Add(ta.onFinished, () => Destroy(wrapper.inputBlockerInstance));
            ta.PlayReverse();
        }

        ui.ClearData();
        yield return(StartCoroutine(ui.OnRemoveFromStack()));
    }
示例#10
0
    private IEnumerator EnterGameCoroutine(ulong characterId, List <int> ret)
    {
        using (new BlockingLayerHelper(0))
        {
            var playerData = PlayerDataManager.Instance;
            playerData.Guid = characterId;
            var msg = Instance.EnterGame(characterId);
            yield return(msg.SendAndWaitUntilDone());

            Logger.Debug(msg.State.ToString());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    Logger.Debug("EnterGame.Reply");
                    playerData.CreateSysnc(characterId);
                    playerData.ResetLoginApplyState();
                    playerData.ApplyBags();
                    playerData.ApplySkills();
                    playerData.ApplyMissions(-1);
                    playerData.ApplyFlagData();
                    playerData.ApplyExtData();
                    playerData.ApplyExtData64();
                    playerData.ApplyMails();
                    playerData.ApplyBooks();
                    playerData.ApplyQueueData();
                    // playerData.ApplytReviewState();
                    playerData.ServerId           = msg.Response.ServerId;
                    playerData.CharacterGuid      = characterId;
                    playerData.CharacterFoundTime = Extension.FromServerBinary(msg.Response.FoundTime);

                    var friend = UIManager.Instance.GetController(UIConfig.FriendUI);
                    if (friend != null)
                    {
                        friend.CallFromOtherClass("ApplyAllInfo", new object[] {});
                    }

                    var chat = UIManager.Instance.GetController(UIConfig.ChatMainFrame);
                    if (chat != null)
                    {
                        chat.CallFromOtherClass("EnterGame", new object[] {});
                    }

                    var url = @"http://ip.ws.126.net/ipquery";
                    GameUtils.InvokeWebServer(url, AnalyzeIpAddress);
                    playerData.ApplyCityData();
                    playerData.ApplyTrading();
                    playerData.ApplyTeam();
                    playerData.InitTrigger();
                    playerData.ApplyActivityState();
                    playerData.ApplyAcitvityCompensate();
                    playerData.ApplyOperationActivity();

                    //bug统计id
                    PlatformHelper.BuglySetUserId(characterId.ToString());

                    //umeng登录
                    PlatformHelper.ProfileSignIn(characterId.ToString());
                    Game.Instance.LoginTime = Game.Instance.ServerTime;
                    GameLogic.IsFristLogin  = true;

                    PlayerDataManager.Instance.ReviewState = GameSetting.Instance.ReviewState;

                    // 增加长时间不上线推送
                    int[] days = { 3, 7, 15 };
                    for (var i = 0; i < 3; i++)
                    {
                        var key = string.Format("OffLineDays{0}", days[i]);
                        PlatformHelper.DeleteLocalNotificationWithKey(key);

                        var date       = Game.Instance.ServerTime;
                        var targetTime = date.AddDays(days[i]);
                        var time       = (targetTime - Game.Instance.ServerTime).TotalSeconds;
                        var message    = GameUtils.GetDictionaryText(240161 + i);
                        PlatformHelper.SetLocalNotification(key, message, time);
                    }
                }
                else
                {
                    PlayCG.Instance.Destroy();
                    //UIManager.Instance.ShowNetError(msg.ErrorCode);
                    Logger.Debug("EnterGame..................." + msg.ErrorCode);
                }
            }
            else
            {
                PlayCG.Instance.Destroy();
                GameUtils.ShowLoginTimeOutTip();
            }

            if (ret != null)
            {
                ret.Clear();
                ret.Add((int)msg.State);
                ret.Add(msg.ErrorCode);
            }
        }
    }
示例#11
0
    private IEnumerator ReconnectToLoginCoroutine()
    {
        Logger.Warn("Reconnect to Server Relogin and enter game... step 5");
        ObjManager.Instance.RemoveObjExceptPlayer();
        Logger.Warn("Reconnect to Server checkChannel... step 6");
        if (!GameUtils.IsOurChannel())
        {
            Logger.Warn("Reconnect to Server checkChannel  Channel!=our ... step 7");
            IsReconnecting = false;
            Game.Instance.ExitToLogin();
            yield break;
        }

        var ret = new List <int>();
        // 2.
        var co = CallReLoginByUserNamePassword(ret);

        yield return(co);

        if (ret.Count == 2 && ret[0] == (int)MessageState.Reply)
        {
            Logger.Warn("Reconnect to Server CallReLoginByUserNamePassword message replay ... step 8");
            if (ret[1] == (int)ErrorCodes.OK)
            {
                Logger.Warn("Reconnect to Server CallReLoginByUserNamePassword ErrorCode=OK ... step 9");
                // 3.
                co = CallReEnterGame(PlayerDataManager.Instance.Guid, ret);
                yield return(co);

                if (ret.Count == 2 && ret[0] == (int)MessageState.Reply)
                {
                    if (ret[1] == (int)ErrorCodes.OK)
                    {
                        Logger.Warn("Reconnect to Server CallReEnterGame OK... step 10");
                        NeedReconnet = true;
                        if (ObjManager.Instance != null && ObjManager.Instance.MyPlayer != null)
                        {
                            ObjManager.Instance.MyPlayer.RemoveAllBuff();
                        }
                        EventDispatcher.Instance.DispatchEvent(new UIEvent_ClearBuffList());

                        EventDispatcher.Instance.DispatchEvent(new Close_UI_Event(UIConfig.MessageBox));

                        Logger.Warn("Reconnect to Server Close_UI_Event UIConfig.MessageBox ... step 11");

                        // 4. 重新设置角色坐标
                        var data = PlayerDataManager.Instance.mInitBaseAttr;
                        if (ObjManager.Instance.MyPlayer != null)
                        {
                            ObjManager.Instance.MyPlayer.Position = GameLogic.GetTerrainPosition(data.X, data.Y);
                        }
                        Logger.Warn("Reconnect to Server Reset Player Postion ... step 12");

                        //5. 重新刷新主界面buff列表
                        var count = data.Buff.Count;
                        for (var i = 0; i < count; i++)
                        {
                            var buffResult = data.Buff[i];
                            EventDispatcher.Instance.DispatchEvent(new UIEvent_SyncBuffCell(buffResult));
                        }
                        Logger.Warn("Reconnect to Server refresh buff ... step 13");

                        Logger.Warn("Reconnect to Server Successed!!!! ... step 14");
                    }
                    else if (ret[1] == (int)ErrorCodes.Error_EnterGameWait)
                    {
                        IsReconnecting = false;
                        Logger.Error("Reconnect EnterGame failed! errorcode = {0}", ret[1]);
                        Game.Instance.ExitToLogin();
                    }
                    else
                    {
                        NeedReconnet = false;
                        UIManager.Instance.ShowNetError(ret[1]);
                    }
                }
            }
            // 排队
            else if (ret[1] == (int)ErrorCodes.Error_PLayerLoginWait)
            {
                IsReconnecting = false;
                Logger.Warn("Reconnect to Server ErrorCodes.Error_PLayerLoginWait step 15");
                Game.Instance.ExitToServerList();
            }
            else if (ret[1] == (int)ErrorCodes.PasswordIncorrect)
            {
                IsReconnecting = false;
                Logger.Error("Reconnect to Server ErrorCodes.PasswordIncorrect username:{0},password{1} error:6",
                             PlayerDataManager.Instance.UserName, PlayerDataManager.Instance.Password);
                Game.Instance.ExitToLogin();
            }
            else
            {
                Logger.Error("Reconnect to Server CallReEnterGame timeout! error:7");
                IsReconnecting = false;
                StartCoroutine(OnServerLost());
            }
        }
        else
        {
            ReconnectToServerTimes++;
            if (ReconnectToServerTimes > 3)
            {
                ReconnectToServerTimes = 0;
                IsReconnecting         = false;
                Logger.Error("Reconnect to Server CallReLoginByUserNamePassword timeout! retrytimes more then 3 error:8");
                Game.Instance.ExitToLogin();
                yield break;
            }

            Logger.Error("Reconnect to Server CallReLoginByUserNamePassword timeout! error:9");
            IsReconnecting = false;
            StartCoroutine(OnServerLost());
        }
    }
示例#12
0
 public static void Exec()
 {
     try
     {
         if (GameManager.Instance.World.Players.dict.Count > 0)
         {
             List <EntityPlayer> EntityPlayerList = GameManager.Instance.World.Players.list;
             for (int i = 0; i < EntityPlayerList.Count; i++)
             {
                 PlayerDataFile playerDataFile = new PlayerDataFile();
                 EntityPlayer   _player        = EntityPlayerList[i] as EntityPlayer;
                 if (_player != null)
                 {
                     ClientInfo _cInfo = ConnectionManager.Instance.Clients.ForEntityId(_player.entityId);
                     if (_cInfo != null)
                     {
                         if (_player.IsSpawned())
                         {
                             var    _x = (int)_player.position.x;
                             var    _y = (int)_player.position.y;
                             var    _z = (int)_player.position.z;
                             double _regionX, _regionZ;
                             if (_player.position.x < 0)
                             {
                                 _regionX = Math.Truncate(_player.position.x / 512) - 1;
                             }
                             else
                             {
                                 _regionX = Math.Truncate(_player.position.x / 512);
                             }
                             if (_player.position.z < 0)
                             {
                                 _regionZ = Math.Truncate(_player.position.z / 512) - 1;
                             }
                             else
                             {
                                 _regionZ = Math.Truncate(_player.position.z / 512);
                             }
                             string _ip = _cInfo.ip;
                             using (StreamWriter sw = new StreamWriter(Filepath, true))
                             {
                                 sw.WriteLine(string.Format("{0}: \"{1}\" SteamId {2}. IP Address {3} at Position: {4} X {5} Y {6} Z in RegionFile: r.{7}.{8}.7rg", DateTime.Now, _cInfo.playerName, _cInfo.playerId, _ip, _x, _y, _z, _regionX, _regionZ));
                                 sw.WriteLine();
                                 sw.Flush();
                                 sw.Close();
                             }
                             using (StreamWriter sw = new StreamWriter(Filepath, true))
                             {
                                 sw.WriteLine(string.Format("Stats: Health={0} Stamina={1} ZombieKills={2} PlayerKills={3} PlayerLevel={4}", (int)_player.Stats.Health.Value, (int)_player.Stats.Stamina.Value, _player.KilledZombies, _player.KilledPlayers, _player.Progression.GetLevel()));
                                 sw.WriteLine();
                                 sw.Flush();
                                 sw.Close();
                             }
                             playerDataFile.Load(GameUtils.GetPlayerDataDir(), _cInfo.playerId.Trim());
                             if (playerDataFile != null)
                             {
                                 using (StreamWriter sw = new StreamWriter(Filepath, true))
                                 {
                                     sw.WriteLine(string.Format("Inventory of " + _cInfo.playerName + " steamId {0}", _cInfo.playerId));
                                     sw.WriteLine("Belt:");
                                     sw.Flush();
                                     sw.Close();
                                 }
                                 PrintInv(playerDataFile.inventory, _cInfo.entityId, "belt");
                                 using (StreamWriter sw = new StreamWriter(Filepath, true))
                                 {
                                     sw.WriteLine("Backpack:");
                                     sw.Flush();
                                     sw.Close();
                                 }
                                 PrintInv(playerDataFile.bag, _cInfo.entityId, "backpack");
                                 using (StreamWriter sw = new StreamWriter(Filepath, true))
                                 {
                                     sw.WriteLine("Equipment:");
                                     sw.Flush();
                                     sw.Close();
                                 }
                                 PrintEquipment(playerDataFile.equipment, _cInfo.entityId, "equipment");
                                 using (StreamWriter sw = new StreamWriter(Filepath, true))
                                 {
                                     sw.WriteLine("End of inventory");
                                     sw.WriteLine();
                                     sw.WriteLine("----------------");
                                     sw.WriteLine();
                                     sw.Flush();
                                     sw.Close();
                                 }
                             }
                         }
                         else if (!_player.IsDead() && !_player.IsSpawned())
                         {
                             using (StreamWriter sw = new StreamWriter(Filepath, true))
                             {
                                 sw.WriteLine(string.Format("{0}: \"{1}\" SteamId {2}. Player has not spawned", DateTime.Now, _cInfo.playerName, _cInfo.playerId));
                                 sw.WriteLine();
                                 sw.WriteLine("----------------");
                                 sw.WriteLine();
                                 sw.Flush();
                                 sw.Close();
                             }
                         }
                         else if (_player.IsDead())
                         {
                             using (StreamWriter sw = new StreamWriter(Filepath, true))
                             {
                                 sw.WriteLine(string.Format("{0}: \"{1}\" SteamId {2}. Player is currently dead", DateTime.Now, _cInfo.playerName, _cInfo.playerId));
                                 sw.WriteLine();
                                 sw.WriteLine("----------------");
                                 sw.WriteLine();
                                 sw.Flush();
                                 sw.Close();
                             }
                         }
                     }
                 }
             }
             using (StreamWriter sw = new StreamWriter(Filepath, true))
             {
                 sw.WriteLine("***********************************************************");
                 sw.Flush();
                 sw.Close();
             }
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in PlayerLogs.Exec: {0}.", e.Message));
     }
 }
示例#13
0
    public override void OnNameBoardRefresh()
    {
        if (NameBoard == null)
        {
            return;
        }
        var nameStr = "";

        if (serverId == PlayerDataManager.Instance.ServerId)
        {
            nameStr = Name;
        }
        else
        {
            nameStr = string.Format("[{0}]{1}", GameUtils.GetServerName(serverId), Name);
        }

        if (GameLogic.Instance == null || GameLogic.Instance.Scene == null)
        {
            return;
        }

        var nameRule = 0;
        var sceneid  = GameLogic.Instance.Scene.SceneTypeId;
        var tbScene  = Table.GetScene(sceneid);

        if (tbScene == null)
        {
            return;
        }
        var isEnemy = ObjManager.Instance.MyPlayer.IsMyEnemy(this);
        var camp    = GetCamp();

        if (tbScene.Type == (int)eSceneType.Pvp)
        {
            var campStr = string.Empty;
            if (camp == 4)
            {
                campStr = GameUtils.GetDictionaryText(220448);
            }
            else if (camp == 5)
            {
                campStr = GameUtils.GetDictionaryText(220447);
            }

            var colStr = string.Empty;
            if (camp == 7 || camp == 8 || camp == 9)
            {
                switch (camp)
                {
                case 7:
                {
                    colStr = GameUtils.GetTableColorString(503);
                }
                break;

                case 8:
                {
                    colStr = GameUtils.GetTableColorString(502);
                }
                break;

                case 9:
                {
                    colStr = GameUtils.GetTableColorString(501);
                }
                break;
                }
            }
            else
            {
                if (isEnemy)
                {
                    colStr = GameUtils.ColorToString(Color.red);
                }
                else
                {
                    colStr = GameUtils.ColorToString(Color.green);
                }
            }

            SetNameBoardName(nameStr, campStr, CharacterBaseData.Reborn, colStr);
        }
        else
        {
            var rule   = tbScene.PvPRule;
            var tbRule = Table.GetPVPRule(rule);
            if (tbRule != null)
            {
                nameRule = tbRule.NameColorRule;
            }
            var c = Color.green;
            if (nameRule == (int)NameColorRule.PkValue)
            {
//根据杀气值显示颜色
                if (PkValue >= 10000)
                {
//灰[C0C0C0]
                    c = GameUtils.GetTableColor(96);
                }
                else if (PkValue > 0 && PkValue < 10000)
                {
                    var colorId = GameUtils.PkValueToColorId(PkValue);
                    if (colorId != -1)
                    {
                        c = GameUtils.GetTableColor(colorId);
                    }
                }
            }
            else
            {
//根据阵营
                if (isEnemy)
                {
//是敌人直接设为红色
                    c = Color.red;
                }
            }

            SetNameBoardName(nameStr, String.Empty, CharacterBaseData.Reborn, GameUtils.ColorToString(c));
        }
        NameBoardUpdate();
    }
示例#14
0
 static void Main(string[] args)
 {
     GameUtils.Run(typeof(Program).Assembly);
 }
示例#15
0
    // private

    // properties
    #endregion

    #region Unity API
    protected virtual void Awake()
    {
        m_AssociatedView = GameUtils.FindAssociatedView(transform.parent);
    }
示例#16
0
    /// <summary>
    /// 入栈的协程
    /// </summary>
    /// <param name="stackable"></param>
    /// <param name="manualDepth"></param>
    /// <returns></returns>
    private IEnumerator EnStackCoroutine(IStackableUI stackable)
    {
        if (stackable != null && !stackable.Equals(null))
        {
            // disable Main Camera
            if (stackable.IsFullscreen())
            {
                _isFullScreenOpened = true;

                GameUtils.SetMainCameraActive(stackable.IsRenderingWorldWhileFullscreen());
            }

            // OnBlur Event on top ui
            if (_backStack.Count > 0)
            {
                if (_enstackFlag == 0 && _backstackFlag == 0)
                {
                    _backStack.Peek().stackable.OnBlur();
                }
            }

            _enstackFlag   = 0;
            _backstackFlag = 0;

            // Create wrapper
            IStackableWrapper wrapper = new IStackableWrapper();
            wrapper.stackable = stackable;

            // Insert an input blocker if needed
            if (stackable.ShowUIBlocker)
            {
                _isInputBlockerVisible            = true;
                wrapper.inputBlockerInstance      = GameObject.Instantiate(inputBlockerPrefab);
                wrapper.inputBlockerInstance.name = string.Format("InputBlockerFor{0}", stackable.ToString());
                wrapper.inputBlockerInstance.transform.SetParent(gameObject.transform);
                wrapper.inputBlockerInstance.transform.localPosition = Vector3.zero;
                wrapper.inputBlockerInstance.transform.localScale    = Vector3.one;
                wrapper.inputBlockerInstance.GetComponentInChildren <UISprite>().alpha = 0.05f;
                TweenAlpha ta = wrapper.inputBlockerInstance.GetComponentInChildren <TweenAlpha>();
                ta.tweenFactor = 1.0f;                  //0.0f
                ta.PlayForward();
            }

            // Warn other screens that we're about to stack someone
            if (onEnstack != null)
            {
                onEnstack(stackable);
            }

            _nextStackDepth = AssignDepths(wrapper);

            // Hide below, set visible variables
            EB.Collections.Stack <IStackableWrapper> tempStack = new EB.Collections.Stack <IStackableWrapper>();
            while (_backStack.Count > 0)
            {
                tempStack.Push(_backStack.Pop());

                if (stackable.IsFullscreen())
                {
                    tempStack.Peek().stackable.Show(false);
                }
                if (tempStack.Peek().inputBlockerInstance != null && (stackable.ShowUIBlocker || stackable.IsFullscreen()))
                {
                    if (stackable.IsFullscreen() && wrapper.inputBlockerInstance == null)
                    {
                        _isInputBlockerVisible = false;
                    }

                    // hide blocker for next frame
                    var tempPanel = tempStack.Peek().inputBlockerInstance.GetComponent <UIPanel>();
                    if (wrapper.inputBlockerInstance && wrapper.inputBlockerInstance.name.Contains("DataPanelNew"))
                    {
                        tempPanel.alpha = 0.0f;
                    }
                    else
                    {
                        EB.Coroutines.EndOfFrame(delegate()
                        {
                            tempPanel.alpha = 0.0f;
                        });
                    }
                }
            }

            while (tempStack.Count > 0)
            {
                _backStack.Push(tempStack.Pop());
            }

            // Fix again
            if (_isInputBlockerVisible && stackable.IsFullscreen() && wrapper.inputBlockerInstance == null)
            {
                _isInputBlockerVisible = false;
            }

            // Place stackable
            _backStack.Push(wrapper);
            _fullStack.Push(wrapper);

            // OnFocus Event
            _enstackFlag = ++s_seed;
            int currentFlag = _enstackFlag;
            yield return(StartCoroutine(stackable.OnAddToStack()));

            if (_enstackFlag == currentFlag && !IsLoadingScreenUp)
            {
                _enstackFlag = 0;
                stackable.OnFocus();
            }
        }
    }
示例#17
0
    public void InitPosition(uint index)
    {
        Index = index;

        transform.position = GameUtils.GetPosition(this.Index) + (Vector3.up * halfHeight);
    }
示例#18
0
    /// <summary>
    /// 执行ui出栈操作,移除栈顶ui
    /// </summary>
    /// <param name="isPartOfExitStack">是否是退出状态的一部分,从而决定是否做些uicontroller中的一些逻辑或回调</param>
    /// <returns></returns>
    private IEnumerator BackstackCoroutine(bool isPartOfExitStack)
    {
        if (_backStack.Count == 0)
        {
            EB.Debug.LogWarning("BackstackCoroutine: backStack is empty");
            yield break;
        }

        IStackableWrapper wrapper = _backStack.Pop();

        EB.Debug.LogUI("界面UIStack:【<color=#00ff00>{0}</color>】在<color=#fff348>UIStack</color>中<color=#ff0000>从栈顶出栈</color>", wrapper.stackable);

        // Clear eventual stacked renderers from the full stack
        while (_fullStack.Pop() != wrapper)
        {
            ;
        }

        if (onBackstack != null)
        {
            onBackstack(wrapper.stackable);
        }

        if (wrapper.inputBlockerInstance != null)
        {
            // Value might be changed later depending on whether we find another input blocker before the next panel
            _isInputBlockerVisible = false;
            TweenAlpha ta = wrapper.inputBlockerInstance.GetComponentInChildren <TweenAlpha>();
            ta.tweenFactor = 1.0f;
            EventDelegate.Add(ta.onFinished, () => Destroy(wrapper.inputBlockerInstance));
            ta.PlayReverse();
        }

        if (wrapper.firstStackDepth >= 0 && wrapper.firstStackDepth < _nextStackDepth)
        {
            _nextStackDepth = wrapper.firstStackDepth;
        }

        // Let the other windows know what happened, show what needs to be shown, etc.
        if (_backStack.Count > 0)
        {
            EB.Collections.Stack <IStackableWrapper> tempStack = new EB.Collections.Stack <IStackableWrapper>();
            while (_backStack.Count > 0 && !_backStack.Peek().stackable.IsFullscreen())
            {
                tempStack.Push(_backStack.Pop());

                if (wrapper.stackable.IsFullscreen())
                {
                    tempStack.Peek().stackable.Show(true);
                }
                if (tempStack.Peek().inputBlockerInstance != null && !_isInputBlockerVisible)
                {
                    // show top blocker
                    //TweenAlpha tempTa = tempStack.Peek().inputBlockerInstance.GetComponentInChildren<TweenAlpha>();
                    _isInputBlockerVisible = true;
                    tempStack.Peek().inputBlockerInstance.GetComponent <UIPanel>().alpha = 1f;                   // tempTa.to;

                    // update tween parameters
                    if (wrapper.inputBlockerInstance != null)
                    {
                        TweenAlpha ta = wrapper.inputBlockerInstance.GetComponentInChildren <TweenAlpha>();
                        ta.tweenFactor = 0.0f;
                        wrapper.inputBlockerInstance.GetComponentInChildren <UISprite>().alpha = 0.05f;
                    }
                }
            }

            if (wrapper.stackable.IsFullscreen())
            {
                // If the count is positive, it means that we've hit a full screen
                if (_backStack.Count > 0)
                {
                    // show top full screen
                    _backStack.Peek().stackable.Show(true);
                    if (_backStack.Peek().inputBlockerInstance != null && !_isInputBlockerVisible)
                    {
                        // show top blocker
                        TweenAlpha tempTa = tempStack.Peek().inputBlockerInstance.GetComponentInChildren <TweenAlpha>();
                        _isInputBlockerVisible = true;
                        _backStack.Peek().inputBlockerInstance.GetComponent <UIPanel>().alpha = tempTa.to;

                        // update tween parameters
                        if (wrapper.inputBlockerInstance != null)
                        {
                            TweenAlpha ta = wrapper.inputBlockerInstance.GetComponentInChildren <TweenAlpha>();
                            ta.tweenFactor = 0.0f;
                            wrapper.inputBlockerInstance.GetComponentInChildren <UISprite>().alpha = 0.05f;
                        }
                    }

                    GameUtils.SetMainCameraActive(_backStack.Peek().stackable.IsRenderingWorldWhileFullscreen());
                }
                else
                {
                    // No full screen, show the HUD
                    _isFullScreenOpened = false;
                }
            }

            while (tempStack.Count > 0)
            {
                _backStack.Push(tempStack.Pop());
            }
        }
        else
        {
            // There's nothing in the stack, so no full screen, no blocker
            _isFullScreenOpened    = false;
            _isInputBlockerVisible = false;
        }

        if (!_isFullScreenOpened && !IsLoadingScreenUp)
        {
            GameUtils.SetMainCameraActive(true);
        }

        if (wrapper.stackable == _currentQueuedStackableDisplayed)
        {
            _currentQueuedStackableDisplayed = null;
        }

        if (_enstackFlag == 0 && _backstackFlag == 0 && !isPartOfExitStack)
        {
            wrapper.stackable.OnBlur();
        }

        _enstackFlag   = 0;
        _backstackFlag = 0;

        _backstackFlag = ++s_seed;
        var currentFlag = _backstackFlag;

        wrapper.stackable.ClearData();
        yield return(StartCoroutine(wrapper.stackable.OnRemoveFromStack()));

        if (currentFlag == _backstackFlag)
        {
            _backstackFlag = 0;

            if (_backStack.Count > 0 && !isPartOfExitStack)
            {
                //EB.Debug.LogWarning("Backstack: finish {0} onfocus", backStack.Peek().stackable);
                _backStack.Peek().stackable.OnFocus();
            }
            else
            {
                //EB.Debug.LogWarning("Backstack: finish");
            }

            if (!isPartOfExitStack)
            {
                OnFinishedBackstacking();
            }
        }
    }
示例#19
0
    private void ReturnToPreviousMenu()
    {
        ButtonsController buttonsControllerScript = GameUtils.FetchBouttonsControllerScript();

        buttonsControllerScript.ReturnToLocalModeMenu();
    }
示例#20
0
        internal static void ServerConsole()
        {
            if (Interface.Oxide.ServerConsole == null)
            {
                return;
            }

            Interface.Oxide.ServerConsole.Title = () => $"{GameManager.Instance.World.Players.Count} | {GamePrefs.GetString(EnumGamePrefs.ServerName)}";

            Interface.Oxide.ServerConsole.Status1Left  = () => GamePrefs.GetString(EnumGamePrefs.ServerName);
            Interface.Oxide.ServerConsole.Status1Right = () =>
            {
                var time   = TimeSpan.FromSeconds(Time.realtimeSinceStartup);
                var uptime = $"{time.TotalHours:00}h{time.Minutes:00}m{time.Seconds:00}s".TrimStart(' ', 'd', 'h', 'm', 's', '0');
                return($"{Mathf.RoundToInt(1f / Time.smoothDeltaTime)}fps, {uptime}");
            };

            Interface.Oxide.ServerConsole.Status2Left = () =>
            {
                var players  = $"{GameManager.Instance.World.Players.Count}/{GamePrefs.GetInt(EnumGamePrefs.ServerMaxPlayerCount)}";
                var entities = GameManager.Instance.World.Entities.Count;
                return($"{players}, {entities + (entities.Equals(1) ? " entity" : " entities")}");
            };
            Interface.Oxide.ServerConsole.Status2Right = () => string.Empty; // TODO: Network in/out

            Interface.Oxide.ServerConsole.Status3Left = () =>
            {
                var gameTime = GameManager.Instance.World.worldTime;
                var dateTime = Convert.ToDateTime($"{GameUtils.WorldTimeToHours(gameTime)}:{GameUtils.WorldTimeToMinutes(gameTime)}").ToString("h:mm tt");
                return($"{dateTime.ToLower()}, {GamePrefs.GetString(EnumGamePrefs.GameWorld)} [{GamePrefs.GetString(EnumGamePrefs.GameName)}]");
            };
            Interface.Oxide.ServerConsole.Status3Right      = () => $"Oxide {OxideMod.Version} for {GamePrefs.GetString(EnumGamePrefs.GameVersion)}";
            Interface.Oxide.ServerConsole.Status3RightColor = ConsoleColor.Yellow;
        }
示例#21
0
        internal override void Decode()
        {
            Loggers.Log(this, Utils.Padding(this.Device.Player != null ? this.Device.Player.Avatar.UserId + ":" + GameUtils.GetHashtag(this.Device.Player.Avatar.UserId) : "Player is null", 15), Defcon.TRACE);
            this.CTick    = this.Reader.ReadInt32();
            this.Checksum = this.Reader.ReadUInt32();
            this.Count    = this.Reader.ReadInt32();

            this.Commands = this.Reader.ReadBytes((int)(this.Reader.BaseStream.Length - this.Reader.BaseStream.Position));

#if DEBUG
            this.LCommands = new List <Command>((int)this.Count);
#endif
        }
示例#22
0
        public void InitData(ObjectCard hero)
        {
            objhero  = hero;
            HeroData = objhero.GetHeroRow();

            DataParent.SetActive(true);
            m_NullStateOBJ.SetActive(false);

            HeroName.text = string.Format(GameUtils.GetHeroNameFontColor(hero.GetHeroData().QualityLev), GameUtils.getString(HeroData.getTitleID()));
            InterfaceControler.AddLevelNum(hero.GetHeroData().Level.ToString(), HeroLevel);
            int       star       = hero.GetHeroData().StarLevel;
            Transform BrightStar = DataParent.transform.FindChild("HeroStar/BrightStar");

            for (int i = 0; i < BrightStar.childCount; ++i)
            {
                BrightStar.transform.GetChild(i).GetComponent <Image>().enabled = (i < star);
            }
            //InterfaceControler.GetInst().AddSharLevel(DataParent.transform.FindChild("Star_Image"),HeroData);

            //如果是远程英雄
            if (ClickType == 1)
            {
                int    group = ObjectSelf.GetInstance().Teams.GetDefaultGroup();
                X_GUID guid  = ObjectSelf.GetInstance().Teams.m_Matrix[group, FormationNum - 1];
                UI_FormMgr.Inst.SetBackHeroGuids(guid.GUID_value);
            }
        }
示例#23
0
        public static void EndGame(ClientInfo _cInfo, EntityPlayer _player)
        {
            DateTime _time;

            Players.Session.TryGetValue(_cInfo.playerId, out _time);
            TimeSpan varTime           = DateTime.Now - _time;
            double   fractionalMinutes = varTime.TotalMinutes;
            int      _timepassed       = (int)fractionalMinutes;
            int      _deaths           = XUiM_Player.GetDeaths(_player);
            int      _oldSession       = PersistentContainer.Instance.Players[_cInfo.playerId, true].SessionTime;
            int      _newSession       = _oldSession + _timepassed;

            PersistentContainer.Instance.Players[_cInfo.playerId, true].HardcoreSessionTime = _newSession;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].HardcoreZKills      = _player.KilledZombies;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].HardcoreDeaths      = _deaths;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].HardcoreKills       = _player.KilledPlayers;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].HardcoreScore       = _player.Score;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].HardcoreName        = _cInfo.playerName;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].BikeId           = 0;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].PlayerSpentCoins = 0;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].SessionTime      = 0;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].AuctionData      = 0;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].StartingItems    = false;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].FirstClaim       = false;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].IsClanOwner      = false;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].IsClanOfficer    = false;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].IsMuted          = false;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].IsJailed         = false;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastStuck        = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastLobby        = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastStuck        = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CancelTime       = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].SellDate         = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].Log             = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].JailDate        = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].MuteDate        = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastBike        = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastBackpack    = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastStuck       = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastFriendTele  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand1  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand2  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand3  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand4  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand5  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand6  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand7  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand8  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand9  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].CustomCommand10 = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].RespawnTime     = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastTravel      = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastAnimals     = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastVoteReward  = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastGimme       = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastKillme      = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastSetHome     = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].RespawnTime     = DateTime.Now.AddDays(-5);
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LobbyReturn     = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].NewTeleSpawn    = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].JailName        = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].MuteName        = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].HomePosition    = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].HomePosition2   = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].ClanName        = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].InvitedToClan   = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].LastWhisper     = null;
            PersistentContainer.Instance.Players[_cInfo.playerId, true].PlayerName      = null;
            PersistentContainer.Instance.Save();
            if (ClanManager.ClanMember.Contains(_cInfo.playerId))
            {
                ClanManager.ClanMember.Remove(_cInfo.playerId);
            }
            string _session = string.Format("0:00", _newSession % 60);

            SdtdConsole.Instance.ExecuteSync(string.Format("kick {0} \"Hardcore Game Over: Zombie Kills {1}, Player Kills {2}, Deaths {3}, Score {4}, Playtime {5}\"", _cInfo.playerId, _player.KilledZombies, _player.KilledPlayers, _deaths, _player.Score, _newSession), (ClientInfo)null);
            Player p = PersistentContainer.Instance.Players[_cInfo.playerId, false];

            if (p != null)
            {
                string _filepath  = string.Format("{0}/Player/{1}.map", GameUtils.GetSaveGameDir(), _cInfo.playerId);
                string _filepath1 = string.Format("{0}/Player/{1}.ttp", GameUtils.GetSaveGameDir(), _cInfo.playerId);
                if (File.Exists(_filepath))
                {
                    File.Delete(_filepath);
                }
                if (File.Exists(_filepath1))
                {
                    File.Delete(_filepath1);
                }
            }
            string _phrase951;

            if (!Phrases.Dict.TryGetValue(951, out _phrase951))
            {
                _phrase951 = "Hardcore Game Over: Player {PlayerName}, Zombie Kills {ZombieKills}, Player Kills {PlayerKills}, Deaths {Deaths}, Score {Score}, Playtime {Playtime}";
            }
            _phrase951 = _phrase951.Replace("{PlayerName}", _cInfo.playerName);
            _phrase951 = _phrase951.Replace("{ZombieKills}", _player.KilledZombies.ToString());
            _phrase951 = _phrase951.Replace("{PlayerKills}", _player.KilledPlayers.ToString());
            _phrase951 = _phrase951.Replace("{Deaths}", _deaths.ToString());
            _phrase951 = _phrase951.Replace("{Score}", _player.Score.ToString());
            _phrase951 = _phrase951.Replace("{Playtime}", _session);
            GameManager.Instance.GameMessageServer((ClientInfo)null, EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase951), Config.Server_Response_Name, false, "ServerTools", false);
        }
示例#24
0
 public static void Exec()
 {
     if (GameUtils.WorldTimeToMinutes(GameManager.Instance.World.GetWorldTime()) == 0)
     {
         if (PersistentContainer.Instance.Players.SteamIDs != null && PersistentContainer.Instance.Players.SteamIDs.Count > 0)
         {
             List <string> playerlist = PersistentContainer.Instance.Players.SteamIDs;
             for (int i = 0; i < playerlist.Count; i++)
             {
                 string           _steamId = playerlist[i];
                 PersistentPlayer _p       = PersistentContainer.Instance.Players[_steamId];
                 if (_p != null)
                 {
                     _p.Auction            = new Dictionary <int, ItemDataSerializable>();
                     _p.AuctionReturn      = new Dictionary <int, ItemDataSerializable>();
                     _p.Bank               = 0;
                     _p.BikeId             = 0;
                     _p.Bounty             = 0;
                     _p.BountyHunter       = 0;
                     _p.ClanInvite         = "";
                     _p.ClanName           = "";
                     _p.ClanOfficer        = false;
                     _p.ClanOwner          = false;
                     _p.ClanRequestToJoin  = new Dictionary <string, string>();
                     _p.CountryBanImmune   = false;
                     _p.CustomCommand1     = new DateTime();
                     _p.CustomCommand2     = new DateTime();
                     _p.CustomCommand3     = new DateTime();
                     _p.CustomCommand4     = new DateTime();
                     _p.CustomCommand5     = new DateTime();
                     _p.CustomCommand6     = new DateTime();
                     _p.CustomCommand7     = new DateTime();
                     _p.CustomCommand8     = new DateTime();
                     _p.CustomCommand9     = new DateTime();
                     _p.CustomCommand10    = new DateTime();
                     _p.CustomCommand11    = new DateTime();
                     _p.CustomCommand12    = new DateTime();
                     _p.CustomCommand13    = new DateTime();
                     _p.CustomCommand14    = new DateTime();
                     _p.CustomCommand15    = new DateTime();
                     _p.CustomCommand16    = new DateTime();
                     _p.CustomCommand17    = new DateTime();
                     _p.CustomCommand18    = new DateTime();
                     _p.CustomCommand19    = new DateTime();
                     _p.CustomCommand20    = new DateTime();
                     _p.FirstClaimBlock    = false;
                     _p.GyroId             = 0;
                     _p.HardcoreEnabled    = false;
                     _p.HardcoreStats      = new string[0];
                     _p.HighPingImmune     = false;
                     _p.HighPingImmuneName = "";
                     _p.HomePosition1      = "";
                     _p.HomePosition2      = "";
                     _p.JailDate           = new DateTime();
                     _p.JailName           = "";
                     _p.JailTime           = 0;
                     _p.JeepId             = 0;
                     _p.LastAnimal         = new DateTime();
                     _p.LastBike           = new DateTime();
                     _p.LastDied           = new DateTime();
                     _p.LastFriendTele     = new DateTime();
                     _p.LastGimme          = new DateTime();
                     _p.LastGyro           = new DateTime();
                     _p.LastHome1          = new DateTime();
                     _p.LastHome2          = new DateTime();
                     _p.LastJeep           = new DateTime();
                     _p.LastJoined         = new DateTime();
                     _p.LastKillMe         = new DateTime();
                     _p.LastLobby          = new DateTime();
                     _p.LastLog            = new DateTime();
                     _p.LastMarket         = new DateTime();
                     _p.LastMiniBike       = new DateTime();
                     _p.LastMotorBike      = new DateTime();
                     _p.LastStuck          = new DateTime();
                     _p.LastTravel         = new DateTime();
                     _p.LastVote           = new DateTime();
                     _p.LastVoteWeek       = new DateTime();
                     _p.LastWhisper        = "";
                     _p.LobbyReturnPos     = "";
                     _p.MarketReturnPos    = "";
                     _p.MiniBikeId         = 0;
                     _p.MotorBikeId        = 0;
                     _p.MuteDate           = new DateTime();
                     _p.MuteName           = "";
                     _p.MuteTime           = 0;
                     _p.NewSpawn           = false;
                     _p.NewSpawnPosition   = "";
                     _p.OldPlayer          = false;
                     _p.PlayerName         = "";
                     _p.PlayerWallet       = 0;
                     _p.SessionTime        = 0;
                     _p.StartingItems      = false;
                     _p.TotalTimePlayed    = 0;
                     _p.VoteWeekCount      = 0;
                     _p.WP            = "";
                     _p.ZoneDeathTime = new DateTime();
                 }
             }
             PersistentContainer.Instance.AuctionPrices  = new Dictionary <int, int>();
             PersistentContainer.Instance.ClientMuteList = new Dictionary <int, List <int> >();
             PersistentContainer.Instance.LastWeather    = new DateTime();
             PersistentContainer.Instance.PollData       = new string[0];
             PersistentContainer.Instance.PollOld        = new Dictionary <string[], string>();
             PersistentContainer.Instance.PollOpen       = false;
             PersistentContainer.Instance.PollVote       = new Dictionary <string, bool>();
             PersistentContainer.Instance.Track          = new List <string[]>();
             PersistentContainer.Instance.Save();
             Log.Out(string.Format("[SERVERTOOLS] Detected a new or unplayed map and old save data. Old data has been cleared from ServerTools"));
         }
     }
 }
    //初始化表格数据
    public void InitByTable()
    {
        //先加入总览按钮
        {
            var newCatalog = new AchievementSummaryBtnDataModel();
            newCatalog.Title  = GameUtils.GetDictionaryText(300834);
            newCatalog.TypeId = -1;
            DataModel.Catalog.Add(newCatalog);
        }

        //遍历表格分类
        Table.ForeachAchievement(table =>
        {
            //-1类型的是大类,不是成就数据
            if (-1 == table.Type)
            {
                //左侧分类按钮列表
                var newCatalog    = new AchievementSummaryBtnDataModel();
                newCatalog.Title  = table.Name;
                newCatalog.TypeId = table.Id;
                DataModel.Catalog.Add(newCatalog);

                //成就大类列表
                var newSummary    = new AchievementSummaryItemDataModel();
                newSummary.Title  = table.Name;
                newSummary.TypeId = table.Id;
                DataModel.Summary.Add(newSummary);

                return(true);
            }

            //该成就的分类
            var summary = DataModel.Summary[table.Type];
            summary.TotalNum++;


            {
//分析表格,根据类型缓存表格数据
                List <AchievementRecord> list = null;
                if (!mAnalyzeTable.TryGetValue(table.Type, out list))
                {
                    list = new List <AchievementRecord>();
                    mAnalyzeTable.Add(table.Type, list);
                }
                list.Add(table);
            }


            {
//缓存扩展数据所影响的成就
                if (-1 != table.Exdata)
                {
                    var list = new List <AchievementRecord>();
                    if (!mExtDataDic.TryGetValue(table.Exdata, out list))
                    {
                        list = new List <AchievementRecord>();
                        mExtDataDic.Add(table.Exdata, list);
                    }

                    list.Add(table);
                }
            }

            {
//缓存标记位影响哪些成就
                List <AchievementRecord> list = null;
                var flagId = table.RewardFlagId;
                if (-1 != flagId)
                {
                    if (!mFlagDataDic.TryGetValue(flagId, out list))
                    {
                        list = new List <AchievementRecord>();
                        mFlagDataDic.Add(flagId, list);
                    }
                    list.Add(table);
                }

                flagId = table.FinishFlagId;
                if (-1 != flagId)
                {
                    if (!mFlagDataDic.TryGetValue(flagId, out list))
                    {
                        list = new List <AchievementRecord>();
                        mFlagDataDic.Add(flagId, list);
                    }
                    list.Add(table);
                }

                flagId = table.ClientDisplay;
                if (-1 != flagId)
                {
                    if (!mFlagDataDic.TryGetValue(flagId, out list))
                    {
                        list = new List <AchievementRecord>();
                        mFlagDataDic.Add(flagId, list);
                    }
                    list.Add(table);
                }
            }

            {
//缓存等级影响哪些成就
                List <AchievementRecord> list = null;
                var level = table.ViewLevel;
                if (-1 != level)
                {
                    if (!mLevelDic.TryGetValue(level, out list))
                    {
                        list = new List <AchievementRecord>();
                        mLevelDic.Add(level, list);
                    }
                    list.Add(table);
                }
            }

            mTotalAchievement++;

            return(true);
        });
    }
        public int GetCurrentPlayerVictoryRating()
        {
            CurrentPlayer player = Service.Get <CurrentPlayer>();

            return(GameUtils.CalculatePlayerVictoryRating(player));
        }
        /// <summary>
        /// 进阶后的属性显示
        /// </summary>
        public void NewShow()
        {
            HeroTemplate _hero = (HeroTemplate)DataTemplate.GetInstance().m_HeroTable.getTableData(_Card.GetHeroRow().getStageUpTargetID());
            int          level = 0;

            switch (_hero.getQuality())
            {
            case 2:
                mSkill.SetActive(false);
                break;

            case 3:
                mSkill.SetActive(true);
                int           skillID3 = _hero.getSkill2ID();
                SkillTemplate skill3   = (SkillTemplate)DataTemplate.GetInstance().m_SkillTable.getTableData(skillID3);
                mSkillBg.overrideSprite = UIResourceMgr.LoadSprite(common.defaultPath + skill3.getSkillIcon());
                mSkillLevel.text        = skill3.getSkillLevel().ToString();
                mSkillName.text         = GameUtils.getString(skill3.getSkillName());
                mSkillType.text         = GameUtils.getString("common_skilltypename_1");
                UI_SkillTips _tips3 = new UI_SkillTips(_Card, skill3);
                mSkillDesText.text = _tips3.SetShow();
                level = DataTemplate.GetInstance().m_GameConfig.getHero_advanced_level_3();

                break;

            case 4:
                mSkill.SetActive(true);
                int skillID4 = _hero.getSkill3ID();
                if (skillID4 != -1)
                {
                    SkillTemplate skill4 = (SkillTemplate)DataTemplate.GetInstance().m_SkillTable.getTableData(skillID4);
                    mSkillBg.overrideSprite = UIResourceMgr.LoadSprite(common.defaultPath + skill4.getSkillIcon());
                    mSkillLevel.text        = skill4.getSkillLevel().ToString();
                    mSkillName.text         = GameUtils.getString(skill4.getSkillName());
                    mSkillType.text         = GameUtils.getString("common_skilltypename_3");
                    UI_SkillTips _tips4 = new UI_SkillTips(_Card, skill4);
                    mSkillDesText.text = _tips4.SetShow();
                }
                else
                {
                    mSkill.SetActive(false);
                }
                level = DataTemplate.GetInstance().m_GameConfig.getHero_advanced_level_4();
                break;

            case 5:
                level = DataTemplate.GetInstance().m_GameConfig.getHero_advanced_level_5();
                mSkill.SetActive(false);
                break;

            default:
                break;
            }
            Hero hero = new Hero();

            hero.heroid     = _Card.GetHeroRow().getStageUpTargetID();
            hero.herolevel  = level;
            hero.heroviewid = _hero.getArtresources();
            // ObjectCard obj = new ObjectCard();
            obj.GetHeroData().Init(hero);


            HeroData _heroDate = obj.GetHeroData();

            mLevelNew.text = obj.GetHeroData().Level + "/" + _hero.getMaxLevel();
            mHpNew.text    = (obj.GetBaseMaxHP() - _heroDate.TrainingMaxHP).ToString();
            int nPhysicalTraniningValue = 0;

            if (_hero.getClientSignType()[1] == 0)
            {
                nPhysicalTraniningValue = _heroDate.TrainingPhysicalAttack;
            }
            mPhysicsAttacksNew.text = (obj.GetPhysicalBaseAttack() - nPhysicalTraniningValue).ToString();
            int nMagicTraniningValue = 0;

            if (_hero.getClientSignType()[1] == 1)
            {
                nMagicTraniningValue = _heroDate.TrainingMagicAttack;
            }
            mMagicAttacksNew.text   = (obj.GetMagicBaseAttack() - nMagicTraniningValue).ToString();
            mPhysicsDefenseNew.text = (obj.GetPhysicalBaseDefence() - _heroDate.TrainingPhysicalDefence).ToString();
            mMagicDefenseNew.text   = (obj.GetMagicBaseDefence() - _heroDate.TrainingMagicDefence).ToString();
            mAccuracyNew.text       = obj.GetBaseHit().ToString();
            mEvaNew.text            = obj.GetBaseDodge().ToString();
            mCritNew.text           = obj.GetBaseCritical().ToString();
            mTenacityNew.text       = obj.GetBaseTenacity().ToString();
            mVelocityNew.text       = obj.GetBaseSpeed().ToString();
            int m_HeroStar = _hero.getQuality();
            int maxStar    = _hero.getMaxQuality();

            //星级品质界面控制
            for (int i = 0; i < 5; i++)
            {
                mStarListNew[i].SetActive(i + 1 <= m_HeroStar);
                mStarBGListNew[i].SetActive(i + 1 <= maxStar);
            }
            //for (int i = 0; i < mStarListNew.Count; i++)
            //{
            //    if (i < _hero.getQuality())
            //    {
            //        mStarListNew[i].SetActive(true);
            //    }
            //    else
            //    {
            //        mStarListNew[i].SetActive(false);
            //    }
            //}
            mSkillMaxNew.text = _hero.getSkillMaxLevel().ToString();
            Show3DModel(obj);
        }
示例#28
0
    private void LevelupChange(IEvent ievent)
    {
        var e           = ievent as UIEvent_SyncLevelUpAttrChange;
        var newAttrData = e.AttrData.NewAttr;
        var oldAttrData = e.AttrData.OldAttr;
        var oldLevel    = 0;
        var newLevel    = 0;

        if (!oldAttrData.TryGetValue((int)eAttributeType.Level, out oldLevel))
        {
            return;
        }
        if (!newAttrData.TryGetValue((int)eAttributeType.Level, out newLevel))
        {
            return;
        }

        var tableId = -1;

        for (var i = LevelUpRecordIdList.Count - 1; i >= 0; i--)
        {
            if (oldLevel < LevelUpRecordIdList[i] && newLevel >= LevelUpRecordIdList[i])
            {
                tableId = LevelUpRecordIdList[i];
                break;
            }
        }
        if (tableId == -1)
        {
            return;
        }

        var tbGetlevel = Table.GetLevelupTips(tableId);

        if (tbGetlevel.IsShow != 1)
        {
            return;
        }

        var length = tbGetlevel.DictTip.Length;

        for (var i = 0; i < length; i++)
        {
            var item = tbGetlevel.DictTip[i];
            if (item != -1)
            {
                if (i == 0)
                {
                    DataModel.Tips[i] = String.Format(GameUtils.GetDictionaryText(item), newLevel);
                }
                else
                {
                    DataModel.Tips[i] = GameUtils.GetDictionaryText(item);
                }
            }
            else
            {
                DataModel.Tips[i] = String.Empty;
            }
        }
        DataModel.Level = newLevel;
        foreach (var item in newAttrData)
        {
            switch (item.Key)
            {
            case (int)eAttributeType.PhyPowerMax:
            {
                DataModel.NewPhyPowerMax = item.Value;
            }
            break;

            case (int)eAttributeType.MagPowerMax:
            {
                DataModel.NewMagPowerMax = item.Value;
            }
            break;

            case (int)eAttributeType.PhyArmor:
            {
                DataModel.NewPhyArmor = item.Value;
            }
            break;

            case (int)eAttributeType.MagArmor:
            {
                DataModel.NewMagArmor = item.Value;
            }
            break;

            case (int)eAttributeType.HpMax:
            {
                DataModel.NewHpMax = item.Value;
            }
            break;
            }
        }
        foreach (var item in oldAttrData)
        {
            switch (item.Key)
            {
            case (int)eAttributeType.PhyPowerMax:
            {
                DataModel.OldPhyPowerMax = item.Value;
            }
            break;

            case (int)eAttributeType.MagPowerMax:
            {
                DataModel.OldMagPowerMax = item.Value;
            }
            break;

            case (int)eAttributeType.PhyArmor:
            {
                DataModel.OldPhyArmor = item.Value;
            }
            break;

            case (int)eAttributeType.MagArmor:
            {
                DataModel.OldMagArmor = item.Value;
            }
            break;

            case (int)eAttributeType.HpMax:
            {
                DataModel.OldHpMax = item.Value;
            }
            break;
            }
        }
        EventDispatcher.Instance.DispatchEvent(new Show_UI_Event(UIConfig.LevelUpTip));
    }
示例#29
0
        public static Color _friendColor = new Color(0.5411f, 0.1686f, 0.8862f);// new Color(138, 43, 226);


        public void OnGUI()
        {
            if (Settings.DrawPlayers && GameScene.IsLoaded() && GameScene.InMatch() && Main.LocalPlayer != null && Main.MainCamera != null && !MonoBehaviourSingleton <EFT.UI.PreloaderUI> .Instance.IsBackgroundBlackActive)
            {
                foreach (GamePlayer gamePlayer in Main.GamePlayers) //gamePlayer.Player.HealthController.GetBodyPartHealth(EBodyPart.Common, false).Current
                {
                    if (gamePlayer.IsOnScreen && gamePlayer.Distance <= Settings.DrawPlayersDistance && gamePlayer.Player != Main.LocalPlayer)
                    {
                        float      boxHeight     = Math.Abs(gamePlayer.ScreenPosition.y - gamePlayer.HeadScreenPosition.y);
                        string     PlayerInfo    = "";
                        string     WeaponName    = "";
                        int        AmmoCount     = -1;
                        int        MagAmmoCount  = -1;
                        string     WeaponInfo    = default;
                        string     BulletName    = "Empty";
                        int        creditsPrice  = default;
                        string     PriceOfPlayer = default;
                        PlayerType playerType    = default;
                        Color      InitColor     = default;

                        string customName = PlayerESP.PlayerInfo(gamePlayer, ref playerType, ref InitColor);

                        Color color = GameUtils.IsPlayerAlive(gamePlayer.Player) ? HealthColor(gamePlayer.Player.HealthController.GetBodyPartHealth(EBodyPart.Common, false).Current, InitColor) : _deadPlayerColor;

                        //Color color = HealthColor(gamePlayer.Player.HealthController.GetBodyPartHealth(EBodyPart.Common, false).Current, playerColor);

                        if (Settings.DrawPlayerBox && GameUtils.IsPlayerAlive(gamePlayer.Player) && gamePlayer.Distance <= Settings.DrawSkeletonDistance)
                        {
                            Render.CornerBox(new Vector2(gamePlayer.HeadScreenPosition.x, gamePlayer.HeadScreenPosition.y - 10f), boxHeight / 2.5f, boxHeight + 10f, 3f, color);
                        }
                        if (Settings.DrawPlayerLine && GameUtils.IsPlayerAlive(gamePlayer.Player) && !gamePlayer.IsAI)
                        {
                            Render.DrawLine(new Vector2(Screen.width / 2, Screen.height), new Vector2(gamePlayer.ScreenPosition.x, gamePlayer.ScreenPosition.y), 1f, color);//Aimbot.IsVisible(GameUtils.GetBonePosByID(gamePlayer.Player, 133)) ? Color.green : Color.red
                        }
                        if (Settings.DrawPlayerSkeleton && GameUtils.IsPlayerAlive(gamePlayer.Player) && gamePlayer.Player.HealthController.IsAlive && gamePlayer.Distance < Settings.DrawSkeletonDistance)
                        {
                            if (Settings.DrawScavSkeleton && playerType == PlayerType.Scav)
                            {
                                DrawSkeleton(gamePlayer, 1f, color);
                                if (Settings.DrawPlayerHeadLine && gamePlayer.Fov <= Settings.AimbotFOV)
                                {
                                    DrawHeadLine(gamePlayer);
                                }
                            }
                            else if (playerType != PlayerType.Scav)
                            {
                                DrawSkeleton(gamePlayer, 1f, color);
                                if (Settings.DrawPlayerHeadLine && gamePlayer.Fov <= Settings.AimbotFOV)
                                {
                                    DrawHeadLine(gamePlayer);
                                }
                            }
                        }

                        if (Settings.DrawPlayerName)
                        {
                            creditsPrice = PlayerValue(gamePlayer.Player);

                            if (gamePlayer.Player.HandsController != null && gamePlayer.Player.HandsController.Item != null)
                            {
                                WeaponName = gamePlayer.Player.HandsController.Item.ShortName.Localized();
                                if (gamePlayer.Player.HandsController.Item.GetItemComponent <KnifeComponent>() == null)
                                {
                                    if (gamePlayer.Player.HandsController.Item is Weapon && gamePlayer.Player.HandsController.Item.GetCurrentMagazine() != null && gamePlayer.Player.Weapon != null)
                                    {
                                        //.Weapon.ShortName.Localized();
                                        AmmoCount    = gamePlayer.Player.HandsController.Item.GetCurrentMagazine().Cartridges.Count + gamePlayer.Player.Weapon.ChamberAmmoCount;
                                        MagAmmoCount = gamePlayer.Player.HandsController.Item.GetCurrentMagazine().Cartridges.MaxCount;
                                        if (gamePlayer.Player.HandsController.Item.GetCurrentMagazine().Cartridges.Items.FirstOrDefault() != null)
                                        {
                                            BulletName = gamePlayer.Player.HandsController.Item.GetCurrentMagazine().Cartridges.Items.FirstOrDefault().ShortName.Localized();
                                        }
                                    }
                                }
                            }

                            if (GameUtils.IsPlayerAlive(gamePlayer.Player))
                            {
                                if (playerType == PlayerType.Player || playerType == PlayerType.Friend)
                                {
                                    PlayerInfo    = $"{gamePlayer.Player.Profile.Info.Nickname} [{gamePlayer.FormattedDistance}]";
                                    PriceOfPlayer = $" ({gamePlayer.Player.Profile.Info.Level}) [{creditsPrice / 1000}K]";
                                }
                                else
                                {
                                    PlayerInfo    = $"{customName} [{gamePlayer.FormattedDistance}]";
                                    PriceOfPlayer = $" ({gamePlayer.Player.Profile.Info.Level}) [{creditsPrice / 1000}K]";
                                }
                            }

                            WeaponInfo = $"{WeaponName} ({AmmoCount}/{MagAmmoCount})";

                            if (!GameUtils.IsPlayerAlive(gamePlayer.Player) && playerType == PlayerType.Player)
                            {
                                PlayerInfo = $"{gamePlayer.Player.Profile.Info.Nickname} [{gamePlayer.FormattedDistance}] [{creditsPrice / 1000}K]";
                            }

                            if (!gamePlayer.IsAI && GameUtils.IsPlayerAlive(gamePlayer.Player) && Settings.HideNames)
                            {
                                PlayerInfo    = $"Nigger [{gamePlayer.FormattedDistance}]";
                                PriceOfPlayer = $"({gamePlayer.Player.Profile.Info.Level}) [{creditsPrice / 1000}K]";
                            }

                            Render.DrawString(new Vector2(gamePlayer.HeadScreenPosition.x, gamePlayer.HeadScreenPosition.y - 29f), PlayerInfo, color, true, 8, FontStyle.Bold);
                            if (PriceOfPlayer != null)
                            {
                                Render.DrawString(new Vector2(gamePlayer.HeadScreenPosition.x, gamePlayer.HeadScreenPosition.y - 20f), PriceOfPlayer, color, true, 8, FontStyle.Bold);
                            }
                            if (WeaponInfo != default)
                            {
                                if (gamePlayer.Fov <= 230f && gamePlayer.Distance <= Settings.DrawSkeletonDistance && GameUtils.IsPlayerAlive(gamePlayer.Player))
                                {
                                    Vector2 PlayerInfoWeaponV2 = GUI.skin.GetStyle(WeaponInfo).CalcSize(new GUIContent(WeaponInfo));
                                    Render.DrawString(new Vector2(gamePlayer.ScreenPosition.x, gamePlayer.ScreenPosition.y + 5f), WeaponInfo, color, true, 8, FontStyle.Bold);
                                    Render.DrawString(new Vector2(gamePlayer.ScreenPosition.x, gamePlayer.ScreenPosition.y + 15f), $"[{BulletName}]", color, true, 8, FontStyle.Bold);
                                }
                            }
                        }
                    }
                }
            }
        }
示例#30
0
    void OnDefineBtnClick()
    {
        if (mRuneGUID == null || ItemEquipInfo == null)
        {
            return;
        }

        ItemTemplate itemT = ItemEquipInfo.GetItemRowData();

        //一星符文没法鉴定;
        if (itemT.getRune_quality() <= 1)
        {
            InterfaceControler.GetInst().AddMsgBox(GameUtils.getString("hero_rune_tip3"), transform);
            return;
        }

        int count = DataTemplate.GetInstance().GetRuneMaxRedefineTimes(itemT);

        //是否鉴定满级;
        if (ItemEquipInfo.GetDefineTimes() >= count)
        {
            InterfaceControler.GetInst().AddMsgBox(GameUtils.getString("hero_rune_tip4"), transform);
            return;
        }

        ///鉴定消耗物品是否足够;
        int itemId    = -1;                   //消耗道具id
        int itemCount = -1;                   //消耗道具数量;

        switch (ItemEquipInfo.GetDefineTimes())
        {
        case 0:
            itemId    = itemT.getRune_exposeCostType1();
            itemCount = itemT.getRune_exposeCostValue1();
            break;

        case 1:
            itemId    = itemT.getRune_exposeCostType2();
            itemCount = itemT.getRune_exposeCostValue2();
            break;

        case 2:
            itemId    = itemT.getRune_exposeCostType3();
            itemCount = itemT.getRune_exposeCostValue3();
            break;

        case 3:
            itemId    = itemT.getRune_exposeCostType4();
            itemCount = itemT.getRune_exposeCostValue4();
            break;

        default:
            break;
        }
        if (itemId != -1 && itemCount > 0)
        {
            int haveCount = 0;
            ObjectSelf.GetInstance().TryGetItemCountById(EM_BAG_HASHTABLE_TYPE.EM_BAG_HASHTABLE_TYPE_COMMON, itemId, ref haveCount);

            //道具不足提示;
            if (haveCount < itemCount)
            {
                ItemTemplate   costItemT = DataTemplate.GetInstance().GetItemTemplateById(itemId);
                UI_RechargeBox box       = UI_HomeControler.Inst.AddUI(UI_RechargeBox.UI_ResPath).GetComponent <UI_RechargeBox>();
                box.SetIsNeedDescription(true);
                Sprite sp = UIResourceMgr.LoadSprite(common.defaultPath + costItemT.getIcon());
                box.SetConsume_Image(sp);
                box.SetConNum(itemCount.ToString());
                string content = string.Format(GameUtils.getString("hero_rune_identifyform_tip1"), GameUtils.getString(costItemT.getName(), TEXT_COLOR.YELLOW));
                box.SetDescription_text(content);
                box.SetLeftBtn_text(GameUtils.getString("common_button_purchase1"));
                box.SetLeftClick(OnMsgBoxYesClick);
            }
            else
            {
                SendIndentifyProtocol();
            }
        }
        else
        {
            LogManager.LogError("错误的道具id:" + itemId + "或者是错误的道具数量:" + itemCount);
        }
    }