Salvando Dados Mysql -
Caiton - 15.10.2015
Ao reiniciar pelo GMX nгo estб salvando a skin
Somente se o player dб /q
e se ele der /q e salvar tambйm nгo seta na onplayerspawn
pawn Code:
public OnGameModeExit()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Logado{i}==true)
{
SalvarDados(i);
}
}
}
mysql_close(conectDB);
return 1;
}
pawn Code:
public OnPlayerDisconnect(playerid, reason)
{
if(Logado{playerid}==true)
{
SalvarDados(playerid);
}
return 1;
}
pawn Code:
stock SalvarDados(playerid)
{
new query1[256];
format(query1,sizeof(query1),"UPDATE `pinfo` SET `skin` = '%d' WHERE `Nick`= '%s'",GetPlayerSkin(playerid),Nome(playerid));
mysql_function_query(conectDB,query1, false,"","");
}
pawn Code:
Player[playerid][Skin] = cache_get_field_content_int(0, "skin");
SetPlayerSkin(playerid,Player[playerid][Skin]);
Re: Salvando Dados Mysql -
garotin - 15.10.2015
Mostra a array Logado, acho que o erro estб em Logado{playerid}, o certo seria Logado[playerid]
Re: Salvando Dados Mysql -
Bruno13 - 15.10.2015
Quote:
Originally Posted by garotin
Mostra a array Logado, acho que o erro estб em Logado{playerid}, o certo seria Logado[playerid]
|
Char-arrays
https://sampforum.blast.hk/showthread.php?tid=216730
Re: Salvando Dados Mysql -
garotin - 15.10.2015
Quote:
Originally Posted by Bruno13
|
Obrigado, dessa eu nгo sabia...
Re: Salvando Dados Mysql -
Caiton - 15.10.2015
Alguйm ?
Re: Salvando Dados Mysql -
garotin - 15.10.2015
Caiton no OnGameModeExit experimenta usar foreach cujo й mais rapido que o for(), posso estar enganado mas creio que o gmx estб fechando a gm mais rapido que a verificaзгo...
Re: Salvando Dados Mysql -
Caiton - 15.10.2015
Quote:
Originally Posted by garotin
Caiton no OnGameModeExit experimenta usar foreach cujo й mais rapido que o for(), posso estar enganado mas creio que o gmx estб fechando a gm mais rapido que a verificaзгo...
|
pensei a mesma coisa, pois tem vezes que salva e tem vezes que nгo...
Tem como montar pra mim a base de como ficaria usando foreach ?
Re: Salvando Dados Mysql -
zPain - 15.10.2015
Recomendo criar um comando de gmx, em vez de usar o rcon. Coloque pra salvar os dados no comando e crie um timer para executar o rcon command.
Ex:
PHP Code:
CMD:gmx(playerid) {
new i = -1, j = GetPlayerPoolSize();
while(++i <= j) {
if(Logado{i}) {
SalvarDados(i);
}
}
SetTimer("GMX", 2000, 0);
return 1;
}
forward GMX();
public GMX() {
SendRconCommand("exit");
return 1;
}
Re: Salvando Dados Mysql -
Caiton - 15.10.2015
Quote:
Originally Posted by zPain
Recomendo criar um comando de gmx, em vez de usar o rcon. Coloque pra salvar os dados no comando e crie um timer para executar o rcon command.
Ex:
PHP Code:
CMD:gmx(playerid) {
new i = -1, j = GetPlayerPoolSize();
while(++i <= j) {
if(Logado{i}) {
SalvarDados(i);
}
}
SetTimer("GMX", 2000, 0);
return 1;
}
forward GMX();
public GMX() {
SendRconCommand("exit");
return 1;
}
|
show, mas de qualquer forma, e se o servidor cair ? ele vai direto pra ongamemodeexit, e nгo irб salvar os dados... nгo й possнvel deve ter algo que solucione o caso...
Re: Salvando Dados Mysql -
n0minal - 15.10.2015
Quote:
Originally Posted by Caiton
show, mas de qualquer forma, e se o servidor cair ? ele vai direto pra ongamemodeexit, e nгo irб salvar os dados... nгo й possнvel deve ter algo que solucione o caso...
|
Nгo й um mйtodo seguro, podem ocorrer perdas de dados caso o samp-server dк crash, o que eu aconselho й a usar um salvamento no OnPlayerDisconnect e outro atravйs de um timer, a cada 3 minutos os jogadores online sгo salvos por exemplo, й um bom mйtodo pra evitar perdas de dados, ou tambйm use o salvamento em algum evento importante do gamemode, por exemplo, se tal player ganhou uma grande quantia em dinheiro salve os dados em caso de crash no servidor para nгo haver rollback