//this function will be on a UI button
    public void logInAccount()
    {
        //Get username from Input field
        GameObject inputFieldObject = GameObject.Find("InputFieldUsernameLogin");
        InputField inputField = inputFieldObject.GetComponent<InputField>();
        string username = inputField.text;

        //Get Password
        inputFieldObject = GameObject.Find("InputFieldPasswordLogin");
        inputField = inputFieldObject.GetComponent<InputField>();
        string password = inputField.text;

        if (checkLoginInputFields(username,password))
        {
            scObject data = new scObject("loginInfo");
            data.addString("username", username);
            string nPass = calculateMD5Hash(password);
            data.addString("password", nPass);
            message mes = new message("login");
            mes.addSCObject(data);
            SendServerMessage(mes);
        }
        else
        {
            //Error message
            GameObject errorTextOb = GameObject.Find("TextLoginError");
            Text errorText = errorTextOb.GetComponent<Text>();
            errorText.text = "*Please type your username and password.";
        }
    }
    //Listener for button Show me Data
    public void buttonListenerShowMeData()
    {
        string userPrefs = textCounty.text + "," + textMonth.text + "," + textYear.text + "," + textAccidentType.text;

        Debug.Log(userPrefs);

        scObject data = new scObject("userprefs");
        data.addString("county", textCounty.text);
        data.addString("month", textMonth.text);
        data.addString("year", textYear.text);
        data.addString("accidentType", textAccidentType.text);

        message openDatamsg = new message("opendata");
        openDatamsg.addSCObject(data);
        //TODO check dates if correct
        //object for construct correct message
        HandlePlayerQuery pq = new HandlePlayerQuery();
        //Send the correct message

        message svrMessage = new message("ServerOpenDataRequest");

        svrMessage = pq.messageOpenDataReady(openDatamsg);

        if (svrMessage != null)
        {
            UpdateInfoPanel(textCounty.text,svrMessage.getSCObject(0).getString("dateMY"), textAccidentType.text);
            SendServerMessage(svrMessage);
        }
        else
        {
            Debug.Log("THERE ARE EMPTY FIELDS...");
        }
    }
