Stats Not Saving
#1

Can someone tell my, why stats not being saved!

pawn Код:
//Started 1st July 6:20 PM by [HiC]TheKiller
//___________________________________________
//Build 1.5 10/10/2011
//This requires G-sTyLeZzZ MySQL plugin.
//This script also requires sscanf2 by *****, thanks *****!
//I'm using DCMD instead of ZCMD ;).

//Includes
#include <a_samp>
#include <a_mysql> //https://sampforum.blast.hk/showthread.php?tid=56564
#include <sscanf2> //https://sampforum.blast.hk/showthread.php?tid=120356
#include <foreach> //https://sampforum.blast.hk/showthread.php?tid=92679
#include <zcmd> //https://sampforum.blast.hk/showthread.php?tid=91354
native WP_Hash(buffer[], len, const str[]);
//Configure the following variables
#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_PASS ""
#define SQL_DB "rwwbans"
#define DIALOG_REPORTS 1000
#define DIALOG_MUTES 1500
#define DIALOG_ADMINS 2000
#define DIALOG_KICK 2500
#define DIALOG_BAN 3000
#define DIALOG_BANNED 3500
//===============================

//Macro's
#define mysql_fetch_row(%1) mysql_fetch_row_format(%1,"|")
#define GetAdminLevel(%1) GetPVarInt(%1, "AdminLevel")
#define SendErrorMessage(%1,%2) SendClientMessage(%1,0xFF0000AA,%2)
#define levelerror(%1) if(GetAdminLevel(playerid)<%1) return SendErrorMessage(playerid, "Youre admin level is too low to use this command!")
#define stringPBempty(%1) format(%1,sizeof(%1), "")
//===============================

//Global Vars
new Query[500];
new line[750];
new Pname[24];
new PIP[18];
new escpass[100];
new stringPB[200];
new estringPB[200];
new largestringPB[400];
new plid;
new Float:posxx[3];

public OnFilterScriptInit()
{
    new
        buf[129];
    WP_Hash(buf, sizeof (buf), "The quick brown fox jumps over the lazy dog");
    for(new x = 0; x < 3; x++)
    {
        if(!mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS)) printf("MySQL connection attempt %d failed!", x);
        else
        {
        printf("*******************MYSQL Connection Succesfull**********************");
        break;
        }
    }
    mysql_debug(1);
    return 1;
}

public OnFilterScriptExit()
{
    mysql_close();
    return 1;
}

