Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou tentando inserir no mysql, atraves de um script em java, um número float que é gerado aleatoriamente e separa os decimais com ponto, tipo 18392.87 so que no mysql esta registrando assim 18392.00 O que poderia esta acontecendo que não esta registrando, A database esta em score float 10,2 e aqui o script que manda o numero float que e gerado aleatoriamente e separa os decimais com ponto. por favor.
#pragma strictimport System.Security.Cryptography. import System.Text. @script ExecuteInEditMode()enum TrackingType{FreeEntry,TrackProgress}var trackType: TrackingType = TrackingType.FreeEntry. enum DeveloperType{debug,live}var developmentMode: DeveloperType = DeveloperType.live. private var secretKey: String = "test". var sendScoreURL: String = "http://nfx.comuv.com/.../SendHighScores.php?". var getScoresURL: String = "http://nfx.comuv.com/.../GetHighScores.php?". var resetScoresURL: String = "http://nfx.comuv.com/.../ResetHighScores.php?". var registerUserURL: String = "http://nfx.comuv.com/.../RegisterUser.php?". var getUserScoreURL: String = "http://nfx.comuv.com/.../GetUserScore.php?". var DatabaseToolsURL: String = "http://nfx.comuv.com/.../DatabaseTools.php?". //Modules Doneclass Module{ var showStatus: boolean = true. var showScores: boolean = true. var showUserScore: boolean = true. var showSendScore: boolean = true. var showDifficultySwitch: boolean = true. var showScopeSwitch: boolean = true. }var displayOptions: Module. //Class That contains class Mode{ var displayName: String = "Easy". var playerPrefsName: String = "Easy". var databaseName: String = "Easy". }var difficultyModes: Mode[]. var startDifficultyMode: int = 0. private var modeIndex: int = 0. //Score Scopeprivate var scoreScopeText: String = "Global". //AllTime,Dailyprivate var currentScope: String = "AllTime". class ScoreScopeSettings{ var dailyName: String = "Daily". var allTimeName: String = "Global". }var scoreScope: ScoreScopeSettings. //Get HighScores Fields(keep the same lenght)private var serverHighScores: String[] = new String[0]. private var scrollView: Vector2. var scoreType: String = "Points". var maxHighScores: int = 1000. //Send HighScores Fieldsprivate var serverHighScoreName: String = "". var maxNameCharacters: int = 20. //Reset HighScores Fieldsvar resetNames: int = 100. var minResetScore: int = 100. var maxResetScore: int = 1000. //Bad Namesvar blockBadNames: boolean = true. //Block names from bas names listvar badNamesList: TextAsset. //List Of bad names//PlayerPrefsNamevar existingNamePlayerPrefs: String = "playerName". //Rectsvar sendScoresOffsetRect: Rect = new Rect(450,150,250,30). var getScoresOffsetRect: Rect = new Rect(450,100,100,25). var scoreScopeOffsetRect: Rect = new Rect(300,100,100,25). var messageOffsetBox: Rect = new Rect(450,-150,250,25). var localScoreOffsetRect: Rect = new Rect(450,-105,250,25). var serverScoreOffsetRect: Rect = new Rect(450,-60,250,40). var scoresListOffsetRect: Rect = new Rect(150,150,380,350). private var baseRect: Rect = new Rect(Screen.width *.5F,Screen.height *.5F,100F,100F). //statusprivate var year: int = 2012. private var month: int = 9. private var day: int = 1. private var debugScore: int = 0. private var deleteScore: int = 0. public var localScore: float = 0. private var serverScore: float = 0. private var serverRank: float = 0. private var status: String = "". //Status of Server Operationsprivate var runningHsServer: float = 0. //Are we doing server side operationsprivate var runningTrack: float = 0. //Are we seeking player status//skinvar skin: GUISkin. function DatabaseTools(mode: int,tables: Mode[]){ if(runningHsServer == 1){status = "Still Running". return. } runningHsServer = 1. status = "Running". //0 = create tables var hsFm: WWWForm = new WWWForm(). hsFm.AddField("mode",mode). for(var md: Mode in tables){ hsFm.AddField("table",md.databaseName). var hs: WWW = new WWW(DatabaseToolsURL,hsFm). yield hs. if(hs.text.Equals("Created")){status = "Database Created". } else{status = "Error Occured". } Debug.Log(hs.text). } //Stop Running runningHsServer = 0. SynchTable(). }function DatabaseTools(mode: int,table: String){ if(runningHsServer == 1){status = "Still Running". return. } runningHsServer = 1. status = "Running". //Modes // 1 = delete by score // 2 = delete by date var hsFm: WWWForm = new WWWForm(). hsFm.AddField("mode",mode). if(mode == 1){ hsFm.AddField("table",table). hsFm.AddField("score",deleteScore). }else if(mode == 2){ hsFm.AddField("table",table). hsFm.AddField("date",year+"/"+month+"/"+day). } var hs: WWW = new WWW(DatabaseToolsURL,hsFm). yield hs. if(hs.text.Equals("Created")){status = "Database Created". } if(hs.text.Equals("Deleted")){status = table +" Entries Cleaned". } else{status = "Error Occured". } Debug.Log(hs.text). //Stop Running runningHsServer = 0. SynchTable(). }function ResetHighScores(table: String,mode: String){ if(runningHsServer == 1){status = "Still Running". return. } runningHsServer = 1. status = "Running". // var hsFm: WWWForm = new WWWForm(). hsFm.AddField("table",table). hsFm.AddField("mode",mode). hsFm.AddField("count",resetNames). hsFm.AddField("min",minResetScore). hsFm.AddField("max",maxResetScore). var hs: WWW = new WWW(resetScoresURL,hsFm). yield hs. //Update status = hs.text. //Running runningHsServer = 0. SynchTable(). }function GetUserScore(table: String,name: String){ runningTrack = 1. //We are seeking user stats // serverRank = 0. serverScore = 0. //Get User Score var hsFm: WWWForm = new WWWForm(). hsFm.AddField("name",name). hsFm.AddField("table",table). hsFm.AddField("hash",GetHash(name)). var hs: WWW = new WWW(getUserScoreURL,hsFm). yield hs. Debug.Log(hs.text). if(hs.text!= "Not Found" &&!hs.text.Contains("Query failed")){ var userData: String[] = hs.text.Split(':'[0]). //Process Results if(userData[1]!= null)serverRank = float.Parse(userData[1]). if(userData[2]!= null)serverScore = float.Parse(userData[2]). } else if(hs.text == "Not Found"){ PlayerPrefs.SetFloat("nameRegistered",0). } runningTrack = 0. }function GetHighScores(table: String,scope: String,limit: int){ if(runningHsServer == 1){status = "Still Running". return. } runningHsServer = 1. status = "Running". //Get HighScores serverHighScores = new String[maxHighScores]. for(var st: float = 0. st<serverHighScores.Length. st++){ serverHighScores[st] = "Loading....". } var hsFm: WWWForm = new WWWForm(). hsFm.AddField("table",table). hsFm.AddField("scope",scope). hsFm.AddField("limit",limit). hsFm.AddField("hash",GetHash(table)). var hs: WWW = new WWW(getScoresURL,hsFm). yield hs. if(hs.text.Length > 0){ serverHighScores = hs.text.Split('%'[0]). status = "Found "+table+" HighScores". Debug.Log("Found HighScores: " + scope+":" +table). }else{ status = "No "+scope+" Scores". Debug.Log("No "+scope+" Scores"). } //Stop Running runningHsServer = 0. //Get User Stats If Tracking is On & We are Registered if(trackType == TrackingType.TrackProgress && PlayerPrefs.GetFloat("nameRegistered") == 1){ StartCoroutine(GetUserScore(difficultyModes[modeIndex].databaseName,serverHighScoreName)). }}function SendHighScores(table: Mode,name: String,score: int,difficultyModesSet: Mode[]){ if(runningHsServer == 1){status = "Still Running". return. } runningHsServer = 1. status = "Running". //Check If We Have Beat Our Own Score First if(developmentMode == DeveloperType.live){ if(PlayerPrefs.GetFloat(table.playerPrefsName) <= PlayerPrefs.GetFloat("sent"+table.playerPrefsName)){ status = table.displayName + " Score Previously Submitted". runningHsServer = 0. return. } } //Trim if(name.Length > maxNameCharacters){ runningHsServer = 0. status = "Name Too Long". return. } //Scan & Check Name if(blockBadNames && CheckName(name).CompareTo("offensive") == 0){ runningHsServer = 0. status = "Chosen Name Is Offensive". return. } var updating: int = 0. //0 = no we are making a free entry/1 = updating entry var newRegistration: int = 0. //We are doing a new registration if(trackType == TrackingType.TrackProgress){ if(PlayerPrefs.GetFloat("nameRegistered") == 0){ // We are not yet registred newRegistration = 1. status = "Registering User". var finalResult: String = "". var tables: String = "". for(var m: int = 0. m < difficultyModesSet.Length. m++){//Create a list of tables to send if(m < difficultyModesSet.Length -1){ tables += difficultyModesSet[m].databaseName + " ". }else{ tables += difficultyModesSet[m].databaseName. } } var rsFm: WWWForm = new WWWForm(). rsFm.AddField("name",name). rsFm.AddField("tables",tables). rsFm.AddField("hash",GetHash(name)). var rs: WWW = new WWW(registerUserURL,rsFm). yield rs. Debug.Log(rs.text+": "+table.displayName). finalResult = rs.text. if(finalResult.Equals("Already Used")){ runningHsServer = 0. status = "Name Already Used". return. }else if(finalResult.Equals("Registration Complete")){//We Registered Now Update Score PlayerPrefs.SetFloat("nameRegistered",1). PlayerPrefs.SetString("registeredName",name). }else{ runningHsServer = 0. status = finalResult. return. } } updating = 1. //We need to update entry now } //SEND OR UPDATE SCORE status = "Running". //Run Again var hsFm: WWWForm = new WWWForm(). hsFm.AddField("table",table.databaseName). hsFm.AddField("name",name). hsFm.AddField("score",score). hsFm.AddField("updating",updating). hsFm.AddField("hash",GetHash(name)). var hs: WWW = new WWW(sendScoreURL,hsFm). yield hs. Debug.Log(hs.text+": "+table.displayName). //Process Results if(hs.text.Contains("Accepted")){ //Update Score For Anti Spamming PlayerPrefs.SetFloat("sent"+table.playerPrefsName,PlayerPrefs.GetFloat(table.playerPrefsName)). if(newRegistration == 1){ status = "Registered & " + table.displayName +" Score Submitted". }else{ status = "New "+ table.displayName +" Score Submitted". } } //Stop Running runningHsServer = 0. yield new WaitForSeconds(1). //Wait A Second Before Synch SynchTable(). }function SynchTable(){//Update StartCoroutine(GetHighScores(difficultyModes[modeIndex].databaseName,currentScope,maxHighScores)). }function CheckName(usedName: String): String{ //Make sure imput name is clean var names: String[] = badNamesList.text.Split('\n'[0]). for(var n: String in names){ if(usedName.Trim().ToLower().IndexOf(n.Trim().ToLower()) > -1){ return "offensive". } } return "clean". } function GetHash(usedString: String): String{ //Create a Hash to send to server var md5: MD5 = MD5.Create(). var bytes: byte[] = Encoding.ASCII.GetBytes(usedString+secretKey). var hash: byte[] = md5.ComputeHash(bytes). var sb: String = "". for(var i: int = 0. i < hash.Length. i++){ sb += hash[i].ToString("x2"). } return sb. }function Start(){ status = "". runningHsServer = 0. runningTrack = 0. StopAllCoroutines(). //Name Operations if(existingNamePlayerPrefs!= ""){ serverHighScoreName = PlayerPrefs.GetString(existingNamePlayerPrefs). } //Get Base startDifficultyMode = Mathf.Clamp(startDifficultyMode,0,difficultyModes.Length-1). //To avoid runtime errors modeIndex = startDifficultyMode. //Set Initial Settings scoreScopeText = scoreScope.allTimeName. currentScope = "AllTime". //Get Scores SynchTable(). } function OnGUI(){ if(skin)GUI.skin = skin. //Set Base Rect baseRect = new Rect(Screen.width *.5F,Screen.height *.5F,100F,100F). //Update User Score// localScore = PlayerPrefs.GetFloat(difficultyModes[modeIndex].playerPrefsName). //Status Box if(displayOptions.showStatus){ GUI.Box(new Rect(baseRect.x - messageOffsetBox.x,baseRect.y - messageOffsetBox.y, messageOffsetBox.width,messageOffsetBox.height),status). } if(displayOptions.showUserScore){ //Local Score Box GUI.Box(new Rect(baseRect.x - localScoreOffsetRect.x,baseRect.y - localScoreOffsetRect.y,localScoreOffsetRect.width,localScoreOffsetRect.height),"Local "+difficultyModes[modeIndex].displayName+" Score: "+localScore+" "+scoreType). if(trackType == TrackingType.TrackProgress){ if(PlayerPrefs.GetFloat("nameRegistered") == 1){ if(runningTrack == 0){ GUI.Box(new Rect(baseRect.x - serverScoreOffsetRect.x,baseRect.y - serverScoreOffsetRect.y,serverScoreOffsetRect.width,serverScoreOffsetRect.height),"Global "+difficultyModes[modeIndex].displayName+" Score: "+serverScore+" "+scoreType +"\n" + "Global Rank: "+serverRank). }else{ GUI.Box(new Rect(baseRect.x - serverScoreOffsetRect.x,baseRect.y - serverScoreOffsetRect.y, serverScoreOffsetRect.width,serverScoreOffsetRect.height),"Seeking Stats"). } }else{ GUI.Box(new Rect(baseRect.x - serverScoreOffsetRect.x,baseRect.y - serverScoreOffsetRect.y, serverScoreOffsetRect.width,serverScoreOffsetRect.height),"Send Score To Register"). } } } if(displayOptions.showDifficultySwitch){ //Get & Show High Scores if(GUI.Button(new Rect(baseRect.x - getScoresOffsetRect.x,baseRect.y - getScoresOffsetRect.y, getScoresOffsetRect.width,getScoresOffsetRect.height),""+difficultyModes[modeIndex].displayName)){ if(modeIndex < difficultyModes.Length - 1){ modeIndex++. }else{modeIndex = 0. } //Update StartCoroutine(GetHighScores(difficultyModes[modeIndex].databaseName,currentScope,maxHighScores)). // localScore = PlayerPrefs.GetFloat(difficultyModes[modeIndex].playerPrefsName). } } if(displayOptions.showScopeSwitch){ //Set Scope if(GUI.Button(new Rect(baseRect.x - scoreScopeOffsetRect.x,baseRect.y - scoreScopeOffsetRect.y, scoreScopeOffsetRect.width,scoreScopeOffsetRect.height),""+scoreScopeText)){ if(scoreScopeText.Equals(scoreScope.allTimeName)){ scoreScopeText = scoreScope.dailyName. currentScope = "Daily". }else{ scoreScopeText = scoreScope.allTimeName. currentScope = "AllTime". } StartCoroutine(GetHighScores(difficultyModes[modeIndex].databaseName,currentScope,maxHighScores)). } } if(displayOptions.showSendScore){ //Send Scores GUILayout.BeginArea(new Rect(baseRect.x - sendScoresOffsetRect.x,baseRect.y - sendScoresOffsetRect.y, sendScoresOffsetRect.width,sendScoresOffsetRect.height)). GUILayout.BeginHorizontal(). if(trackType == TrackingType.TrackProgress && PlayerPrefs.GetFloat("nameRegistered") == 1){ serverHighScoreName = PlayerPrefs.GetString("registeredName"). GUILayout.Box(serverHighScoreName,GUILayout.Width(150),GUILayout.Height(30)). }else{ serverHighScoreName = GUILayout.TextField(serverHighScoreName,GUILayout.Width(150)). } if(GUILayout.Button("Send")){ StartCoroutine(SendHighScores(difficultyModes[modeIndex],serverHighScoreName,localScore,difficultyModes)). } GUILayout.EndHorizontal(). GUILayout.EndArea(). } //Display Scores if(displayOptions.showScores){ GUILayout.BeginArea(new Rect(baseRect.x - scoresListOffsetRect.x,baseRect.y - scoresListOffsetRect.y, scoresListOffsetRect.width,scoresListOffsetRect.height)). scrollView = GUILayout.BeginScrollView(scrollView). for(var x: int = 1. x<serverHighScores.Length. x++){ if(x > maxHighScores){break. } if(serverHighScores[x]!= null){ var score: String[] = serverHighScores[x].Split(':'[0]). //Split the Score From PHP set Up if(score.Length > 1){ GUILayout.BeginHorizontal(). GUILayout.Label(x.ToString()+": "). GUILayout.Space(10). GUILayout.Label(score[0],GUILayout.Width(200),GUILayout.Height(30)). GUILayout.FlexibleSpace(). GUILayout.Label(score[1]+" "+scoreType,GUILayout.Width(150),GUILayout.Height(20)). GUILayout.EndHorizontal(). } }else{ GUILayout.Label(serverHighScores[x] +" "+scoreType,GUILayout.Width(100)). } } GUILayout.EndScrollView(). GUILayout.EndArea(). } //Editor Tools if(developmentMode == DeveloperType.debug){ EditorTools(). }} function EditorTools(){ GUILayout.BeginHorizontal(). GUILayout.Label("",GUILayout.Width(Screen.width - 230)). GUILayout.FlexibleSpace(). GUILayout.BeginVertical(). GUILayout.Space(100). GUILayout.Box("CREATE",GUILayout.Width(200)). if(GUILayout.Button("Create Tables",GUILayout.Width(200))){ StartCoroutine(DatabaseTools(0,difficultyModes)). } GUILayout.Box("MANAGE",GUILayout.Width(200)). if(GUILayout.Button("Reset All "+difficultyModes[modeIndex].displayName,GUILayout.Width(200))){ StartCoroutine(ResetHighScores(difficultyModes[modeIndex].databaseName,"Reset")). } if(GUILayout.Button("Delete All "+difficultyModes[modeIndex].displayName,GUILayout.Width(200))){ StartCoroutine(ResetHighScores(difficultyModes[modeIndex].databaseName,"Delete")). } if(GUILayout.Button("Delete Below Score: " +difficultyModes[modeIndex].displayName,GUILayout.Width(200))){ StartCoroutine(DatabaseTools(1,difficultyModes[modeIndex].databaseName)). } GUILayout.BeginHorizontal(). GUILayout.Box(""+deleteScore,GUILayout.Width(50)). // deleteScore = Mathf.CeilToInt(GUILayout.HorizontalSlider(deleteScore,1,maxResetScore,GUILayout.Width(150))). GUILayout.EndHorizontal(). // if(GUILayout.Button("Delete Below Date: "+difficultyModes[modeIndex].displayName,GUILayout.Width(200))){ StartCoroutine(DatabaseTools(2,difficultyModes[modeIndex].databaseName)). } GUILayout.BeginHorizontal(). GUILayout.Label(""+year,GUILayout.Width(30)). // year = Mathf.CeilToInt(GUILayout.HorizontalSlider(year,2012,2013,GUILayout.Width(30))). GUILayout.Label(""+month,GUILayout.Width(20)). // month = Mathf.CeilToInt(GUILayout.HorizontalSlider(month,1,12,GUILayout.Width(40))). GUILayout.Label(""+day,GUILayout.Width(20)). // day = Mathf.CeilToInt(GUILayout.HorizontalSlider(day,1,31,GUILayout.Width(40))). GUILayout.EndHorizontal(). GUILayout.Box("TEST DATA",GUILayout.Width(200)). if(GUILayout.Button("Null Registration",GUILayout.Width(200))){ PlayerPrefs.SetFloat("nameRegistered",0). PlayerPrefs.SetString("registeredName",""). } // GUILayout.BeginHorizontal(). GUILayout.Box("Score: "+PlayerPrefs.GetFloat(difficultyModes[modeIndex].playerPrefsName),GUILayout.Width(100)). PlayerPrefs.SetFloat(difficultyModes[modeIndex].playerPrefsName,Mathf.CeilToInt(GUILayout.HorizontalSlider(PlayerPrefs.GetFloat(difficultyModes[modeIndex].playerPrefsName),1,maxResetScore,GUILayout.Width(100)))). GUILayout.EndHorizontal(). // GUILayout.EndVertical(). GUILayout.EndHorizontal(). } a variable publica que manda o numero float gerado e. public var localScore: float = 0.Carregando comentários...