Jump to content
  • 0

Comanda nameban


lordhell12

Question

Problema intalnita (descriere):Am incercat sa creez comanda /nameban,dar am primit urmatoarea eroare
Ero(area / rile) / warning-(ul / urile):(13279) : error 076: syntax error in the expression, or invalid function call
Liniile de cod / sursa / script-ul(obligatoriu):

CMD:nameban(playerid, params[])
{
	if(PlayerInfo[playerid][Level] < 3) return
	SendError(playerid, "You need to be Admin Level 3 to use this command!");
	//--------------------------------------------------------------------------
    if(sscanf(params, "s[128]", BanName)) return
	SendUsage(playerid, "/nameban [Player Name] [Days]");
    //--------------------------------------------------------------------------
	eQuery[0] = EOS;
	//--------------------------------------------------------------------------
	format(eQuery, sizeof(eQuery), "SELECT * FROM `Accounts` WHERE `Name` = '%s'", PlayerName);
	mysql_tquery(DB_Connect, eQuery, "BanPlayer", "i", playerid);
	//--------------------------------------------------------------------------
	return 1;
}


Imagini / Video (optional):
Ati incercat sa rezolvati singur?:Da,dar mi-a dat eroarea precizata mai sus.

Linia 13279:

	format(eQuery, sizeof(eQuery), "SELECT * FROM `Accounts` WHERE `Name` = '%s'", PlayerName);

V-am pus tot scriptul mai sus pentru ca poate mai este vreo greseala.

Precizez ca,comanda vreau sa dea ban unui jucator care nu este online pe server pentru un anumit numar de zile,sidesigur sa se salveze in baza de date.

 

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Incearca cu asta:

 

CMD:nameban(playerid, params[])
{
    new days;
    if(PlayerInfo[playerid][Level] < 3) return
    SendError(playerid, "You need to be Admin Level 3 to use this command!");
    //--------------------------------------------------------------------------
    if(sscanf(params, "s[128]d", BanName, days)) return
    SendUsage(playerid, "/nameban [Player Name] [Days]");
    //--------------------------------------------------------------------------
    eQuery[0] = EOS;
    //--------------------------------------------------------------------------
    format(eQuery, sizeof(eQuery), "SELECT * FROM `Accounts` WHERE `Name` = '%s'", PlayerName);
    mysql_tquery(DB_Connect, eQuery, "BanPlayer", "i", playerid);
    //--------------------------------------------------------------------------
    return 1;
}

Daca nu se rezolva posteaza si codul de la functia "BanPlayer".

Edited by Rappy
Link to comment
Share on other sites

  • 0

Incearca cu asta:

 

CMD:nameban(playerid, params[])
{
    new days;
    if(PlayerInfo[playerid][Level] < 3) return
    SendError(playerid, "You need to be Admin Level 3 to use this command!");
    //--------------------------------------------------------------------------
    if(sscanf(params, "s[128]d", BanName, days)) return
    SendUsage(playerid, "/nameban [Player Name] [Days]");
    //--------------------------------------------------------------------------
    eQuery[0] = EOS;
    //--------------------------------------------------------------------------
    format(eQuery, sizeof(eQuery), "SELECT * FROM `Accounts` WHERE `Name` = '%s'", PlayerName);
    mysql_tquery(DB_Connect, eQuery, "BanPlayer", "i", playerid);
    //--------------------------------------------------------------------------
    return 1;
}

Daca nu se rezolva posteaza si codul de la functia "BanPlayer".

A mers sa compilez cu ce mi-ati dat voi doi,dar nu se executa in joc.

Asta este jumatate din comanda ban,totul pana la SendClientMessage.

