//使用技能 public void useSkill(string path, ItemType itemType) { int itemId = Params.getItemId(itemType); if (!skillItemCount.ContainsKey(itemId) || skillItemCount [itemId] < 1) { return; } CSUseItem useItem = new CSUseItem(); PBItem item = new PBItem(); item.ItemId = itemId; item.Count = 1; useItem.Item = item; if (itemType == ItemType.MulBean) { Pacman pacman = pacmanMap [SocketManager.accountId]; useItem.Args = pacman.route.Count.ToString(); } SocketManager.SendMessageAsyc((int)MiGongOpcode.CSUseItem, CSUseItem.SerializeToBytes(useItem), delegate(int opcode, byte[] data) { // 不能再点 transform.parent.parent.Find("Canvas/skills/" + path).GetComponent <Button>().enabled = false; // 如果能走到这里,说明道具使用正常 SCUseItem ret = SCUseItem.Deserialize(data); skillItemCount[itemId] = skillItemCount[itemId] - 1; skillItemText[itemType].text = "x" + skillItemCount[itemId].ToString(); // 道具发挥效果 switch (itemType) { case ItemType.AddSpeed: Pacman pacman = pacmanMap [SocketManager.accountId]; pacman.addSpeed(Params.itemTables[itemId].Para1); break; case ItemType.AddTime: currentTime += Params.itemTables[itemId].Para1; break; case ItemType.MulBean: pacman = pacmanMap [SocketManager.accountId]; pacman.mulBean = 1 + Params.itemTables[itemId].Para1; break; case ItemType.ShowRoute: string[] routes = ret.Ret.Split(';'); int[] routeInt = new int[routes.Length]; for (int i = 0, len = routes.Length; i < len; i++) { routeInt [i] = int.Parse(routes [i]); } this.route = routeInt; showRoute(); break; } }); }
void Awake() { close.onClick.AddListener(delegate() { Sound.playSound(SoundType.Click); gameObject.SetActive(false); }); useButton.onClick.AddListener(delegate() { Sound.playSound(SoundType.Click); if (selectItemId > 0) { PacketItem pi = itemGo[selectItemId].GetComponent <PacketItem>(); if (pi.count < 1) { Debug.LogError("count is " + pi.count + ",can not use"); return; } ItemTable itemTable = Params.itemTables[selectItemId]; switch ((ItemType)(itemTable.ItemType)) { case ItemType.Energy: CSUseItem useItem = new CSUseItem(); PBItem item = new PBItem(); item.Count = 1; item.ItemId = itemTable.Id; useItem.Item = item; SocketManager.SendMessageAsyc((int)MiGongOpcode.CSUseItem, CSUseItem.SerializeToBytes(useItem), delegate(int opcode, byte[] data) { SCUseItem ret = SCUseItem.Deserialize(data); string[] args = ret.Ret.Split(';'); Params.startEnergySchedule(int.Parse(args[0]), long.Parse(args[1])); // 减少数量 // PacketItem pi = itemGo[item.ItemId].GetComponent<PacketItem>(); pi.decCount(1); if (pi.count <= 0) { init(); } }); break; } } }); }