nabilfx 0 Denunciar post Postado Setembro 25, 2015 Posso tirar uma duvida sobre um script java, no Unity aqui no forum? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 25, 2015 Java? Pode sim, vou te transferir para o fórum correto. Compartilhar este post Link para o post Compartilhar em outros sites
nabilfx 0 Denunciar post Postado Setembro 25, 2015 obrigado publico aqui neste link Fórum de Tecnologia não é HelpDesk . tenho este script, so que preciso colocar em em um gameobject para pode regular a policio e o tamanho tmb. criei um gameobject e adiconei Add component script, so que da erro. Teria alguma outra maneira de fazer. #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 = 100;//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;private var localScore : int = 0;private var serverScore : int = 0;private var serverRank : int = 0;private var status : String = ""; //Status of Server Operationsprivate var runningHsServer : int = 0; //Are we doing server side operationsprivate var runningTrack : int = 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 = int.Parse(userData[1]); if(userData[2] != null)serverScore = int.Parse(userData[2]); } else if(hs.text == "Not Found"){ PlayerPrefs.SetInt("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 : int = 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.GetInt("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.GetInt(table.playerPrefsName) <= PlayerPrefs.GetInt("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.GetInt("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.SetInt("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.SetInt("sent"+table.playerPrefsName,PlayerPrefs.GetInt(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.GetInt(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.GetInt("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.GetInt(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.GetInt("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(30)); 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.SetInt("nameRegistered",0); PlayerPrefs.SetString("registeredName",""); } // GUILayout.BeginHorizontal(); GUILayout.Box("Score: "+PlayerPrefs.GetInt(difficultyModes[modeIndex].playerPrefsName),GUILayout.Width(100)); PlayerPrefs.SetInt(difficultyModes[modeIndex].playerPrefsName,Mathf.CeilToInt(GUILayout.HorizontalSlider(PlayerPrefs.GetInt(difficultyModes[modeIndex].playerPrefsName),1,maxResetScore,GUILayout.Width(100)))); GUILayout.EndHorizontal(); // GUILayout.EndVertical(); GUILayout.EndHorizontal();} Compartilhar este post Link para o post Compartilhar em outros sites