01.03.2019, 23:12
Estou tentando criar um sistema de registro e login com MySQL, porйm, estou tendo um pequeno problema com salvamento de dados.
Quando eu crio uma conta, me aparece uma janela para colocar minha senha, logo apуs, uma para selecionar a minha origem, e depois o meu sexo.
Quando eu registro, a conta й criada no banco de dados, porйm, por conta da Origem, os dados nгo sгo salvos
Eu removi as linhas na qual selecionaria a origem do personagem, e funcionou
Alguйm sabe como resolver?
Print sem as linhas da origem:
Print com as linhas da origem:
Code:
Quando eu crio uma conta, me aparece uma janela para colocar minha senha, logo apуs, uma para selecionar a minha origem, e depois o meu sexo.
Quando eu registro, a conta й criada no banco de dados, porйm, por conta da Origem, os dados nгo sгo salvos
Eu removi as linhas na qual selecionaria a origem do personagem, e funcionou
Alguйm sabe como resolver?
Print sem as linhas da origem:
Print com as linhas da origem:
Code:
PHP код:
enum playerData {
pID,
pPassword[129],
pSkin,
pGender,
pOrigin[64],
Float: pPos[4]
};
PHP код:
forward OnAccountLoad(playerid);
public OnAccountLoad(playerid)
{
cache_get_value_int(0, "ID", PlayerData[playerid][pID]);
cache_get_value_int(0, "Skin", PlayerData[playerid][pSkin]);
cache_get_value(0, "Origin", PlayerData[playerid][pOrigin]);
cache_get_value_int(0, "Gender", PlayerData[playerid][pGender]);
cache_get_value_float(0, "PosX", PlayerData[playerid][pPos][0]);
cache_get_value_float(0, "PosY", PlayerData[playerid][pPos][1]);
cache_get_value_float(0, "PosZ", PlayerData[playerid][pPos][2]);
cache_get_value_float(0, "PosA", PlayerData[playerid][pPos][3]);
SetSpawnInfo(playerid, NO_TEAM, PlayerData[playerid][pSkin], PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2], PlayerData[playerid][pPos][3], 0, 0, 0, 0, 0, 0);
SpawnPlayer(playerid);
return 1;
}
PHP код:
forward OnAccountRegister(playerid);
public OnAccountRegister(playerid)
{
PlayerData[playerid][pID] = cache_insert_id();
PlayerData[playerid][pPos][0] = 1958.3783;
PlayerData[playerid][pPos][1] = 1343.1572;
PlayerData[playerid][pPos][2] = 15.3746;
PlayerData[playerid][pPos][3] = 270.1425;
Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "Origem", "Para que seja incrementado em sua identidade, precisamos saber sua origem.\n\n{FF6347}Digite abaixo a origem de seu personagem:", "Pronto", "");
return 1;
}
PHP код:
UpdatePlayerData(playerid)
{
new
query[2580];
if (GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
{
GetPlayerPos(playerid, PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2]);
GetPlayerFacingAngle(playerid, PlayerData[playerid][pPos][3]);
}
format(query, sizeof query, "UPDATE `accounts` SET `Gender` = %d, `Origin`= %e",
PlayerData[playerid][pGender], PlayerData[playerid][pOrigin]);
format(query, sizeof query, "%s, `Skin` = %d, `PosX` = %f, `PosY` = %f, `PosZ` = %f, `PosA` = %f WHERE `ID` = %d LIMIT 1",
query, PlayerData[playerid][pSkin], PlayerData[playerid][pPos][0], PlayerData[playerid][pPos][1], PlayerData[playerid][pPos][2], PlayerData[playerid][pPos][3], PlayerData[playerid][pID]);
mysql_tquery(MySQL, query);
return 1;
}
PHP код:
Dialog:RegisterScreen(playerid, response, listitem, inputtext[])
{
if (response)
{
if(strlen(inputtext) < 6) {
SendClientMessageEx(playerid, COLOR_LIGHTRED, "Vocк digitou uma senha invбlida (mнnimo 7 caracteres).");
Dialog_Show(playerid, RegisterScreen, DIALOG_STYLE_PASSWORD, "Californa Roleplay | Registro", "Olб, %s.\nSeja bem vindo ao Califуrnia Roleplay!\n\nInformaзгo: Sua conta ainda nгo estб registrada em nosso servidor, portanto, digite uma senha abaixo para registrar-se:", "Registrar", "Sair", playerName[playerid]);
}
new
query[2580];
WP_Hash(PlayerData[playerid][pPassword], 129, inputtext);
mysql_format(MySQL, query, sizeof(query), "INSERT INTO `accounts` (`Username`, `Password`, `Gender`, `Origin`, `Skin`, `PosX`, `PosY`,`PosZ`, `PosA`) VALUES ('%e', '%s', '0', 'None', '0', '0.0', '0.0', '0.0', '0.0')", playerName[playerid], PlayerData[playerid][pPassword]);
mysql_tquery(MySQL, query, "OnAccountRegister", "i", playerid);
} else {
Kick(playerid);
}
return 1;
}
PHP код:
Dialog:Origin(playerid, response, listitem, inputtext[])
{
if (response)
{
if (isnull(inputtext) || strlen(inputtext) > 32) {
Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "Origem", "Digite abaixo a origem de seu personagem:", "Pronto", "");
}
else for (new i = 0, len = strlen(inputtext); i != len; i ++) {
if ((inputtext[i] >= 'A' && inputtext[i] <= 'Z') || (inputtext[i] >= 'a' && inputtext[i] <= 'z') || (inputtext[i] == ' ') || (inputtext[i] == ',') || (inputtext[i] == '.'))
continue;
else return Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "Origem", "Informaзгo: Apenas letras sгo permitidas na origem.\n\nDigite abaixo a origem de seu personagem:", "Pronto", "");
}
format(PlayerData[playerid][pOrigin], 64, inputtext);
SendClientMessageEx(playerid, COLOR_LIGHTRED, "Sua origem foi definido como: {FFFFFF}%s{FF6347}.", PlayerData[playerid][pOrigin]);
Dialog_Show(playerid, Gender, DIALOG_STYLE_LIST, "Selecione o seu gкnero abaixo:", "Masculino\nFeminino", "Ok", "");
} else {
Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "Origem", "Digite abaixo a origem de seu personagem:", "Pronto", "");
}
return 1;
}