public void DecreasePlayerAlive(string playerID, int count) { playersAlive += count; if (playersAlive <= 0) { playersAlive = 0; } // TEST PlayerInfoStruct playerInfo = GetPlayerInfoStruct(playerID); if (!string.IsNullOrEmpty(playerInfo.playerID)) { Debug.Log("LobbyManager. DecreasePlayerAlive. Found player info id <" + playerID + "> with state of <" + playerInfo.playerState + ">"); if (playerInfo.playerState != "DEAD") { } else { } } else { Debug.LogError("LobbyManager. DecreasePlayerAlive. Did not find the player info id <" + playerID + ">"); } }
public void StartLoad(PlayerInfoStruct info, Listener <string> OnLoadCB) { _PlayerInfoStruct = info; Action <AssetBundle> cb = (bundle) => { bodyBundle = bundle; var prefabObj = bundle.LoadAsset <GameObject>(_PlayerInfoStruct.BodyModelResID + ".prefab"); var prefabGo = GameObject.Instantiate(prefabObj) as GameObject; prefabGo.transform.SetParent(_ActorRootComp.OffsetTrm, false); OnLoadCB?.Invoke(_PlayerInfoStruct.ID); }; Action <string> onError = (error) => { LogMgr.E("PlayerLoaderComp", "StartLoad", "error:" + error, BeShowLog); }; GameEnum.SB1.Append(GameConfig.ResRootPathStr); GameEnum.SB1.Append("/bundle/"); GameEnum.SB1.Append(info.BodyModelResID); GameEnum.SB1.Append(GameEnum.BundleExtName); string path = GameEnum.SB1.ToString(); GameEnum.SB1.Clear(); LogMgr.I("ActorLoaderComp", "StartLoad", " path:" + path, BeShowLog); SimpleResMgr.GetIns().LoadRes(path, cb, onError); }
/// <summary> /// 小结算 /// </summary> /// <param name="msg"></param> private void OnSettlement(MessageData msg) { litSemResponse data = msg.Read <litSemResponse>(); CardsInfoStruct[] playerCardsDatas = MJGameModel.Inst.allPlayersCardsInfoStruct; bool isNoWinner = true;//是否是流局 for (int i = 0; i < playerCardsDatas.Length; i++) { if (playerCardsDatas[i] != null && playerCardsDatas[i].huList != null && playerCardsDatas[i].huList.Count > 0) { isNoWinner = false; break; } } if (isNoWinner) //流局 { mGameUI.ServerNoWinner(); } #region 小结算数据处理 MJGameSettlementInfo mSettlData = new MJGameSettlementInfo(); MJGameModel.Inst.mLitSem = data; mSettlData.isEnd = true; mSettlData.isHu = !isNoWinner; mSettlData.settleContainer = new List <MJGameSettlementPlayerInfo>(); for (int i = 0; i < data.litSemList.Count; i++) { MJGameSettlementPlayerInfo oneSettlementPlayerInfo = new MJGameSettlementPlayerInfo(); int seatID = data.litSemList[i].seatId; PlayerInfoStruct onePData = MJGameModel.Inst.mRoomPlayers[seatID]; //玩家信息 CardsInfoStruct cdata = MJGameModel.Inst.allPlayersCardsInfoStruct[seatID]; //牌信息 oneSettlementPlayerInfo.seatId = seatID; oneSettlementPlayerInfo.userId = onePData.uId; oneSettlementPlayerInfo.nickName = onePData.nickName; oneSettlementPlayerInfo.score = data.litSemList[i].currScore; oneSettlementPlayerInfo.headUrl = onePData.headUrl; oneSettlementPlayerInfo.shoupai = data.litSemList[i].handList; oneSettlementPlayerInfo.peng = cdata.pengList; oneSettlementPlayerInfo.gang = cdata.gangList; oneSettlementPlayerInfo.huPai = cdata.huList; oneSettlementPlayerInfo.huOrder = data.litSemList[i].huOrder; oneSettlementPlayerInfo.huDes = data.litSemList[i].huIntro; mSettlData.settleContainer.Add(oneSettlementPlayerInfo); } #endregion MJGameModel.Inst.mSettlData = mSettlData; MJGameModel.Inst.mState = eMJRoomStatus.GAMEOVER; MJGameModel.Inst.mStartGameData.roomInfo.roomState = eRoomState.GAMEOVER;//改变房间状态 SetTimeout.add(1, ChangHandsCardsShow); SetTimeout.add(5, ShowSmallSettle); //清理离开游戏的玩家 if (mGameUI != null) { mGameUI.SetAllPlayerOutLine(); } }
void HandleIdentity(SocketIOEvent e) { Debug.Log("handleIdentity"); Debug.Log(e.data); PlayerInfoStruct playerInfo = JsonUtility.FromJson <PlayerInfoStruct>(e.data); GameManager.instance.CreateLocalPlayer(playerInfo.id, playerInfo.handle, playerInfo.spawnPoint); //io.Emit("getgameinfo"); }
private int mSeatId; //当前玩家的座位号 public void SetData(PlayerInfoStruct info, int seatid, bool isself = false) { if (mFaceGrid != null) { if (isself) { mFaceGrid.gameObject.SetActive(false); } else { mFaceGrid.gameObject.SetActive(true); } } //头像 Assets.LoadIcon(info.headUrl, (t) => { mIcon.mainTexture = t; }); //名字 mName.text = info.nickName; //IP //mIp.text = info.lastIp; //id //mId.text = info.userId.ToString(); //位置 //mPos.text = info.addr; //性别 //mSex.spriteName = info.userSex == 1 ? "icon_nan" : "icon_nv"; //座位号 mSeatId = seatid; //房卡 #region 房卡 if (isself)//自己才显示 { mCard.transform.parent.gameObject.SetActive(true); //mCard.text = info.roomCard.ToString() + "张"; } else { mCard.transform.parent.gameObject.SetActive(false); } #endregion //距离 #region 距离 //****************************位置信息没有数据**********************************************// //if (isself)//是自己就不显示 // mDistance.transform.parent.gameObject.SetActive(false); //else //{ // mDistance.transform.parent.gameObject.SetActive(true); // if (info.distance == -1) // mDistance.text = "未获取到距离"; // else if (info.distance < 1000) // mDistance.text = info.distance + "米"; // else // mDistance.text = (info.distance / 1000f).ToString("f2") + "千米"; //} #endregion mDetailGrid.Reposition(); }
/// <summary> /// 小结算 /// </summary> /// <param name="msg"></param> public void OnSettlement() { if (mModel.CurRecordDetailData == null) { return; } litSemResponse data = mModel.CurRecordDetailData.semData; if (data == null) { return; } CardsInfoStruct[] playerCardsDatas = MJGameModel.Inst.allPlayersCardsInfoStruct; bool isNoWinner = true;//是否是流局 for (int i = 0; i < playerCardsDatas.Length; i++) { if (playerCardsDatas[i] != null && playerCardsDatas[i].huList != null && playerCardsDatas[i].huList.Count > 0) { isNoWinner = false; break; } } if (isNoWinner) //流局 { mGameUI.ServerNoWinner(); } #region 小结算数据处理 MJGameSettlementInfo mSettlData = new MJGameSettlementInfo(); mSettlData.isEnd = true; mSettlData.isHu = !isNoWinner; mSettlData.settleContainer = new List <MJGameSettlementPlayerInfo>(); for (int i = 0; i < data.litSemList.Count; i++) { MJGameSettlementPlayerInfo oneSettlementPlayerInfo = new MJGameSettlementPlayerInfo(); int seatID = data.litSemList[i].seatId; PlayerInfoStruct onePData = MJGameModel.Inst.mRoomPlayers[seatID]; //玩家信息 CardsInfoStruct cdata = MJGameModel.Inst.allPlayersCardsInfoStruct[seatID]; //牌信息 oneSettlementPlayerInfo.seatId = seatID; oneSettlementPlayerInfo.userId = onePData.uId; oneSettlementPlayerInfo.nickName = onePData.nickName; oneSettlementPlayerInfo.score = data.litSemList[i].currScore; oneSettlementPlayerInfo.headUrl = onePData.headUrl; oneSettlementPlayerInfo.shoupai = data.litSemList[i].handList; oneSettlementPlayerInfo.peng = cdata.pengList; oneSettlementPlayerInfo.gang = cdata.gangList; oneSettlementPlayerInfo.huPai = cdata.huList; oneSettlementPlayerInfo.huDes = data.litSemList[i].huIntro; mSettlData.settleContainer.Add(oneSettlementPlayerInfo); } #endregion MJGameModel.Inst.mSettlData = mSettlData; mGameUI.GetChaJiaoData(data.flowSemList); }
/// <summary> /// 有玩家加入房间 /// </summary> /// <param name="msg"></param> private void OnPlayerJoinInRoom(MessageData msg) { PlayerInfoStruct data = msg.Read <PlayerInfoStruct>(); MJGameModel.Inst.mRoomPlayers[data.seatId] = data; int count = MJGameModel.Inst.totalPlayerCount == 2 ? 4 : MJGameModel.Inst.totalPlayerCount; MJGameModel.Inst.mnewSeatToIndex[data.seatId] = SeatIdToIndex(MJGameModel.Inst.mMySeatId, data.seatId, count); MJGameModel.Inst.mSeatToDirectionIndex[data.seatId] = SeatIdToDirectionIndex(MJGameModel.Inst.mMySeatId, data.seatId, MJGameModel.Inst.totalPlayerCount); mGameUI.ServerPlayerJoinGame(data); }
/// <summary> /// 初始化其他玩家牌 /// </summary> /// <param name="player"></param> /// <param name="info"></param> /// <param name="oinfo"></param> public void InitOtherPlayerCards(MJPlayerBase player, PlayerInfoStruct info, CardsInfoStruct oinfo) { //手牌 int cur = oinfo.isHasCurrCard ? 1 : 0; InitOnePlayerHandCards(player, null, oinfo.cardNum, cur); //打出的牌 InitOnePlayerCollectCards(player, oinfo); InitOnePlayerPengCard(player, oinfo); //胡牌 InitHuCard(player, oinfo); }
private BaseCallback LoadRole(PlayerInfoStruct roleInfo) { BaseCallback cb = new BaseCallback(); cb.OnStart = () => { Listener <string> onloadOver = (id) => { LogMgr.I("StageScnMgr", "LoadRole.cb.OnStart.onloadOver", " id:" + id, BeShowLog); cb.End(); }; TActor.Create(roleInfo, onloadOver); }; return(cb); }
public void TempEnterStageClick() { //NTODO 这里数据应该列表,列表数据来自server StageScnMgr.scnInfo = new StageScnInfoStruct(); StageScnMgr.scnInfo.ScnName = "stage1"; StageScnMgr.scnInfo.roleList = new List <PlayerInfoStruct>(); PlayerInfoStruct r1 = new PlayerInfoStruct(); r1.ID = "isabella"; r1.BodyModelResID = "mdl_isabella_stagea_hairb"; StageScnMgr.scnInfo.roleList.Add(r1); PlayerInfoStruct r2 = new PlayerInfoStruct(); r2.ID = "katya"; r2.BodyModelResID = "mdl_katya_stagea"; StageScnMgr.scnInfo.roleList.Add(r2); PlayerInfoStruct r3 = new PlayerInfoStruct(); r3.ID = "moxi"; r3.BodyModelResID = "mdl_moxi_stagea"; StageScnMgr.scnInfo.roleList.Add(r3); PlayerInfoStruct r4 = new PlayerInfoStruct(); r4.ID = "rose"; r4.BodyModelResID = "mdl_rose_stagea"; StageScnMgr.scnInfo.roleList.Add(r4); PlayerInfoStruct r5 = new PlayerInfoStruct(); r5.ID = "tamamo"; r5.BodyModelResID = "mdl_tamamo_stagea"; StageScnMgr.scnInfo.roleList.Add(r5); PlayerInfoStruct r6 = new PlayerInfoStruct(); r6.ID = "yueling"; r6.BodyModelResID = "mdl_yueling_stagea_low_addblendshape_migicacloth_variant"; StageScnMgr.scnInfo.roleList.Add(r6); AppMgr.GetIns().SetState(AppMgr.AppState.loading); StageScnMgr.Create(); }
/// <summary> /// 大结算 /// </summary> /// <param name="msg"></param> private void OnSettlementFinal(MessageData msg) { BigSemResponse data = msg.Read <BigSemResponse>(); MJGameSettlementFinalInfo bigData = new MJGameSettlementFinalInfo(); #region 大结算 数据处理 PlayerInfoStruct[] playerDatas = MJGameModel.Inst.mRoomPlayers; bigData.isEnd = true; float bigWinScore = -1; bigData.totalContainr = new List <MJGameSettlementFinalPlayerInfo>(); for (int i = 0; i < data.bigSemList.Count; i++) { BigSemStruct singleData = data.bigSemList[i]; MJGameSettlementFinalPlayerInfo oneBigData = new MJGameSettlementFinalPlayerInfo(); int index = MJGameModel.Inst.mnewSeatToIndex[singleData.seatId]; PlayerInfoStruct onePData = playerDatas[singleData.seatId]; oneBigData.seatId = singleData.seatId; oneBigData.userId = onePData.uId; oneBigData.headUrl = onePData.headUrl; oneBigData.nickName = onePData.nickName; oneBigData.score = singleData.score; if (oneBigData.score > bigWinScore) { bigWinScore = singleData.score; } oneBigData.winCount = singleData.winCount; bigData.totalContainr.Add(oneBigData); } for (int i = 0; i < bigData.totalContainr.Count; i++) { if (bigData.totalContainr[i].score == bigWinScore) { bigData.totalContainr[i].isBigwiner = true; } else { bigData.totalContainr[i].isBigwiner = false; } } #endregion mModel.mFinalSettlementInfo = bigData; }
/// <summary> /// 换3张状态 /// </summary> public void ChangeThreeUI(MJInstructionsProto data) { for (int i = 0; i < MJGameModel.Inst.mRoomPlayers.Length; i++) { PlayerInfoStruct item = MJGameModel.Inst.mRoomPlayers[i]; if (item != null) { if (item.seatId == MJGameModel.Inst.mMySeatId) { mMJChangeThree.IntoThreeWidget(true); } else { mAllPlayer[MJGameModel.Inst.mnewSeatToIndex[item.seatId]].SetChangeStateShow(true); } } } InitChaneThreeHandCards(mAllPlayer[MJGameModel.Inst.mnewSeatToIndex[MJGameModel.Inst.mMySeatId]], data.optList[0].cards); }
/// <summary> /// 初始化或刷新自己的牌 /// </summary> /// <param name="player"></param> /// <param name="info"></param> /// <param name="myinfo"></param> public void InitSelfPlayerCards(MJPlayerBase player, PlayerInfoStruct info, CardsInfoStruct myinfo, MJoptInfoData opt = null) { //手牌 SQDebug.Log(myinfo.currCard); InitOnePlayerHandCards(player, myinfo.handList, 0, myinfo.currCard); //打出的牌 InitOnePlayerCollectCards(player, myinfo); //碰的牌 InitOnePlayerPengCard(player, myinfo); //胡牌 if (opt != null) { bool zimo = false; if (opt.huType != null) { for (int i = 0; i < opt.huType.Length; i++) { if (opt.huType[i] == (int)eHuType.ZIMO) { zimo = true; } } } if (zimo) { InitHuCard(player, myinfo, (int)eHuType.ZIMO); } else { InitHuCard(player, myinfo); } } else { //胡牌 InitHuCard(player, myinfo); } }
private PlayerInfoStruct mRoomPlayerInfo; //玩家数据 /// <summary> /// 设置玩家头像 数据 /// </summary> public void SetPlayerIcon(PlayerInfoStruct info) { mRoomPlayerInfo = info; if (info == null) //没有这个玩家 { mName.text = ""; mPoint.text = ""; mIcon.mainTexture = null; mPreObj.SetActive(false); } else { mHeadRoot.SetActive(true); //mName.text = GameUtils.GetClampText(info.nickName, mName); mName.text = info.nickName; mPoint.text = info.gold.ToString("#0.00"); Assets.LoadIcon(info.headUrl, (t) => { mIcon.mainTexture = t; }); } }
//public static event Listener PlayerLoadoverEvent; public static TActor Create(PlayerInfoStruct info, Listener <string> OnLoadModelOver) { NLog.LogMgr.I("TActor", "Create", " 创建角色:" + info.ID, true); var playerRootGo = GameObject.Instantiate(Resources.Load("Prefabs/Spr/player")) as GameObject; playerRootGo.name = "player"; TActor _player = playerRootGo.AddComponent <TActor>(); _player.ID = info.ID; _player._ActorRootComp.RootTrm = playerRootGo.transform; _player._ActorRootComp.OffsetTrm = playerRootGo.transform.Find("offset"); _player.LoadModel(info, OnLoadModelOver); Messenger.Broadcast <string, AbsSpr>(GameEvent.create_spr, _player.ID, _player); return(_player); }
/// <summary> /// 准备 /// </summary> /// <param name="info"></param> private void InitReady(StartGameRespone info) { if (info.roomInfo.roomState == eRoomState.READY || info.roomInfo.roomState == eRoomState.GAMEOVER)//在准备阶段或是结束阶段 { for (int i = 0; i < info.roomInfo.playerList.Count; i++) { PlayerInfoStruct item = info.roomInfo.playerList[i]; if (item.seatId == MJGameModel.Inst.mMySeatId)//自己 { } mAllPlayer[MJGameModel.Inst.mnewSeatToIndex[item.seatId]].SetReady(item.isReady); } } else { //全部不显示准备 for (int i = 0; i < info.roomInfo.playerList.Count; i++) { PlayerInfoStruct item = info.roomInfo.playerList[i]; mAllPlayer[MJGameModel.Inst.mnewSeatToIndex[item.seatId]].SetReady(false); } } }
/*******************************************************************************************************/ public void SetIcon(PlayerInfoStruct info) { mHead.SetPlayerIcon(info); }
/// <summary> /// 玩家在线状态 /// </summary> /// <param name="player"></param> /// <param name="data"></param> private void InitOnePlayerOnlineState(MJPlayerBase player, PlayerInfoStruct data) { player.SetOffLine((eMJOnlineState)data.onLineType); }
/// <summary> /// 玩家头像加载 /// </summary> /// <param name="player"></param> /// <param name="info"></param> public void InitOnePlayerIcon(MJPlayerBase player, PlayerInfoStruct info) { player.SetIcon(info); }
public void LoadModel(PlayerInfoStruct info, Listener <string> cb) { _ActorLoaderComp.StartLoad(info, cb); }