public OnPlayerConnect(playerid)
{
    bancheck(playerid);
    GetPlayerIp(playerid, PIP, 18);
    format(Query, sizeof(Query), "SELECT * FROM `playerinfo` WHERE `user` = '%s' LIMIT 1", escpname(playerid), PIP);
    mysql_query(Query);
    mysql_store_result();
    if(mysql_num_rows() != 0)
    {
        new PIP2[18];
        mysql_fetch_field_row(PIP2, "IP");
        if(!strcmp(PIP, PIP2, true) && strlen(PIP2) != 0)
        {
            SetPVarInt(playerid, "Logged", 1);
            SendClientMessage(playerid, 0x009600AA, "Auto Logged in!");
            if(mysql_fetch_row(line))
            {
                new data[3][55];
                new data2[5];
                sscanf(line, "p<|>s[50]s[300]dddds[50]ds[100]", data[0], largestringPB, data2[0], data2[1], data2[2], data2[3], data[2], data2[4], estringPB);
                stringPBempty(estringPB);
                stringPBempty(largestringPB);
                SetPVarInt(playerid, "Kills", data2[0]);
                SetPVarInt(playerid, "Logged", 1);
                SetPVarInt(playerid, "Deaths", data2[1]);
                SetPlayerScore(playerid, data2[2]);
                GivePlayerMoney(playerid, data2[3]);
                SetPVarInt(playerid, "AdminLevel", data2[4]);
                mysql_free_result();
            }
        }
        else
        {
            SendClientMessage(playerid, 0x009600AA, "This account is registered, please login");
            ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT , "Login", "This account is registered, please login", "OK", "Cancel");
        }
    }
    else
    {
        ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Register", "This account is not registered, please register!", "OK", "Cancel");
        SendClientMessage(playerid, 0x009600AA, "This account is not registered, please register!");
    }
    mysql_free_result();
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 14600)
    {
       if(response)
       {
            if(!strlen(inputtext))
            {
                ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Register", "This account is not registered, please register!", "OK", "Cancel");
                SendClientMessage(playerid, 0xF60000AA, "Please enter a password");
            }
            mysql_real_escape_string(inputtext, escpass);
            WP_Hash(largestringPB, sizeof(largestringPB), escpass);
            GetPlayerIp(playerid, PIP, 50);
            format(Query, sizeof(Query), "INSERT INTO `playerinfo` (`user`, `password`, `kills`, `deaths`, `score`, `money`, `IP`, `adminlvl`) VALUES ('%s', '%s', 0, 0, 0, 0, '%s', 0)", escpname(playerid), largestringPB, PIP);
            mysql_query(Query);
            GameTextForPlayer(playerid, "~g~Registered", 2000, 3);
            SendClientMessage(playerid, 0x0000D9AA, "Registered and Logged into your account!");
            SetPVarInt(playerid, "Logged", 1);
        }
    }
    if(dialogid == 15000)
    {
       if(response)
       {
           WP_Hash(largestringPB, sizeof(largestringPB), inputtext);
           format(Query, sizeof(Query), "SELECT * FROM `playerinfo` WHERE `user` = '%s' AND `password` = '%s' LIMIT 1", escpname(playerid), largestringPB);
           mysql_query(Query);
           mysql_store_result();
           new rows = mysql_num_rows();
           if(!rows)
           {
               SendClientMessage(playerid, 0xF60000AA, "Invalid password!");
               SetPVarInt(playerid, "WrongPass", GetPVarInt(playerid, "WrongPass") + 1);
               ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT , "Login", "This account is registered, please login", "OK", "Cancel");
               if(GetPVarInt(playerid, "WrongPass") == 3)
               {
                   SendClientMessage(playerid, 0xF60000AA, "Max password tries exceeded!!");
                   Kick(playerid);
               }
               mysql_free_result();
           }
           else if(rows > 0)
           {
               if(mysql_fetch_row(line))
               {
                    new data[3][55];
                    new data2[5];
                    sscanf(line, "p<|>s[50]s[300]dddds[50]ds[100]", data[0], largestringPB, data2[0], data2[1], data2[2], data2[3], data[2], data2[4], estringPB);
                    stringPBempty(estringPB);
                    stringPBempty(largestringPB);
                    SetPVarInt(playerid, "Kills", data2[0]);
                    SetPVarInt(playerid, "Logged", 1);
                    SetPVarInt(playerid, "Deaths", data2[1]);
                    SetPlayerScore(playerid, data2[2]);
                    GivePlayerMoney(playerid, data2[3]);
                    SetPVarInt(playerid, "AdminLevel", data2[4]);
                    SendClientMessage(playerid, 0x0000D9AA, "Logged in!");
                    mysql_free_result();
                    GetPlayerIp(playerid, PIP, 18);
                    format(Query, sizeof(Query), "UPDATE `playerinfo` SET IP = '%s' WHERE user='%s'", PIP, escpname(playerid));
                    mysql_query(Query);
               }
           }
       }
    }
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    if(GetPVarInt(playerid, "Logged") == 0)
    {
        format(Query, sizeof(Query), "SELECT `user` FROM `playerinfo` WHERE `user` = '%s' LIMIT 1" , escpname(playerid));
        mysql_query(Query);
        mysql_store_result();
        if(!mysql_num_rows()) ShowPlayerDialog(playerid, 14600, DIALOG_STYLE_INPUT , "Register", "This account is not registered, please register!", "OK", "Cancel");
        else ShowPlayerDialog(playerid, 15000, DIALOG_STYLE_INPUT , "Login", "This account is registered, please login", "OK", "Cancel");
        return 0;
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(GetPVarInt(playerid, "Logged") == 1 && GetPVarInt(playerid, "MoneyGiven") > 0)
    {
        GivePlayerMoney(playerid, GetPVarInt(playerid, "MoneyGiven"));
        SetPVarInt(playerid, "MoneyGiven", 0);
    }
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    SetPVarInt(playerid, "Deaths", GetPVarInt(playerid, "Deaths") + 1);
    if(killerid != INVALID_PLAYER_ID) SetPVarInt(playerid, "Kills", GetPVarInt(playerid, "Kills") + 1);
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(GetPVarInt(playerid, "Logged") == 1)
    {
        format(Query, sizeof(Query), "UPDATE `playerinfo` SET `score` = '%d',`money` = '%d', `kills` = '%d', `deaths` = '%d'  WHERE `user` = '%s'", GetPlayerScore(playerid), GetPlayerMoney(playerid), GetPVarInt(playerid, "Kills"), GetPVarInt(playerid, "Deaths"), escpname(playerid));
        mysql_query(Query);
    }
    return 1;
}