Exemple #3
0
    private void sendRegister()
    {
        message  m    = new message("register");
        scObject head = new scObject("register");

        head.addString("username", username);
        head.addString("password", password);
        m.addSCObject(head);
        Client.Instance.SendServerMessage(m);
    }
    public void DeletePlantName(string plantname)
    {
        scObject data = new scObject("deleteplantnameinfo");

        data.addString("account", userName);
        data.addString("plantname", plantname);
        message mes = new message("deleteplantname");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    private void Transfer(string url, string userName)
    {
        scObject data = new scObject("urltransferinfo");

        data.addString("url", url);
        data.addString("account", userName);
        message mes = new message("url");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    public void TransferIP(string userip, string userName)
    {
        scObject data = new scObject("transferipinfo");

        data.addString("battleip", userip);
        data.addString("account", userName);
        message mes = new message("transferip");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    } // userName이 itemName 사용

    public void ItemCountCheck(string userName, string itemName)
    {
        scObject data = new scObject("itemaccountcheckinfo");

        data.addString("account", userName);
        data.addString("itemName", itemName);
        message mes = new message("ItemCountCheck");

        mes.addSCObject(data);
        SendServerMessage(mes);
        Debug.Log("loginScene - ItemCountCheck Success.");
    } //userName이 itemName을 몇 개 소유했는지 확인. (전 버전은 itemaccountcheck 함수였음!)
    ScreenCapture sc = new ScreenCapture(); // sc 인스턴스화

    public void SendTime(float time, string scenename)
    {
        scObject data = new scObject("sendtimeinfo");

        data.addFloat("time", time);
        data.addString("account", userName);
        data.addString("scenename", scenename);
        message mes = new message("sendtime");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    public void GetItem(string userName, string itemName) // 아이템을 얻기 위해 서버로 얻을 계정과 아이템 정보 전달 (전에는 ItemCount)
    {
        scObject data = new scObject("itemcountinfo");

        data.addString("account", userName);
        data.addString("itemName", itemName);
        message mes = new message("getItem");

        mes.addSCObject(data);
        SendServerMessage(mes);
        Debug.Log("loginScene - GetItem Success.");
    } // userName이 가지고 있는 itemName
    public void SendPlantName(string plantname)
    {
        scObject data = new scObject("sendplantnameinfo");

        data.addString("account", userName);
        data.addString("plantname", plantname);
        message mes = new message("sendplantname");

        mes.addSCObject(data);
        SendServerMessage(mes);
        Debug.Log("loginScript Recieve " + plantname);
    }
    private void Register(string userName, string p)
    {
        scObject data = new scObject("registerinfo");

        data.addString("account", userName);
        //string nPass = calculateMD5Hash(p);
        data.addString("password", p);
        message mes = new message("register");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    public void existurlcheck(string userName, string p)
    {
        scObject data = new scObject("urlcheckInfo");

        data.addString("account", userName);
        //string nPass = calculateMD5Hash(p);
        data.addString("password", p);
        message mes = new message("urlcheck");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    public void SelectQuery(string userName, string columnName, string tableName)
    {
        Debug.Log("loginScript - SelectQuery is called");
        scObject data = new scObject("SelectQueryInfo");

        data.addString("account", userName);
        data.addString("columnName", columnName);
        data.addString("tableName", tableName);
        message mes = new message("SelectQuery");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    public void UseItem(string userName, string itemName, int itemNum) // 아이템을 사용하기 위해 서버로 계정과 사용할 아이템 정보 전달
    {
        scObject data = new scObject("useiteminfo");

        data.addString("account", userName);
        data.addString("itemName", itemName);
        data.addInt("itemNum", itemNum);
        message mes = new message("UseItem");

        mes.addSCObject(data);
        SendServerMessage(mes);
        Debug.Log("loginScene - UseItem Success.");
    } // userName이 itemName 사용
    public void logInAccount(string userName, string p)
    {
        scObject data = new scObject("loginInfo");

        data.addString("account", userName);
        string nPass = calculateMD5Hash(p);

        data.addString("password", p);
        message mes = new message("login");

        mes.addSCObject(data);
        SendServerMessage(mes);
        Debug.Log("loginScene - loginAccountSuccess.");
    }
        //this method gets a raw message with the prefs of user
        //and returns a message ready to send to server or null
        public message messageOpenDataReady(message m)
        {
            //Initialize
            emptyDropdown = false;
            //INPUT
            string county, month, year, accidentType;
            //OUTPUT
            string elCounty,dateMY,table;

            //GET INPUT
            county = m.getSCObject(0).getString("county");
            month = m.getSCObject(0).getString("month");
            year = m.getSCObject(0).getString("year");
            accidentType = m.getSCObject(0).getString("accidentType");

            //PREPARE OUTPUT
            elCounty = getCountyInGreek(county);
            dateMY = getMonth(month) + "-" + year;
            table = getAccidentType(accidentType);

            //Build a ReadyTOSend message
            message newMes = new message("opendata");
            scObject obj = new scObject("OpenDataObject");
            obj.addString("county", elCounty);
            obj.addString("dateMY", dateMY);
            obj.addString("table", table);

            newMes.addSCObject(obj);

            //return it
            if (!emptyDropdown)
            {
                if(!accidentType.Equals("Lethals"))
                {
                    int num;
                    if(month.Equals("Select month") || year.Equals("Select year") || !(int.TryParse(year, out num)))
                    {
                        return null;
                    }
                    else
                    {
                        return newMes;
                    }
                }
                return newMes;
            }
            else
                return null;
        }
    } // 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);
    }
    public void GetPlantName()
    {
        scObject data = new scObject("getplantnameinfo");

        data.addString("account", userName);
        message mes = new message("getplantname");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    public void subtractionRank()
    {
        scObject data = new scObject("subtractionrankinfo");

        data.addString("account", userName);
        message mes = new message("subtractionrank");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
    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);
    }
Exemple #21
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);
    }
Exemple #22
0
    // Update is called once per frame
    void Update()
    {
        string names = "";
        string scs   = "";

        foreach (Pair <string, int> sb in scoreboard)
        {
            names = names + sb.First + ":\n";
            scs   = scs + sb.Second + "\n";
        }

        message  sc   = new message("scoreboard");
        scObject info = new scObject("info");

        info.addString("names", names);
        info.addString("scs", scs);
        sc.addSCObject(info);

        //string check = "";

        List <Connection> clients = Server.Instance.getClients();

        for (int i = 0; i < clients.Count; i++)
        {
            if (clients[i].isclose)
            {
                playerList.removePlayer(clients[i].clientName);
                clients.Remove(clients[i]);
            }
            else
            {
                Server.Instance.sendClientMessage(clients[i], sc);
            }
            //check = check + clients[i].socket.RemoteEndPoint + "\n";
        }
        //Server.Instance.nonListen ();

        //clientNumber.text = clients.Count.ToString();
    }
        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);
        }
    public void UpdatePlantID(string userName, int plantPos, int plantID)
    {
        Debug.Log("loginScript - UpdatePlantID is called");
        scObject data = new scObject("UpdatePlantIDInfo");

        data.addString("account", userName);
        data.addInt("plantPos", plantPos);
        data.addInt("plantID", plantID);
        message mes = new message("UpdatePlantID");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
Exemple #25
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;
    }
    public void UpdatePlantExp(string userName, int plantPos, int level, int expName, float expAmount)
    {
        //expName 에는 waterExp, sunExp 등등 중에 하나 들어가야됨, 나중에 이것도 이넘형으로 바꾸기
        //PlantPos가 기본키니깐...필요...
        Debug.Log("*******************loginScript - UpdatePlantExp is success************************");
        Debug.Log("Plant Position = " + plantPos + "      Level is = " + level + "      expName is = " + expName);
        scObject data = new scObject("UpdatePlantExpInfo");

        data.addString("account", userName);
        data.addInt("plantPos", plantPos);
        data.addInt("level", level);
        data.addInt("expName", expName);
        data.addFloat("expAmount", expAmount);
        message mes = new message("UpdatePlantExp");

        mes.addSCObject(data);
        SendServerMessage(mes);
    }
