예제 #1
0
	public ServerRequest(Type type, string commandId, ISFSObject requestData, GameObject handler, string callback) {
		this.type = type;
		this.commandId = commandId;
		this.requestData = requestData;
		this.handler = handler;
		this.callback = callback;
	}
예제 #2
0
 /// <summary>
 /// Изменилось состояние игры
 /// </summary>
 /// <param name="data"></param>
 void GameStateChange(ISFSObject data)
 {
     GameStates gameState = (GameStates)Enum.Parse(typeof(GameStates), data.GetUtfString("gameState"));
     int time = data.GetInt("time");
     if (OnGameStateUpdate != null)
         OnGameStateUpdate(gameState, time);
 }
    public static NetworkTransform FromSFSObject(ISFSObject data)
    {
        NetworkTransform trans = new NetworkTransform();
        ISFSObject transformData = data.GetSFSObject("transform");

        float x = Convert.ToSingle(transformData.GetDouble("x"));
        float y = Convert.ToSingle(transformData.GetDouble("y"));
        float z = Convert.ToSingle(transformData.GetDouble("z"));

        float rx = Convert.ToSingle(transformData.GetDouble("rx"));
        float ry = Convert.ToSingle(transformData.GetDouble("ry"));
        float rz = Convert.ToSingle(transformData.GetDouble("rz"));

        trans.position = new Vector3(x, y, z);
        trans.angleRotation = new Vector3(rx, ry, rz);

        if (transformData.ContainsKey("t")) {
            trans.TimeStamp = Convert.ToDouble(transformData.GetLong("t"));
        }
        else {
            trans.TimeStamp = 0;
        }

        return trans;
    }
예제 #4
0
 public void fromSFSObject(ISFSObject estimacion)
 {
     user = estimacion.GetUtfString("user");
     valorEstimacion = estimacion.GetFloat("valorEstimacion");
     descripcion = estimacion.GetUtfString("descripcion");
     id_UserStory = estimacion.GetLong("id_Story");
 }
예제 #5
0
    /// <summary>
    /// Пришел ответ от расширения сервера
    /// </summary>
    /// <param name="cmd"></param>
    /// <param name="data"></param>
    void OnExtensionResponse(string cmd, ISFSObject data)
    {
        Responses response = (Responses) Enum.Parse(typeof(Responses), cmd);

        switch (response)
        {
            case Responses.GameStateChange:
                GameStateChange(data);
                break;
            case Responses.CurrentTime:
                CurrentTimeUpdate(data);
                break;
            case Responses.PlayersInfo:
                if (OnPlayersInfo != null)
                    OnPlayersInfo(data);
                break;
            case Responses.Smile:
                Smile(data);
                break;
            case Responses.CirclesInfo:
                if (OnCirclesInfo != null)
                    OnCirclesInfo(data);
                break;
            case Responses.CircleAndPlayer:
                if (OnCircleAndPlayer != null)
                    OnCircleAndPlayer(data);
                break;
        }
    }
예제 #6
0
    public void UpdatePlayerInfo(ISFSObject data, Color myColor)
    {
        String colorName = "";
        long time = data.GetLong("time");
        int s,m,h;
        string formattedTime;

        if(myColor == Color.red)
            colorName = "red";
        if(myColor == Color.green)
            colorName = "green";
        if(myColor == Color.cyan)
            colorName = "cyan";
        if(myColor == Color.magenta)
            colorName = "magenta";
        if(myColor == Color.yellow)
            colorName = "yellow";

        int newtime = (int) time/1000;
        s = (int) newtime%60;
        m = (int) (newtime/60)%60;
        h = (int) (newtime/3600)%24;
        formattedTime = string.Format("{0:00}:{1:00}:{2:00}",h,m,s);

        GameObject stats = GameObject.Find("StatLabels");
        stats.transform.FindChild("Name").GetComponent<UILabel>().text = data.GetUtfString("name");
        stats.transform.FindChild("Color").GetComponent<UILabel>().text = colorName;
        stats.transform.FindChild("Color").GetComponent<UILabel>().color = myColor;
        stats.transform.FindChild("Money").GetComponent<UILabel>().text = data.GetInt("money").ToString();
        stats.transform.FindChild("Timer").GetComponent<UILabel>().text = formattedTime;
    }
 public override void HandleSync(ISFSObject obj)
 {
     if(obj.ContainsKey("gate_state")){
         int newState = obj.GetInt("gate_state");
         open = (newState == 0) ? true : false;
     }
 }