CMD:score(playerid, params[])
{
    SetPlayerScore(playerid, 10000);
    GivePlayerMoney(playerid, 1000000);
    return 1;
}

CMD:muted(playerid, params[])
{
    levelerror(1);
    foreach(Player, i)
    {
        if(GetPVarInt(i, "Muted") == 1)
        plid++;
        format(largestringPB, sizeof(largestringPB), "%s \r\n %s(%d)", largestringPB, PlayerName(i), i);
    }
    if(plid == 0) return SendErrorMessage(playerid, "Nobody is currently muted!");
    else ShowPlayerDialog(playerid, DIALOG_MUTES, DIALOG_STYLE_MSGBOX, "Muted Players", largestringPB, "Ok", "Cancel");
    stringPBempty(largestringPB);
    return 1;
}

CMD:changepass(playerid, params[])
{
    if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /changepass <password>");
    if (GetPVarInt(playerid, "Logged") != 1) return SendErrorMessage(playerid, "You are not logged in!");
    if (strlen(params) > 99) return SendErrorMessage(playerid, "Password must be between 1 - 100 characters!");
    WP_Hash(largestringPB, sizeof(largestringPB), params);
    format(Query, sizeof(Query), "UPDATE `playerinfo` SET `password` = '%s'  WHERE `user` = '%s'", largestringPB , escpname(playerid));
    mysql_query(Query);
    mysql_free_result();
    SendClientMessage(playerid, 0xFFFFFF, "Password has been saved!");
    return 1;
}

CMD:setemail(playerid, params[])
{
    if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /setemail <email>");
    if (GetPVarInt(playerid, "Logged") != 1) return SendErrorMessage(playerid, "You are not logged in!");
    if (strlen(params) > 149 || strlen(params) < 5) return SendErrorMessage(playerid, "Email must be between 5 - 150 characters!");
    format(Query, sizeof(Query), "UPDATE `playerinfo` SET `email` = '%s'  WHERE `user` = '%s'", escstringPB(params) , escpname(playerid));
    mysql_query(Query);
    mysql_free_result();
    SendClientMessage(playerid, 0xFFFFFF, "Email has been saved!");
    return 1;
}


CMD:ban(playerid, params[])
{
    levelerror(4);
    if (sscanf(params, "us[200]", plid, estringPB)) return SendErrorMessage(playerid, "Usage: /ban <id> <reason>");
    if (!IsPlayerConnected(plid)) return SendErrorMessage(playerid, "Player Not Connected!");
    format(stringPB, sizeof(stringPB), "You have banned {FFFFFF}%s(%d)", PlayerName(plid), plid);
    SendClientMessage(playerid, 0x66FF33, stringPB);
    format(largestringPB, sizeof(largestringPB), "Admin %s banned you from the server\r\nReason:%s", PlayerName(playerid), estringPB);
    ShowPlayerDialog(plid, DIALOG_KICK, DIALOG_STYLE_MSGBOX, "You have been banned", largestringPB, "Ok", "Cancel");
    GetPlayerIp(plid, PIP, 50);
    new Hour, Minute, Second, Year, Month, Day;
    gettime(Hour, Minute, Second);
    getdate(Year, Month, Day);
    format(stringPB, sizeof(stringPB), "%02d:%02d:%02d on %02d/%02d/%d", Hour, Minute, Second, Day, Month, Year);
    format(Query, sizeof(Query), "INSERT INTO `banlog` (`time`, `name`, `ip`, `reason`, `admin`, `banned`) VALUES ('%s', '%s', '%s', '%s', '%s', 1)", stringPB, escpname(plid), PIP, escstringPB(estringPB), escpname(playerid));
    mysql_query(Query);
    mysql_free_result();
    Kick(plid);
    return 1;
}