Exemple #27
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);
    }
Exemple #28
0
    public scObject snakeToSCObject()
    {
        // Segment for head
        scObject snake = new scObject("snake");

        snake.addString("username", Client.Instance.username);
        snake.addFloat("xPos", transform.position.x);
        snake.addFloat("yPos", transform.position.y);
        snake.addFloat("zPos", transform.position.z);
        snake.addFloat("xRot", transform.rotation.eulerAngles.x);
        snake.addFloat("yRot", transform.rotation.eulerAngles.y);
        snake.addFloat("zRot", transform.rotation.eulerAngles.z);
        snake.addInt("segments", segments.Count);

        // New object for each segment
        for (int i = 0; i < segments.Count; i++)
        {
            snake.addFloat(i + "_xPos", segments [i].transform.position.x);
            snake.addFloat(i + "_yPos", segments [i].transform.position.y);
            snake.addFloat(i + "_zPos", segments [i].transform.position.z);
        }

        return(snake);
    }
    //this function will be on a UI button
    public void registerAccount()
    {
        string[] registryCredentials = new string[7];
        /*
         0 firstname
         1 lastname
         2 date of birth
         3 email
         4 username
         5 password1
         6 password2*/

        //get firstname
        GameObject inputFieldObject = GameObject.Find("InputFieldFirstName");
        InputField inputField = inputFieldObject.GetComponent<InputField>();
        registryCredentials[0] = inputField.text;

        inputFieldObject = GameObject.Find("InputFieldLastName");
        inputField = inputFieldObject.GetComponent<InputField>();
        registryCredentials[1] = inputField.text;

        inputFieldObject = GameObject.Find("InputFieldDateOfBirth");
        inputField = inputFieldObject.GetComponent<InputField>();
        registryCredentials[2] = inputField.text;

        inputFieldObject = GameObject.Find("InputFieldEmail");
        inputField = inputFieldObject.GetComponent<InputField>();
        registryCredentials[3] = inputField.text;

        inputFieldObject = GameObject.Find("InputFieldUsername");
        inputField = inputFieldObject.GetComponent<InputField>();
        registryCredentials[4] = inputField.text;

        inputFieldObject = GameObject.Find("InputFieldPassword");
        inputField = inputFieldObject.GetComponent<InputField>();
        registryCredentials[5] = inputField.text;

        inputFieldObject = GameObject.Find("InputFieldRpassword");
        inputField = inputFieldObject.GetComponent<InputField>();
        registryCredentials[6] = inputField.text;

        GameObject errorTextOb = GameObject.Find("TextRegisterError");
        Text errorText = errorTextOb.GetComponent<Text>();

        GameObject test = GameObject.Find("InputFieldFirstName");
        InputField firstName = test.GetComponent<InputField>();
        firstName.ActivateInputField();

        switch (checkRegisterForm(registryCredentials))
        {
                /*
                 Error Codes
                 0. send message to server(all ok)
                 1. not all forms filled
                 2. passwords not match
                 3. not correct email
                 4. not correct date of birth
                 5. weak password
                 */
            case 0:
                scObject data = new scObject("registerInfo");
                data.addString("firstname", registryCredentials[0]);
                data.addString("lastname", registryCredentials[1]);
                data.addString("birthdate", registryCredentials[2]);
                data.addString("email", registryCredentials[3]);
                data.addString("username", registryCredentials[4]);
                string nPass = calculateMD5Hash(registryCredentials[5]);
                data.addString("password", nPass);
                message mes = new message("register");
                mes.addSCObject(data);
                SendServerMessage(mes);
                errorText.text = "";
                break;
            case 1:
                errorText.text = "*Please fill all the fields.";

                break;
            case 2:
                errorText.text = "*Passwords don't match.";
                break;
            case 3:
                errorText.text = "*Not valid email address.";
                break;
            case 4:
                errorText.text = "*Not valid birth of date (dd/mm/yyyy).";
                break;
            case 5:
                errorText.text = "*Passwords need to be at least 8 characters.";
                break;

        }
    }
