Problem with Ban
#1

Hi,
I tried to make a cmd to ban someone. All work fine I think, didnt tried it yet, but I wanted to save the reason of the ban into my mysql database. But I'm blocked, I really don't know how could I do this, I tried something but I don't work at all.

Could someone help me to do this ?
When I ban someone, the reason will be saved in my sql database.

This is my cmd and what I tried:



Код:
CMD:aban(playerid, params[])
{
	if(pInfo[playerid][Admin] >= 60)
	{
		new string[128], raison[128], id;
		if(sscanf(params, "us[128]", id, raison)) return SendClientMessage(playerid, Rouge, "Utilisation: /aban [ID Joueur] [Raison]");
		if(id==INVALID_PLAYER_ID) return SendClientMessage(playerid, Rouge,"Ce joueur n'est pas connectй !");
		GetPlayerName(playerid, joueuremetteur, sizeof(joueuremetteur));
		GetPlayerName(id, joueurdestinataire, sizeof(joueurdestinataire));
		if(pInfo[playerid][Admin] < pInfo[id][Admin])
		{
			new msg[128];
			format(msg, sizeof(msg), "%s a essayй de ban l'admin %s", playerid, joueurdestinataire);
			ChannelAdmin(Rouge, msg);
			return SendClientMessage(playerid, Rouge, "Vous ne pouvez pas ban un admin de rang supйrieur au votre !");
		}
		GetPlayerName(playerid, joueuremetteur, sizeof(joueuremetteur));
		GetPlayerName(id, joueurdestinataire, sizeof(joueurdestinataire));
		format(string, sizeof(string), "%s a йtй ban par %s. Raison: %s", joueurdestinataire, joueuremetteur, raison);
		ChannelAdmin(Rouge, string);
		format(string, sizeof(string), "Vous avez йtй ban du serveur par %s. Raison: %s", joueuremetteur, raison);
		SendClientMessage(id, Rouge, string);
		pInfo[id][RaisonBan] == raison[id];
		new query[256];
		mysql_format(mysql, query, sizeof(query), "UPDATE `joueurs` SET  `Bannis`=%d, `RaisonBan`=%s WHERE `ID`=%d", 1, pInfo[id][RaisonBan], pInfo[id][ID]);
		mysql_tquery(mysql, query, "", "");
		SetTimerEx("BanJoueur", 1000, 0, "d", id);
		return 1;
	}
	return SendClientMessage(playerid, Rouge,"La commande entrйe est inconnue !");
}
I got a warning and I'm not sure that it will save the reasion

"pInfo[id][RaisonBan] == raison[id];"

warning 215: expression has no effect
Reply
#2

use on‌e = sign

So
pawn Код:
pInfo[id][RaisonBan] = raison[id];
Reply
#3

Thank you, this fixed the warning, but when I ban someone, the reason doesn't save into the database
I did: "printf("%s", pInfo[id][RaisonBan]);"

After the query, and It only shows the first letter of the reason.

For exemple if I ban someone for "test" it shows "t".

And It doesn't save "test" or "t" into the database.

Ideas ?

Thank you !
Reply
#4

Hi anou1,

My advice would be to copy the command from an admin system, Learn each line of it until you know what It means, then make your own.
Reply
#5

Did you read what I wrote ?

My ban command works well. ALL WORK.

EXCEPT for the mysql part, to save the reason.

That's why I'm asking for help.
Reply
#6

UP please
Reply
#7

pawn Код:
pInfo[id][RaisonBan] = raison[id];
Instead of this, do this:
pawn Код:
format(pInfo[id][RaisonBan], 128, "%s", raison);
or
pawn Код:
pInfo[id][RaisonBan][0] = 0;
strcat(pInfo[id][RaisonBan], raison);
Reply
#8

Thank you, now it printf the good reason.

But it doesn't update the reason at all.

Anyone know what's wrong in my code ?
Reply
#9

Take a look into mysql log, maybe you'll find why it doesn't update.
Reply
#10

Thank you guy, an other problem solved !

My last problem is to set value of "Bannis" to 1 when I ban an ID.

So I tried to do like the Reason, I tried this:

format(pInfo[id][Bannis], 128, 1);
format(pInfo[id][Bannis], 128, "1");

But with a printf I always have "49" instead of 1.

Any idea to solve this ?
Thank you !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)