Erro Sistema de Registro e Login MySQL
#1

Tentei fazer um sistema de login pro meu servidor e ta dando nisso:

Script[gamemodes/gamemode.amx]: Run time error 19: "File or function is not found"

Tб copilando tudo certo mas na hora de ligar o servidor da nisso.

Code:
#include <a_samp>
#include <a_mysql>

#define HOSTNAME "localhost"
#define USERNAME "root"
#define DATABASE "samp"
#define PASSWORD ""

new conexao; // Variбvel equivalente a connectionHandle (Nгo sei como explicar bem isto)
new bool:Login[MAX_PLAYERS]; // Variбvel booleana para checar se um jogador fez login ou nгo.

// Estabelecendo conexгo
public OnGameModeInit()
{
    conexao = mysql_connect(HOSTNAME, USERNAME, DATABASE, PASSWORD);

    // Pra checar se foi bem sucedida a conexгo costumo fazer o seguinte:
    if(mysql_ping(conexao) < 1)
        return SendRconCommand("exit");

    // Caso o ping seja menor que 1 o script nгo й inicializado.
    // Caso hajam mйtodos melhores por favor digam.

    // Criando a tabela
    // Nгo usarei cache nem callback pois nгo serб necessбrio obter resultado
    mysql_function_query(conexao, "CREATE TABLE IF NOT EXISTS `users` (`nick` VARCHAR(24) NOT NULL,`senha` VARCHAR(32))", false, "", "");
    return 1;
}

// Finalizando a conexгo quando o script for finalizado
public OnGameModeExit()
{
	mysql_close(conexao);
	return 1;
}

public OnPlayerConnect(playerid)
{
	ResetPlayerMoney(playerid);

	new nick[MAX_PLAYER_NAME],consulta[128];

	GetPlayerName(playerid, nick, MAX_PLAYER_NAME);

	mysql_format(conexao, consulta, "SELECT * FROM `users` WHERE `nick`  = '%e'", nick);

	mysql_function_query(conexao, consulta, true, "ProcurarUsuario", "i", playerid);

	return 1;
}

