30.07.2013, 18:22
Hello SA-MP Members.
I was just going to convert my ban system, until I ran through those problems:
The two lines are:
209: mysql_query(Query);
214: while(mysql_fetch_row_format(Query, "|"))
My whole snippet for the ban system is:
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.
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 |
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;
}
Anyway can anyone help? I'm using the r31 as I said.