예제 #8
0
    public static Vector3 GetSFSTransform(ISFSObject data)
    {
        float x = data.GetFloat("x");
        float y = data.GetFloat("y");
        float z = data.GetFloat("z");

        return new Vector3(x,y,z);
    }
 public void HandleResponse(ISFSObject anObjectIn, GameWorldManager ourGWM)
 {
     if(anObjectIn.GetBool("Gathered"))
     {
         ourGWM.destroyObject(ourGWM.getResourceDictionary()[anObjectIn.GetInt("ID")]);
         ourGWM.getResourceDictionary().Remove(anObjectIn.GetInt("ID"));
     }
 }
예제 #10
0
    public static Vector3 GetSFSRotation(ISFSObject data)
    {
        float rx = data.GetFloat("rx");
        float ry = data.GetFloat("ry");
        float rz = data.GetFloat("rz");

        return new Vector3(rx, ry, rz);
    }
예제 #11
0
 public void listAllUsers(ISFSObject dataObject)
 {
     ISFSArray datos = dataObject.GetSFSArray("usuarios");
         foreach (SFSObject proyectoObject in datos){
                 allUsers.Add(proyectoObject.GetUtfString("nick"));
             }
         allUsersFullStrings = allUsers.ToArray();
 }
 public void HandleNetObjInit(ISFSObject data)
 {
     Debug.Log ("Handling obj init");
     int id = data.GetInt("id");
     NetSyncObj recipient = PlayerSpawner.Instance.GetRecipient(id);
     if(recipient != null){
         recipient.HandleInit(data);
     }
 }
 public void HandleNetObjSync(ISFSObject data)
 {
     //		Debug.Log ("Handling obj sync");
     int id = data.GetInt("id");
     NetSyncObj recipient = PlayerSpawner.Instance.GetRecipient(id);
     if(recipient != null){
         recipient.HandleSync(data);
     }
     //		Debug.Log ("Handle obj sync, id: " + id);
 }
예제 #14
0
 public void listAllProject(ISFSObject dataObject)
 {
     ISFSArray datos = dataObject.GetSFSArray("proyectos");
             foreach (SFSObject proyectoObject in datos){
                 projects.Add(proyectoObject.GetUtfString("sala"));
                 projectsFull.Add(proyectoObject.GetUtfString("nombre"));
             }
             projectNameStrings = projects.ToArray();
             projectFullStrings = projectsFull.ToArray();
 }
 //esegue animazioni remote Tastiera
 public void eseguiAnimazioniRemoteT(ISFSObject sfsObjIn)
 {
     anim.SetFloat("Forward",sfsObjIn.GetFloat("f"));
     anim.SetFloat("Turn", sfsObjIn.GetFloat("t"));
     anim.SetBool("OnGround", sfsObjIn.GetBool("o"));
     anim.SetFloat("Jump", sfsObjIn.GetFloat("j"));
     anim.SetFloat("JumpLeg", sfsObjIn.GetFloat("jL"));
     anim.SetBool("Attacco1", sfsObjIn.GetBool("a1"));
     anim.SetBool("Attacco2", sfsObjIn.GetBool("a2"));
 }
예제 #16
0
 public int GetInt(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return provider.DecryptInt(data.GetByteArray(key));
     }
     else
     {
         return data.GetInt(key);
     }
 }
예제 #17
0
 public void ReceiveResultant(ISFSObject obj, bool clearBuffer = false)
 {
     if(obj.ContainsKey("char_pos")){
         if(clearBuffer){
             if(resultantInterpolator != null){
                 resultantInterpolator.ClearBuffer();
             }
         }
         ReceiveResultant(CharPosEffComp.ResultantFromSFSObject(obj));
     }
 }
예제 #18
0
 public bool GetBool(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return provider.DecryptBool(data.GetByteArray(key));
     }
     else
     {
         return data.GetBool(key);
     }
 }
예제 #19
0
 public double GetDouble(ISFSObject data, string key)
 {
     if (receiveEncrypted)
     {
         return provider.DecryptDouble(data.GetByteArray(key));
     }
     else
     {
         return data.GetDouble(key);
     }
 }