forward ProcurarUsuario(playerid);
public ProcurarUsuario(playerid)
{
	new
	    linhas,
	    campos;

	cache_get_data(linhas, campos, conexao);

	if(!linhas)
	{
	    ShowPlayerDialog(playerid, 552, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro", "{FFFFFF}Digite uma senha para se registrar.", "Registrar", "");
	}
	else
	{
	    ShowPlayerDialog(playerid, 551, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", "{FFFFFF}Digite sua senha", "Login", "");
	}
	return 1;
}

//
// Fazendo o processamento dos dialogs
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	new
		nick[MAX_PLAYER_NAME],
		consulta[128];

	GetPlayerName(playerid, nick, sizeof(nick));

	switch(dialogid)
	{
	    case 552:
	    {
			if(!response)
			    Kick(playerid);

			else // Botгo registrar
			{
			    if(strlen(inputtext) < 5 || strlen(inputtext) > 32)
			    {
			        SendClientMessage(playerid, -1, "A senha deve conter entre 5 e 32 caracteres noob.");
			        Kick(playerid);
			    }
			    else
			    {
			        // Registrando o jogador

			        // Formatando a consulta
			        mysql_format(conexao, consulta, "INSERT INTO `users` (`nick`,`senha`) VALUES ('%s','%s')", nick, inputtext);

			        // Traduzindo
			        // INSIRA EM users (nick, senha) valores (nick (nick do jogador), inputtext (o que foi digitado))

			        // Executando a consulta
			        mysql_function_query(conexao, consulta, false, "", "");

			        // Nгo precisamos obter nenhum resultado na consulta, logo, nгo precisamos de callback.
			        // Portanto, no parвmetro onde ficou, por exemplo, ProcurarUsuario, na OnPlayerConnect, basta deixar ""
			        // Mesma coisa para os especificadores, que vem logo apуs a callback, nгo usaremos callback, muito menos parametros, logo: ""
					ShowPlayerDialog(playerid, 551, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login", "{FFFFFF}Faзa login", "Login", "Cancelar");
				}
			}
	    }
	    case 551:
	    {
			if(!response)
			    Kick(playerid);

			else // Botгo login
			{
				// Agora vamos ao login
				// Faremos uma consulta para o nick e a senha
				mysql_format(conexao, consulta, "SELECT * FROM `users` WHERE `nick` = '%e' AND `senha` = '%e'", nick, inputtext);

				// Traduzindo
				// SELECIONE TUDO de users AONDE nick = nick(variavel) E senha = inputtext (o que foi digitado)

				// Executando a consulta
				// Precisaremos de uma callback pois precisaremos obter o resultado por cache
				mysql_function_query(conexao, consulta, true, "FazerLogin", "i", playerid);
			}
	    }
	}
	return 1;
}

// Declarando a callback FazerLogin

forward FazerLogin(playerid);
public FazerLogin(playerid)
{
	// Declarando as variбveis para a obtenзгo de linhas e campos da consulta
	new
		linhas,
		campos;

	// Obtendo os dados
	cache_get_data(linhas, campos, conexao);

	// Caso nгo hajam resultados
	if(!linhas)
	{
	    // Senha incorreta
	    SendClientMessage(playerid, -1, "Senha errada noob.");
	    Kick(playerid);
	}
	else // Resultados encontrados, senha correta!
	{
	    Login[playerid] = true;
	    // Outras funзхes de login
	}
	return 1;
}
A minha data base esta assim.



server.cfg:

Code:
echo Executing Server Config...
lanmode 0
rcon_password 123
maxplayers 50
port 7777
hostname SA-MP 0.3 Server
plugins sscanf.dll mysql.dll
gamemode0 gamemodesql
filterscripts 
announce 0
chatlogging 0
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0
logtimeformat [%H:%M:%S]
language English
Server LOG

Code:
----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3.7-R2, ©2005-2015 SA-MP Team

[17:01:22] filterscripts = ""  (string)
[17:01:22] 
[17:01:22] Server Plugins
[17:01:22] --------------
[17:01:22]  Loading plugin: sscanf.dll
[17:01:22] 

[17:01:22]  ===============================

[17:01:22]       sscanf plugin loaded.     

[17:01:22]          Version:  2.8.2        

[17:01:22]    © 2012 Alex "Y_Less" Cole  

[17:01:22]  ===============================

[17:01:22]   Loaded.
[17:01:22]  Loading plugin: mysql.dll
[17:01:22] 

  > MySQL plugin R7 successfully loaded.

[17:01:22]   Loaded.
[17:01:22]  Loaded 2 plugins.

[17:01:22] 
[17:01:22] Filterscripts
[17:01:22] ---------------
[17:01:22]   Loaded 0 filterscripts.

[17:01:22] Script[gamemodes/gamemodesql.amx]: Run time error 20: "Invalid index parameter (bad entry point)"
[17:01:22] Number of vehicle models: 0
MySQL log:

Code:
[17:01:22] >> mysql_connect(localhost, root, samp, ******) on port 3306
[17:01:22] CMySQLHandler::CMySQLHandler() - constructor called.
[17:01:22] CMySQLHandler::CMySQLHandler() - Connecting to "localhost" | DB: "samp" | Username: "root"
[17:01:22] CMySQLHandler::Connect() - Connection was successful.
[17:01:22] CMySQLHandler::Connect() - Auto-Reconnect has been enabled.
[17:01:22] >> mysql_ping( Connection handle: 1 )
[17:01:22] CMySQLHandler::Ping() - Connection is still alive.
[17:01:22] >> mysql_query_callback( Connection handle: 1 )
[17:01:22] Passing query CREATE TABLE IF NOT EXISTS `users` (`nick` VARCHAR(24) NOT NULL,`senha` VARCHAR(32)) | 
[17:01:22] ProcessQueryThread() - Query was successful. (CREATE TABLE IF NOT EXISTS `users` (`nick` VARCHAR(24) NOT NULL,`senha` VARCHAR(32)))
[17:01:22] CMySQLHandler::ProcessQueryThread() - Data is getting passed to ->ProcessTick()
Reply
#2

Mostre o server.log, possivelmente vocк esqueceu de configurar algum plugin ou o mesmo nгo foi corretamente carregado.
Reply
#3

Quote:
Originally Posted by SammyJ
View Post
Mostre o server.log, possivelmente vocк esqueceu de configurar algum plugin ou o mesmo nгo foi corretamente carregado.
Server LOG

Code:
----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3.7-R2, ©2005-2015 SA-MP Team

[17:01:22] filterscripts = ""  (string)
[17:01:22] 
[17:01:22] Server Plugins
[17:01:22] --------------
[17:01:22]  Loading plugin: sscanf.dll
[17:01:22] 

[17:01:22]  ===============================

[17:01:22]       sscanf plugin loaded.     

[17:01:22]          Version:  2.8.2        

[17:01:22]    © 2012 Alex "Y_Less" Cole  

[17:01:22]  ===============================

[17:01:22]   Loaded.
[17:01:22]  Loading plugin: mysql.dll
[17:01:22] 

  > MySQL plugin R7 successfully loaded.

[17:01:22]   Loaded.
[17:01:22]  Loaded 2 plugins.

[17:01:22] 
[17:01:22] Filterscripts
[17:01:22] ---------------
[17:01:22]   Loaded 0 filterscripts.

[17:01:22] Script[gamemodes/gamemodesql.amx]: Run time error 20: "Invalid index parameter (bad entry point)"
[17:01:22] Number of vehicle models: 0
Reply
#4

Quote:
Originally Posted by JacKPanK
View Post
Server LOG

Code:
----------
Loaded log file: "server_log.txt".
----------

SA-MP Dedicated Server
----------------------
v0.3.7-R2, ©2005-2015 SA-MP Team

[17:01:22] filterscripts = ""  (string)
[17:01:22] 
[17:01:22] Server Plugins
[17:01:22] --------------
[17:01:22]  Loading plugin: sscanf.dll
[17:01:22] 

[17:01:22]  ===============================

[17:01:22]       sscanf plugin loaded.     

[17:01:22]          Version:  2.8.2        

[17:01:22]    © 2012 Alex "Y_Less" Cole  

[17:01:22]  ===============================

[17:01:22]   Loaded.
[17:01:22]  Loading plugin: mysql.dll
[17:01:22] 

  > MySQL plugin R7 successfully loaded.

[17:01:22]   Loaded.
[17:01:22]  Loaded 2 plugins.

[17:01:22] 
[17:01:22] Filterscripts
[17:01:22] ---------------
[17:01:22]   Loaded 0 filterscripts.

[17:01:22] Script[gamemodes/gamemodesql.amx]: Run time error 20: "Invalid index parameter (bad entry point)"
[17:01:22] Number of vehicle models: 0
Coloque no gamemode.
PHP Code:

main
()return ; 
Reply
#5

https://sampforum.blast.hk/showthread.php?tid=587209
Reply
#6

Quote:
Originally Posted by Coringa_Vilao
View Post
Tentei usar isso mas aparece o mesmo erro
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)