MySQL Issue BlueG r31
#1

Hello SA-MP Members.
I was just going to convert my ban system, until I ran through those problems:

Quote:

C:\Users\User\Desktop\PGWSA.pwn(209) : error 017: undefined symbol "mysql_query"
C:\Users\User\Desktop\PGWSA.pwn(214) : warning 209: function "mysql_fetch_row_format" should return a value

The two lines are:

209: mysql_query(Query);

214: while(mysql_fetch_row_format(Query, "|"))

My whole snippet for the ban system is:

pawn Код:
#include <a_samp>
#include <a_mysql> //r31

#define DIALOG_BANNED 1

CMD:ban(playerid, params[])
{
    new TargetID;
    new reason[64], Reason[64], Query[256], String[128];
    if(IsPlayerAdmin(playerid) || g_PlayerInfo[playerid][pAdminlevel]>=3)
    {
        if(sscanf(params, "uS(No reason)[64]", TargetID, reason)) return SendClientMessage(playerid, -1, "{C0C0C0}[SERVER] {FFFFFF}/ban (playerid) (reason)");
        {
            if(!IsPlayerConnected(TargetID)) return SendClientMessage(playerid, -1, "{C0C0C0}[SERVER] {FFFFFF}The player you want to ban is not connected.");
            {
                if(strlen(reason) > 64) return SendClientMessage(playerid, -1, "{C0C0C0}[SERVER] {FFFFFF}Your ban reason must be within 64 characters.");
                {
                    mysql_real_escape_string(reason, Reason);
                    format(Query, sizeof(Query), "INSERT INTO `Bans` (Username, BannedBy, IP, Reason, Seconds, Banned) VALUES ('%s', '%s', '%s', '%s', 1)", GetName(TargetID), GetName(playerid), GetIP(TargetID), Reason);
                    mysql_query(Query);
                    format(String, sizeof(String), "{FF9130}[ANTI-CHEAT] {FFFFFF}%s has been banned from the server. {72FF30}[REASON] {FFFFFF}%s", GetName(TargetID), Reason);
                    SendClientMessageToAll(-1, String);
                    SetPlayerPos(TargetID,193.5177,176.2223,1003.0234);
                    SetPlayerInterior(TargetID,3);
                    format(String,128,"{FF9130}[ANTI-CHEAT] {FFFFFF}You have been banned from the server. {72FF30}[REASON] {FFFFFF}%s",Reason);
                    SendClientMessage(TargetID,-1,String);
                    SetTimerEx("PublicKick", 1000, 1, "i", TargetID);
                }
            }
        }
    }
    else SendClientMessage(playerid, -1, "{C0C0C0}[SERVER] {FFFFFF}You are not authorized to use this command.");
    return 1;
}

stock IsPlayerBanned(playerid)
{
    new Query[252];
    format(Query, sizeof(Query), "SELECT * FROM `Bans` WHERE (`Username` = '%s' OR `IP` = '%s') AND `Banned` = 1 LIMIT 1", GetName(playerid), IP);
    mysql_function_query(g_Handle, Query, true, "IsPlayerPermBanned", "i", playerid);
}

forward IsPlayerPermBanned(playerid);
public IsPlayerPermBanned(playerid)
{
    new IP[16], str[1000], Query[128], reason[64], BannedBy[32], i[128], BanID[100];
    GetPlayerIp(playerid, IP, sizeof(IP));
    format(Query, sizeof(Query), "SELECT * FROM `Bans` WHERE (`Username` = '%s' OR `IP` = '%s') AND `Banned` = 1 LIMIT 1", GetName(playerid), IP);
    mysql_query(Query);
    mysql_store_result();

    if(mysql_num_rows() != 0)
    {
        while(mysql_fetch_row_format(Query, "|"))
        {
            mysql_fetch_field_row(i, "Reason"); format(reason, sizeof(reason), i);
            mysql_fetch_field_row(i, "BannedBy"); format(BannedBy, sizeof(BannedBy), i);
            mysql_fetch_field_row(i, "BanID"); format(BanID, sizeof(BanID), i);

            format(str, sizeof(str), "{FFFFFF}You have been banned from the server for the following reason: %s\n\
            Your personal ban id has been generated: %s\n\
            You have been banned by: %s\nIf you feel that you unfairly got banned, please visit our website to appeal the ban."
, reason, BanID, BannedBy);

            ShowPlayerDialog(playerid, DIALOG_BANNED, DIALOG_STYLE_MSGBOX, "{FFFFFF}San Fierro Cops and Robbers", str, "Close", "");
            SetTimerEx("PublicKick", 1, 0, "d", playerid);
        }
    }
    return 1;
}
I didn't post GetName, and GetIP, as they are just getting the ip without any MySQL functions.

Anyway can anyone help? I'm using the r31 as I said.
Reply
#2

mysql_query(..) was changed to mysql_function_query(..) after R6. Take a look here to see how it works now: Tutorial
Reply
#3

All right, I forgot to convert that, but what about this:
Quote:

warning 209: function "mysql_fetch_row_format" should return a value

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)