- Home /
Script Errors with C#
I am following this tutorial involving setting up Smart Fox Server Pro with Unity.
Multiplayer with Unity and SmartFox tutorial
Everything is fine until it comes to adding the scripts. I copied and pasted the code in both scripts as it states, and the gui_Login.cs script now has three errors.
- Assets/Scripts/gui_Login.cs(176,13): error CS1520: Class, struct, or interface method must have a return type 
- Assets/Scripts/gui_Login.cs(177,34): error CS1519: Unexpected symbol `(' in class, struct, or interface member declaration 
- Assets/Scripts/gui_Login.cs(179,13): error CS8025: Parsing error 
I copied the code as it states, named the file as it states and I don't understand the problems. I normally script in Javascript, not C# so I don't understand.
Here is the script:
using UnityEngine;
 
               using System; using System.Collections; // for using hash tables using System.Security.Permissions; // for getting the socket policy using SmartFoxClientAPI; // to setup SmartFox connection using SmartFoxClientAPI.Data; // necessary to access the room resource
 public class gui_Login : MonoBehaviour {
  // smartFox variables
 private SmartFoxClient smartFox;
 private string serverIP = "127.0.0.1";
 private int serverPort = 9339;        // default = 9339
 public string zone = "city";
 public bool debug = true;
 // variables used in script
 private string statusMessage = "";
 private string username = "";
 void Awake() {
     Application.runInBackground = true;     // Let the application be running while the window is not active.
     // Create SmartFox connection if not already available
     if ( SmartFox.IsInitialized() ) {
         Debug.Log("SmartFox is already initialized, reusing connection");
         smartFox = SmartFox.Connection;
     } else {
         if( Application.platform == RuntimePlatform.WindowsWebPlayer ) {
           // Only set this for the webplayer, it breaks pc standalone
             // See http://answers.unity3d.com/questions/25122/ for details
             Security.PrefetchSocketPolicy(serverIP, serverPort);
         }
         try {
             Debug.Log("Starting new SmartFoxClient");
             smartFox = new SmartFoxClient(debug);
             smartFox.runInQueueMode = true;
         } catch ( Exception e ) {
             Debug.Log(e.ToString());
         }
     }
     // Register callback delegates, before callling Connect()
     SFSEvent.onConnection += OnConnection;
     SFSEvent.onConnectionLost += OnConnectionLost;
     SFSEvent.onLogin += OnLogin;
     SFSEvent.onRoomListUpdate += OnRoomList;
     SFSEvent.onDebugMessage += OnDebugMessage;
     //SFSEvent.onJoinRoom += OnJoinRoom;        // We will not join a room in this level
     Debug.Log("Attempting to connect to SmartFoxServer");
     smartFox.Connect(serverIP, serverPort);  
 }
 void FixedUpdate() {
     smartFox.ProcessEventQueue();
 }
 void OnGUI() {
     // server IP in bottom left corner
     GUI.Label(new Rect(10, Screen.height-25, 200, 24), "Server: " + serverIP);
     // quit button in bottom right corner
     if ( Application.platform != RuntimePlatform.WindowsWebPlayer ) {         
         if ( GUI.Button(new Rect(Screen.width-150, Screen.height - 50, 100, 24), "Quit") ) {
             smartFox.Disconnect();
             UnregisterSFSSceneCallbacks();
             Application.Quit();
         }
     }
     // Show login fields if connected and reconnect button if disconnect
     if (smartFox.IsConnected()) {
         GUI.Label(new Rect(10, 116, 100, 100), "Username: ");
         username = GUI.TextField(new Rect(100, 116, 200, 20), username, 25);
         if ( GUI.Button(new Rect(100, 166, 100, 24), "Login")  || (Event.current.type == EventType.keyDown && Event.current.character == '\n')) {
             smartFox.Login(zone, username, "");
         }
     } else {
         if ( GUI.Button(new Rect(100, 166, 100, 24), "Reconnect")  || (Event.current.type == EventType.keyDown && Event.current.character == '\n')) {
         Application.LoadLevel("sc_City");
         }
     }
     // Draw box for status messages, if one is given
     // Contains some logic to parse message of multiple lines if necessary
     if (statusMessage.Length > 0)
     {
         int boxLength = 61;       // define length of status box
         int messageLength = statusMessage.Length;   // get length of status message
         string originalMessage = statusMessage;  // copy message in to work string
         string formattedMessage = "";            // define output message string
         int i = 0;
         while (i + boxLength < messageLength)      // iterate and add newline until over length
         {
             formattedMessage = formattedMessage + originalMessage.Substring(i,boxLength) + "\n";
             i = i + boxLength;
         }
         // add last piece of original message
         formattedMessage = formattedMessage + originalMessage.Substring(i,  boxLength - (i + boxLength - messageLength));
         // draw status box with message
         GUI.Box (new Rect (Screen.width - 420,10,400,48), formattedMessage);
     }
 }
 private void UnregisterSFSSceneCallbacks() {
     // This should be called when switching scenes, so callbacks from the backend do not trigger code in this scene
     SFSEvent.onConnection -= OnConnection;
     SFSEvent.onConnectionLost -= OnConnectionLost;
     SFSEvent.onLogin -= OnLogin;
     SFSEvent.onRoomListUpdate -= OnRoomList;
     SFSEvent.onDebugMessage -= OnDebugMessage;
     //SFSEvent.onJoinRoom -= OnJoinRoom;
 }
 void OnConnection(bool success, string error) {
     if ( success ) {
         SmartFox.Connection = smartFox;
         statusMessage = "Connected to SmartFox Server";
         Debug.Log(statusMessage);
     } else {
         statusMessage = "Can't connect! " + error;
         Debug.Log(statusMessage);
     }
 }
 void OnConnectionLost() {
     statusMessage = "Connection lost / no connection to server";
 }
 public void OnDebugMessage(string message) {
     Debug.Log("[SFS DEBUG] " + message);
 }
 public void OnLogin(bool success, string name, string error) {
     if ( success ) {
         statusMessage = "Login for user \"" + name +  "\" successful.";
         // Lets wait for the room list
     } else {
         // Login failed - lets display the error message sent to us
         statusMessage = "Login error: " + error;
     }
 }
 /* // We will not join a room in this level, the NetworkController in the next scene will take care of that void OnJoinRoom(Room room) { Debug.Log("Room " + room.GetName() + " joined successfully"); smartFox.SendPublicMessage(smartFox.myUserName + " has joined"); // We can now move on to the next level UnregisterSFSSceneCallbacks(); Application.LoadLevel("sc_City"); }
  * /
 void OnRoomList(Hashtable roomList) {
     try {
         foreach (int roomId in roomList.Keys)   {         
             Room room = (Room)roomList[roomId];
             if (room.IsPrivate()) {
                 Debug.Log("Room id: " + roomId + " has name: " + room.GetName() + "(private)");
             }
             Debug.Log("Room id: " + roomId + " has name: " + room.GetName());
         }
         // Users always have to be in a room, but we'll do that in the next level
         /*
         if (smartFox.GetActiveRoom() == null) {
             smartFox.JoinRoom("Central Square");
         }*/ 
         UnregisterSFSSceneCallbacks();  /*Error 1 and 2*/
         Application.LoadLevel("sc_City");  
     }
     catch (Exception e) {  /*Error 3*/
         Debug.Log("Room list error: "+e.Message+" "+e.StackTrace);
     }
 }
 } 
The errors listed above are marked in the script at the bottom where it says its occuring.
Any help would be greatly appreciated. Thanks in advance.
Answer by Jesse Anders · Jan 19, 2011 at 09:20 AM
If you look at the syntax highlighting, you should see that you've commented out part of a function, but left the rest of it, resulting in various parsing errors. (It looks like the cause of the incorrect commenting is a ' /' that should be a '/'.)
[Edit: It looks like the error is in the tutorial as well. But, it's pretty easy to see that the comments are messed up, which provides a pretty good hint as to the cause of the errors.]
Your answer
 
 
             Follow this Question
Related Questions
unity 3d - c# scripting problems 1 Answer
CS8025 Parsing error 3 Answers
Jukebox parsing error 2 Answers
Whats wrong with this script? 1 Answer
CS8025 parsing error, can't find, halp ! 0 Answers
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                