예제 #20
0
 public void ReceiveMoveDirection(ISFSObject obj, bool clearBuffer = false)
 {
     if(obj.ContainsKey("char_mov")){
         if(clearBuffer){
             if(moveDirInterpolator != null){
                 moveDirInterpolator.ClearBuffer();
             }
         }
         ReceiveMoveDirection(CharPosEffComp.MoveDirFromSFSObject(obj));
     }
 }
예제 #21
0
 public void PutFloat(ISFSObject data, string key, float item)
 {
     if (sendEncrypted)
     {
         data.PutByteArray(key, provider.EncryptFloat(item));
     }
     else
     {
         data.PutFloat(key, item);
     }
 }
예제 #22
0
 public void PutDouble(ISFSObject data, string key, double item)
 {
     if (sendEncrypted)
     {
         data.PutByteArray(key, provider.EncryptDouble(item));
     }
     else
     {
         data.PutDouble(key, item);
     }
 }
예제 #23
0
 public void PutBool(ISFSObject data, string key, bool item)
 {
     if (sendEncrypted)
     {
         data.PutByteArray(key, provider.EncryptBool(item));
     }
     else
     {
         data.PutBool(key, item);
     }
 }
        public void HandleResponse(ISFSObject anObjectIn, GameWorldManager ourGWM)
        {
            string aSettlementName = anObjectIn.GetUtfString("Name");
            int ID = anObjectIn.GetInt("ID");
            float[] location = anObjectIn.GetFloatArray("LocationArray");
            int level = anObjectIn.GetInt("CenterNodeLevel");

            GameObject aSettlement = ourGWM.createObject("Prefabs/Settlements/" + aSettlementName + "/" + level.ToString());
            aSettlement.name = "Settlement_" + aSettlementName + "_" + ID;
            aSettlement.transform.position = new Vector3(location[0], location[1], location[2]);
        }
예제 #25
0
 public void listUserXProject(ISFSObject dataObject)
 {
     ISFSArray datos = dataObject.GetSFSArray("usuarios");
             users.Clear();
             usersFull.Clear();
             foreach (SFSObject proyectoObject in datos){
                 users.Add(proyectoObject.GetUtfString("nick"));
                 usersFull.Add(proyectoObject.GetUtfString("rol"));
             }
             usersNameStrings =users.ToArray();
             usersFullStrings = usersFull.ToArray();
 }
예제 #26
0
 public void HandleMessage(ISFSObject data)
 {
     if (beforeMessageRecieved != null)
         {
             beforeMessageRecieved();
         }
         OnHandleMessage(data);
         if (afterMessageRecieved != null)
         {
             afterMessageRecieved();
         }
 }
        public void HandleResponse(ISFSObject anObjectIn, GameWorldManager ourGWM)
        {
            string aResourceName = anObjectIn.GetUtfString("Name");
            int ID = anObjectIn.GetInt("ID");
            float[] location = anObjectIn.GetFloatArray("Location");

            GameObject aResource = ourGWM.createObject("Prefabs/Resources/" + aResourceName);
            aResource.name = "Resource_" + aResourceName + "_" + ID;
            aResource.transform.position = new Vector3(location[0], location[1], location[2]);

            //Add Newly spawned resource to Dictionary
            ourGWM.getResourceDictionary().Add(ID, aResource);
        }
 public void HandleResponse(ISFSObject anObjectIn, GameWorldManager ourGWM)
 {
     string aCharacterName = anObjectIn.GetUtfString("CharacterName");
     if(aCharacterName == ourGWM.getLPC().GetName())
     {
         return;
     }
     else if(ourGWM.getPlayerDictionary().ContainsKey(aCharacterName))
     {
         ourGWM.destroyObject("GameCharacter_" + aCharacterName);
         ourGWM.getPlayerDictionary().Remove(aCharacterName);
     }
 }
        public void HandleResponse(ISFSObject anObjectIn, GameWorldManager ourGWM)
        {
            string aCharacterName = anObjectIn.GetUtfString("CharacterName");
            if(aCharacterName == ourGWM.getLPC().GetName())
            {
                return;
            }
            else if(ourGWM.getPlayerDictionary().ContainsKey(aCharacterName))
            {
                float Rotation = anObjectIn.GetFloat("Rotation");

                ourGWM.getPlayerDictionary()[aCharacterName].GetComponent<RemotePlayerController>().SetRotation(Rotation);
            }
        }
 public void HandleResponse(ISFSObject anObjectIn, GameWorldManager ourGWM)
 {
     string aCharacterName = anObjectIn.GetUtfString("CharacterName");
     if(aCharacterName == ourGWM.getLPC().GetName())
     {
         return;
     }
     else if(ourGWM.getPlayerDictionary().ContainsKey(aCharacterName))
     {
         float[] LocationArray = anObjectIn.GetFloatArray("Location");
         bool IsMoving = anObjectIn.GetBool("IsMoving");
         ourGWM.getPlayerDictionary()[aCharacterName].GetComponent<RemotePlayerController>().SetPlayerMoving(IsMoving);
         ourGWM.getPlayerDictionary()[aCharacterName].transform.position = new Vector3(LocationArray[0], LocationArray[1], LocationArray[2]);
     }
 }
