save health/armor SQL Lite
#1

I get tag mismatch no matter what i try, any help?
pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    new
        Query[ 200 ],
        name[ MAX_PLAYER_NAME ],
        float:health,
        float:armour
    ;
    GetPlayerName(playerid, name, sizeof(name));

    if(Bit1_Get(g_PlayerLogged, playerid) == 1)
    {
        format(Query,sizeof(Query),"UPDATE `USERS` SET SCORE = '%d', CASH = '%d', HEALTH = '%f', ARMOUR = '%f', ADMINLEVEL = '%d' WHERE `NAME` = '%s'",
                                                                                        GetPlayerScore(playerid),
                                                                                        GetPlayerMoney(playerid),
                                                                                        GetPlayerHealth(playerid, health),
                                                                                        GetPlayerArmour(playerid, armour),
                                                                                        Bit16_Get(g_AdminLevel, playerid),
                                                                                        DB_Escape(name));
        db_query(Database, Query);
        Bit1_Set(g_PlayerLogged, playerid, false);
    }
    return 1;
}
Reply
#2

PAWN is case-sensitive, Float: and float: are 2 different tags, that's why the compiler is giving you a warning. Also, you are using GetPlayerHealth and GetPlayerArmour in a wrong way, those natives don't return anything, the amount is saved in the variable that you use as second parameter instead

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
    new
        Query[ 200 ],
        name[ MAX_PLAYER_NAME ],
        Float:health, // !
        Float:armour // !
    ;
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerHealth(playerid, health); // !
    GetPlayerArmour(playerid, armour); // !

    if(Bit1_Get(g_PlayerLogged, playerid) == 1)
    {
        format(Query,sizeof(Query),"UPDATE `USERS` SET SCORE = '%d', CASH = '%d', HEALTH = '%f', ARMOUR = '%f', ADMINLEVEL = '%d' WHERE `NAME` = '%s'",
                                                                                        GetPlayerScore(playerid),
                                                                                        GetPlayerMoney(playerid),
                                                                                        health, // !
                                                                                        armour, // !
                                                                                        Bit16_Get(g_AdminLevel, playerid),
                                                                                        DB_Escape(name));
        db_query(Database, Query);
        Bit1_Set(g_PlayerLogged, playerid, false);
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)