コード例 #1
0
ファイル: RoomServer.cs プロジェクト: ProstonJay/Majo
    //PaSS牌
    public void GuoPai(SocketModel socketModel)
    {
        int value = socketModel.GetCommand();

        //
        Debug.Log("都PASS了 通知清理MJ 添加MJ到出牌区");
        RoomEvent.DoPlayerDiction(value, 1);
        //
        if (value == GameInfo.Instance.positon)
        {
            Debug.Log("本轮操作权是自己,告诉服务器摸牌");
            //告诉服务器摸牌
            RoomEvent.DoActionMoPai();
        }
    }
コード例 #2
0
ファイル: RoomServer.cs プロジェクト: ProstonJay/Majo
    //出牌
    public void ChuPai(SocketModel socketModel)
    {
        //1.先把出的牌显示出来
        List <string> list = socketModel.GetMessage();
        //2.其他玩家有没有操作
        int stats = socketModel.GetCommand();

        if (stats == 0)
        {
            GameEvent.DoChuPai(int.Parse(list[0]), int.Parse(list[1]), false);
        }
        else
        {
            GameEvent.DoChuPai(int.Parse(list[0]), int.Parse(list[1]), true);
        }

        Debug.Log("位置=" + list[0] + "出牌 = " + list[1]);
        //3如果没人操作,设置指示方向
        if (stats == 0)
        {
            Debug.Log("设置指示方向");
            RoomEvent.DoPlayerDiction(int.Parse(list[2]));
        }
        //如果是玩家自己出的牌就不继续判断读取数据了
        if (int.Parse(list[0]) == GameInfo.Instance.positon)
        {
            Debug.Log("如果是玩家自己出的牌就不继续判断读取数据了");
            return;
        }
        //4.看看自己是否可以可以吃,碰 等操作;
        List <int> mylist = socketModel.GetData();

        Debug.Log("mylist=" + mylist);
        if (mylist != null)
        {
            //如果有操作,通知UI显示相关按键
            Debug.Log("自己有操作=" + mylist[0]);
            //如果Action有数据,可以杠
            List <Action> actionlist = socketModel.GetAdata();
            if (actionlist != null)
            {
                Debug.Log("可以杠牌=" + actionlist.Count);
                GameInfo.Instance.gangList = actionlist;//杠的数据保存在INFO, 选择牌型后清空
            }
            RoomEvent.DoActionList(mylist);
        }
        else
        {
            //3.如果自己没有操作,再看其他玩家可以,吃,碰等操作.如果有,就等待.
            if (stats == 0)
            {
                Debug.Log("没有人可以吃,碰操作");
                //4.如果其他玩家也没操作,那看看本轮出牌权是否是自己,如果是自己那就向服务器摸牌
                if (int.Parse(list[2]) == GameInfo.Instance.positon)
                {
                    RoomEvent.DoActionMoPai();
                }
            }
            else
            {
                Debug.Log("有人操作,吃,碰等操作,要等待");
            }
        }
    }