Burgershot
  • Home
  • Members
  • Team
  • Help
  • Search
  • Register
  • Login
  • Home
  • Members
  • Help
  • Search
Burgershot SA-MP Pawn Scripting [Pawn] Health not saving in SQLite?

 
  • 0 Vote(s) - 0 Average
Pawn Health not saving in SQLite?
CrypticSin
Offline

Burgershot Member
Posts: 24
Threads: 9
Joined: Mar 2021
Reputation: 0
#1
2022-04-14, 12:14 AM (This post was last modified: 2022-04-18, 05:46 PM by CrypticSin.)
Trying to save player health but doesn't seem to be working i'll like to know what im doing wrong?

Created a table in OnGameModeInit:
PHP Code:
db_query(server_database, "CREATE TABLE IF NOT EXISTS `USERS` (`NAME`, `IP`, `REGISTER_DATE`, `PASS`, `SCORE`, `KILLS`, `DEATHS`, `SKIN`, `HEALTH`, `pX`, `pY`, `pZ`, `pA`, `INT`, `WORLD`, `ADMIN`)");; 

Selecting data:
PHP Code:
public OnPlayerLogin(playerid, bool:success)
{
    if(
success)
    {
        new 
query[256], field[24], field2[64];
        
format(query, sizeof(query), "SELECT * FROM `USERS` WHERE `NAME` = '%s' COLLATE NOCASE", DB_Escape(ReturnName(playerid)));
        
database_result = db_query(server_database, query);
        if(
db_num_rows(database_result))
        {
            
db_get_field_assoc(database_result, "ADMIN", field, sizeof(field));
            
PlayerInfo[playerid][pAdmin] = strval(field);

            
db_get_field_assoc(database_result, "SCORE", field, sizeof(field));
            
SetPlayerScore(playerid, strval(field));

            
db_get_field_assoc(database_result, "KILLS", field, sizeof(field));
            
PlayerInfo[playerid][pKills] = strval(field);

            
db_get_field_assoc(database_result, "DEATHS", field, sizeof(field));
            
PlayerInfo[playerid][pDeaths] = strval(field);

            
db_get_field_assoc(database_result, "SKIN", field, sizeof(field));
            
PlayerInfo[playerid][pSkin] = strval(field);

            
db_get_field_assoc(database_result, "REGISTER_DATE", field2, sizeof(field2));
            
PlayerInfo[playerid][pRegister] = field2;

            
db_get_field_assoc(database_result, "HEALTH", field, sizeof(field));
            
PlayerInfo[playerid][pHealth] = floatstr(field);

            
db_get_field_assoc(database_result, "pX", field, sizeof(field));
            
PlayerInfo[playerid][pX] = floatstr(field);

            
db_get_field_assoc(database_result, "pY", field, sizeof(field));
            
PlayerInfo[playerid][pY] = floatstr(field);

            
db_get_field_assoc(database_result, "pZ", field, sizeof(field));
            
PlayerInfo[playerid][pZ] = floatstr(field);

            
db_get_field_assoc(database_result, "pA", field, sizeof(field));
            
PlayerInfo[playerid][pA] = floatstr(field);

            
db_get_field_assoc(database_result, "INT", field, sizeof(field));
            
PlayerInfo[playerid][pInt] = strval(field);

            
db_get_field_assoc(database_result, "WORLD", field, sizeof(field));
            
PlayerInfo[playerid][pWorld] = strval(field);
        } 

Inserting Health Data:
PHP Code:
    
    
new query[400];
    
format(query, sizeof(query), "INSERT INTO `USERS` (`NAME`, `PASS`, `ADMIN`, `IP`, `REGISTER_DATE`, `SCORE`, `KILLS`, `DEATHS`, `SKIN`, `HEALTH`, `pX`, `pY`, `pZ`, `pA`, `INT`, `WORLD`) VALUES ('%s', '%s', %d, '%s', '%s', %d, %d, %d, %d, %f, %f, %f, %f, %f, %d, %d)", DB_Escape(ReturnName(playerid)), password, PLAYER, ip, Date, GetPlayerScore(playerid), PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], GetPlayerSkin(playerid), PlayerInfo[playerid][pHealth],
    
PlayerInfo[playerid][pX],
    
PlayerInfo[playerid][pY],
    
PlayerInfo[playerid][pZ],
    
PlayerInfo[playerid][pA],
    
PlayerInfo[playerid][pInt],
    
PlayerInfo[playerid][pWorld]);
    
database_result = db_query(server_database, query);
    
db_free_result(database_result); 

Updating Data:

PHP Code:
            
stock SaveAccount
(playerid)
{
    new 
query[400], Float:pos[4];
    if(
PlayerInfo[playerid][pLoggedIn] == true)
    {
        
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
        
GetPlayerFacingAngle(playerid, pos[3]);
        
GetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]);

        
format(query, sizeof(query),
        
"UPDATE `USERS` SET `ADMIN` = %d, `SCORE` = %d, `KILLS` = %d, `DEATHS` = %d, `SKIN` = %d, `HEALTH` = %f, `pX` = %f, `pY` = %f, `pZ` = %f, `pA` = %f, `INT` = %d, `WORLD` = %d, `ADMIN` = %d WHERE `NAME` = '%s' COLLATE NOCASE",
        
PlayerInfo[playerid][pAdmin], GetPlayerScore(playerid), PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], GetPlayerSkin(playerid), PlayerInfo[playerid][pHealth], pos[0], pos[1], pos[2], pos[3], GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid), PlayerInfo[playerid][pAdmin], DB_Escape(ReturnName(playerid)));
        
database_result = db_query(server_database, query);
        
db_free_result(database_result);
    }
    return 
1;
} 

Code runs without errors but im still unsure on why its not saving and loading the players health..
Banditul Away

Burgershot Member
Posts: 38
Threads: 0
Joined: Apr 2019
Reputation: 2
#2
2022-04-14, 07:25 AM
I'm suprised your create table query even runs because is so wrong
https://www.sqlitetutorial.net/sqlite-create-table/
CrypticSin
Offline

Burgershot Member
Posts: 24
Threads: 9
Joined: Mar 2021
Reputation: 0
#3
2022-04-14, 08:52 AM
(2022-04-14, 07:25 AM)Banditul Wrote: I'm suprised your create table query even runs because is so wrong
https://www.sqlitetutorial.net/sqlite-create-table/

Everything is working fine, my next step is to have the health system saved. 

I know it's not good practice but, ill fix all those later once i fix some of the features i want to add on the server.
CrypticSin
Offline

Burgershot Member
Posts: 24
Threads: 9
Joined: Mar 2021
Reputation: 0
#4
2022-04-18, 05:47 PM
I've updated the code slightly and it does run but the Health data still doesn't show on sqlite browser. Any ideas?
« Next Oldest | Next Newest »



  • View a Printable Version
  • Subscribe to this thread
Forum Jump:

© Burgershot - Powered by our Community and MyBB Original Theme by Emerald

Linear Mode
Threaded Mode