20.09.2016, 14:24
(
Последний раз редактировалось dugi; 06.10.2016 в 09:31.
)
Guys i have a problem that when i set kills or any thing in player stats and relog it didn't load it why ?
Help guys
PHP код:
public OnAccountCheck(playerid)
{
new rows, fields; //a variable that will be used to retrieve rows and fields in the database.
cache_get_data(rows, fields, mysql);//let's get the rows and fields from the database.
if(rows) //if there is row
{
cache_get_field_content(0, "IP", IP[playerid], mysql, 16);
new newIP[16];
GetPlayerIp(playerid, newIP, 16);
IsPlayerRegisterd[playerid] = 1;
if(strlen(IP[playerid]) != 0 && !strcmp(IP[playerid], newIP, true)) //Checks that the MySQL IP has a value and that they are the same.
{
/*GameTextForPlayer(playerid, "Loading Account", 3000, 3);
SetTimerEx("OnAccountLoad", 3000, false, "i", playerid);*/
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,MAX_PLAYER_NAME);
new query[100];
format(query,sizeof(query),"SELECT * FROM `players` WHERE Username = '%s'",name);
mysql_tquery(mysql, query, "OnAccountLoad2", "i", playerid);
}
else
{
(!strlen(IP[playerid]) || strcmp(IP[playerid], newIP, true));
//then
cache_get_field_content(0, "Password", pData[playerid][Password], mysql, 129);
//we will load player's password into pData[playerid][Password] to be used in logging in
pData[playerid][ID] = cache_get_field_content_int(0, "ID"); //now let's load player's ID into pData[playerid][ID] so we can use it later
printf("%s", pData[playerid][Password]); //OPTIONAL: Just for debugging. If it didn't show your password, then there must be something wrong while getting player's password
new st4[2016+1000];
ShowPlayerDialog(playerid, dLOGIN, DIALOG_STYLE_INPUT, "Login", "In order to play, you need to login", "Login", "Quit"); //And since we found a result from the database, which means, there is an account; we will show a login dialog
}
}
else //if we didn't find any rows from the database, that means, no accounts were found
{
ShowPlayerDialog(playerid, dREGISTER, DIALOG_STYLE_INPUT, "Register", "In order to play, you need to register.", "Register", "Quit");
//So we show them a dialog register
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new playerName[MAX_PLAYER_NAME], string[56];
GetPlayerName(playerid, playerName, sizeof(playerName));
switch(reason)
{
case 0: format(string, sizeof(string), "%s has left the server. (Ping Timeout)", playerName);
case 1: format(string, sizeof(string), "%s has left the server. (Left/Leave)", playerName);
case 2: format(string, sizeof(string), "%s has left the server. (Kicked/Banned)", playerName);
}
SendClientMessageToAll(0xFF0000F, string);
SavePlayerData(playerid);
return 1;
}
public OnAccountLoad(playerid)
{
new score,string[134];
pData[playerid][Admin] = cache_get_field_content_int(0, "Admin"); //we're getting a field 4 from row 0. And since it's an integer, we use cache_get_row_int
pData[playerid][VIP] = cache_get_field_content_int(0, "VIP"); //Above
pData[playerid][Money] = cache_get_field_content_int(0, "Money");//Above
pData[playerid][Kills] = cache_get_field_content_int(0,"Kills");
pData[playerid][Deaths] = cache_get_field_content_int(0, "Deaths");
score = cache_get_field_content_int(0, "Score");
SetPlayerScore(playerid, score);
GivePlayerMoney(playerid, pData[playerid][Money]);//Let's set their money
//For player's position, set it once they spawn(OnPlayerSpawn)
format(string,sizeof(string),"* Login Successful... Welcome back to XtremeX %s!",GetName(playerid));
SendClientMessage(playerid, 0xFF0000F, string); //tell them that they have successfully logged in
SendClientMessage(playerid,COLOR_YELLOW,"---------------------------------------");
SendClientMessage(playerid,0xFFAA00FF,"Type /cmds or /commands to view our commands");
SendClientMessage(playerid,0xFFAA00FF,"Type /credits to check the server creators");
SendClientMessage(playerid,COLOR_YELLOW,"---------------------------------------");
return 1;
}
public OnAccountLoad2(playerid)
{
new score,string[134];
pData[playerid][Admin] = cache_get_field_content_int(0, "Admin"); //we're getting a field 4 from row 0. And since it's an integer, we use cache_get_row_int
pData[playerid][VIP] = cache_get_field_content_int(0, "VIP"); //Above
pData[playerid][Money] = cache_get_field_content_int(0, "Money");//Above
pData[playerid][Kills] = cache_get_field_content_int(0,"Kills");
pData[playerid][Deaths] = cache_get_field_content_int(0, "Deaths");
score = cache_get_field_content_int(0, "Score");
SetPlayerScore(playerid, score);
GivePlayerMoney(playerid, pData[playerid][Money]);//Let's set their money
//For player's position, set it once they spawn(OnPlayerSpawn)
format(string,sizeof(string),"* Auto-IP Login Successful... Welcome back to XtremeX %s!",GetName(playerid));
SendClientMessage(playerid,0xFF0000F,string);
return 1;
}
public OnAccountRegister(playerid)
{
pData[playerid][ID] = cache_insert_id(); //loads the ID of the player in the variable once they registered.
printf("New account registered. ID: %d", pData[playerid][ID]); //just for debugging.
pData[playerid][Money] = 50000;
GivePlayerMoney(playerid, 50000);
return 1;
}