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))); }
public void PlaySound(AudioClip clip) { GameUtils.PlaySound(clip, audioPlayer); }
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)); } }
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(); } }
public void OnClickRechage() { GameUtils.GotoUiTab(79, 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); }
public bool CheckWeatherCondition() { return(WorkingWeather == null || WorkingWeather.Any(s => s == GameUtils.GetCurrentWeather())); }
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); }
/// <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())); }
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); } } }
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()); } }
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)); } }
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(); }
static void Main(string[] args) { GameUtils.Run(typeof(Program).Assembly); }
// private // properties #endregion #region Unity API protected virtual void Awake() { m_AssociatedView = GameUtils.FindAssociatedView(transform.parent); }
/// <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(); } } }
public void InitPosition(uint index) { Index = index; transform.position = GameUtils.GetPosition(this.Index) + (Vector3.up * halfHeight); }
/// <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(); } } }
private void ReturnToPreviousMenu() { ButtonsController buttonsControllerScript = GameUtils.FetchBouttonsControllerScript(); buttonsControllerScript.ReturnToLocalModeMenu(); }
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; }
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 }
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); } }
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); }
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); }
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)); }
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); } } } } } } }
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); } }