예제 #31
0
        private void OnTtResult(object data)
        {
            ItemList.Clear();

            JhGameTable GameData = App.GetGameData <JhGameTable>();

            ISFSObject obj = (ISFSObject)data;

            ISFSArray usersArr = obj.GetSFSArray("users");
            long      time     = obj.GetLong("svt");

            for (int i = 0; i < usersArr.Count; i++)
            {
                ISFSObject objItem = usersArr.GetSFSObject(i);
                if (objItem.GetKeys().Length > 0)
                {
                    var rItem = new TtResultItem
                    {
                        Name     = objItem.GetUtfString("nick"),
                        Avatar   = objItem.GetUtfString("avatar"),
                        Sex      = objItem.GetShort("sex"),
                        Gold     = objItem.GetInt("gold"),
                        WinCnt   = objItem.GetInt("win"),
                        LostCnt  = objItem.GetInt("lose"),
                        BipaiCnt = objItem.GetInt("abandon"),
                        UId      = objItem.GetInt("id")
                    };
                    ItemList.Add(rItem);
                }
            }
            int bigWiner = 0;
            int cnt      = 0;

            for (int i = 0; i < ItemList.Count; i++)
            {
                TtResultItem item = ItemList[i];
                if (item.WinCnt > cnt)
                {
                    bigWiner = i;
                    cnt      = item.WinCnt;
                }
            }

            ItemList[bigWiner].IsBigWinner = true;

            ISFSArray sendArr = SFSArray.NewInstance();

            foreach (TtResultItem item in ItemList)
            {
                sendArr.AddSFSObject(item.GetSfsObj());
            }
            ISFSObject sendObj = SFSObject.NewInstance();

            sendObj.PutSFSArray("Users", sendArr);
            sendObj.PutUtfString("Time", DateTime.FromBinary(time).ToString());
            sendObj.PutInt("MaxLun", GameData.maxRound);
            sendObj.PutInt("RoomID", GameData.CreateRoomInfo.RoomId);
            sendObj.PutInt("Ante", GameData.AnteRate[0]);
            sendObj.PutInt("Ju", GameData.CreateRoomInfo.CurRound);
            EventObj.SendEvent("TtResultViewEvent", "TtResultInfo", sendObj);
        }
예제 #32
0
 /// <summary>
 /// 托管
 /// </summary>
 /// <param name="data"></param>
 public void AutoRequest(ISFSObject data)
 {
     SendGameRequest(data);
 }
예제 #33
0
 /// <summary>
 /// 大结算消息
 /// </summary>
 /// <param name="data"></param>
 public void OnGameVer(ISFSObject data)
 {
     Facade.EventCenter.DispatchEvent(LoaclRequest.GameOverGetData, data);
 }
예제 #34
0
 /// <summary>
 /// 打骰子请求
 /// </summary>
 /// <param name="data"></param>
 public void RollDiceRequest(ISFSObject data)
 {
     SendGameRequest(data);
 }
예제 #35
0
 /// <summary>
 /// 选择飞机
 /// </summary>
 /// <param name="data"></param>
 public void ChoosePlaneRequest(ISFSObject data)
 {
     SendGameRequest(data);
 }
