mysql - ne pokazuje pocetni dialog


Započeo .G.h.0.s.T., Avgust 06, 2018, 22:30:19 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pozdrav.

Krenuo sam raditi mod od pocetka naravno, koristio sam mysql R41-2 register/login tutorial koji sam nasao ovdje na forumu, ali mi ne zeli pokazati pocetni dialog, kada udjem i igru. znaci samo one dvije strelice i tipka spawn.
trazio sam prosle postove o tome, pokusao sve moguce sto sam pronasao, ali i dalje ne radi.
imam mysql plugin u server.cfg. skripta je bez warninga i gresaka.

link straince tutoriala: http://balkan-samp.com/forum/index.php?topic=111286.0

Evo skripte:

//============================================================================//
//							     < Includes >							      //
//============================================================================//
#include <a_samp>
#include <a_mysql>
//============================================================================//
//							      < Defines >						   	      //
//============================================================================//
#define MYSQL_HOST                          "localhost"
#define MYSQL_USER                          "root"
#define MYSQL_PASSWORD                      ""
#define MYSQL_DATABASE                      "xtrucking"

#define D_Register          1
#define D_Login             2

#define GPN                 GetPlayerName
#define SPD                 ShowPlayerDialog
#define DSP                 DIALOG_STYLE_PASSWORD
#define DSI                 DIALOG_STYLE_INPUT

//============================================================================//
static MySQL:Database,pName[MAX_PLAYERS][24];
//============================================================================//
//							    < Enumators >   					   	      //
//============================================================================//
enum e_User_Data
{
	iSQLID,
	iPassword[65],
	iSalt[11],
	iRegDate[65],
	iScore,
	iAdmin
}
//============================================================================//
//							     < Arrays >							   	      //
//============================================================================//
new pInfo[MAX_PLAYERS][e_User_Data];
//============================================================================//
//							     < Main >							   	      //
//============================================================================//
main()
{
	print("\n----------------------------------");
	print(" Blank Gamemode by your name here");
	print("----------------------------------\n");
}
//============================================================================//
//							    < Publics >							   	      //
//============================================================================//
public OnGameModeInit()
{
	Database = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);
	if(mysql_errno(Database) != 0 || Database == MYSQL_INVALID_HANDLE) { print(" "); print("MYSQL | Connection with database has not been established. Shutting down!"); printf("MYSQL | Error code: %d",mysql_errno(Database)); print(" "); print(" "); SendRconCommand("exit"); return true; }
	else { print("MYSQL | Connection with database has been established!"); print(" "); print (" "); }

	mysql_log(ALL);

	mysql_tquery(Database, "CREATE TABLE IF NOT EXISTS `Players` ( `ID` INT NOT NULL AUTO_INCREMENT , `Name` VARCHAR(24) NOT NULL , `Password` VARCHAR(65) NOT NULL , `Salt` VARCHAR(11) NOT NULL , `Regdate` DATETIME NOT NULL , PRIMARY KEY (`ID`))");


	// Don't use these lines if it's a filterscript
	SetGameModeText("Blank Script");
	AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
	return true;
}
//============================================================================//

public OnGameModeExit()
{
	return true;
}
//============================================================================//
public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
	return true;
}
//============================================================================//
public OnPlayerConnect(playerid)
{
	new query[128];
	mysql_format(Database, query, sizeof(query), "SELECT * FROM Players WHERE Name=`%e` LIMIT 1", PlayerName(playerid));
	mysql_tquery(Database, query, "PlayerAccountCheck", "i", playerid);
	return true;
}
//============================================================================//
public OnPlayerDisconnect(playerid)
{
	PlayerAccountUpdate(playerid);
	return true;
}
//============================================================================//
public OnPlayerSpawn(playerid)
{
	return true;
}
//============================================================================//
public OnPlayerDeath(playerid, killerid, reason)
{
	return true;
}
//============================================================================//
public OnVehicleSpawn(vehicleid)
{
	return true;
}
//============================================================================//
public OnVehicleDeath(vehicleid, killerid)
{
	return true;
}
//============================================================================//
public OnPlayerText(playerid, text[])
{
	return true;
}
//============================================================================//
public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/mycommand", cmdtext, true, 10) == 0)
	{
		// Do something here
		return true;
	}
	return 0;
}
//============================================================================//
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return true;
}
//============================================================================//
public OnPlayerExitVehicle(playerid, vehicleid)
{
	return true;
}
//============================================================================//
public OnPlayerStateChange(playerid, newstate, oldstate)
{
	return true;
}
//============================================================================//
public OnPlayerEnterCheckpoint(playerid)
{
	return true;
}
//============================================================================//
public OnPlayerLeaveCheckpoint(playerid)
{
	return true;
}
//============================================================================//
public OnPlayerEnterRaceCheckpoint(playerid)
{
	return true;
}
//============================================================================//
public OnPlayerLeaveRaceCheckpoint(playerid)
{
	return true;
}
//============================================================================//
public OnRconCommand(cmd[])
{
	return true;
}
//============================================================================//
public OnPlayerRequestSpawn(playerid)
{
	return true;
}
//============================================================================//
public OnObjectMoved(objectid)
{
	return true;
}
//============================================================================//
public OnPlayerObjectMoved(playerid, objectid)
{
	return true;
}
//============================================================================//
public OnPlayerPickUpPickup(playerid, pickupid)
{
	return true;
}
//============================================================================//
public OnVehicleMod(playerid, vehicleid, componentid)
{
	return true;
}
//============================================================================//
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return true;
}
//============================================================================//
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return true;
}
//============================================================================//
public OnPlayerSelectedMenuRow(playerid, row)
{
	return true;
}
//============================================================================//
public OnPlayerExitedMenu(playerid)
{
	return true;
}
//============================================================================//
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return true;
}
//============================================================================//
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return true;
}
//============================================================================//
public OnRconLoginAttempt(ip[], password[], success)
{
	return true;
}
//============================================================================//
/*forward PlayerAccountCheck(playerid);
public PlayerAccountCheck(playerid)
{
    if(cache_num_rows() > 0)
    {
        cache_get_value(0,"Lozinka",pInfo[playerid][iPassword],65);
        cache_get_value(0,"Salt",pInfo[playerid][iSalt],11);

		SPD(playerid,D_Login,DSP,"Prijava", "Vas racun je pronadjen, molimo vas upisite lozinku da se prijavite:", "Dalje", "Izlaz");
	}
	else
	{
	    SPD(playerid,D_Register,DSI,"Registracija", "Vas racun nije pronadjen, molimo vas upisite lozinku da se registrujete:", "Dalje", "Izlaz");
	}
	return true;
}*/
//============================================================================//
forward PlayerAccountRegister(playerid);
public PlayerAccountRegister(playerid)
{
    pInfo[playerid][iSQLID] = cache_insert_id(); // uzimamo id igraca koji je unesen u bazu
    SendClientMessage(playerid, -1, "Registrovali ste se na server.");
	return true;
}
//============================================================================//
forward PlayerAccountUpdate(playerid);
public PlayerAccountUpdate(playerid)
{
	new query[128];
	mysql_format(Database, query, sizeof(query), "UPDATE Players SET Score=`%d`, Admin=`%d` WHERE ID=`%d`", pInfo[playerid][iScore], pInfo[playerid][iAdmin], pInfo[playerid][iSQLID]);
	mysql_tquery(Database, query);
	return true;
}
//============================================================================//
forward PlayerAccountLoad(playerid);
public PlayerAccountLoad(playerid)
{
    if(cache_num_rows() > 0)
	{
        cache_get_value_int(0, "ID", pInfo[playerid][iSQLID]);
        cache_get_value(0, "Regdate", pInfo[playerid][iRegDate], 65);

        // ovde ispod dodajete spawn, novac i slicno

        printf("SQLID: %d | Register date: %s", pInfo[playerid][iSQLID], pInfo[playerid][iRegDate]);

        SendClientMessage(playerid, -1, "Dobrodosli nazad.");
    }
	return true;
}
//============================================================================//
public OnPlayerStreamIn(playerid, forplayerid)
{
	return true;
}
//============================================================================//
public OnPlayerStreamOut(playerid, forplayerid)
{
	return true;
}
//============================================================================//
public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return true;
}
//============================================================================//
public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return true;
}
//============================================================================//
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid)
	{
		case D_Register: Dialog_Register(playerid,response,inputtext);
		case D_Login: Dialog_Login(playerid,response,inputtext);
	}
	return true;
}
//============================================================================//
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return true;
}
//============================================================================//
//							    < Dialogs >							   	      //
//============================================================================//
Dialog_Register(playerid,response,inputtext[])
{
    new query[256];
	switch(response)
	{
		case 1:
		{
			if(strlen(inputtext) < 6 || strlen(inputtext) > 20) // ako je lozinka kraca od 6 i duza od 20 karaktera vraca dialog
			{
			    SPD(playerid, D_Register, DIALOG_STYLE_INPUT, "Registracija", "Vas racun nije pronadjen, molimo vas upisite lozinku da se registrujete:", "Dalje", "Izlaz");
			    return true;
			}

			for (new i = 0; i < 10; i++) { pInfo[playerid][iSalt][i] = random(100) + 50; }

			pInfo[playerid][iSalt][10] = 0;
			SHA256_PassHash(inputtext, pInfo[playerid][iSalt], pInfo[playerid][iPassword], 65);

			mysql_format(Database,query,sizeof(query),"INSERT INTO Players SET Name=`%e`, Password=`%e`, Salt=`%e`, Regdate=NOW()", PlayerName(playerid), pInfo[playerid][iPassword], pInfo[playerid][iSalt]);
			mysql_tquery(Database, query, "PlayerAccountRegister", "d", playerid);
		}
		case 0:
		{
		    Kick(playerid);
		    return true;
		}
	}
	return true;
}
//============================================================================//
Dialog_Login(playerid,response,inputtext[])
{
    new buf[65], query[256];
	switch(response)
	{
	    case 1:
	    {
	        SHA256_PassHash(inputtext, pInfo[playerid][iSalt], buf, 65);
	        if(strcmp(buf, pInfo[playerid][iPassword]) == 0)
	        {
				mysql_format(Database, query, sizeof(query), "SELECT * FROM Players WHERE Name = `%e` LIMIT 1", PlayerName(playerid));
	            mysql_tquery(Database, query, "PlayerAccountLoad", "i", playerid);
			}
			else
			{
			    ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_PASSWORD, "Prijava", "Lozinka koju ste uneli nije ispravna, pokusajte ponovo:", "Dalje", "Izlaz");
			}
		}
		case 0:
		{
		    Kick(playerid);
		    return true;
		}
	}
	return true;
}
//============================================================================//
//							     < Stocks >							   	      //
//============================================================================//
stock PlayerName(playerid)
{
	new oyString[24];
	GPN(playerid,pName[playerid],24);
	format(oyString,sizeof(oyString),"%s",pName[playerid]);
	return oyString;
}


Hvala unaprijed.
Poslednja Izmena: Avgust 08, 2018, 13:00:19 POSLE PODNE od Bašovski

Provjeri mysql logs, da li ima ista u mysql error.txt datoteci?
Software Developer

dobivam ovaj error u mysql log dadoteci

[22:54:50] [ERROR] error #1054 while executing query "SELECT * FROM Players WHERE Name=`RoadKing[CRO].` LIMIT 1": Unknown column 'RoadKing[CRO].' in 'where clause'

ovaj query

mysql_format(Database, query, sizeof(query), "SELECT * FROM Players WHERE Name=`%e` LIMIT 1", PlayerName(playerid));


zamjeni ovim

mysql_format(Database, query, sizeof(query), "SELECT * FROM Players WHERE Name='%e' LIMIT 1", PlayerName(playerid));
Software Developer

Jel sam samo ja ili oba kverija izgledaju isto? @Ino42O

Mnogo imaš ti još da jedeš kačamak.
skrr
Moj tutorijali: Bazilion indent warninga
WORK? : Smart Project 1.2 , Leskovacki Detmec, Rodjendanski  server


Penzionisani balkanski samp kripter


Citat: nikisb poslato Avgust 07, 2018, 07:41:59 PRE PODNE
Jel sam samo ja ili oba kverija izgledaju isto? @Ino42O

Samo si ti. Razlija je izgleda u apostrofima kod Name='%e'  .
To cu isprobati dok dodjem s posla.

na telefonu je totalno isto izgledalo, sad na kompu je durgacije xd

Mnogo imaš ti još da jedeš kačamak.
skrr
Moj tutorijali: Bazilion indent warninga
WORK? : Smart Project 1.2 , Leskovacki Detmec, Rodjendanski  server


Penzionisani balkanski samp kripter


Sada sve radi. Hvala puno na pomoci.
Recite mi jos samo molim vas razliku izmedju ` i ' .
Poput ovoga Name=`%e` i Name='%e'

' je za string
` je za query kolone i tablice

`kolona`
'string'

stoga bi bilo

`Name`='%e'
Software Developer