03.12.2016, 21:45
Entгo pessoal, to com um probleminha, nгo era pra estar porque jб tentei de tudo e essa budega nгo pega. Enfim, To fazendo um fucking reloginho de UP, atй ai ele ta funcionando de boas, sу que tem um problema, o SQLite geta o valor que ta na DB, ele coloca no textdraw, mas o principal que й salvar ele nгo salva.
Cуdigo do UP:
Caso seja necessбrio o OnPlayerDisconnect:
OBS: eu botei pra salvar no UP para testar, porque no onplayerdisconnect parava o SAMP por exceder os caracteres creio eu, entгo eu fiz um UPDATE abaixo e tambйm nгo resultou, fiz um printf pra ver se os valores estavam certos e estгo certos, eles puxam os valores certos, mas nгo salvam, poderiam me dar essa forcinha ?
Cуdigo do UP:
PHP код:
new XP[MAX_PLAYERS], MinutosU[MAX_PLAYERS], SegundosU[MAX_PLAYERS];
forward Upar(playerid);
public Upar(playerid)
{
new str[256], Query[80], name[ MAX_PLAYER_NAME ];
GetPlayerName(playerid, name, sizeof(name));
SegundosU[playerid] --;
format(str, sizeof(str), "~r~+UP:~w~ %02i:%02i", MinutosU[playerid], SegundosU[playerid]);
PlayerTextDrawSetString(playerid, HUD[9][playerid], str);
if(SegundosU[playerid] <= 0)
{
MinutosU[playerid] --;
SegundosU[playerid] = 60;
if(MinutosU[playerid] <= 0)
{
XP[playerid] ++;
format(str, sizeof(str), "| EXP | Vocк ganhou +1 ponto de Experiкncia [ %i / 6 ]", XP[playerid]);
SendClientMessage(playerid, C_INFO, str);
PlayerPlaySound(playerid,1139,0.0,0.0,0.0), GameTextForPlayer(playerid,"+EXP",5000,6);
if(XP[playerid] == 6)
{
new Nivel = GetPlayerScore(playerid);
SetPlayerScore(playerid,Nivel+1);
XP[playerid] = 0;
format(str, sizeof(str), "| LEVEL UP | Vocк juntou 6/6 pontos de Experiкncia e upou para o Nivel %i", ++Nivel);
SendClientMessage(playerid, C_INFO, str);
PlayerPlaySound(playerid,1149,0.0,0.0,0.0), GameTextForPlayer(playerid,"UP!",5000,6);
MinutosU[playerid] = 9;
return false;
}
MinutosU[playerid] = 9;
format(Query,sizeof(Query),"UPDATE `USERS` SET MINUTOS = '%i', SEGUNDOS = '%i' WHERE `NICK` = '%s' COLLATE NOCASE", MinutosU[playerid], SegundosU[playerid], DB_Escape(name));
db_query(Database, Query);
printf("%i %i", MinutosU[playerid], SegundosU[playerid]);
}
}
return true;
}
PHP код:
public OnPlayerDisconnect(playerid, reason)
{
new Query[ 256 ], name[ MAX_PLAYER_NAME ];
GetPlayerName(playerid, name, sizeof(name));
if(Bit1_Get(p_Logado, playerid) == 1)
{
GetPlayerPos(playerid, X, Y, Z);
GetPlayerHealth(playerid, Vida);
format(Query,sizeof(Query),"UPDATE `USERS` SET LEVEL = '%d', EXP = '%i', DINHEIRO = '%d', ADMINLEVEL = '%d', SKIN = '%d', GASOLINA = '%d', DIESEL = '%d', `POSX` = %f, `POSY` = %f, `POSZ` = %f, `VIDA` = %f WHERE NICK = '%s' COLLATE NOCASE",GetPlayerScore(playerid),XP[playerid],GetPlayerReal[playerid],Bit16_Get(p_Admin, playerid),GetPlayerSkin(playerid), GetPlayerGasolina[playerid], GetPlayerDiesel[playerid],X,Y,Z,Vida,DB_Escape(name));
db_query(Database, Query);
printf("%i %i", MinutosU[playerid], SegundosU[playerid]);
Bit1_Set(p_Logado, playerid, false);
}
return 1;
}