예제 #36
0
 public SFSInvitation(User inviter, User invitee, int secondsForAnswer, ISFSObject parameters)
 {
     Init(inviter, invitee, secondsForAnswer, parameters);
 }
예제 #37
0
 /// <summary>
 /// 解散
 /// </summary>
 /// <param name="data"></param>
 public void HandsUp(ISFSObject data)
 {
     SendFrameRequest(ConstantData.KeyHandsUp, data);
 }
예제 #38
0
        public override void GameResponseStatus(int type, ISFSObject response)
        {
            var gdata = App.GetGameData <BtwGameData>();

            switch ((BtwSkin02RequestType)type)
            {
            case BtwSkin02RequestType.XiaZhu:
                YxDebug.Log("-----------------下注--------------");
                WaitWin.Hide();
                BetCtrl.Bet(response);
                ShowNumCtrl.RefreshNum(response);
                break;

            case BtwSkin02RequestType.ZhuangChange:
                YxDebug.Log("-----------------获取上庄列表--------------");
                WaitWin.Hide();
                UserListCtrl.RefreshBanker(response);
                ProgressCtrl.SetNum(response);
                BetCtrl.ShowChip();
                break;

            case BtwSkin02RequestType.Start:
                YxDebug.Log("-----------------开始下注--------------");
                WaitWin.Hide();
                gdata.BeginBet = true;
                CardsCtrl.ReSetPonits();
                CardsCtrl.gameObject.SetActive(false);
                ShowNumCtrl.Reset();
                ReSetGame();
                BetCtrl.ShowChip();
                ProgressCtrl.ReSetCountdown(18);
                ProgressCtrl.BeginCountdown();
                ApplyCtrl.RefreshBanker();
                TimeBet.gameObject.SetActive(true);
                if (gdata.BankerPlayer.Info.Seat != -1)
                {
                    gdata.BankerPlayer.AddBankerTime();
                }
                Facade.Instance <MusicManager>().Play("beginbet");
                YxMessageTip.Show("开始下注");
                break;

            case BtwSkin02RequestType.Stop:
                YxDebug.Log("-----------------停止下注--------------");
                gdata.BeginBet = false;
                BetCtrl.HideChip();
                ProgressCtrl.EndCountdown();
                TimeBet.gameObject.SetActive(false);
                Facade.Instance <MusicManager>().Play("stopbet");
                WaitWin.Hide();
                break;

            case BtwSkin02RequestType.RollResult:
                YxDebug.Log("-----------------发牌--------------");
                CardsCtrl.BeginGiveCards(response);
                CardsCtrl.gameObject.SetActive(true);
                WaitWin.Hide();
                break;

            case BtwSkin02RequestType.GameResult:
                YxDebug.Log("-----------------结算--------------");
                WaitWin.Hide();
                gdata.SetGameStatus(YxEGameStatus.Normal);
                CardsCtrl.ReceiveResult(response);
                ResultBet(CardsCtrl.Bpg, ShowNumCtrl.ZBet);
                StartCoroutine(ResultMoveChip());
                if (ResultWin != null)
                {
                    StartCoroutine(ShowResultView(response));
                }
                RefreshSelf(response);
                ProgressCtrl.SetNumOnResult(response);
                break;

            case BtwSkin02RequestType.GroupBet:
                YxDebug.Log("-----------------流式下注--------------");
                BetCtrl.GroupBet(response);
                ProgressCtrl.GroupRefreshNum(response);
                ShowNumCtrl.GroupRefreshNum(response);
                break;

            default:
                YxDebug.Log("-*-*-Wrong RequestType : " + type);
                break;
            }
        }
