CMD:oban(playerid, params[])
{
new name[24], reason[128], Query[128];
if(sscanf(params, "s[24]s[128]", name, reason))
return SCM(playerid, COR_CINZA, "Use: /oban [name] [reason]");
/*mysql_format(sql_handle, Consulta, sizeof(Consulta), "SELECT `id` , `ip` FROM `jugadores` WHERE `nombre`='%s'", nombre);
mysql_tquery(sql_handle, Consulta, "BanearJugadorNombre", "ds[24]s[50]", playerid, nombre, razon);*/
mysql_format(g_SQL, Query, sizeof(Query), "SELECT `id`, `ip` FROM `players` WHERE `username` = '%e' LIMIT 1", name);
mysql_tquery(g_SQL, Query, "OnPlayerOban", "ds[24]s[128]", playerid, name, reason);
return 1;
}
forward OnPlayerOBan(playerid, target[], offreason[]);
public OnPlayerOBan(playerid, target[], offreason[])
{
if(cache_num_rows() > 0)
{
new obanquery[256], admin[MAX_PLAYER_NAME], banid, banip[16], year, month, day, formatDate[10];
cache_get_value_name_int(0, "id", banid);
cache_get_value_name(0, "ip", banip, 16);
GetPlayerName(playerid, admin, MAX_PLAYER_NAME);
getdate(year, month, day);
format(formatDate, 10, "%d/%d/%d", day, month, year);
mysql_format(g_SQL, obanquery, sizeof(obanquery), "INSERT INTO `bans` (`id`, `username`, `admin`, `ip`, `date`, `reason`) VALUES ('%d', '%s', '%s', '%s', '%s', '%s')", banid, target, admin, banip, formatDate, offreason);
mysql_tquery(g_SQL, obanquery);
SendClientMessageToAllEx(COLOR_LIGHTRED, "AdmCmd: %s banned %s, reason: %s", pNome(playerid), target, offreason);
}
else
{
SendClientMessage(playerid, COLOR_LIGHTRED, "[ERROR] That player isn't registered!");
}
return 1;
}
[ERROR] mysql_tquery: callback error: parameter count does not match format specifier length
mysql_tquery(g_SQL, Query, "OnPlayerOban", "ds[24]s[128]", playerid, name, reason);
CMD:oban(playerid, params[]) { new name[24], reason[128], Query[155]; if(sscanf(params, "s[24]s[128]", name, reason)) return SCM(playerid, COR_CINZA, "Use: /oban [name] [reason]"); mysql_format(g_SQL, Query, sizeof(Query), "SELECT id FROM players WHERE username = '%s' LIMIT 1", name); mysql_tquery(g_SQL, Query, "OnPlayerOban", "iss", playerid, name, reason); return 1; } forward OnPlayerOBan(playerid, target[], offreason[]); public OnPlayerOBan(playerid, target[], offreason[]) { if(cache_num_rows() > 0) { new obanquery[256], admin[MAX_PLAYER_NAME], banip[16], year, month, day, formatDate[12]; cache_get_value_name(0, "ip", banip, 16); GetPlayerName(playerid, admin, MAX_PLAYER_NAME); getdate(year, month, day); format(formatDate, 12, "%02d/%02d/%d", day, month, year); mysql_format(g_SQL, obanquery, sizeof(obanquery), "INSERT INTO bans VALUES(NULL, '%s', '%s', '%s', '%s', '%s')", target, admin, banip, formatDate, offreason); mysql_tquery(g_SQL, obanquery); SendClientMessageToAllEx(COLOR_LIGHTRED, "AdmCmd: %s banned %s, reason: %s", pNome(playerid), target, offreason); } else { SendClientMessage(playerid, COLOR_LIGHTRED, "[ERROR] That player isn't registered!"); } return 1; }
Код:
CMD:oban(playerid, params[]) { new name[24], reason[128], Query[155]; if(sscanf(params, "s[24]s[128]", name, reason)) return SCM(playerid, COR_CINZA, "Use: /oban [name] [reason]"); mysql_format(g_SQL, Query, sizeof(Query), "SELECT id FROM players WHERE username = '%s' LIMIT 1", name); mysql_tquery(g_SQL, Query, "OnPlayerOban", "iss", playerid, name, reason); return 1; } forward OnPlayerOBan(playerid, target[], offreason[]); public OnPlayerOBan(playerid, target[], offreason[]) { if(cache_num_rows() > 0) { new obanquery[256], admin[MAX_PLAYER_NAME], banip[16], year, month, day, formatDate[12]; cache_get_value_name(0, "ip", banip, 16); GetPlayerName(playerid, admin, MAX_PLAYER_NAME); getdate(year, month, day); format(formatDate, 12, "%02d/%02d/%d", day, month, year); mysql_format(g_SQL, obanquery, sizeof(obanquery), "INSERT INTO bans VALUES(NULL, '%s', '%s', '%s', '%s', '%s')", target, admin, banip, formatDate, offreason); mysql_tquery(g_SQL, obanquery); SendClientMessageToAllEx(COLOR_LIGHTRED, "AdmCmd: %s banned %s, reason: %s", pNome(playerid), target, offreason); } else { SendClientMessage(playerid, COLOR_LIGHTRED, "[ERROR] That player isn't registered!"); } return 1; } |
cache_get_value_name_int(0, "id", banid); |
You can do it that way but I have always preferred to not mix up players and bans, as it really doesn't have an impact since you still get the username when you're trying to unban someone, not the ID. Personal preference I suppose. An example of this would be to connect as a banned player, you won't know his unique ID from the players database if he hasn't logged in, but you can check for his username regardless of his ID or any other variables.
|
Код:
CMD:oban(playerid, params[]) { new name[24], reason[128], Query[155]; if(sscanf(params, "s[24]s[128]", name, reason)) return SCM(playerid, COR_CINZA, "Use: /oban [name] [reason]"); mysql_format(g_SQL, Query, sizeof(Query), "SELECT id FROM players WHERE username = '%s' LIMIT 1", name); mysql_tquery(g_SQL, Query, "OnPlayerOban", "iss", playerid, name, reason); return 1; } forward OnPlayerOBan(playerid, target[], offreason[]); public OnPlayerOBan(playerid, target[], offreason[]) { if(cache_num_rows() > 0) { new obanquery[256], admin[MAX_PLAYER_NAME], banip[16], year, month, day, formatDate[12]; cache_get_value_name(0, "ip", banip, 16); GetPlayerName(playerid, admin, MAX_PLAYER_NAME); getdate(year, month, day); format(formatDate, 12, "%02d/%02d/%d", day, month, year); mysql_format(g_SQL, obanquery, sizeof(obanquery), "INSERT INTO bans VALUES(NULL, '%s', '%s', '%s', '%s', '%s')", target, admin, banip, formatDate, offreason); mysql_tquery(g_SQL, obanquery); SendClientMessageToAllEx(COLOR_LIGHTRED, "AdmCmd: %s banned %s, reason: %s", pNome(playerid), target, offreason); } else { SendClientMessage(playerid, COLOR_LIGHTRED, "[ERROR] That player isn't registered!"); } return 1; } |
mysql_format(g_SQL, Query, sizeof(Query), "SELECT id FROM players WHERE username = '%s' LIMIT 1", name); mysql_tquery(g_SQL, Query, "OnPlayerOBan", "iss", playerid, name, reason);
mysql_format(g_SQL, Query, sizeof(Query), "SELECT id FROM players WHERE username = '%s' LIMIT 1", name); mysql_tquery(g_SQL, Query, "OnPlayerOban", "iss", playerid, name, reason);
The worst thing is that I thought about it, but I went like naah, Im way too stupid, thanks man.
|