Example #1
0
    public void SendDestroyOtherObject()
    {
        scObject data = new scObject("senddestroyotherobjectinfo");

        data.addBool("SDOO", true);
        message mes = new message("senddestroyotherobject");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
Example #2
0
    public void SendDestroyCastle()
    {
        Debug.Log("??");
        scObject data = new scObject("senddestroycastleinfo");

        data.addBool("SDC", true);
        message mes = new message("senddestroycastle");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
Example #3
0
    public void SendCardMessage(string plantname)
    {
        scObject data = new scObject("sendcardmessageinfo");

        data.addBool("SCM", true);
        data.addString("plantname", plantname);
        message mes = new message("sendcardmessage");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
Example #4
0
    // Send only the snake of the user.
    private void sendUpdates()
    {
        message m = new message("lobby");

        scObject lobby = new scObject("lobby");

        lobby.addString("username", Client.Instance.username);
        lobby.addBool("ready", readied);
        m.addSCObject(lobby);

        Client.Instance.SendServerMessage(m);
    }
        public void sendipaddress()
        {
            sendip = cSock.RemoteEndPoint.ToString();
            message  newMessage1000 = new message("SendipaddressResponse");
            scObject data           = new scObject("data");

            data.addBool("response", true);
            data.addString("useripaddress", sendip);
            newMessage1000.addSCObject(data);
            serverTCP power = new serverTCP();

            power.sendClientMessage(cSock, newMessage1000);
        }
Example #6
0
        public void send()
        {
            message  newMessage = new message("loginResponse");
            scObject data       = new scObject("data");

            data.addBool("response", true);
            newMessage.addSCObject(data);
            sendClientMessage(clientSockets[0], newMessage);
            output.outToScreen("send 실행");
            for (int i = 0; clientSockets.Count > i; i++)
            {
                output.outToScreen("" + clientSockets[i]);
            }
        }
Example #7
0
    public message register(message inc)
    {
        string username = inc.getSCObject("register").getString("username");
        string password = inc.getSCObject("register").getString("password");

        string hash = getHashed(password);

        bool success = isNewUser(username, hash);

        // Build the message
        message  m    = new message("register");
        scObject head = new scObject("register");

        head.addBool("success", success);
        m.addSCObject(head);
        return(m);
    }
Example #8
0
    private message buildLobbyMessage(bool start, int id)
    {
        message m = new message ("lobby");
        scObject lobby = new scObject ("lobby");
        lobby.addInt ("num_player", playerList.players.Count);

        lobby.addBool ("start", start);
        lobby.addInt ("start_id", id);

        GameObject.Find ("PlayerList").GetComponent<PlayerList> ().startId = id;

        for (int i = 0; i < playerList.players.Count; i++) {
            lobby.addString (i + "_username", playerList.players [i].username);
        }

        m.addSCObject (lobby);
        return m;
    }
Example #9
0
    } // userName이 가지고 있는 itemName

    //이거 지금 사실상 거의 씨앗심을때만 사용하고잇음..
    //나중에 테이블을 추가해야된다면 테이블 이름도 변수로 받아서 생성되게 변경할 수 있다. 테이블명에 userName가 들어간다면 조합해서 사용하면되고
    //아니면 그냥 테이블 이름 직접 써주면되고
    //식물리스트테이블에다가 식물의 이름 위치 해당 식물의 경험치를 넣어주는 함수. 씨앗심거나 위치 옮길때 사용
    //userName는 아이디, plantName 식물이름, itemName는 올릴경험치종류(= PlantList테이블의 필드명, WaterEXP, SunEXP, FertilizerEXP, 중 하나)
    //level은 레벨, expAmount는 올려주고싶은 경험치량, posNumber 식물 위치
    //우리 경험치 다 따로 만들기로 했던거 알지? 그래서 이렇게 해놓음...
    //아이템리스트테이블 필드(PlantPos, PlantName, PlantID, Lv, WaterEXP, SunEXP, FertilizerEXP)
    //////////수정 필수,,,, 더이상 update의 의미가없다
    public void UpdatePlantListTable(string userName, string plantName, int plantID, string itemName, int posNumber, int level,
                                     float expAmount, bool isSeedItem)
    {
        Debug.Log("loginScript - UpdatePlantListTable is called");
        scObject data = new scObject("UpdatePlantListTableInfo");

        data.addString("account", userName);
        data.addString("plantName", plantName);
        data.addString("itemName", itemName);
        data.addInt("plantID", plantID);
        data.addInt("posNumber", posNumber);
        data.addInt("level", level);
        data.addFloat("expAmount", expAmount);
        data.addBool("isSeedItem", isSeedItem);
        message mes = new message("UpdatePlantListTable");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
Example #10
0
    public message login(message inc)
    {
        string username = inc.getSCObject("login").getString("username");
        string password = inc.getSCObject("login").getString("password");

        string hash = getHashed(password);

        bool exists = isInDatabase(username, hash);

        if (exists)
        {
            GameObject.Find("PlayerList").GetComponent <PlayerList> ().addPlayer(username);
            GameObject.Find("LobbyManager").GetComponent <LobbyManager> ().ready.Add(false);
        }

        // Build the message
        message  m    = new message("login");
        scObject head = new scObject("login");

        head.addString("clientName", username);
        head.addBool("success", exists);
        m.addSCObject(head);
        return(m);
    }
Example #11
0
        public void handleClientData(Socket cSock, message incObject)
        {
            Stopwatch Sw = new Stopwatch();

            switch (incObject.messageText)
            {
            case "home":
                message home = new message("homeResponse");
                cSock.Shutdown(SocketShutdown.Receive);
                if (true)
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    home.addSCObject(data);
                    sendClientMessage(cSock, home);
                }
                break;

            case "close":
                message close = new message("closeResponse");
                cSock.Shutdown(SocketShutdown.Receive);
                if (true)
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    close.addSCObject(data);
                    sendClientMessage(cSock, close);
                }
                break;

            case "login":
                //output.outToScreen("serverTCP - login 정상 실행.");
                message login = new message("loginResponse");
                if (playerTools.checkLogin(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("password")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    login.addSCObject(data);
                    output.outToScreen("loginScript - loginResponse에 True 값 전달.");
                }

                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    login.addSCObject(data);
                    output.outToScreen("loginScript - loginResponse에 False 값 전달.");
                }
                sendClientMessage(cSock, login);
                break;

            case "register":
                //output.outToScreen("serverTCP - register 정상 실행.");
                message register = new message("registerResponse");
                if (playerTools.createregister(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("password")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    register.addSCObject(data);
                    output.outToScreen("loginScript - registerResponse에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    register.addSCObject(data);
                    output.outToScreen("loginScript - registerResponse에 False 값 전달.");
                }
                sendClientMessage(cSock, register);
                break;

            case "url":
                //output.outToScreen("serverTCP - url 정상 실행.");
                message url = new message("urlResponse");
                if (playerTools.createurl(incObject.getSCObject(0).getString("url"), incObject.getSCObject(0).getString("account")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    url.addSCObject(data);
                    output.outToScreen("loginScript - urlResponse에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    url.addSCObject(data);
                    output.outToScreen("loginScript - urlResponse에 False 값 전달.");
                }
                sendClientMessage(cSock, url);
                break;

            case "getItem":
                //output.outToScreen("serverTCP - getItem 정상 실행.");
                message getitem = new message("getItemResponse");
                if (playerTools.getItem(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("itemName")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    getitem.addSCObject(data);
                    output.outToScreen("loginScript - getItemResponse에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    getitem.addSCObject(data);
                    output.outToScreen("loginScript - getItemResponse에 False 값 전달.");
                }
                sendClientMessage(cSock, getitem);
                break;

            case "UpdatePlantListTable":
                //output.outToScreen("serverTCP - UpdatePlantListTable 정상 실행.");
                message updatePlantListTableMes = new message("UpdatePlantListTableResponse");
                if (playerTools.UpdatePlantListTable(incObject.getSCObject(0).getString("account"),
                                                     incObject.getSCObject(0).getString("plantName"),
                                                     incObject.getSCObject(0).getInt("plantID"),
                                                     incObject.getSCObject(0).getString("itemName"), incObject.getSCObject(0).getInt("posNumber"),
                                                     incObject.getSCObject(0).getInt("level"), incObject.getSCObject(0).getFloat("expAmount"),
                                                     incObject.getSCObject(0).getBool("isSeedItem")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    updatePlantListTableMes.addSCObject(data);
                    output.outToScreen("loginScript - UpdatePlantListTable에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    updatePlantListTableMes.addSCObject(data);
                    output.outToScreen("loginScript - UpdatePlantListTable에 False 값 전달.");
                }
                sendClientMessage(cSock, updatePlantListTableMes);
                break;

            case "SelectQuery":
                //output.outToScreen("serverTCP - SelectQuery 정상 실행.");
                message selectQueryMes = new message("SelectQueryResponse");
                if (playerTools.SelectQuery(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("columnName"),
                                            incObject.getSCObject(0).getString("tableName")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    data.addInt("plantListTableCount", playerTools.plantPos.Count);
                    for (int i = 0; i <= playerTools.plantPos.Count - 1; i++)
                    {
                        data.addInt("plantPos[" + i + "]", playerTools.plantPos[i]);
                        data.addString("plantName[" + i + "]", playerTools.plantName[i]);
                        data.addInt("plantID[" + i + "]", playerTools.plantID[i]);
                        data.addInt("Lv[" + i + "]", playerTools.Lv[i]);
                        data.addFloat("waterEXP[" + i + "]", playerTools.waterEXP[i]);
                        data.addFloat("sunEXP[" + i + "]", playerTools.sunEXP[i]);
                        data.addFloat("fertilizerEXP[" + i + "]", playerTools.fertilizerEXP[i]);
                    }
                    ////고민중, 걍 노가다임시방편으로 할지 여러 곳에 사용될수잇게 만들지.. 테이블마다 컬럼 개수가 다를 텐데 어떻게 다 가져오지?
                    //위에 써놓음, 다시말하면 2차원배열 만들면됨, 배열 크기는 loginScript에서 넘겨받으면됨,
                    //근데 보통 테이블마다 따로 짠다고하니 별 상관 없을듯함
                    selectQueryMes.addSCObject(data);
                    output.outToScreen("loginScript - SelectQueryResponse에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    selectQueryMes.addSCObject(data);
                    output.outToScreen("loginScript - SelectQueryResponse에 False 값 전달.");
                }
                playerTools.plantPos.Clear();
                playerTools.plantName.Clear();
                playerTools.plantID.Clear();
                playerTools.Lv.Clear();
                playerTools.waterEXP.Clear();
                playerTools.sunEXP.Clear();
                playerTools.fertilizerEXP.Clear();
                sendClientMessage(cSock, selectQueryMes);
                break;

            case "UpdatePlantExp":
                //output.outToScreen("serverTCP - SelectQuery 정상 실행.");
                message UpdatePlantExpMes = new message("UpdatePlantExpResponse");
                if (playerTools.UpdatePlantExp(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getInt("plantPos"),
                                               incObject.getSCObject(0).getInt("level"), incObject.getSCObject(0).getInt("expName"), incObject.getSCObject(0).getFloat("expAmount")))
                {
                    output.outToScreen("SeverTCP - UpdatePlantExp is complete");
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    UpdatePlantExpMes.addSCObject(data);
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    UpdatePlantExpMes.addSCObject(data);
                }
                //sendClientMessage(cSock, UpdatePlantExpMes);
                break;

            case "UpdatePlantID":
                message UpdatePlantIDMes = new message("UpdatePlantIDResponse");
                if (playerTools.UpdatePlantID(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getInt("plantPos"),
                                              incObject.getSCObject(0).getInt("plantID")))
                {
                    output.outToScreen("SeverTCP - UpdatePlantID is complete");
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    UpdatePlantIDMes.addSCObject(data);
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    UpdatePlantIDMes.addSCObject(data);
                }
                //sendClientMessage(cSock, UpdatePlantExpMes);
                break;

            case "ItemCountCheck":
                //output.outToScreen("serverTCP - ItemCountCheck 정상 실행.");
                message itemcountcheck = new message("ItemCountCheckResponse");
                if (playerTools.ItemCountCheck(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("itemName")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);

                    if (playerTools.number == playerTools.wItemNum)
                    {
                        data.addInt("wItemNum", playerTools.wItemNum);
                        itemcountcheck.addSCObject(data);
                        //output.outToScreen("loginScript - ItemCountCheckResponse에 True 값과 wItemNum 값 전달.");
                    }
                    if (playerTools.number2 == playerTools.fItemNum)
                    {
                        data.addInt("fItemNum", playerTools.fItemNum);
                        itemcountcheck.addSCObject(data);
                        //output.outToScreen("loginScript - ItemCountCheckResponse에 True 값과 fItemNum 값 전달.");
                    }
                    if (playerTools.number3 == playerTools.sItemNum)
                    {
                        data.addInt("sItemNum", playerTools.sItemNum);
                        itemcountcheck.addSCObject(data);
                        //output.outToScreen("loginScript - ItemCountCheckResponse에 True 값과 sItemNum 값 전달.");
                    }
                    if (playerTools.number4 == playerTools.nItemNum)
                    {
                        data.addInt("nItemNum", playerTools.nItemNum);
                        itemcountcheck.addSCObject(data);
                        //output.outToScreen("loginScript - ItemCountCheckResponse에 True 값과 nItemNum 값 전달.");
                    }
                    if (playerTools.number5 == playerTools.sfsItemNum)
                    {
                        data.addInt("sfsItemNum", playerTools.sfsItemNum);
                        itemcountcheck.addSCObject(data);
                        //output.outToScreen("loginScript - ItemCountCheckResponse에 True 값과 sfsItemNum 값 전달.");
                    }
                    if (playerTools.number6 == playerTools.csItemNum)
                    {
                        data.addInt("csItemNum", playerTools.csItemNum);
                        itemcountcheck.addSCObject(data);
                        //output.outToScreen("loginScript - ItemCountCheckResponse에 True 값과 csItemNum 값 전달.");
                    }
                    if (playerTools.number7 == playerTools.tsItemNum)
                    {
                        data.addInt("tsItemNum", playerTools.tsItemNum);
                        itemcountcheck.addSCObject(data);
                        //output.outToScreen("loginScript - ItemCountCheckResponse에 True 값과 tsItemNum 값 전달.");
                    }
                    output.outToScreen("loginScript - ItemCountCheckResponse에 True 값 전달");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    itemcountcheck.addSCObject(data);
                    output.outToScreen("loginScript - ItemCountCheckResponse에 False 값 전달.");
                }

                sendClientMessage(cSock, itemcountcheck);
                break;

            case "urlcheck":
                //output.outToScreen("serverTCP - urlcheck 정상 실행.");
                message urlcheck = new message("urlcheckResponse");
                if (playerTools.urlcheck(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("password")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    urlcheck.addSCObject(data);
                    output.outToScreen("loginScript - urlcheckResponse에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    urlcheck.addSCObject(data);
                    output.outToScreen("loginScript - urlcheckResponse에 False 값 전달.");
                }
                sendClientMessage(cSock, urlcheck);
                break;

            case "UseItem":
                //output.outToScreen("serverTCP - UseItem 정상 실행.");
                message useitem = new message("UseItemResponse");
                if (playerTools.UseItem(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("itemName"), incObject.getSCObject(0).getInt("itemNum")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    data.addInt("wItemNum", playerTools.number);
                    data.addInt("fItemNum", playerTools.number2);
                    data.addInt("sItemNum", playerTools.number3);
                    data.addInt("nItemNum", playerTools.number4);
                    data.addInt("sfsItemNum", playerTools.number5);
                    data.addInt("csItemNum", playerTools.number6);
                    data.addInt("tsItemNum", playerTools.number7);
                    useitem.addSCObject(data);
                    output.outToScreen("loginScript - UseItemResponse에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    useitem.addSCObject(data);
                    output.outToScreen("loginScript - UseItemResponse에 False 값 전달.");
                }
                sendClientMessage(cSock, useitem);
                break;

            case "sendtime":
                message sendtime = new message("sendtimeresponse");
                if (playerTools.sendtime(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getFloat("time"), incObject.getSCObject(0).getString("scenename")))
                {
                    output.outToScreen("");
                }
                break;

            case "plusExp":
                //output.outToScreen("serverTCP - plusExp 정상 실행.");
                message plusExp = new message("plusExpResponse");
                if (playerTools.plusExp(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("password")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    plusExp.addSCObject(data);
                    output.outToScreen("loginScript - plusExpResponse에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    plusExp.addSCObject(data);
                    output.outToScreen("loginScript - plusExpResponse에 False 값 전달.");
                }
                sendClientMessage(cSock, plusExp);
                break;

            case "CheckExp":
                //output.outToScreen("serverTCP - CheckExp 정상 실행.");
                message CheckExp = new message("CheckExpResponse");
                if (playerTools.CheckExp(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("password")))
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    data.addInt("Exp", playerTools.Exp);
                    CheckExp.addSCObject(data);
                    output.outToScreen("loginScript - CheckExpResponse에 True 값 전달.");
                }
                else
                {
                    scObject data = new scObject("data");
                    data.addBool("response", false);
                    CheckExp.addSCObject(data);
                    output.outToScreen("loginScript - CheckExpResponse에 False 값 전달.");
                }
                sendClientMessage(cSock, CheckExp);
                break;

            case "getplantname":     //이부분도 수정이 필요하다. 첨에 대전 버튼 누르면 되는데 아니면 안된다.
                message GetPlantNameMessage = new message("GetPlantNameResponse");
                if (true)
                {
                    string name = "";
                    char   sp   = ',';
                    name = playerTools.GetPlantName(incObject.getSCObject(0).getString("account"));
                    string[] spstring = name.Split(sp);
                    scObject data     = new scObject("data");
                    data.addBool("response", true);
                    data.addString("name1", spstring[0]);
                    data.addString("name2", spstring[1]);
                    data.addString("name3", spstring[2]);
                    data.addString("name4", spstring[3]);
                    GetPlantNameMessage.addSCObject(data);
                    sendClientMessage(cSock, GetPlantNameMessage);
                }

                /*else
                 * {
                 *  output.outToScreen("식물 이름 받아오기 실패");
                 *  scObject data = new scObject("data");
                 *  data.addBool("response", false);
                 *  GetPlantNameMessage.addSCObject(data);
                 *  sendClientMessage(cSock, GetPlantNameMessage);
                 * }*/
                break;

            case "transferip":
                message newMessage10 = new message("TransferIPResponse");
                if (clientSockets.Contains(cSock))
                {
                    output.outToScreen("중복 아이피 또는 Socket 입니다. " + incObject.getSCObject(0).getString("battleip") + cSock);
                }
                else
                {
                    clientSockets.Add(cSock);
                }

                if (clientSockets.Count == 2)
                {
                    clientinfos.Add(clientSockets[0], clientSockets[1]);     //KEY VALUE
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    newMessage10.addSCObject(data);
                    sendClientMessage(clientSockets[0], newMessage10);
                    sendClientMessage(clientSockets[1], newMessage10);
                    clientSockets.Clear();
                }
                else
                {
                    scObject data = new scObject("data");
                    output.outToScreen("매칭 인원이 부족합니다.");
                    data.addBool("response", false);
                    sendClientMessage(clientSockets[0], newMessage10);
                }
                break;

            case "addrank":
                message addRank = new message("addRankResponse");
                if (true)
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    data.addInt("rankpoint", playerTools.addrank(incObject.getSCObject(0).getString("account")));
                    addRank.addSCObject(data);
                }
                else
                {
                }
                sendClientMessage(cSock, addRank);
                break;

            case "subtractionrank":
                message subtractionrank = new message("subtractionRankResponse");
                if (true)
                {
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    data.addInt("rankpoint", playerTools.subtractionrank(incObject.getSCObject(0).getString("account")));
                    subtractionrank.addSCObject(data);
                }
                else
                {
                }
                sendClientMessage(cSock, subtractionrank);
                break;

            case "sendplantname":
                if (playerTools.sendplantname(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("plantname")))
                {
                    output.outToScreen("sendplantName");    //이제 로그인 스크립트에 저장된 이름 다시 쏴줘야해
                }
                break;

            case "alldeleteplantname":
                if (playerTools.AllDeletePlantName(incObject.getSCObject(0).getString("account")))
                {
                    output.outToScreen("이름 전부 초기화");
                }
                break;

            case "deleteplantname":
                if (playerTools.DeletePlantName(incObject.getSCObject(0).getString("account"), incObject.getSCObject(0).getString("plantname")))
                {
                    output.outToScreen("이름 1개 완료");
                }
                break;

            case "sendcardmessage":     //왜 안되는지 모르겠음
                message SendCreateMyCard = new message("MyCardResponse");
                message SendCreateAICard = new message("SendCreateAICardResponse");
                if (clientinfos.ContainsKey(cSock) || clientinfos.ContainsValue(cSock))
                {
                    plantname = incObject.getSCObject(0).getString("plantname");
                    scObject data = new scObject("data");
                    data.addBool("response", true);
                    data.addString("plantname", plantname);
                    SendCreateMyCard.addSCObject(data);
                    SendCreateAICard.addSCObject(data);

                    if (clientinfos.ContainsKey(cSock))
                    {
                        clientinfos.TryGetValue(cSock, out value_Value);
                        sendClientMessage(value_Value, SendCreateAICard);
                        sendClientMessage(cSock, SendCreateMyCard);
                    }
                    else if (clientinfos.ContainsValue(cSock))
                    {
                        value_Key = clientinfos.FirstOrDefault(x => x.Value == cSock).Key;
                        sendClientMessage(value_Key, SendCreateAICard);
                        sendClientMessage(cSock, SendCreateMyCard);
                    }
                }
                else
                {
                }
                break;

            case "senddestroyotherobject":     //내 오브젝트 파괴 했다는 메세지 받았을때;
            {
                output.outToScreen("??");
                message  newMessage13 = new message("SendDestroyMyObjectResponse");
                scObject data         = new scObject("data");
                data.addBool("response", true);
                newMessage13.addSCObject(data);

                message  newMessage14 = new message("SendDestroyAiObjectResponse");
                scObject data1        = new scObject("data1");
                data1.addBool("response", true);
                newMessage14.addSCObject(data1);

                if (clientinfos.ContainsKey(cSock))
                {
                    clientinfos.TryGetValue(cSock, out value_Value);
                    sendClientMessage(cSock, newMessage14);
                    sendClientMessage(value_Value, newMessage13);
                }

                else if (clientinfos.ContainsValue(cSock))
                {
                    value_Key = clientinfos.FirstOrDefault(x => x.Value == cSock).Key;
                    sendClientMessage(cSock, newMessage14);
                    sendClientMessage(value_Key, newMessage13);
                }
                output.outToScreen("" + newMessage14);
            }
            break;

            case "senddestroycastle":
            {
                output.outToScreen("???");
                message  newMessage15 = new message("SendDestroyMyCastleResponse");
                scObject data         = new scObject("data");
                data.addBool("response", true);
                newMessage15.addSCObject(data);

                message  newMessage16 = new message("SendDestroyAiCastleResponse");
                scObject data1        = new scObject("data1");
                data1.addBool("response", true);
                newMessage16.addSCObject(data1);

                message  newMessage17 = new message("SendVictoryResponse");
                scObject data2        = new scObject("data2");
                data2.addBool("response", true);
                newMessage17.addSCObject(data2);

                message  newMessage18 = new message("SendLoseResponse");
                scObject data3        = new scObject("data3");
                data3.addBool("response", true);
                newMessage18.addSCObject(data3);

                if (clientinfos.ContainsKey(cSock))
                {
                    clientinfos.TryGetValue(cSock, out value_Value);
                    sendClientMessage(cSock, newMessage16);
                    sendClientMessage(value_Value, newMessage15);
                    sendClientMessage(cSock, newMessage17);
                    sendClientMessage(value_Value, newMessage18);
                }

                else if (clientinfos.ContainsValue(cSock))
                {
                    value_Key = clientinfos.FirstOrDefault(x => x.Value == cSock).Key;
                    sendClientMessage(cSock, newMessage16);
                    sendClientMessage(value_Key, newMessage15);
                    sendClientMessage(cSock, newMessage17);
                    sendClientMessage(value_Key, newMessage18);
                }
                clientinfos.Remove(cSock);
                output.outToScreen("" + newMessage15);
            }
            break;


            default:
                output.outToScreen("The client sent a message: " + incObject.messageText);
                break;
            }
        }
    public void clipNotes(int tick)
    {
        barsSprites.Add(instanceBar);
            barsSprites[(barsSprites.Count) - 1].transform.parent = instance.transform;
            instanceBar = (GameObject)Object.Instantiate(bar);
            if (!_modele_venyl_ref.note1 && !_modele_venyl_ref.note2 && !_modele_venyl_ref.note3 && !_modele_venyl_ref.note4 && _modele_venyl_ref.typeAccordSvt > 0)
            {
                _controller_game_ref.incrementToken();
            }

        if (_modele_venyl_ref.note1)
        {
            notesSprites.Add(instance1);
            notesSprites[(notesSprites.Count) - 1].transform.parent = instance.transform;
            instance1 = new GameObject();

        }
        if (_modele_venyl_ref.note2)
        {
            notesSprites.Add(instance2);
            notesSprites[(notesSprites.Count) - 1].transform.parent = instance.transform;
            instance2 = new GameObject();

        }
        if (_modele_venyl_ref.note3)
        {
            notesSprites.Add(instance3);
            notesSprites[(notesSprites.Count) - 1].transform.parent = instance.transform;
            instance3 = new GameObject();
        }
        if (_modele_venyl_ref.note4)
        {
            notesSprites.Add(instance4);
            notesSprites[(notesSprites.Count) - 1].transform.parent = instance.transform;
            instance4 = new GameObject();
        }

            bool temp = false;
            switch (_modele_venyl_ref.typeAccordSvt)
            {
                case 1:
                        temp = _modele_venyl_ref.note1;
                        _modele_venyl_ref.note1=_modele_venyl_ref.note2;
                        _modele_venyl_ref.note2 = _modele_venyl_ref.note3;
                        _modele_venyl_ref.note3 = _modele_venyl_ref.note4;
                        _modele_venyl_ref.note4 = temp;
                    break;
                case 2:
                          temp = _modele_venyl_ref.note4;
                        _modele_venyl_ref.note4 = _modele_venyl_ref.note3;
                        _modele_venyl_ref.note3 = _modele_venyl_ref.note2;
                        _modele_venyl_ref.note2 = _modele_venyl_ref.note1;
                        _modele_venyl_ref.note1 = temp;
                    break;
                case 3:
                        temp = _modele_venyl_ref.note1;
                        _modele_venyl_ref.note1=_modele_venyl_ref.note4;
                        _modele_venyl_ref.note4=temp;

                        temp = _modele_venyl_ref.note2;
                        _modele_venyl_ref.note2=_modele_venyl_ref.note3;
                        _modele_venyl_ref.note3=temp;
                    break;

            }
            _modele_venyl_ref.typeAccordSvt=0;
        scObject note = new scObject("");

        if (_modele_venyl_ref.note1)
        {
            _modele_venyl_ref.note1 = false;
            _modele_venyl_ref.nbNotes--;
            note = new scObject("note1");
            note.addInt("time", tick);
            note.addInt("type", 1);
            note.addBool("deleted", false);
            _modele_venyl_ref.notes.addSCObject(note);
        }
        if (_modele_venyl_ref.note2)
        {
            _modele_venyl_ref.note2 = false;
            _modele_venyl_ref.nbNotes--;
            note = new scObject("note2");
            note.addInt("time", tick);
            note.addInt("type", 2);
            note.addBool("deleted", false);
            _modele_venyl_ref.notes.addSCObject(note);
        }
        if (_modele_venyl_ref.note3)
        {
            _modele_venyl_ref.note3 = false;
            _modele_venyl_ref.nbNotes--;
            note = new scObject("note3");
            note.addInt("time", tick);
            note.addInt("type", 3);
            note.addBool("deleted", false);
            _modele_venyl_ref.notes.addSCObject(note);
        }
        if (_modele_venyl_ref.note4)
        {
            _modele_venyl_ref.note4 = false;
            _modele_venyl_ref.nbNotes--;
            note = new scObject("note4");
            note.addInt("time", tick);
            note.addInt("type", 4);
            note.addBool("deleted", false);
            _modele_venyl_ref.notes.addSCObject(note);
        }
    }