Exemple #30
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;
            }
        }
    // Use this for initialization
    void Start()
    {
        /****************************/
        message mes = new message("openDataResponse");
                    scObject data = new scObject("data");
                    data.addString("location", "Αγ. Παρασκεύη,Λ. Μεσογείων και Καποδιστρίου");
                    data.addString("time", "13:00 - 17:00");
                    data.addString("cause", "Αίτια αναφερόμενα στην οδό και τον καιρό");
                    data.addString("type", "Άλλο ή άγνωστο είδος");
                    data.addString("vehicle", "Φορτηγό κάτω των 3,5 τόνων");
                    data.addString("victim", "Επιβάτης");
                    data.addString("age", "55 +");
                    mes.addSCObject(data);

                    scObject data1 = new scObject("data");
                    data1.addString("location", "13ο χλμ. Επ.Οδ. Ανδρίτσαινας-Θολου, Νέα Φιγαλεια");
                    data1.addString("time", "13:00 - 17:00");
                    data1.addString("cause", "Αίτια αναφερόμενα στην οδό και τον καιρό");
                    data1.addString("type", "Άλλο ή άγνωστο είδος");
                    data1.addString("vehicle", "I.X.E   ");
                    data1.addString("victim", "Οδηγός");
                    data1.addString("age", "55 +");
                    mes.addSCObject(data1);

           /*    for(int i=0;i<40;i++)
            messageToScrollviewData(mes);*/

        connect();
    }