public void setData(PVPGameRoomData pVPGameRoomData) { // 优先使用热更新的代码 if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("QueRenBaoMingPanelScript_hotfix", "setData")) { ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.QueRenBaoMingPanelScript_hotfix", "setData", null, pVPGameRoomData); return; } m_PVPGameRoomData = pVPGameRoomData; m_text_roomname.text = m_PVPGameRoomData.gameroomname; if (m_PVPGameRoomData.baomingfei.CompareTo("0") == 0) { m_text_baomingfei.text = "免费"; m_image_baomingfei_icon.transform.localScale = new Vector3(0, 0, 0); } else { List <string> list = new List <string>(); CommonUtil.splitStr(m_PVPGameRoomData.baomingfei, list, ':'); // 报名费 m_text_baomingfei.text = list[1]; // 报名费类型:金币、蓝钻石 m_image_baomingfei_icon.transform.localScale = new Vector3(1, 1, 1); CommonUtil.setImageSprite(m_image_baomingfei_icon, GameUtil.getPropIconPath(int.Parse(list[0]))); } }
public void initJson(string json) { // 优先使用热更新的代码 if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("PVPGameRoomDataScript_hotfix", "initJson")) { ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.PVPGameRoomDataScript_hotfix", "initJson", null, json); return; } m_dataList.Clear(); JsonData jsonData = JsonMapper.ToObject(json); for (int i = 0; i < jsonData["room_list"].Count; i++) { PVPGameRoomData temp = new PVPGameRoomData(); temp.id = (int)jsonData["room_list"][i]["id"]; temp.gameroomtype = (string)jsonData["room_list"][i]["gameroomtype"]; temp.gameroomname = (string)jsonData["room_list"][i]["gameroomname"]; temp.kaisairenshu = (int)jsonData["room_list"][i]["kaisairenshu"]; temp.baomingrenshu = (int)jsonData["room_list"][i]["baomingrenshu"]; // 报名费 { temp.baomingfei = (string)jsonData["room_list"][i]["baomingfei"]; if (temp.baomingfei.CompareTo("0") != 0) { List <string> list = new List <string>(); CommonUtil.splitStr(temp.baomingfei, list, ':'); temp.baomingfei_id = int.Parse(list[0]); temp.baomingfei_num = int.Parse(list[1]); } } // 奖励 { temp.reward = (string)jsonData["room_list"][i]["reward"]; List <string> list = new List <string>(); CommonUtil.splitStr(temp.reward, list, ':'); temp.reward_id = int.Parse(list[0]); temp.reward_num = int.Parse(list[1]); } // 已报名人数增加点 temp.baomingrenshu += RandomUtil.getRandom(100, 200); m_dataList.Add(temp); } }
public PVPGameRoomData getDataById(int id) { PVPGameRoomData temp = null; for (int i = 0; i < m_dataList.Count; i++) { if (m_dataList[i].id == id) { temp = m_dataList[i]; break; } } return(temp); }
public PVPGameRoomData getDataByRoomType(string gameRoomType) { PVPGameRoomData temp = null; for (int i = 0; i < m_dataList.Count; i++) { if (m_dataList[i].gameroomtype.CompareTo(gameRoomType) == 0) { temp = m_dataList[i]; break; } } return(temp); }
public void initJson(string json) { m_dataList.Clear(); { JObject jo = JObject.Parse(json); JArray room_list = (JArray)JsonConvert.DeserializeObject(jo.GetValue("room_list").ToString()); for (int i = 0; i < room_list.Count; i++) { PVPGameRoomData temp = new PVPGameRoomData(); temp.id = (int)room_list[i]["id"]; temp.gameroomtype = (string)room_list[i]["gameroomtype"]; temp.gameroomname = (string)room_list[i]["gameroomname"]; temp.kaisairenshu = (int)room_list[i]["kaisairenshu"]; // 报名费 { temp.baomingfei = (string)room_list[i]["baomingfei"]; if (temp.baomingfei.CompareTo("0") != 0) { List <string> list = new List <string>(); CommonUtil.splitStr(temp.baomingfei, list, ':'); temp.baomingfei_type = int.Parse(list[0]); temp.baomingfei_num = int.Parse(list[1]); } } // 奖励 { temp.reward = (string)room_list[i]["reward"]; List <string> list = new List <string>(); CommonUtil.splitStr(temp.reward, list, ':'); temp.reward_id = int.Parse(list[0]); temp.reward_num = int.Parse(list[1]); } m_dataList.Add(temp); } } }
public void setPVPGameRoomData(PVPGameRoomData PVPGameRoomData) { // 优先使用热更新的代码 if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("PVP_List_Item_Script_hotfix", "setPVPGameRoomData")) { ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.PVP_List_Item_Script_hotfix", "setPVPGameRoomData", null, PVPGameRoomData); return; } m_PVPGameRoomData = PVPGameRoomData; m_text_changci.text = m_PVPGameRoomData.gameroomname; m_text_kaisairenshu.text = "满" + m_PVPGameRoomData.kaisairenshu.ToString() + "人开赛"; // 左边场次类型图标:金币、蓝钻石 { CommonUtil.setImageSprite(m_image_changci_icon, GameUtil.getPropIconPath(m_PVPGameRoomData.reward_id)); } if (m_PVPGameRoomData.baomingfei.CompareTo("0") == 0) { m_text_baomingfei.text = "免费"; m_image_baomingfei_icon.transform.localScale = new Vector3(0, 0, 0); } else { // 报名费类型:金币、蓝钻石 { List <string> list = new List <string>(); CommonUtil.splitStr(m_PVPGameRoomData.baomingfei, list, ':'); CommonUtil.setImageSprite(m_image_baomingfei_icon, GameUtil.getPropIconPath(m_PVPGameRoomData.baomingfei_id)); m_text_baomingfei.text = " *" + m_PVPGameRoomData.baomingfei_num; } } m_text_baomingrenshu.text = "已报名人数:" + m_PVPGameRoomData.baomingrenshu; InvokeRepeating("onInvoke", 5, 5); }
// 游戏结束 public override void gameOver(RoomData now_room) { try { now_room.setRoomState(RoomState.RoomState_end); LogUtil.getInstance().writeRoomLog(now_room, m_logFlag + "----" + ":比赛结束,roomid = :" + now_room.getRoomId()); // 游戏在线统计 for (int i = 0; i < now_room.getPlayerDataList().Count; i++) { Request_OnlineStatistics.doRequest(now_room.getPlayerDataList()[i].m_uid, now_room.getRoomId(), now_room.m_gameRoomType, now_room.getPlayerDataList()[i].m_isAI, (int)Request_OnlineStatistics.OnlineStatisticsType.OnlineStatisticsType_exit); } // 计算每个玩家的金币(积分) GameUtil.setPlayerScore(now_room, true); List <PlayerData> winPlayerList = new List <PlayerData>(); string gameRoomType = now_room.m_gameRoomType; int rounds_pvp = now_room.m_rounds_pvp; bool isContiune = true; // 是否打到最后一轮 bool isJueShengJu = false; // 下一局是否是决胜局 { PVPGameRoomData pvpGameRoomData = PVPGameRoomDataScript.getInstance().getDataByRoomType(gameRoomType); if (pvpGameRoomData == null) { LogUtil.getInstance().writeRoomLog(now_room, "获取比赛场信息失败:" + gameRoomType); return; } int kaisairenshu = pvpGameRoomData.kaisairenshu; switch (kaisairenshu) { case 8: { if (rounds_pvp == 3) { isContiune = false; } // 决胜局 else if (rounds_pvp == 2) { isJueShengJu = true; } } break; case 16: { if (rounds_pvp == 4) { isContiune = false; } // 决胜局 else if (rounds_pvp == 3) { isJueShengJu = true; } } break; case 32: { if (rounds_pvp == 5) { isContiune = false; } // 决胜局 else if (rounds_pvp == 4) { isJueShengJu = true; } } break; } } List <string> winnerList = new List <string>(); // 逻辑处理 { // 闲家赢 if (now_room.m_getAllScore >= 80) { for (int i = 0; i < now_room.getPlayerDataList().Count; i++) { if (now_room.getPlayerDataList()[i].m_isBanker == 0) { winnerList.Add(now_room.getPlayerDataList()[i].m_uid); ++now_room.getPlayerDataList()[i].m_myLevelPoker; if (now_room.getPlayerDataList()[i].m_myLevelPoker == 15) { now_room.getPlayerDataList()[i].m_myLevelPoker = 2; } now_room.m_levelPokerNum = now_room.getPlayerDataList()[i].m_myLevelPoker; winPlayerList.Add(now_room.getPlayerDataList()[i]); // 提交任务 if (!now_room.getPlayerDataList()[i].m_isAI) { Request_ProgressTask.doRequest(now_room.getPlayerDataList()[i].m_uid, 203); Request_ProgressTask.doRequest(now_room.getPlayerDataList()[i].m_uid, 212); } // 记录胜利次数数据 { Request_RecordUserGameData.doRequest(now_room.getPlayerDataList()[i].m_uid, now_room.m_gameRoomType, (int)TLJCommon.Consts.GameAction.GameAction_Win); } // 分数在原来的基础上减半,防止玩家之间分数差距太大 { now_room.getPlayerDataList()[i].m_score /= 2; } } // 加入淘汰人员列表里 else { //PVPChangCiUtil.getInstance().addPlayerToThere(now_room.m_gameRoomType, now_room.getPlayerDataList()[i]); //// 分数在原来的基础上减10000,防止比晋级的人分数高,影响排名 //if (!isJueShengJu && isContiune) //{ // now_room.getPlayerDataList()[i].m_score -= 10000; //} } } } // 庄家赢 else { for (int i = 0; i < now_room.getPlayerDataList().Count; i++) { if (now_room.getPlayerDataList()[i].m_isBanker == 1) { winnerList.Add(now_room.getPlayerDataList()[i].m_uid); ++now_room.getPlayerDataList()[i].m_myLevelPoker; if (now_room.getPlayerDataList()[i].m_myLevelPoker == 15) { now_room.getPlayerDataList()[i].m_myLevelPoker = 2; } now_room.m_levelPokerNum = now_room.getPlayerDataList()[i].m_myLevelPoker; winPlayerList.Add(now_room.getPlayerDataList()[i]); // 提交任务 if (!now_room.getPlayerDataList()[i].m_isAI) { Request_ProgressTask.doRequest(now_room.getPlayerDataList()[i].m_uid, 212); } // 记录胜利次数数据 { Request_RecordUserGameData.doRequest(now_room.getPlayerDataList()[i].m_uid, now_room.m_gameRoomType, (int)TLJCommon.Consts.GameAction.GameAction_Win); } // 分数在原来的基础上减半,防止玩家之间分数差距太大 { now_room.getPlayerDataList()[i].m_score /= 2; } } // 加入淘汰人员列表里 else { //PVPChangCiUtil.getInstance().addPlayerToThere(now_room.m_gameRoomType, now_room.getPlayerDataList()[i]); //// 分数在原来的基础上减10000,防止比晋级的人分数高,影响排名 //if (!isJueShengJu && isContiune) //{ // now_room.getPlayerDataList()[i].m_score -= 10000; //} } } } } for (int i = 0; i < winPlayerList.Count; i++) { LogUtil.getInstance().writeRoomLog(now_room, m_logFlag + "----" + ":胜利的人:" + winPlayerList[i].m_uid + " isBanker:" + winPlayerList[i].m_isBanker); } // 通知 { JObject respondJO; { respondJO = new JObject(); respondJO.Add("tag", m_tag); respondJO.Add("playAction", (int)TLJCommon.Consts.PlayAction.PlayAction_GameOver); respondJO.Add("getAllScore", now_room.m_getAllScore); respondJO.Add("isBankerWin", now_room.m_getAllScore >= 80 ? 0 : 1); respondJO.Add("isContiune", isContiune); } // 给在线的人推送 for (int i = 0; i < now_room.getPlayerDataList().Count; i++) { // 推送给客户端 if (!now_room.getPlayerDataList()[i].isOffLine()) { if (!(now_room.getPlayerDataList()[i].m_isAI)) { if (respondJO.GetValue("score") != null) { respondJO.Remove("score"); } respondJO.Add("score", now_room.getPlayerDataList()[i].m_score); PlayService.m_serverUtil.sendMessage(now_room.getPlayerDataList()[i].m_connId, respondJO.ToString()); } } else { if (!(now_room.getPlayerDataList()[i].m_isAI)) { // 记录逃跑数据 Request_RecordUserGameData.doRequest(now_room.getPlayerDataList()[i].m_uid, now_room.m_gameRoomType, (int)TLJCommon.Consts.GameAction.GameAction_Run); } } // 告诉数据库服务器该玩家打完一局 { Request_GameOver.doRequest(now_room.getPlayerDataList()[i].m_uid, now_room.m_gameRoomType); } } } if (isJueShengJu) { // 游戏数据统计 Request_GameStatistics.doRequest(now_room, winnerList); jueshengju(now_room); return; } // 进入新房间,准备开始下一局 if (isContiune) { // 游戏数据统计 Request_GameStatistics.doRequest(now_room, winnerList); // 删除该房间 { LogUtil.getInstance().writeRoomLog(now_room, m_logFlag + ":本局打完,强制解散该房间:" + now_room.getRoomId()); GameLogic.removeRoom(this, now_room, true); } for (int i = 0; i < winPlayerList.Count; i++) { if (!winPlayerList[i].isOffLine()) { { RoomData room = null; // 玩家数据清理 { winPlayerList[i].m_isBanker = 0; } lock (m_roomList) { // 在已有的房间寻找可以加入的房间 for (int j = 0; j < m_roomList.Count; j++) { if ((gameRoomType.CompareTo(m_roomList[j].m_gameRoomType) == 0) && ((rounds_pvp + 1) == m_roomList[j].m_rounds_pvp) && (m_roomList[j].getRoomState() == RoomState.RoomState_waiting)) { if (m_roomList[j].joinPlayer(winPlayerList[i])) { winPlayerList[i].clearData(); room = m_roomList[j]; LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":找到新房间:" + room.getRoomId()); break; } } } // 当前没有房间可加入的话则创建一个新的房间 if (room == null) { winPlayerList[i].clearData(); //room = new RoomData(this, m_roomList.Count + 1, gameRoomType); room = new RoomData(this, gameRoomType); room.joinPlayer(winPlayerList[i]); room.m_rounds_pvp = rounds_pvp + 1; m_roomList.Add(room); LogUtil.getInstance().writeRoomLog(room, "新建比赛场房间:" + room.getRoomId()); } } LogUtil.getInstance().writeRoomLog(room, ":该新房间人数:" + room.getPlayerDataList().Count); if (room.getPlayerDataList().Count == 4) { // 延迟3秒开赛 room.m_timerUtil.startTimer(3000, TimerType.TimerType_pvpNextStartGame); } } } } } // 所有局数已经打完 else { { //for (int i = 0; i < winPlayerList.Count; i++) //{ // // 加入淘汰人员列表里 // PVPChangCiUtil.getInstance().addPlayerToThere(gameRoomType, winPlayerList[i]); //} // 加入到8、16人列表里 { for (int i = 0; i < now_room.getPlayerDataList().Count; i++) { PVPChangCiUtil.getInstance().addPlayerToThere(now_room); } } } PVPRoomPlayerList curPVPRoomPlayerList = PVPChangCiUtil.getInstance().getPVPRoomPlayerListByUid(winPlayerList[0].m_uid); if (curPVPRoomPlayerList != null) { PVPChangCiUtil.getInstance().sortPVPRoomPlayerList(curPVPRoomPlayerList); PVPChangCiUtil.getInstance().deletePVPRoomPlayerList(curPVPRoomPlayerList); GameUtil.setPVPReward(curPVPRoomPlayerList); // 游戏数据统计 Request_GameStatistics.doRequest(now_room, winnerList); string gameroomname = PVPGameRoomDataScript.getInstance().getDataByRoomType(curPVPRoomPlayerList.m_gameRoomType).gameroomname; // 用邮件给他们发奖励 for (int i = 0; i < curPVPRoomPlayerList.m_playerList.Count; i++) { LogUtil.getInstance().addDebugLog(m_tag + "----名次" + (i + 1) + " id = " + curPVPRoomPlayerList.m_playerList[i].m_uid + " 分数为" + curPVPRoomPlayerList.m_playerList[i].m_score + " 奖励为:" + curPVPRoomPlayerList.m_playerList[i].m_pvpReward); if (curPVPRoomPlayerList.m_playerList[i].m_pvpReward.CompareTo("") != 0) { string title = gameroomname + "奖励"; string content = "恭喜您在" + gameroomname + "获得第" + curPVPRoomPlayerList.m_playerList[i].m_rank + "名,为您送上专属奖励"; Request_SendMailToUser.doRequest(curPVPRoomPlayerList.m_playerList[i].m_uid, title, content, curPVPRoomPlayerList.m_playerList[i].m_pvpReward); } // 提交任务 if (i == 0) { Request_ProgressTask.doRequest(curPVPRoomPlayerList.m_playerList[i].m_uid, 214); } } } else { LogUtil.getInstance().addDebugLog(m_tag + "----curPVPRoomPlayerList == null"); } { JObject respondJO; { respondJO = new JObject(); respondJO.Add("tag", m_tag); respondJO.Add("playAction", (int)TLJCommon.Consts.PlayAction.PlayAction_PVPGameOver); } // 给在线的人推送 for (int i = 0; i < now_room.getPlayerDataList().Count; i++) { if (!now_room.getPlayerDataList()[i].isOffLine()) { if (respondJO.GetValue("mingci") != null) { respondJO.Remove("mingci"); } if (respondJO.GetValue("pvpreward") != null) { respondJO.Remove("pvpreward"); } respondJO.Add("mingci", now_room.getPlayerDataList()[i].m_rank); respondJO.Add("pvpreward", now_room.getPlayerDataList()[i].m_pvpReward); PlayService.m_serverUtil.sendMessage(now_room.getPlayerDataList()[i].m_connId, respondJO.ToString()); } } } // 删除该房间 { LogUtil.getInstance().writeRoomLog(now_room, m_logFlag + "----" + ":PVP所有局数已打完,强制解散该房间:" + now_room.getRoomId()); GameLogic.removeRoom(this, now_room, true); } } } catch (Exception ex) { TLJ_PlayService.PlayService.log.Error(m_logFlag + "----" + ":gameOver异常:" + ex); } }
public override bool doTaskPlayerCloseConn(string uid) { try { RoomData room = getRoomByUid(uid); if (room == null) { return(false); } PlayerData playerData = GameUtil.getPlayerDataByUid(uid); if (playerData == null) { return(false); } //// 记录逃跑数据 //if ((m_roomList[i].m_roomState != RoomState.RoomState_waiting) && // (m_roomList[i].m_roomState != RoomState.RoomState_end)) //{ // Request_RecordUserGameData.doRequest(room.getPlayerDataList()[i].m_uid, room.m_gameRoomType, (int)TLJCommon.Consts.GameAction.GameAction_Run); //} switch (room.getRoomState()) { case RoomState.RoomState_waiting: { if (!playerData.isOffLine()) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":玩家在本桌满人之前退出:" + playerData.m_uid); // 还回报名费 { PVPGameRoomData pvpGameRoomData = PVPGameRoomDataScript.getInstance().getDataByRoomType(room.m_gameRoomType); string baomingfei = pvpGameRoomData.baomingfei; if (baomingfei.CompareTo("0") != 0) { List <string> tempList = new List <string>(); CommonUtil.splitStr(baomingfei, tempList, ':'); int id = int.Parse(tempList[0]); int num = int.Parse(tempList[1]); string content = pvpGameRoomData.gameroomname + "报名费返还:"; if (id == 1) { content += ("金币x" + num); } else { content += ("蓝钻石x" + num); } Request_SendMailToUser.doRequest(playerData.m_uid, "报名费返还", content, baomingfei); } } room.getPlayerDataList().Remove(playerData); if (GameUtil.checkRoomNonePlayer(room)) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此房间人数为0,解散房间:" + room.getRoomId()); GameLogic.removeRoom(this, room, true); } } else { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此玩家连续退出/掉线:" + playerData.m_uid); } } break; case RoomState.RoomState_qiangzhu: { if (!playerData.isOffLine()) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":玩家在抢主阶段退出:" + playerData.m_uid); playerData.setIsOffLine(true); } else { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此玩家连续退出/掉线:" + playerData.m_uid); } } break; case RoomState.RoomState_zhuangjiamaidi: { if (!playerData.isOffLine()) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":玩家在庄家埋底阶段退出:" + playerData.m_uid); playerData.setIsOffLine(true); //TrusteeshipLogic.trusteeshipLogic_MaiDi(this, room, playerDataList[j]); } else { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此玩家连续退出/掉线:" + playerData.m_uid); } } break; //case RoomData.RoomState.RoomState_fanzhu: // { // LogUtil.getInstance().addDebugLog("玩家在反主阶段退出:" + playerDataList[j].m_uid); // playerDataList[j].m_isOffLine = true; // } // break; case RoomState.RoomState_chaodi: { if (!playerData.isOffLine()) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":玩家在抄底阶段退出:" + playerData.m_uid); playerData.setIsOffLine(true); //TrusteeshipLogic.trusteeshipLogic_ChaoDi(this, room, playerDataList[j]); } else { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此玩家连续退出/掉线:" + playerData.m_uid); } } break; case RoomState.RoomState_othermaidi: { if (!playerData.isOffLine()) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":玩家在Other埋底阶段退出:" + playerData.m_uid); playerData.setIsOffLine(true); //TrusteeshipLogic.trusteeshipLogic_MaiDi(this, room, playerDataList[j]); } else { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此玩家连续退出/掉线:" + playerData.m_uid); } } break; case RoomState.RoomState_gaming: { if (!playerData.isOffLine()) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":玩家在游戏中退出:" + playerData.m_uid); playerData.setIsOffLine(true); // 如果当前房间正好轮到此人出牌 if (room.m_curOutPokerPlayer.m_uid.CompareTo(playerData.m_uid) == 0) { //TrusteeshipLogic.trusteeshipLogic_OutPoker(this, m_roomList[i], playerDataList[j]); } } else { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此玩家连续退出/掉线:" + playerData.m_uid); } } break; case RoomState.RoomState_end: { if (!playerData.isOffLine()) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":玩家在本桌打完后退出:" + playerData.m_uid); room.getPlayerDataList().Remove(playerData); if (room.getPlayerDataList().Count == 0) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此房间人数为0,解散房间:" + room.getRoomId()); GameLogic.removeRoom(this, room, true); } else { // 检查此房间内是否有人想继续游戏,有的话则告诉他失败 { for (int k = room.getPlayerDataList().Count - 1; k >= 0; k--) { if (room.getPlayerDataList()[k].m_isContinueGame) { { JObject respondJO = new JObject(); respondJO.Add("tag", m_tag); respondJO.Add("playAction", (int)TLJCommon.Consts.PlayAction.PlayAction_ContinueGameFail); respondJO.Add("uid", room.getPlayerDataList()[k].m_uid); // 发送给客户端 PlayService.m_serverUtil.sendMessage(room.getPlayerDataList()[k].m_connId, respondJO.ToString()); } room.getPlayerDataList().RemoveAt(k); } } } // 如果房间人数为空,则删除此房间 { if (GameUtil.checkRoomNonePlayer(room)) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此房间人数为0,解散房间:" + room.getRoomId()); GameLogic.removeRoom(this, room, true); } } } } else { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此玩家连续退出/掉线:" + playerData.m_uid); } } break; default: { if (!playerData.isOffLine()) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":玩家在未知阶段退出:" + playerData.m_uid); room.getPlayerDataList().Remove(playerData); if (GameUtil.checkRoomNonePlayer(room)) { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此房间人数为0,解散房间:" + room.getRoomId()); GameLogic.removeRoom(this, room, true); } } else { LogUtil.getInstance().addDebugLog(m_logFlag + "----" + ":此玩家连续退出/掉线:" + playerData.m_uid); } } break; } return(true); } catch (Exception ex) { TLJ_PlayService.PlayService.log.Error(m_logFlag + "----" + ":doTaskPlayerCloseConn异常:" + ex); } return(false); }
public static void initJson(string json) { PVPGameRoomDataScript.s_instance.m_dataList.Clear(); JsonData jsonData = JsonMapper.ToObject(json); for (int i = 0; i < jsonData["room_list"].Count; i++) { PVPGameRoomData temp = new PVPGameRoomData(); temp.id = (int)jsonData["room_list"][i]["id"]; temp.gameroomtype = (string)jsonData["room_list"][i]["gameroomtype"]; temp.gameroomname = (string)jsonData["room_list"][i]["gameroomname"]; temp.kaisairenshu = (int)jsonData["room_list"][i]["kaisairenshu"]; temp.baomingrenshu = (int)jsonData["room_list"][i]["baomingrenshu"]; // 报名费 { temp.baomingfei = (string)jsonData["room_list"][i]["baomingfei"]; if (temp.baomingfei.CompareTo("0") != 0) { List <string> list = new List <string>(); CommonUtil.splitStr(temp.baomingfei, list, ':'); temp.baomingfei_id = int.Parse(list[0]); temp.baomingfei_num = int.Parse(list[1]); } } // 奖励 { temp.reward = (string)jsonData["room_list"][i]["reward"]; List <string> list = new List <string>(); CommonUtil.splitStr(temp.reward, list, ':'); temp.reward_id = int.Parse(list[0]); temp.reward_num = int.Parse(list[1]); } // 已报名人数增加点 temp.baomingrenshu += RandomUtil.getRandom(100, 200); // 更新的部分 { // 用于ios审核的场次:5000金币场 if (temp.id == 5) { if (OtherData_hotfix.getIsIosCheck()) { PVPGameRoomDataScript.s_instance.m_dataList.Add(temp); } } else { PVPGameRoomDataScript.s_instance.m_dataList.Add(temp); } } } }
public static string getRoomName(string gameRoomType) { // 优先使用热更新的代码 if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("GameUtil_hotfix", "getRoomName")) { string s = (string)ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.GameUtil_hotfix", "getRoomName", null, gameRoomType); return(s); } string roonName = ""; if (gameRoomType.CompareTo("XiuXian_JingDian_Common") == 0) { roonName = "经典玩法"; } else if (gameRoomType.CompareTo("XiuXian_JingDian_ChuJi") == 0) { roonName = "经典玩法-新手场"; } else if (gameRoomType.CompareTo("XiuXian_JingDian_ZhongJi") == 0) { roonName = "经典玩法-精英场"; } else if (gameRoomType.CompareTo("XiuXian_JingDian_GaoJi") == 0) { roonName = "经典玩法-大师场"; } else if (gameRoomType.CompareTo("XiuXian_ChaoDi_Common") == 0) { roonName = "抄底玩法"; } else if (gameRoomType.CompareTo("XiuXian_ChaoDi_ChuJi") == 0) { roonName = "抄底玩法-新手场"; } else if (gameRoomType.CompareTo("XiuXian_ChaoDi_ZhongJi") == 0) { roonName = "抄底玩法-精英场"; } else if (gameRoomType.CompareTo("XiuXian_ChaoDi_GaoJi") == 0) { roonName = "抄底玩法-大师场"; } else { List <string> list = new List <string>(); CommonUtil.splitStr(gameRoomType, list, '_'); if (list.Count == 3) { if (list[0].CompareTo("PVP") == 0) { PVPGameRoomData pvpGameRoomData = PVPGameRoomDataScript.getInstance().getDataByRoomType(gameRoomType); if (pvpGameRoomData != null) { roonName = pvpGameRoomData.gameroomname; } } } } return(roonName); }
public static void setGameRoomTypeLogoPath(string gameroomtype, Image gameRoomLogo) { // 优先使用热更新的代码 if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("GameUtil_hotfix", "setGameRoomTypeLogoPath")) { ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.GameUtil_hotfix", "setGameRoomTypeLogoPath", null, gameroomtype, gameRoomLogo); return; } string path = ""; if (gameroomtype.CompareTo(TLJCommon.Consts.GameRoomType_XiuXian_JingDian_Common) == 0) { path = "roomlogo_jingdian_common"; } else if (gameroomtype.CompareTo(TLJCommon.Consts.GameRoomType_XiuXian_JingDian_ChuJi) == 0) { path = "roomlogo_jingdian_xinshou"; } else if (gameroomtype.CompareTo(TLJCommon.Consts.GameRoomType_XiuXian_JingDian_ZhongJi) == 0) { path = "roomlogo_jingdian_jingying"; } else if (gameroomtype.CompareTo(TLJCommon.Consts.GameRoomType_XiuXian_JingDian_GaoJi) == 0) { path = "roomlogo_jingdian_dashi"; } else if (gameroomtype.CompareTo(TLJCommon.Consts.GameRoomType_XiuXian_ChaoDi_Common) == 0) { path = "roomlogo_chaodi_common"; } else if (gameroomtype.CompareTo(TLJCommon.Consts.GameRoomType_XiuXian_ChaoDi_ChuJi) == 0) { path = "roomlogo_chaodi_xinshou"; } else if (gameroomtype.CompareTo(TLJCommon.Consts.GameRoomType_XiuXian_ChaoDi_ZhongJi) == 0) { path = "roomlogo_chaodi_jingying"; } else if (gameroomtype.CompareTo(TLJCommon.Consts.GameRoomType_XiuXian_ChaoDi_GaoJi) == 0) { path = "roomlogo_chaodi_dashi"; } else { List <string> list = new List <string>(); CommonUtil.splitStr(gameroomtype, list, '_'); if (list.Count == 3) { if (list[0].CompareTo("PVP") == 0) { // pvp金币场 if (list[1].CompareTo("JinBi") == 0) { path = "roomlogo_jinbichang"; PVPGameRoomData pvpGameRoomData = PVPGameRoomDataScript.getInstance().getDataByRoomType(gameroomtype); if (pvpGameRoomData != null) { gameRoomLogo.transform.Find("Text").GetComponent <Text>().text = pvpGameRoomData.reward_num.ToString(); } gameRoomLogo.transform.Find("Text").GetComponent <Text>().fontSize = 23; gameRoomLogo.transform.Find("Text").GetComponent <Text>().transform.localScale = new Vector3(1, 1, 1); gameRoomLogo.transform.Find("Text").GetComponent <Text>().transform.localPosition = new Vector3(-42.0f, -23.2f, 0); } // pvp话费场 else if (list[1].CompareTo("HuaFei") == 0) { path = "roomlogo_huafeichang"; PVPGameRoomData pvpGameRoomData = PVPGameRoomDataScript.getInstance().getDataByRoomType(gameroomtype); if (pvpGameRoomData != null) { gameRoomLogo.transform.Find("Text").GetComponent <Text>().text = list[2]; } gameRoomLogo.transform.Find("Text").GetComponent <Text>().fontSize = 57; gameRoomLogo.transform.Find("Text").GetComponent <Text>().transform.localScale = new Vector3(1, 1, 1); gameRoomLogo.transform.Find("Text").GetComponent <Text>().transform.localPosition = new Vector3(-34.4f, 53.2f, 0); } } } } CommonUtil.setImageSpriteByAssetBundle(gameRoomLogo, "game.unity3d", path); }
public static void setPVPReward(PVPRoomPlayerList curPVPRoomPlayerList) { string gameRoomType = curPVPRoomPlayerList.m_gameRoomType; List <string> list = new List <string>(); CommonUtil.splitStr(gameRoomType, list, '_'); if (list.Count == 3) { if (list[0].CompareTo("PVP") == 0) { PVPGameRoomData pvpGameRoomData = PVPGameRoomDataScript.getInstance().getDataByRoomType(gameRoomType); // PVP-金币场 if (list[1].CompareTo("JinBi") == 0) { // 2000金币场 if (pvpGameRoomData.reward_num == 2000) { // 第一名 { int getHuiZhangNum = 1; UserInfo_Game userInfo_Game = UserInfo_Game_Manager.getDataByUid(curPVPRoomPlayerList.m_playerList[0].m_uid); if (userInfo_Game != null) { int vipLevel = userInfo_Game.vipLevel; if ((vipLevel >= 2) && (vipLevel <= 4)) { getHuiZhangNum += 1; } else if ((vipLevel >= 5) && (vipLevel <= 7)) { getHuiZhangNum += 2; } else if ((vipLevel >= 8) && (vipLevel <= 10)) { getHuiZhangNum += 3; } } else { TLJ_PlayService.PlayService.log.Error(m_logFlag + "----" + ":setPVPReward出错:UserInfo_Game_Manager.getDataByUid()为空"); } curPVPRoomPlayerList.m_playerList[0].m_pvpReward = "1:2000;110:" + getHuiZhangNum; } // 第二名 { curPVPRoomPlayerList.m_playerList[1].m_pvpReward = "1:1000"; } } // 10000金币场 else if (pvpGameRoomData.reward_num == 10000) { // 第一名 { int getHuiZhangNum = 1; UserInfo_Game userInfo_Game = UserInfo_Game_Manager.getDataByUid(curPVPRoomPlayerList.m_playerList[0].m_uid); if (userInfo_Game != null) { int vipLevel = userInfo_Game.vipLevel; if ((vipLevel >= 2) && (vipLevel <= 4)) { getHuiZhangNum += 1; } else if ((vipLevel >= 5) && (vipLevel <= 7)) { getHuiZhangNum += 2; } else if ((vipLevel >= 8) && (vipLevel <= 10)) { getHuiZhangNum += 3; } } else { TLJ_PlayService.PlayService.log.Error(m_logFlag + "----" + ":setPVPReward出错:UserInfo_Game_Manager.getDataByUid()为空"); } curPVPRoomPlayerList.m_playerList[0].m_pvpReward = "1:10000;110:" + getHuiZhangNum; } // 第二名 { curPVPRoomPlayerList.m_playerList[1].m_pvpReward = "1:1000"; } } // 5000金币场(用于ios审核) else if (pvpGameRoomData.reward_num == 5000) { // 第一名 { int getHuiZhangNum = 1; UserInfo_Game userInfo_Game = UserInfo_Game_Manager.getDataByUid(curPVPRoomPlayerList.m_playerList[0].m_uid); if (userInfo_Game != null) { int vipLevel = userInfo_Game.vipLevel; if ((vipLevel >= 2) && (vipLevel <= 4)) { getHuiZhangNum += 1; } else if ((vipLevel >= 5) && (vipLevel <= 7)) { getHuiZhangNum += 2; } else if ((vipLevel >= 8) && (vipLevel <= 10)) { getHuiZhangNum += 3; } } else { TLJ_PlayService.PlayService.log.Error(m_logFlag + "----" + ":setPVPReward出错:UserInfo_Game_Manager.getDataByUid()为空"); } curPVPRoomPlayerList.m_playerList[0].m_pvpReward = "1:5000;110:" + getHuiZhangNum; } // 第二名 { curPVPRoomPlayerList.m_playerList[1].m_pvpReward = "1:1000"; } } } // PVP-话费场 else if (list[1].CompareTo("HuaFei") == 0) { // 1元话费场 if (list[2].CompareTo("1") == 0) { // 第一名 { int getHuiZhangNum = 1; UserInfo_Game userInfo_Game = UserInfo_Game_Manager.getDataByUid(curPVPRoomPlayerList.m_playerList[0].m_uid); if (userInfo_Game != null) { int vipLevel = userInfo_Game.vipLevel; if ((vipLevel >= 2) && (vipLevel <= 4)) { getHuiZhangNum += 1; } else if ((vipLevel >= 5) && (vipLevel <= 7)) { getHuiZhangNum += 2; } else if ((vipLevel >= 8) && (vipLevel <= 10)) { getHuiZhangNum += 3; } } else { TLJ_PlayService.PlayService.log.Error(m_logFlag + "----" + ":setPVPReward出错:UserInfo_Game_Manager.getDataByUid()为空"); } curPVPRoomPlayerList.m_playerList[0].m_pvpReward = "111:1;110:" + getHuiZhangNum; } // 第二名 { curPVPRoomPlayerList.m_playerList[1].m_pvpReward = "1:500"; } } // 5元话费场 else if (list[2].CompareTo("5") == 0) { // 第一名 { int getHuiZhangNum = 2; UserInfo_Game userInfo_Game = UserInfo_Game_Manager.getDataByUid(curPVPRoomPlayerList.m_playerList[0].m_uid); if (userInfo_Game != null) { int vipLevel = userInfo_Game.vipLevel; if ((vipLevel >= 2) && (vipLevel <= 4)) { getHuiZhangNum += 1; } else if ((vipLevel >= 5) && (vipLevel <= 7)) { getHuiZhangNum += 2; } else if ((vipLevel >= 8) && (vipLevel <= 10)) { getHuiZhangNum += 3; } } else { TLJ_PlayService.PlayService.log.Error(m_logFlag + "----" + ":setPVPReward出错:UserInfo_Game_Manager.getDataByUid()为空"); } curPVPRoomPlayerList.m_playerList[0].m_pvpReward = "112:1;110:" + getHuiZhangNum; } // 第二名 { curPVPRoomPlayerList.m_playerList[1].m_pvpReward = "1:5000;110:1"; } } } } } }