MySQL setando errado -
s4kuL - 03.01.2015
Meu sistema de login/registro nгo estб definindo as coisas corretamente, quando eu defino na no phpmyadmin o level de admin de um jogador para 2 por exemplo, ele ganha ao invйs de 2 kills, 5 mortes, sempre da uns erros maroto..
pawn Код:
CarregarConta(playerid)
{
new arquivo[150],result[150];
format(arquivo,sizeof(arquivo),"SELECT * FROM `contas` WHERE `Username` = '%s'",nome(playerid));
mysql_query(Mysql, arquivo);
mysql_store_result();
if(mysql_fetch_row(result))
{
sscanf
(
result, "p<|>s[25]s[100]s[16]iiiiiiiis[10]",
nome(playerid),
PlayerInfo[playerid][Password],
PlayerInfo[playerid][PIP],
PlayerInfo[playerid][Admin],
PlayerInfo[playerid][Level],
PlayerInfo[playerid][Kills],
PlayerInfo[playerid][Deaths],
PlayerInfo[playerid][MutedTime],
PlayerInfo[playerid][WeaponSet],
PlayerInfo[playerid][Banned],
PlayerInfo[playerid][idgang],
PlayerInfo[playerid][Lider]
);
}
mysql_free_result();
SetPlayerScore(playerid,PlayerInfo[playerid][Level]);
return 1;
}
if(dialogid == D_Register)
{
new str[500];
if(response)
{
if(strlen(inputtext) < 4 || strlen(inputtext) > 16)
{
SendClientMessage(playerid, Vermelho, "A senha deve conter de 4-16 caracteres.");
return ShowPlayerDialog(playerid,D_Register,DIALOG_STYLE_PASSWORD,"Registro","Digita uma senha para se registrar","Registrar","Sair");
}
new ip[16];
GetPlayerIp(playerid,ip,sizeof(ip));
format(str, sizeof(str),"INSERT INTO `contas` (Username,Password,Ip,Admin,Level,Kills,Deaths,MutedTime,WeaponSet,Banned,Gangue_Id,Lider) VALUES ('%s','%s','%s','0','0','0','0','0','0','0','-1','false')",nome(playerid),inputtext,ip);
mysql_query(Mysql, str);
PlayerInfo[playerid][Logged] = 1;
ShowRules(playerid);
}
else
{
SendClientMessage(playerid,Vermelho,"vocк foi kickado por nгo se registrar.");
Kick(playerid);
}
}
enum PLAYER_INFO // Salvamento
{
//Dados Pessoais
Logged,
Password,
Admin,
Level,
Kills,
Deaths,
MutedTime,
WeaponSet,
Banned,
idgang,
bool:Lider,
PIP[16],
//Nгo Salva
Float:P_ARMOUR,
Float:P_HEALTH,
P_SYNCALLOWED,
P_INSYNC,
P_SYNC_WEAP[MAX_WEAPON_SLOT],
P_SYNC_AMMO[MAX_WEAPON_SLOT],
//Missхes
M_1KILL,
M_10KILLS,
M_100KILLS,
M_1000KILLS,
M_1DEATH,
M_10DEATHS,
M_100DEATHS,
M_1000DEATHS,
M_HEADSHOT,
M_DOUBLEKILL,
M_TRIPEKILL
}
Re: MySQL setando errado -
n0minal - 03.01.2015
result, "p<|>s[
25]
s[100]s[16]iiiiiiiis[10]",
Enum:
precisa ser: 24
Password precisa ser Password[100]
Re: MySQL setando errado -
s4kuL - 03.01.2015
Nгo houve um resulta posisitvo.
Dei uma atualizada no code, mas sempre que defino algum valor pelo phpmyadmin, eu chego no servidor setб tudo o valor 0.
Vou deixar aqui todo o sistema.
pawn Код:
enum PLAYER_INFO // Salvamento
{
//Dados Pessoais
Logged,
Password[100],
Admin,
Level,
Kills,
Deaths,
MutedTime,
WeaponSet,
Banned,
idgang,
bool:Lider[10],
PIP[16],
//Nгo Salva
Float:P_ARMOUR,
Float:P_HEALTH,
P_SYNCALLOWED,
P_INSYNC,
P_SYNC_WEAP[MAX_WEAPON_SLOT],
P_SYNC_AMMO[MAX_WEAPON_SLOT],
//Missхes
M_1KILL,
M_10KILLS,
M_100KILLS,
M_1000KILLS,
M_1DEATH,
M_10DEATHS,
M_100DEATHS,
M_1000DEATHS,
M_HEADSHOT,
M_DOUBLEKILL,
M_TRIPEKILL
}
SalvarPlayer(playerid)
{
new arquivo[170];
format(arquivo,sizeof(arquivo),"UPDATE `contas` SET Admin = '%d', Level = '%d', Kills = '%d', Deaths = '%d', MutedTime = '%d', WeaponSet = '%d', Banned = '%d', Gangue_Id = '%d', Lider = '%s' WHERE `Username` = '%s'",
PlayerInfo[playerid][Admin],
GetPlayerScore(playerid),
PlayerInfo[playerid][Kills],
PlayerInfo[playerid][Deaths],
PlayerInfo[playerid][MutedTime],
PlayerInfo[playerid][WeaponSet],
PlayerInfo[playerid][Banned],
PlayerInfo[playerid][idgang],
PlayerInfo[playerid][Lider],
nome(playerid));
mysql_query(Mysql, arquivo);
mysql_debug(1);
return 1;
}
CarregarPlayer(playerid)
{
new arquivo[150],result[150];
format(arquivo,sizeof(arquivo),"SELECT * FROM `contas` WHERE `Username` = '%s'",nome(playerid));
mysql_query(Mysql, arquivo);
mysql_store_result();
if(mysql_fetch_row(result))
{
sscanf
(
result, "p<|>s[26]s[100]s[16]iiiiiiiis[10]",
nome(playerid),
PlayerInfo[playerid][Password],
PlayerInfo[playerid][PIP],
PlayerInfo[playerid][Admin],
PlayerInfo[playerid][Level],
PlayerInfo[playerid][Kills],
PlayerInfo[playerid][Deaths],
PlayerInfo[playerid][MutedTime],
PlayerInfo[playerid][WeaponSet],
PlayerInfo[playerid][Banned],
PlayerInfo[playerid][idgang],
PlayerInfo[playerid][Lider]
);
mysql_debug(1);
}
mysql_free_result();
SetPlayerScore(playerid,PlayerInfo[playerid][Level]);
return 1;
}
//Dialog de registro
if(dialogid == D_Register)
{
new str[500];
if(response)
{
if(strlen(inputtext) < 4 || strlen(inputtext) > 16)
{
SendClientMessage(playerid, Vermelho, "A senha deve conter de 4-16 caracteres.");
return ShowPlayerDialog(playerid,D_Register,DIALOG_STYLE_PASSWORD,"Registro","Digita uma senha para se registrar","Registrar","Sair");
}
new ip[16];
GetPlayerIp(playerid,ip,sizeof(ip));
format(str, sizeof(str),"INSERT INTO `contas` (Username,Password,Ip,Admin,Level,Kills,Deaths,MutedTime,WeaponSet,Banned,Gangue_Id,Lider) VALUES ('%s','%s','%s','0','0','0','0','0','0','0','-1','false')",nome(playerid),inputtext,ip);
mysql_query(Mysql, str);
PlayerInfo[playerid][Logged] = 1;
ShowRules(playerid);
}
else
{
SendClientMessage(playerid,Vermelho,"vocк foi kickado por nгo se registrar.");
Kick(playerid);
}
}
//Dialog de login
if(dialogid == D_Login)
{
new str[150];
if(response)
{
format(str, sizeof(str),"SELECT * FROM `contas` WHERE `Username` = '%s' AND `Password` = '%s'",nome(playerid),inputtext);
mysql_query(Mysql, str);
mysql_store_result();
if(mysql_num_rows() == 0)
{
PasswordIncorret[playerid] ++;
if(PasswordIncorret[playerid] == 5)
{
SendClientMessage(playerid,Vermelho,"vocк foi kickado por errar a senha 5 vezes.");
Kick(playerid);
return 0;
}
return ShowPlayerDialog(playerid,D_Login,DIALOG_STYLE_PASSWORD,"{FF0000}Senha Incorreta","Digite a senha para conectar-se","Entrar","Sair");
}
else if(mysql_num_rows() > 0)
{
PlayerInfo[playerid][Logged] = 1;
CarregarPlayer(playerid);
ShowRules(playerid);
new level[30];
if(PlayerInfo[playerid][Admin] == 3) { level ="Owner"; }
else if(PlayerInfo[playerid][Admin] == 2) { level = "Administrador"; }
else if(PlayerInfo[playerid][Admin] == 1) { level = "Moderador"; }
else if(PlayerInfo[playerid][Admin] == 0) { level = "Player"; }
format(str,sizeof(str),"Vocк logou como %s",level);
SendClientMessage(playerid,Verde,str);
new ip[16];
GetPlayerIp(playerid,ip,sizeof(ip));
format(str,sizeof(str),"UPDATE `contas` SET Ip = '%s' WHERE `Username` = '%s'",ip,nome(playerid));
mysql_query(Mysql, str);
}
mysql_free_result();
}
else
{
SendClientMessage(playerid,Vermelho,"vocк foi kickado por nao logar-se.");
Kick(playerid);
}
}
Re: MySQL setando errado -
n0minal - 03.01.2015
Vocк criou a db com todos os tipos e tamanhos de campos corretos? Varchar para strings, int para inteiros e float para floats...? Posta sua db que daqui a pouco dou uma olhada quando entrar no pc...
Re: MySQL setando errado -
s4kuL - 03.01.2015
Nomial obrigado pela ajuda, mas jб consegui.. lн aquele tуpico que vocк me mandou pelo ********.