private static void Game_OnInput(GameInputEventArgs args) { if (!args.Input.StartsWith("/")) { return; } if (args.Input.StartsWith("/model")) { args.Process = false; var model = args.Input.Replace("/model ", string.Empty).GetValidModel(); if (!model.IsValidModel()) { return; } Player.SetModel(model); return; } if (args.Input.StartsWith("/skin")) { args.Process = false; try { var skin = Convert.ToInt32(args.Input.Replace("/skin ", string.Empty)); Player.SetModel(Player.Unit.CharData.BaseSkinName, skin); } catch {} } }
private static async void DrawChampionSkin(Menu champs, Menu champMenu, ModelUnit modelUnit, Obj_AI_Hero hero) { Console.WriteLine("当前操作英雄:{0}", hero.ChampionName); var skinList = ModelManager.GetSkins(hero.ChampionName); Console.WriteLine("任务完成"); //var skinList = ModelManager.GetSkins(hero.ChampionName); foreach (Dictionary <string, object> skin in skinList) { var skinName = skin["name"].ToString().Equals("default") ? hero.ChampionName : skin["name"].ToString(); var skinId = (int)skin["num"]; Console.WriteLine("开始绘制皮肤:{0}", skinName); var changeSkin = champMenu.AddItem(new MenuItem(skinName, skinName).SetValue(false)); if (!hero.IsMe) { changeSkin.DontSave(); } if (hero.BaseSkinId.Equals(skinId)) { changeSkin.SetValue(true); } //如果当前选项为打开状态,且用户模型不等同于当前模型的 if (changeSkin.IsActive() && !hero.CharData.BaseSkinName.Equals(skinName) && hero.IsMe) { //设置之前设置过的菜单项目为false champMenu.Items.Find(h => h.DisplayName.Equals(hero.CharData.BaseSkinName)).SetValue(false); changeSkin.SetValue(true); //初始设置皮肤. modelUnit.SetModel(hero.CharData.BaseSkinName, skinId); } //否则设置菜单项目为TRUE; var hero1 = hero; changeSkin.ValueChanged += (s, e) => { if (e.GetNewValue <bool>()) { champMenu.Items.ForEach( p => { if (p.IsActive() && p.Name != skinName) { p.SetValue(false); } }); modelUnit.SetModel(hero1.ChampionName, skinId); } }; } var rootMenu = hero.IsAlly ? champs.SubMenu("allies") : champs.SubMenu("enemies"); rootMenu.AddSubMenu(champMenu); }