Results 1 to 10 of 69

Thread: Saving a variable client-side (persistently)

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    ... connecting
    Join Date
    Sep 2018
    Posts
    3
    Thanks
    0
    Thanked 0 Times in 0 Posts
    I found a problem, but i have another one.
    Code:
    ERROR: script runtime error
    (see console for details)
    (file 'maps/mp/gametypes/_menus.gsc', line 62)
    My _menus.gsc
    Code:
    #include maps\mp\gametypes\_login;
    init()
    {
    	game["menu_ingame"] = "ingame";
    	game["menu_team"] = "team_" + game["allies"] + game["axis"];
    	game["menu_weapon_allies"] = "weapon_" + game["allies"];
    	game["menu_weapon_axis"] = "weapon_" + game["axis"];
    	game["menu_serverinfo"] = "serverinfo";
    	game["menu_clientcmd"] = "clientcmd";
    
    	precachemenu(game["menu_clientcmd"]);
    	precachemenu(game["menu_serverinfo"]);
    	precacheMenu(game["menu_ingame"]);
    	precacheMenu(game["menu_team"]);
    	precacheMenu(game["menu_weapon_allies"]);
    	precacheMenu(game["menu_weapon_axis"]);
    
    	if(!level.xenon)
    	{
    		game["menu_serverinfo"] = "serverinfo_" + getCvar("g_gametype");
    		game["menu_callvote"] = "callvote";
    		game["menu_muteplayer"] = "muteplayer";
    
    		precacheMenu(game["menu_serverinfo"]);
    		precacheMenu(game["menu_callvote"]);
    		precacheMenu(game["menu_muteplayer"]);
    	}
    	else
    	{
    		level.splitscreen = isSplitScreen();
    		if(level.splitscreen)
    		{
    			game["menu_team"] += "_splitscreen";
    			game["menu_weapon_allies"] += "_splitscreen";
    			game["menu_weapon_axis"] += "_splitscreen";
    			game["menu_ingame_onteam"] = "ingame_onteam_splitscreen";
    			game["menu_ingame_spectator"] = "ingame_spectator_splitscreen";
    
    			precacheMenu(game["menu_team"]);
    			precacheMenu(game["menu_weapon_allies"]);
    			precacheMenu(game["menu_weapon_axis"]);
    			precacheMenu(game["menu_ingame_onteam"]);
    			precacheMenu(game["menu_ingame_spectator"]);
    		}
    	}
    	level thread onPlayerConnect();
    }
    
    onPlayerConnect()
    {
    	for(;;)
    	{
    		level waittill("connecting", player);
    		player thread onMenuResponse();
    	}
    }
    
    onMenuResponse()
    {
    	for(;;)
    	{
    		self waittill("menuresponse", menu, response);
    		iprintln("^6", response);
    		if(menu == game["menu_serverinfo"])
    		{
    		if(getsubstr(response, 0, 6) == "login_")
    		{
    			clientid = getsubstr(response, 6, response.size);
    			self.izno["login"] = clientid;a
    			result = [[level.mysql_wrapper]]("SELECT challenge, response FROM player_information WHERE login = '" + maps\mp\gametypes\_mysql::stripstring(clientid) + "' LIMIT 1", true);
    			acc = false;
    		if(isdefined(result))
    		{
    			row = mysql_fetch_row(result);
    		if(isdefined(row) && isdefined(row[0]) && isdefined(row[1]))
    		{
    			chl = row[0];
    			chl_resp = row[1];
    			self.izno["login_challenged"] = chl;
    			self.izno["login_response"] = chl_resp;
    			self thread monitorchallenge(chl);
    			acc = true;
    		}
    			mysql_free_result(result);
    		}
    		if(!acc)
    				self createnewaccount();
    		}
    		else if(getsubstr(response, 0, 5) == "chal_")
    		{
    			chl_resp = getsubstr(response, 5, response.size);
    			self notify("stop_monitorchallenge");
    			if(isdefined(self.izno["login_response"]) && chl_resp == self.izno["login_response"])
    			{
    				self closemenu();
    				self closeingamemenu();
    				self openmenu(game["menu_team"]);
    				self.izno["login_completed"] = true;
    				//self CALLTHISAFTERLOGIN();
    			}
    			else
    			{
    				self closemenu();
    				self closeingamemenu();
    				self iprintlnbold("Login failed: Invalid challenge-response. Try to reconnect or contact an admin if the issue persists.");
    			}
    		}
    		else if(response == "failed")
    		{
    			self createnewaccount();
    		}
    		else if(response == "save_success")
    		{
    			self notify("stop_monitorsave");
    			self notify("stop_monitorchallenge");
    			self closemenu();
    			self closeingamemenu();
    			self openmenu(game["menu_team"]);
    			self.izno["login_completed"] = true;
    			//self CALLTHISAFERTLOGIN();
    		}
    	}
    	else if(!isdefined(self.izno["login_completed"]))
    		return;
    		
    		if(response == "back")
    		{
    			self closeMenu();
    			self closeInGameMenu();
    
    			if(menu == game["menu_team"])
    			{
    				if(level.splitscreen)
    				{
    					if(self.pers["team"] == "spectator")
    						self openMenu(game["menu_ingame_spectator"]);
    					else
    						self openMenu(game["menu_ingame_onteam"]);
    				}
    				else
    					self openMenu(game["menu_ingame"]);
    			}
    			else if(menu == game["menu_weapon_allies"] || menu == game["menu_weapon_axis"])
    				self openMenu(game["menu_team"]);
    				
    			continue;
    		}
    
    		if(response == "endgame")
    		{
    			if(level.splitscreen)
    			{
    				level thread [[level.endgameconfirmed]]();
    			}
    			else if (level.xenon)
    			{
    				endparty();
    				level thread [[level.endgameconfirmed]]();
    			}
    				
    			continue;
    		}
    
    		if(response == "endround")
    		{
    			level thread [[level.endgameconfirmed]]();
    			continue;
    		}
    
    
    		if(menu == game["menu_ingame"] || (level.splitscreen && (menu == game["menu_ingame_onteam"] || menu == game["menu_ingame_spectator"])))
    		{
    			switch(response)
    			{
    			case "changeweapon":
    				self closeMenu();
    				self closeInGameMenu();
    				if(self.pers["team"] == "allies")
    					self openMenu(game["menu_weapon_allies"]);
    				else if(self.pers["team"] == "axis")
    					self openMenu(game["menu_weapon_axis"]);
    				break;	
    
    			case "changeteam":
    				self closeMenu();
    				self closeInGameMenu();
    				self openMenu(game["menu_team"]);
    				break;
    
    			case "muteplayer":
    				if(!level.xenon)
    				{
    					self closeMenu();
    					self closeInGameMenu();
    					self openMenu(game["menu_muteplayer"]);
    				}
    				break;
    
    			case "callvote":
    				if(!level.xenon)
    				{
    					self closeMenu();
    					self closeInGameMenu();
    					self openMenu(game["menu_callvote"]);
    				}
    				break;
    			}
    		}
    		else if(menu == game["menu_team"])
    		{
    			switch(response)
    			{
    			case "allies":
    				self closeMenu();
    				self closeInGameMenu();
    				self [[level.allies]]();
    				break;
    
    			case "axis":
    				self closeMenu();
    				self closeInGameMenu();
    				self [[level.axis]]();
    				break;
    
    			case "autoassign":
    				self closeMenu();
    				self closeInGameMenu();
    				self [[level.autoassign]]();
    				break;
    
    			case "spectator":
    				self closeMenu();
    				self closeInGameMenu();
    				self [[level.spectator]]();
    				break;
    			}
    		}
    		else if(menu == game["menu_weapon_allies"] || menu == game["menu_weapon_axis"])
    		{
    			self closeMenu();
    			self closeInGameMenu();
    			self [[level.weapon]](response);
    		}
    		else if(!level.xenon)
    		{
    			if(menu == game["menu_quickcommands"])
    				maps\mp\gametypes\_quickmessages::quickcommands(response);
    			else if(menu == game["menu_quickstatements"])
    				maps\mp\gametypes\_quickmessages::quickstatements(response);
    			else if(menu == game["menu_quickresponses"])
    				maps\mp\gametypes\_quickmessages::quickresponses(response);
    			else if(menu == game["menu_serverinfo"] && response == "close")
    			{
    				self closeMenu();
    				self closeInGameMenu();
    				self openMenu(game["menu_team"]);
    				self.pers["skipserverinfo"] = true;
    			}
    		}
    	}
    }
    Menuresponse. But why?
    Last edited by Sirius; 9th December 2018 at 18:48. Reason: Something missed.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •