Jump to content
  • 0

Problema Spawn Cand Dau Login/register


Question

Posted (edited)

Problemă întâlnită (descriere):Pai cand intru pe server si dau login sau register imi da spawn adica nici sa aleg skin-u nu pot | Adica dialog-ul nu dispare si sa aleg skin-ul si dupa sa dau spawn

Ero(area / rile) / warning-(ul / urile):~~~~
Liniile de cod / sursa / script-ul:







public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
     if(dialogid == 1)
     {
     if(response == 1)
     {
          Limba[playerid] = 0;
     }
     else if(response == 0)
     {
          Limba[playerid] = 1;
     }
     }
	switch(dialogid)
	{
		case THREAD_DIALOG_REGISTER:
		{
		    if(!response)
		        return SetTimerEx("KickRegister",500,false,"i",playerid);

			if(response)
			{
				new string[256];

				gQuery[0] = EOS;
				format(gQuery, 256, ""W"Nu ai introdus nici o parola!n"W"Te rugam introdu parola cu care vrei sa te inregistrezi!");
				if(!strlen(inputtext)) return SPD(playerid,THREAD_DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,""GR"Inregistrare",gQuery,"Register","Kick");
				format(string, sizeof(string),"INSERT INTO `Users`(Name,Password,Kills,Deaths,Money) VALUES('%s','%s','0','0','0')",GetName(playerid),inputtext);
				mysql_function_query(1,string,false,"","");

				format(gQuery, 256,""W"Bine ai venit inapoi, "LB"%s!nPoti sa te loghezi.",GetName(playerid));
			    SPD(playerid,THREAD_DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""GR"Logare",gQuery,"Login","Cancel");
			}
		}
		case THREAD_DIALOG_LOGIN:
		{
		    if(!response)
		        return SetTimerEx("KickRegister",500,false,"i",playerid);
			if(response)
			{
			    gQuery[0] = EOS;
				new q_str[256];

		        format(q_str,sizeof(q_str),"SELECT `Name` FROM `Users` WHERE `Name` = '%s' AND `Password` = '%s'", GetName(playerid),inputtext);
				mysql_function_query(1,q_str,true,"Query_LoadP_DATA","is",playerid,GetName(playerid));

				Logged[playerid] = true;

				SpawnPlayer(playerid);
			}
		}
	}
	return 1;
}

//==============================================================================
// Server Function | Stock
//==============================================================================
Function:: Query_LoadP_DATA(playerid,q_acc[])
{
    new q_rows,
		q_fields,
		q_str[150];

    cache_get_data(q_rows,q_fields);

    if(!q_rows)
    {
        new str[300];
	 	format(str,sizeof(str),""W"Hey "LB"%s !nAi introdus parola gresitanTe rugam rescrieti parola mai jos pentru a te loga .",GetName(playerid));
 		SPD(playerid,THREAD_DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""GR"Login",str,"Login","exit");
    }
    else
    {
        format(q_str, sizeof(q_str),"SELECT * FROM `Users` WHERE Name = '%s'",q_acc);
        mysql_function_query(1, q_str,true,"OnPlayerCheckedLogin","ds",playerid,q_acc);
    }

    return 1;
}
Function:: OnPlayerCheckedLogin(playerid)
{
	P_DATA[playerid][ID] = cache_get_field_content_int(0, "ID");
	P_DATA[playerid][pKills] = cache_get_field_content_int(0, "Kills");
	P_DATA[playerid][pDeaths] = cache_get_field_content_int(0, "Deaths");
	P_DATA[playerid][pMoney] = cache_get_field_content_int(0, "Money");
	return 1;
}
Function:: AccountLoad(playerid,q_acc[])
{
    new q_rows,
		q_fields;

    cache_get_data(q_rows,q_fields);
	if(q_rows)
	{
		gQuery[0] = EOS;
   		format(gQuery,256,""W"Bine ai venit inapoi, "LB"%s!nPoti sa te loghezi.",q_acc);
	    SPD(playerid,THREAD_DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,""GR"Logare",gQuery,"Login","Cancel");
	}
	else
	{
	    gQuery[0] = EOS;
    	format(gQuery, 256,""W"Bun Venit, "LB"%s!nPoti sa te inregistrezi!",q_acc);
  		SPD(playerid,THREAD_DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,""GR"Inregistrare",gQuery,"Register","Kick");
	}

	return 1;
}
Function:: SavePlayerData(playerid)
{
	new ks = P_DATA[playerid][pKills],
	    dth = P_DATA[playerid][pDeaths],
	    mn = P_DATA[playerid][pMoney];

	gQuery[0] = EOS;
	format(gQuery, 256,"UPDATE `Users` SET `Kills`='%d',`Deaths`='%d',`Money`='%d'WHERE `Name`='%s'",ks,dth,mn,GetName(playerid));

    mysql_function_query(1,gQuery,false,"","");

	SendClientMessageToAll(-1,""LB"Conturi:"O"Conturile au fost salvate in baza de date.");
	return 1;
}
Function:: DeletePlayerAccount(q_acc[])
{
    new rows, fields;

    cache_get_data(rows, fields);
    if(rows)
	{
	    gQuery[0] = EOS;
        format(gQuery, 256, "DELETE FROM `Users` WHERE `Name` = '%s'", q_acc);
        mysql_function_query(1, gQuery, false, "", "");
	}
	return 1;
}
stock GetName(playerid)
{
	new AlEx[24];
	GetPlayerName(playerid,AlEx,sizeof(AlEx));
	return AlEx;
}
Function:: KickRegister(playerid)
{
	Kick(playerid);
	SCMF(playerid,-1,""SRV"%s ai primit kick!",GetName(playerid));
	return 1;
}

Imagini / Video (optional):~~~
Aţi încercat să rezolvaţi singur?:Pai nu stiu ce are:|

Edited by Gotze

7 answers to this question

Recommended Posts

Posted

change line :

     if(dialogid == 1)
     {
     if(response == 1)
     {
          Limba[playerid] = 0;
     }
     else if(response == 0)
     {
          Limba[playerid] = 1;
     }
     }

with

#define limba_sw 1000 // place after #include <your functions>

    if(dialogid == limba_sw)
    {
		if(response)
		{
			Limba[playerid] = 0;
		}
		else
		{
			Limba[playerid] = 0;
		}
    }

"Mulţi programatori buni fac programare nu pentru că se aşteaptă să câştige bani sau să fie lăudaţi de public, ci pentru că e amuzant să programezi." - Linus Torvalds

Posted (edited)

Try again :)

#define D_Login 1
#define D_Register 2
static Name[MAX_PLAYERS][32];
new rows, fields;
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case D_Login:
{
if(response)
{
new query[124];
if(!strcmp(inputtext, P_DATA[playerid][Pass], true))
{
mysql_format(sql, query, sizeof(query), "SELECT * FROM `Users` WHERE `Name`='%e'", Name[playerid]);
                    mysql_tquery(sql, query, "OnAccountLoad", "i", playerid);
SpawnPlayer(playerid);
                    SendClientMessage(playerid, -1, "Welcome back. You have been logged.");
}
else
{
new str[256];
format(str, sizeof(str), "{D12900}Wrong password, enter the password again more carefully !");
ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_PASSWORD, "SERVER: Login", str, "Login", "Quit"); 
}
}else return Kick(playerid);
}
case D_Register:
{
if(response)
{
new query[500];
if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_PASSWORD, "SERVER: Register", "You have insert a short password, plase enter a long password.", "Register", "Quit");
strcat(query, "INSERT INTO `Users`(Name,Password,Kills,Deaths,Money) VALUES('%e','%s','0','0','0')");
mysql_format(sql, query, sizeof(query), query, Name[playerid], inputtext);
mysql_tquery(sql, query, "OnAccountRegister", "i", playerid);
SpawnPlayer(playerid);
} else return Kick(playerid);
} 
}
return 1;
}
 
public OnAccountRegister()
{
P_DATA[playerid][gID] = cache_insert_id();
return 1;
}
 
public OnAccountLoad()
{
P_DATA[playerid][ID] = cache_get_field_content_int(0, "ID");
P_DATA[playerid][pKills] = cache_get_field_content_int(0, "Kills");
P_DATA[playerid][pDeaths] = cache_get_field_content_int(0, "Deaths");
P_DATA[playerid][pMoney] = cache_get_field_content_int(0, "Money");
return 1;
}
 
public  OnAccountCheck(playerid)
{
cache_get_data(rows, fields, 1);
if(rows)
{
        new str[256];
        cache_get_field_content(0, "Password", P_DATA[playerid][Pass], 1, 129);
        P_DATA[playerid][ID] = cache_get_field_content_int(0, "ID");
        format(str, 256, "Welcome back %snPlease enter your password to balow to login", Name[playerid]);
        ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_PASSWORD, "WOG: Login", str, "Login", "Quit");
}
else return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_PASSWORD, "WOG: Register", "Welcome.nIn order to play, you need to register.", "Register", "Quit");
return 1;
}
 
Iar la OnPlayerConnect:
mysql_format(sql, query, sizeof(query),"SELECT `Password`, `ID` FROM `Users` WHERE `Name`='%e' LIMIT 1", Name[playerid]);
mysql_tquery(sql, query, "OnAccountCheck", "i", playerid);
Edited by sRk7

"Mulţi programatori buni fac programare nu pentru că se aşteaptă să câştige bani sau să fie lăudaţi de public, ci pentru că e amuzant să programezi." - Linus Torvalds

Posted

 

Try again :)



#define D_Login 1
#define D_Register 2
static Name[MAX_PLAYERS][32];
new rows, fields;
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case D_Login:
{
if(response)
{
new query[124];
if(!strcmp(inputtext, P_DATA[playerid][Pass], true))
{
mysql_format(sql, query, sizeof(query), "SELECT * FROM `Users` WHERE `Name`='%e'", Name[playerid]);
                    mysql_tquery(sql, query, "OnAccountLoad", "i", playerid);
SpawnPlayer(playerid);
                    SendClientMessage(playerid, -1, "Welcome back. You have been logged.");
}
else
{
new str[256];
format(str, sizeof(str), "{D12900}Wrong password, enter the password again more carefully !");
ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_PASSWORD, "SERVER: Login", str, "Login", "Quit"); 
}
}else return Kick(playerid);
}
case D_Register:
{
if(response)
{
new query[500];
if(strlen(inputtext) < 6) return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_PASSWORD, "SERVER: Register", "You have insert a short password, plase enter a long password.", "Register", "Quit");
strcat(query, "INSERT INTO `Users`(Name,Password,Kills,Deaths,Money) VALUES('%e','%s','0','0','0')");
mysql_format(sql, query, sizeof(query), query, Name[playerid], inputtext);
mysql_tquery(sql, query, "OnAccountRegister", "i", playerid);
SpawnPlayer(playerid);
} else return Kick(playerid);
} 
}
return 1;
}
 
public OnAccountRegister()
{
P_DATA[playerid][gID] = cache_insert_id();
return 1;
}
 
public OnAccountLoad()
{
P_DATA[playerid][ID] = cache_get_field_content_int(0, "ID");
P_DATA[playerid][pKills] = cache_get_field_content_int(0, "Kills");
P_DATA[playerid][pDeaths] = cache_get_field_content_int(0, "Deaths");
P_DATA[playerid][pMoney] = cache_get_field_content_int(0, "Money");
return 1;
}
 
public  OnAccountCheck(playerid)
{
cache_get_data(rows, fields, 1);
if(rows)
{
        new str[256];
        cache_get_field_content(0, "Password", P_DATA[playerid][Pass], 1, 129);
        P_DATA[playerid][ID] = cache_get_field_content_int(0, "ID");
        format(str, 256, "Welcome back %snPlease enter your password to balow to login", Name[playerid]);
        ShowPlayerDialog(playerid, D_Login, DIALOG_STYLE_PASSWORD, "WOG: Login", str, "Login", "Quit");
}
else return ShowPlayerDialog(playerid, D_Register, DIALOG_STYLE_PASSWORD, "WOG: Register", "Welcome.nIn order to play, you need to register.", "Register", "Quit");
return 1;
}
 
Iar la OnPlayerConnect:


mysql_format(sql, query, sizeof(query),"SELECT `Password`, `ID` FROM `Users` WHERE `Name`='%e' LIMIT 1", Name[playerid]);
mysql_tquery(sql, query, "OnAccountCheck", "i", playerid);

 

La fel ...........

Posted

Ce versiune mysql folosesti ?

Ce phpmyadmin ai ?

Ce plugin mysql pe samp ai ?

"Mulţi programatori buni fac programare nu pentru că se aşteaptă să câştige bani sau să fie lăudaţi de public, ci pentru că e amuzant să programezi." - Linus Torvalds

Posted

Ce versiune mysql folosesti ?

Ce phpmyadmin ai ?

Ce plugin mysql pe samp ai ?

Ce treaba are asta cu ce problema am eu ? mysql r20 daca ai tu unu in care sa nu imi dea error Kerner32.dll e bine.

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.