//某个玩家进入禁止英雄状态 public void MatchRoomRuleBanHero(IntPtr ptrParam, int nLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nLen); cmd_match_room_ban_hero_count obj = helper.get <cmd_match_room_ban_hero_count>(); // 重置10个位置高亮的部分 setAllPosNotBright(); int nNeedTime = 0; int nCamp = 0; SelectPhase nSelectState = SelectPhase.ENUM_WAIT_DISABLEHERO; for (int i = 0; i < obj.nCount; ++i) { cmd_match_room_rule_ban_hero cmdData = helper.get <cmd_match_room_rule_ban_hero>(); if (nNeedTime == 0) { nNeedTime = cmdData.nTimeInterval; } if (nCamp == 0) { nCamp = cmdData.nCamp; } if (cmdData.bIsSelf == 1) { CanSelectHero = true; CanChooseDisableHero = true; // 如果是轮到本地玩家去选择禁用英雄, 则解除这个锁 SetSelectHeroListLock(false); nSelectState = SelectPhase.ENUM_DISABLE; } //高亮哪个位置可以禁用英雄 SetChooseDisablePos(cmdData.nCamp, cmdData.nPos); } // 启用选择禁用英雄的倒计时 ShowSelectDisableHeroTime(nNeedTime, nCamp, (int)nSelectState); }
//开始选择英雄 public void MatchRoomRuleSelectHero(IntPtr ptrParam, int nPtrLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen); cmd_count cmdCount = helper.get <cmd_count>(); // 重置10个位置高亮的部分 setAllPosNotBright(); int nTime = 0; int nCamp = 0; for (int i = 0; i < cmdCount.nCount; ++i) { cmd_match_room_rule_ban_hero cmdInfo = helper.get <cmd_match_room_rule_ban_hero>(); if (nTime == 0) { nTime = cmdInfo.nTimeInterval; } if (nCamp == 0) { nCamp = cmdInfo.nCamp; } if (cmdInfo.bIsSelf == 1) { CanSelectHero = true; //准备按钮开启 SetHeroConfirmBtnVisible(); SetSelectHeroListLock(false); } //高亮哪个位置可以禁用英雄 SetChooseDisablePos(cmdInfo.nCamp, cmdInfo.nPos); } //启用选择英雄倒计时 ShowSelectDisableHeroTime(nTime, nCamp, (int)SelectPhase.ENUM_SELECT); }