예제 #39
0
        public override void RefreshBanker(ISFSObject responseData)
        {
            var gdata = App.GetGameData <BtwGameData>();

            while (gdata.CurrentBankerList.Count != 0)
            {
                Destroy(gdata.CurrentBankerList[0]);
                gdata.CurrentBankerList.RemoveAt(0);
            }
            gdata.CurrentBankerList.Clear();
            if (GridBankersPrefab.GetChildList().Count != 0)
            {
                foreach (var child in GridBankersPrefab.GetChildList())
                {
                    child.transform.parent = transform;
                    Destroy(child.gameObject);
                }
            }
            if (!responseData.ContainsKey("bankers"))
            {
                return;
            }
            var bankers = responseData.GetSFSArray("bankers");
            var b       = responseData.GetInt("banker");

            gdata.BankSeat = b;
            bool isHasMe            = false;
            YxBaseGameUserInfo info = null;

            if (bankers == null || bankers.Size() == 0)
            {
                if (b == -1)
                {
                    info = new YxBaseGameUserInfo
                    {
                        NickM        = "系统",
                        CoinA        = 1147483647,
                        Seat         = -1,
                        TotalCount   = 0,
                        WinTotalCoin = 0
                    };
                    gdata.BankerPlayer.SetMaxCoin(1147483646);
                    gdata.BankerPlayer.Info = info;
                    gdata.BankerPlayer.HideBankerTime();
                }
                ApplyCtrl.Instance.SetStutus(gdata.GetPlayerInfo().CoinA >= gdata.MiniApplyBanker ? 1 : 2);
                return;
            }

            for (int i = 0; i < bankers.Size(); i++)
            {
                var banker = bankers.GetSFSObject(i);
                var user   = new YxBaseUserInfo
                {
                    Seat  = banker.GetInt("seat"),
                    CoinA = banker.GetLong("ttgold"),
                    NickM = banker.GetUtfString("username")
                };

                if (user.Seat == b)
                {
                    var oldBanker  = gdata.BankerPlayer.Info;
                    var bankerInfo = gdata.GetPlayerInfo(b, true);
                    if (oldBanker == null || oldBanker.NickM != user.NickM)
                    {
                        bankerInfo.CoinA = user.CoinA;
                        bankerInfo.NickM = user.NickM;
                        bankerInfo.Seat  = user.Seat;

                        gdata.BankerPlayer.Info = bankerInfo;
                        gdata.BankerPlayer.SetBankerTime(0);
                    }
                    var userItem = CloneUser(BankerItemPrefab, GridBankersPrefab.gameObject);
                    userItem.name = "0";
                    userItem.GetComponent <UserListModel>().SetInfo(user, true, i + 1);
                    gdata.CurrentBankerList.Add(userItem);
                }
                else
                {
                    var userItem = CloneUser(BankerItemPrefab, GridBankersPrefab.gameObject);
                    userItem.name = i + "";
                    userItem.GetComponent <UserListModel>().SetInfo(user, false, i + 1);
                    gdata.CurrentBankerList.Add(userItem);
                }

                if (gdata.SelfSeat == user.Seat)
                {
                    isHasMe = true;
                }
            }

            var applyCtrl = App.GetGameManager <BtwGameManager>().ApplyCtrl;

            if (isHasMe)
            {
                applyCtrl.SetStutus(0);
            }
            else
            {
                applyCtrl.SetStutus(gdata.GetPlayerInfo().CoinA >= gdata.MiniApplyBanker ? 1 : 2);
            }
            GridBankersPrefab.gameObject.SetActive(true);
            GridBankersPrefab.repositionNow = true;
            GridBankersPrefab.Reposition();
        }
예제 #40
0
 public void Update(ISFSObject data)
 {
 }
예제 #41
0
 public override void GameStatus(int status, ISFSObject info)
 {
 }
예제 #42
0
 public override void OnGetGameInfo(ISFSObject requestData)
 {
     base.OnGetGameInfo(requestData);
     TabelPlayerMgr.InitTablePlayers(requestData);
 }
예제 #43
0
 public override void SetData(ISFSObject data, MahjongUserInfo userInfo)
 {
     userInfo.IsAuto = data.ContainsKey("cards");
 }
예제 #44
0
 public override void SetData(ISFSObject data, MahjongUserInfo userInfo)
 {
     mParams["userdata"] = new VarIsfsobject(data);
 }
예제 #45
0
 public override void SetData(ISFSObject data, MahjongUserInfo userInfo)
 {
     mParams["diling"] = new VarInt(data.TryGetInt("diling"));
 }
예제 #46
0
 /// <summary>
 /// 解散消息
 /// </summary>
 /// <param name="data"></param>
 public void OnHandUp(ISFSObject data)
 {
     Facade.EventCenter.DispatchEvent(LoaclRequest.HandUpResultInfo, data);
 }