Problem with ban system
#1

Hi i have a mysql gamemod when i user Perementaly Ban on my server like /ban test
he baned and cant join again

but when i use Days like /ban test 10 , 10= days i want my user ban


but he just kick a massege say he is ban for 10 days but he join again and ply how can i fix this?

plz help

my ban codes


Код:
	if(!strcmp(cmd,"/ban",true))
	{
		if(PlayerInfo[playerid][pAdmin] <= 2) return SCM(playerid,COLOR_YELLOW2,"Error: You are not admin");
		new Fullname[256];
		Fullname = strtok(cmdtext,idx);
		if(!strlen(Fullname)) return SCM(playerid,COL_SYN,"Syntax: /ban <FullName> <Days(1-60 , 0= Perementaly Ban)> <UseIP(1=Yes 0=No)> <Reason>");
		tmp = strtok(cmdtext,idx);
		if(!strlen(tmp)) return SCM(playerid,COL_SYN,"Syntax: /ban <FullName> <Days(1-60 , 0= Perementaly Ban)> <UseIP(1=Yes 0=No)> <Reason>");
		new days = strval(tmp);
		if(days < 0 || days > 60) return SCM(playerid,COLOR_ARIAIE,"Type a day between 1 and 60.");
		tmp = strtok(cmdtext,idx);
		if(!strlen(tmp)) return SCM(playerid, COL_SYN, "Syntax: /ban <FullName> <Days(1-60 , 0= Perementaly Ban)> <UseIP(1=Yes 0=No)> <Reason>");
		new UseIP = strval(tmp);
		if(UseIP != 1 && UseIP != 0) return SCM(playerid, COLOR_ARIAIE, "UseIP must be 0 or 1");
		tmp = strtokEx(cmdtext,idx);
		if(!strlen(tmp)) return SCM(playerid,COL_SYN,"Syntax: /ban <FullName> <Days(1-60 , 0= Perementaly Ban)> <UseIP(1=Yes 0=No)> <Reason>");
		BanPlayer(playerid, Fullname, days, tmp, UseIP);
		return 1;
	}
Код:
BanPlayer(playerid, taraf[], days, reason[], UseIP = 1)
{
    new Name[MAX_PLAYER_NAME];
	if(IsPlayerConnected(playerid)) format(Name, MAX_PLAYER_NAME, PINFO[playerid][pName]);
	else format(Name, MAX_PLAYER_NAME, "AdmBot");
	new tarafid = ReturnUserEx(taraf);
	if(IsPlayerConnected(tarafid))
	{
	    if(days != 0) PINFO[tarafid][pBanned] = 1;
	    else PINFO[tarafid][pBanned] = 2;
	    SaveKonVal(tarafid, "pBanned", PINFO[tarafid][pBanned]);
	    PINFO[tarafid][pBanDays] = days;
	    SaveKonVal(tarafid, "pBanDays", PINFO[tarafid][pBanDays]);
	    new bantime[200];
	    new sal, mah, rooz, saat, daqiqe, sanie;
		getdate(sal, mah, rooz);
		gettime(saat, daqiqe, sanie);
		sal -= 2000;
		format(bantime, 200, "%02d/%02d/%02d %02d:%02d:%02d", sal, mah, rooz, saat, daqiqe, sanie);
		strmid(PlayerInfo[tarafid][pBanTime],bantime,0,strlen(bantime),80);
		SaveKonStr(tarafid, "pBanTime", bantime);
		strmid(PlayerInfo[tarafid][pBannedBy],Name,0,strlen(Name),40);
		SaveKonStr(tarafid, "pBannedBy", Name);
		strmid(PlayerInfo[tarafid][pBanReason],reason,0,strlen(reason),128);
		SaveKonStr(tarafid, "pBanReason", reason);
		if(UseIP == 1)
		{
			if(days == 0)
			{
			    new query[256];
			    format(query, 256, "INSERT INTO `banneds` (`IP`,`BannedBy`,`BannedReason`,`bannedtime`)VALUES ('%s','%s','%s','%s')",PINFO[tarafid][pIp],Name,reason,bantime);
			    mysql_tquery(handle, query, "SendQuery", "");
			}
		}
		new stringt[300];
		if(days != 0) format(stringt, 300, "AdmCmd: %s has been banned by admin %s for %i days reason: %s",taraf,Name,days,reason);
		else format(stringt, 300, "AdmCmd: %s has been permanentaly banned by admin %s reason: %s",taraf,Name,reason);
		SendClientMessageToAll(COLOR_LIGHTRED, stringt);
		KickWithMessage(tarafid, COLOR_LIGHTRED, "You have been banned.");
	}
	else
	{
	    new query[256];
		format(query, 256, "SELECT * FROM `users` WHERE pName='%s'",taraf);
		mysql_tquery(handle, query, "BanOfflinePlayer", "isisi", playerid, taraf, days, reason, UseIP);
	}
	return 1;
}
UnBanPlayer(bannerid,taraf[])
{
	new query[512];
	format(query,512,"SELECT * FROM `users` WHERE pName='%s'",taraf);
	mysql_tquery(handle, query, "OnPlayerUnBan", "is", bannerid, taraf);
	return 1;
}
Public:OnPlayerUnBan(bannerid, taraf[])
{
	new rows = cache_get_row_count(handle);
	if(!rows) return SCM(bannerid, COLOR_GG,"That player isn't exists.");
	new ip[50];
	cache_get_row(0, 114, ip, handle, 50);
    new query[512];
	format(query,512,"UPDATE `users` SET pBanned='0' WHERE pName='%s'",taraf);
	mysql_function_query(handle,query,false,"SendQuery","");
	format(query,512,"DELETE FROM `banneds` WHERE IP='%s'",ip);
	mysql_function_query(handle,query,false,"SendQuery","");
	SCM(bannerid,COLOR_ARIAIE,"Player ba movafaqiat unban shod.");
	ReadAccountBar();
	return 1;
}
CheckIfPBanned(playerid)
{
	new query[256];
	format(query,256,"SELECT * FROM `banneds` WHERE IP='%s'",PlayerInfo[playerid][pIp]);
	mysql_function_query(handle,query,true,"CheckPBanned","i",playerid);
	return 1;
}
forward CheckPBanned(playerid);
public CheckPBanned(playerid)
{
	if(!cache_get_row_count(handle)) {return 0;}
	PBANNED[playerid] = 1;
	new bannedby[40],banreason[1000],bannedtime[260];
	cache_get_row(0,1,bannedby,handle,40);
	cache_get_row(0,2,banreason,handle,1000);
	cache_get_row(0,3,bannedtime,handle,260);
	new sttr[200];
	for(new i = 0;i<100;i++) SCM(playerid,COLOR_WHITE," ");
	format(sttr,200,"You are Permanentaly banned from this server by %s",bannedby);
	SCM(playerid,COLOR_BAN,sttr);
	format(sttr,200,"Ban Reason: %s (%s)",banreason,bannedtime);
	SCM(playerid,COLOR_BAN,sttr);
	KickWithMessage(playerid,COLOR_BAN,"Type a unban info and Send it to Ariaie UnBan Topic.");
	return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)