using cfg.ActorCfg; using Code.Scripts.Gameplay.Game; using Cysharp.Threading.Tasks; using Framework; using Gameplay; using Gameplay.Character; using Gameplay.Net; using Gameplay.Unit; using Gameplay.Unit.Data; using System.ComponentModel; using System.Drawing.Text; public partial class SROptions { private bool _useFullCharacters; [Category("GM"), DisplayName("使用全角色")] public bool UseFullCharacters { get { return _useFullCharacters; } set { _useFullCharacters = value; } } [Category("GM"), DisplayName("添加所有角色")] public void OneKeyCompleteAccount() { CharacterDataInfoManager.Instance.AddAllCfgCharacter(); VehicleCultivateDataManager.Instance.AddAllCfgVehicles(); } [Category("GM"), DisplayName("添加所有角色")] public void ForceAddAllRoles() { CharacterDataInfoManager.Instance.AddAllCfgCharacter(); VehicleCultivateDataManager.Instance.AddAllCfgVehicles(); } [Category("GM"), DisplayName("己方无敌")] public bool SelfUnbeatable { get { return _selfUnbeatable; } set { _selfUnbeatable = value; } } private bool _selfUnbeatable = false; [Category("GM"), DisplayName("敌方无敌")] public bool EnemyUnbeatable { get { return _enemyUnbeatable; } set { _enemyUnbeatable = value; } } private bool _enemyUnbeatable = false; private int _emojiId; [Category("GM"), DisplayName("表情ID")] public int EmojiId { get { return _emojiId; } set { if (_emojiId.Equals(value)) return; _emojiId = value; SetEmoji(); } } [Category("GM"), DisplayName("设置表情")] public void SetEmoji() { var allUnits = GameUnitManager.instance.infightUnits; for (int i = 0; i < allUnits.count; i++) { var unit = allUnits.GetByIndex(i); if (unit.gameunitType != EGameUnitType.Character) continue; if (unit is Character character) character.emojiManager.SwitchEmoji(_emojiId); } } [Category("GM"), DisplayName("机器人数据初始化")] public void SendRobotTestInit() { if (UnityEngine.Application.isPlaying) { Gameplay.Net.NetHelper.RobotTestInit(); } } [Category("GM"), DisplayName("进入测试剧情")] public void EnterStory() { GameStateManager.Instance.ChangeState(new GameStateStory("1")); } private string gc; [Category("礼包兑换")] public string GiftCode { get { return gc; } set { gc = value; } } [Category("礼包兑换")] public void DoGiftCode() { if (UnityEngine.Application.isPlaying) { Gameplay.Net.NetHelper.GiftCode(GiftCode); } } [Category("屏幕适配"), DisplayName("显示UI适配安全区域")] public bool IsShowScreenSafeArea { get { return DebugScreen.Instance.IsShowSafeArea; } set { DebugScreen.Instance.IsShowSafeArea = value; DebugScreen.Instance.DebugChangeShowAreaState(); } } [Category("角色语音开关"), DisplayName("开启角色语音")] public bool IsOpenSpeakVoice { get { return AudioManager.Instance.GlobalIsSpeakOpen; } set { AudioManager.Instance.GlobalIsSpeakOpen = value; } } private int _itemId; [Category("GM增加物品"), DisplayName("物品ID")] public int ItemId { get { return _itemId; } set { if (_itemId.Equals(value)) return; SetItemId(value); _itemId = value; } } private void SetItemId(int id) { DataItem dataItem = TableManager.Instance.Tables.Item.Get(id); if ( dataItem==null) { SRDebug.Instance.ShowBugReportSheet(descriptionContent: "此ID不在item表里,查一下是不是填错了"); return; } _itemId = id; } private int _itemsCount=1; [Category("GM增加物品"), DisplayName("物品个数")] public int ItemsCount { get { return _itemsCount; } set { if (_itemsCount.Equals(value)) return; _itemsCount = value; } } private string GMToken = "phxh666"; [Category("GM增加物品"), DisplayName("增加指定物品")] public async void AddItem() { if(_itemsCount==0) { return; } string url = GetURL(GMToken, GetIp(), Actor.Instance.Base.GetProp(NLDPB.ActorProp.ActorId).ToString()); var request = UnityEngine.Networking.UnityWebRequest.Get(url); await request.SendWebRequest(); //DebugUtil.LogError("gm新错" + request.downloadHandler.text); } private string GetURL(string token, string ip, string actor) { string param = ""; if (_itemId <= 0 || _itemsCount <= 0) return null; param = $"{_itemId},{_itemsCount}"; return $"http://{ip}/gm?actor_id={actor}&command=AddItem&gm_token={token}¶m={param}"; } private string GetIp() { var serverInfo = AppConfig.Instance.GetCurrent(); return serverInfo.addrs[0].ip + ":8080"; } }