Esempio n. 1
0
        public string DoCmd(IDictionary <string, string> args)
        {
            switch (args["cmd"])
            {
            case "AddItem":
                string numStr;
                if (!args.TryGetValue("num", out numStr))
                {
                    numStr = "1";
                }
                foreach (var idStr in args["ids"].Split(','))
                {
                    int id  = Convert.ToInt32(idStr.Trim());
                    int num = Convert.ToInt32(numStr);
                    if (HookRegistry.IsWithinUnity())
                    {
                        HookRegistry.Debug("AddItem {0}", id);
                        Module <Player> .Self.bag.AddItem(id, num, false, AddItemMode.ForceBag);
                    }
                    else
                    {
                    }
                }
                break;

            case "UnlockAchievement":
            {
                int id = Convert.ToInt32(args["id"].Trim());
                if (HookRegistry.IsWithinUnity())
                {
                    if (Module <AchievementModule> .Self.IsAchievementUnlocked(id))
                    {
                        return(String.Format("{0} is unlocked", id));
                    }
                    Module <AchievementModule> .Self.UnlockAchievement(id);
                }
            }
            break;

            case "MissionAll":
            {
                StringBuilder sb = new StringBuilder();
                foreach (MissionBaseInfo missionBaseInfo in MissionManager.allMissionBaseInfo.Values)
                {
                    sb.Append(missionBaseInfo.InstanceID);
                    sb.Append(", ");
                    sb.Append(missionBaseInfo.MissionNO);
                    sb.Append(", ");
                    string name = TextMgr.GetOriginStr(missionBaseInfo.MissionNameId);
                    sb.Append(name);
                    sb.Append(", ");
                    sb.AppendLine();
                }
                return(sb.ToString());
            }

            case "TransportMap":
            {
                MessageManager.Instance.Dispatch("TransportMap", new object[] { }, DispatchType.IMME, 2f);
            }
            break;

            case "RefreshPriceIndex":                     //更新物价指数
                Module <StoreManagerV40> .Self.RefreshPriceIndex();

                break;

            case "ItemBar":                     //修改物品数量
            {
                int index = Convert.ToInt32(args["solt"].Trim()) - 1;
                int num   = Convert.ToInt32(args["num"].Trim());
                var item  = Module <Player> .Self.bag.itemBar.itemBarItems.ElementAt(index);

                if (item != null)
                {
                    num = Mathf.Clamp(num, 1, item.ItemBase.MaxNumber);
                    item.ChangeNumber(num - item.Number);
                    return(String.Format("slot {0} {2}({1}) => {3}", index + 1, item.ItemDataId, item.ItemBase.Name, item.Number));
                }
                else
                {
                    return("no item on bar");
                }
            }

            case "Test":
                return("test");
            }
            return("success");
        }