CMD:ban(playerid, params[])
{
	if(PlayerInfo[playerid][Level] < 3) return SendError(playerid, "You need to be Admin Level 3 to use this command!");
    //--------------------------------------------------------------------------
	new liPlayer, liDays, lsReason[56]; eString[0] = EOS;
	//--------------------------------------------------------------------------
	if(sscanf(params, "uis[56]", liPlayer, liDays, lsReason)) return
	SendUsage(playerid, "/Ban [PlayerID] [Day(s)] [Reason]");
	//--------------------------------------------------------------------------
	if(!IsPlayerConnected(liPlayer)) return
	SendError(playerid, "Player not connected !");
	//--------------------------------------------------------------------------
	if(PlayerInfo[liPlayer][Level] >= 5) FormatMSG(liPlayer, COLOR_ULTRARED, "%s has tried to ban you!", PlayerName(playerid));
	//--------------------------------------------------------------------------
	if(liPlayer == playerid) return
	SendError(playerid, "You can't ban yourself!");
	//--------------------------------------------------------------------------
	if(liDays < 1 || liDays > 299) return
	SendError(playerid, "Invalid day ! Write values between 1 and 299.");
	//--------------------------------------------------------------------------
	if(strfind(lsReason, "'", true) != -1)
	return SendError(playerid, "The Reason must not contain (')!");
    //--------------------------------------------------------------------------

 

Link to comment
Share on other sites

  • 0

Arata toata comanda ban.

CMD:ban(playerid, params[])
{
	if(PlayerInfo[playerid][Level] < 3) return SendError(playerid, "You need to be Admin Level 3 to use this command!");
    //--------------------------------------------------------------------------
	new liPlayer, liDays, lsReason[56]; eString[0] = EOS;
	//--------------------------------------------------------------------------
	if(sscanf(params, "uis[56]", liPlayer, liDays, lsReason)) return
	SendUsage(playerid, "/Ban [PlayerID] [Day(s)] [Reason]");
	//--------------------------------------------------------------------------
	if(!IsPlayerConnected(liPlayer)) return
	SendError(playerid, "Player not connected !");
	//--------------------------------------------------------------------------
	if(PlayerInfo[liPlayer][Level] >= 5) FormatMSG(liPlayer, COLOR_ULTRARED, "%s has tried to ban you!", PlayerName(playerid));
	//--------------------------------------------------------------------------
	if(liPlayer == playerid) return
	SendError(playerid, "You can't ban yourself!");
	//--------------------------------------------------------------------------
	if(liDays < 1 || liDays > 299) return
	SendError(playerid, "Invalid day ! Write values between 1 and 299.");
	//--------------------------------------------------------------------------
	if(strfind(lsReason, "'", true) != -1)
	return SendError(playerid, "The Reason must not contain (')!");
    //--------------------------------------------------------------------------
    PlayerInfo[playerid][PBans]++,	CMDMessageToAdmins(playerid, "ban"), TogglePlayerControllable(liPlayer, 0);
    //--------------------------------------------------------------------------
	SendClientMessageToAll(COLOR_ABLUE, "======================(Ban Info)======================");
	//--------------------------------------------------------------------------
	format(eString, sizeof(eString), "{3399ff}%s {D1D1D1}has been {FF0000}Banned{D1D1D1} by Administrator {3399ff}%s {D1D1D1}for {FF0000}%d {D1D1D1}days.", PlayerName(liPlayer), PlayerName(playerid), liDays);
	SendClientMessageToAll(COLOR_ABLUE, eString);
	//--------------------------------------------------------------------------
	format(eString, sizeof(eString), "{D1D1D1}Reason: {3399ff}%s ", lsReason);
	SendClientMessageToAll(COLOR_ABLUE, eString);
	//--------------------------------------------------------------------------
	SendClientMessageToAll(COLOR_ABLUE, "====================================================");
    //--------------------------------------------------------------------------
	for (new i = 0; i < 20; i++) SendClientMessage(liPlayer, ~1, " ");
	//--------------------------------------------------------------------------
	SendClientMessage(liPlayer, COLOR_ABLUE, "======================(Ban Info)======================");
	//--------------------------------------------------------------------------
	format(eString, 500, "You have been Banned by {00A6FF}%s {D1D1D1}for {FF0000}%d {D1D1D1}Days!", PlayerName(playerid), liDays);
	SendClientMessage(liPlayer, COLOR_GREY2, eString);
	//--------------------------------------------------------------------------
	format(eString, 500, "Reason: {00A6FF}%s", lsReason);
	SendClientMessage(liPlayer, COLOR_GREY2, eString);
	//--------------------------------------------------------------------------
	SendClientMessage(liPlayer, COLOR_GREY2, "Press {FF0000}F8{D1D1D1} to make an Screenshot!");
	//--------------------------------------------------------------------------
	format(eString, 500, "For UnBan, make a request {FF0000}"SERVER_SITE"{D1D1D1} with name {FF0000}%s {D1D1D1}and IP {00A6FF}%s", PlayerName(liPlayer), GetPlayerIPEx(liPlayer));
	SendClientMessage(liPlayer, COLOR_GREY2, eString);
	//--------------------------------------------------------------------------
    SendClientMessage(liPlayer, COLOR_ABLUE, "====================================================");
    //--------------------------------------------------------------------------
	eLog[0] = EOS; format(eLog, sizeof(eLog), "%s has banned %s (Reason: %s) for %d Day(s).", PlayerName(playerid), PlayerName(liPlayer), lsReason, liDays), SendLog(eLog);
	//--------------------------------------------------------------------------
	return BanPlayer(GetPlayerIPEx(liPlayer), PlayerName(liPlayer), PlayerName(playerid), lsReason, liDays), KickEx(liPlayer);
}

EDIT:M-am uitat in log si am gasit asta:

[17:57:05] sscanf warning: Format specifier does not match parameter count.
[17:57:05] ====================================================
[17:57:05] Error ID: 1064
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1
Callback: 
Query: INSERT INTO `Bans` (`ID`,`IP`,`Name`,`Reason`,`Admin`,`BanDate`,`BanTime`,`BanExpire`) VALUES(0,'
[17:57:05] ====================================================

 

Edited by lordhell12
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.