CMD:unban(playerid, params[])
{
    levelerror(4);
    if (!strlen(params)) return SendErrorMessage(playerid, "Usage: /unban <name>");
    format(Query, sizeof(Query), "SELECT `name` FROM `banlog` WHERE name = '%s' AND banned = 1 LIMIT 1", escstringPB(params));
    mysql_query(Query);
    mysql_store_result();
    if(!mysql_num_rows())
    {
        format(stringPB, sizeof(stringPB), "Nobody under the name of %s is banned!", params);
        mysql_free_result();
        return SendErrorMessage(playerid, stringPB);
    }
    else if(mysql_num_rows() != 0)
    {
        format(Query, sizeof(Query), "UPDATE `banlog` SET `banned` = 0 WHERE name = '%s'", escstringPB(params));
        mysql_query(Query);
        mysql_store_result();
        format(stringPB, sizeof(stringPB), "%s has been unbanned!", params);
        SendClientMessage(playerid, 0x66FF33, stringPB);
    }
    return 1;
}


stock escpname(playerid)
{
    new escname[24];
    GetPlayerName(playerid, Pname, 24);
    mysql_real_escape_string(Pname, escname);
    return escname;
}

stock escstringPB(stri[])
{
    new escstr[200];
    mysql_real_escape_string(stri, escstr);
    return escstr;
}

stock PlayerName(pid)
{
    GetPlayerName(pid, Pname, 24);
    return Pname;
}

stock SendMessageToAllAdmins(message[], color)
{
    foreach(Player, i)
    {
        if(PlayerAdmin(i))
        {
            SendClientMessage(i, color, message);
        }
    }
    return 1;
}

stock SendPlayerToAnother(sendingplayer, receivingplayer)
{
    GetPlayerPos(receivingplayer, posxx[0], posxx[1], posxx[2]);
    SetPlayerPos(sendingplayer, posxx[0], posxx[1]+2, posxx[2]);
    SetPlayerVirtualWorld(sendingplayer, GetPlayerVirtualWorld(receivingplayer));
    SetPlayerInterior(sendingplayer, GetPlayerInterior(receivingplayer));
    return 1;
}

stock bancheck(playerid)
{
    GetPlayerIp(playerid, PIP, sizeof(PIP));
    format(Query, sizeof(Query), "SELECT * FROM `banlog` WHERE (`name` = '%s' OR `ip` = '%s')  AND `banned` = 1 LIMIT 1", escpname(playerid), PIP);
    mysql_query(Query);
    mysql_store_result();
    if(mysql_num_rows() != 0)
    {
        new Name2[24];
        while(mysql_fetch_row(Query))
        {
                mysql_fetch_field_row(stringPB, "reason");
                mysql_fetch_field_row(Pname, "admin");
                mysql_fetch_field_row(estringPB, "time");
                mysql_fetch_field_row(PIP, "ip");
                mysql_fetch_field_row(Name2, "name");
        }
        format(largestringPB, sizeof(largestringPB), "You are currently banned from this server. \r\nUser:%s \r\nIP:%s  \r\nTime:%s \r\nAdmin:%s\r\nReason:%s", Name2, PIP, estringPB, Pname, stringPB);
        ShowPlayerDialog(plid, DIALOG_BANNED, DIALOG_STYLE_MSGBOX, "You are banned from this server", largestringPB, "Ok", "Cancel");
        Kick(playerid);
    }
    mysql_free_result();
    return 1;
}


stock PlayerAdmin(pid)
{
    if( GetPVarInt(pid, "AdminLevel" ) > 0) return 1;
    return 0;
}
Reply
#2

please reply
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)