27/06/2021, 10:48 PM
(Última modificación: 28/06/2021, 01:13 AM por Meliodas. Edited 1 time in total.)
Tengo un problema y es que el damage y adr se me vuelven números negativos y se me reinician al segundo mapa me explico al jugar el primer mapa este registra bien el damage y el adr, pero al jugar el segundo mapa y al guardar datos y querer ver mis estadisticas el damage y el adr pasa a un numero negativo y se reinicia -0.00 y al cambio de mapa el negativo se quita y queda 0.00
alguien me puede ayudar no se si es la parte del guardado o al cargar los datos
alguien me puede ayudar no se si es la parte del guardado o al cargar los datos
Código:
PlayerLoad(index)
{
new szTemp[100], data[2];
formatex(szTemp, charsmax(szTemp), "SELECT * FROM %s WHERE `%s`='%s'", SQLX_TABLA, COLUMN_AUTHID, g_szPlayerAuthdID[index]);
data[0] = index;
data[1] = get_user_userid(index); // Por si se desconecta y entra otro jugador con el mismo id
SQL_ThreadQuery(g_tuple, "handler_cargar", szTemp, data, 2);
}
public handler_cargar(FailState, Handle:Query, Error[], Errcode, Data[], DataSize)
{
new index = Data[0];
if(index != find_player("k", Data[1]))
{
SQL_FreeHandle(Query);
return;
}
if(fail_query(FailState, Error, Errcode))
{
console_print(index, "Error al registrar");
return;
}
if(SQL_NumResults(Query))
{
g_iPlayerUserID[index] = SQL_ReadResult(Query, 0);
g_OldPlayerData[index][Kills] = SQL_ReadResult(Query, 2);
g_OldPlayerData[index][Deaths] = SQL_ReadResult(Query, 3);
g_OldPlayerData[index][HeadShots] = SQL_ReadResult(Query, 4);
g_OldPlayerData[index][BombPlanteds] = SQL_ReadResult(Query, 5);
g_OldPlayerData[index][BombDefuseds] = SQL_ReadResult(Query, 6);
SQL_ReadResult(Query, 7, Float:g_OldPlayerData[index][Damages]);
g_OldPlayerData[index][Rounds] = SQL_ReadResult(Query, 8);
g_OldPlayerData[index][Pugs] = SQL_ReadResult(Query, 9);
g_OldPlayerData[index][Kills3k] = SQL_ReadResult(Query, 10);
g_OldPlayerData[index][Kills4k] = SQL_ReadResult(Query, 11);
g_OldPlayerData[index][Kills5k] = SQL_ReadResult(Query, 12);
console_print(index, "Datos cargados");
arrayset(g_PlayerData[index], 0, DATA_PLAYERS);
g_iStatus[index] = LOGUEADO;
}
else
{
PlayerRegister(index);
}
SQL_FreeHandle(Query);
}
public PlayerRegister(index)
{
new szTemp[2048], data[1];
formatex(szTemp, charsmax(szTemp), "INSERT INTO %s (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s) VALUES ('%s','0','0','0','0','0','0.0','0','0','0','0','0')",
SQLX_TABLA,
COLUMN_AUTHID,
COLUMN_KILLS,
COLUMN_DEATHS,
COLUMN_HEADSHOTS,
COLUMN_BOMBPLANTEDS,
COLUMN_BOMBDEFUSED,
COLUMN_DAMAGES,
COLUMN_ROUNDS,
COLUMN_PUGS,
COLUMN_KILLS3K,
COLUMN_KILLS4K,
COLUMN_KILLS5K,
g_szPlayerAuthdID[index],
g_szPlayerName[index]);
data[0] = index;
SQL_ThreadQuery(g_tuple, "handler_registrar", szTemp, data, 1);
}
public SaveGlobalPlayerData(index)
{
if(g_iStatus[index] != LOGUEADO || !is_user_connected(index) || is_user_bot(index) || is_user_hltv(index))
{
return;
}
new szTemp[456], data[1];
for (new i = Kills; i < DATA_PLAYERS; i++)
{
g_OldPlayerData[index][i] += g_PlayerData[index][i];
g_PlayerData[index][i] = 0;
}
formatex(szTemp, charsmax(szTemp), "UPDATE %s SET `%s`=^"%i^",`%s`=^"%i^",`%s`=^"%i^",`%s`=^"%i^",`%s`=^"%i^",`%s`=^"%0.02f^",`%s`=^"%i^",`%s`=^"%i^",`%s`=^"%i^",`%s`=^"%i^",`%s`=^"%i^" WHERE %s=%d",
SQLX_TABLA,
COLUMN_KILLS,
g_OldPlayerData[index][Kills],
COLUMN_DEATHS,
g_OldPlayerData[index][Deaths],
COLUMN_HEADSHOTS,
g_OldPlayerData[index][HeadShots],
COLUMN_BOMBPLANTEDS,
g_OldPlayerData[index][BombPlanteds],
COLUMN_BOMBDEFUSED,
g_OldPlayerData[index][BombDefuseds],
COLUMN_DAMAGES,
g_OldPlayerData[index][Damages],
COLUMN_ROUNDS,
g_OldPlayerData[index][Rounds],
COLUMN_PUGS,
g_OldPlayerData[index][Pugs],
COLUMN_KILLS3K,
g_OldPlayerData[index][Kills3k],
COLUMN_KILLS4K,
g_OldPlayerData[index][Kills4k],
COLUMN_KILLS5K,
g_OldPlayerData[index][Kills5k],
COLUMN_USERID,
g_iPlayerUserID[index]);
data[0] = index;
SQL_ThreadQuery(g_tuple, "handler_actualizar", szTemp, data, 1);
}
public handler_actualizar(FailState, Handle:Query, Error[], Errcode, data[], DataSize)
{
new id = data[0];
if(fail_query(FailState, Error, Errcode))
{
console_print(id, "Error al registrar");
return;
}
SQL_FreeHandle(Query);
if(!is_user_connected(id))
{
return;
}
console_print(id, "Datos Actualizados");
}
Pawn Básico no critiquen xD