//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..."); } }
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); }
// 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); }
// 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); }
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); }
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); }
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; } }
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(); }