Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Не банит в оффлайне

Статус
В этой теме нельзя размещать новые ответы.

Den4ik-Den

Умник
Здравствуйте,у меня есть команда /offban,я ее перевел на командный процессор Pawn.CMD и когда я ее перевел,я не мог забанить ни одного игрока в оффлайне
Вот код команды на Pawn.CMD
PHP:
cmd:offban(playerid,params[])
{
	if(pData[playerid][pAdmin] < 5) return 1;
	{
		new zStr[128];
  		if(sscanf(params,"sis",params[0],params[1],params[2])) return SendPods(playerid, "/offban (ник игрока) [К-во дней] (причина)");
   		new account[24]; format(account, 24, "%s", params[0]);
		if(params[1] < 1 || params[1] > 30) return SendClientMessage(playerid,CGRAY,"Неверное к-во дней");
		sql_escape_string(snow, account,account, 24);
		format(zStr,sizeof(zStr),"SELECT `id`,`admin` FROM `aplayerakk` WHERE `nickname` = '%s'",account);
		new Result:r = sql_query(snow, zStr, QUERY_CACHED);
		if(!sql_num_rows(r)) return SendClientMessage(playerid, COLOR_GREY, "Аккаунты не найдены");
		new id = sql_get_field_int(r, 0);
		new admin = sql_get_field_int(r, 1);
		sql_free_result(r);
		if(admin == 8) return SendPods(playerid, "/offban [name]");
		if(admin > pData[playerid][pAdmin]) return SendClientMessage(playerid,CGRAY,"Вы не можете забанить администратора выше уровнем");
		if(GetPlayerID(account) != -1)
		{
			//new stringer[256];
			//format(stringer,sizeof(stringer),"/ban %d %d %s",GetPlayerID(account), time, tmp);
			//OnPlayerCommandText(playerid,stringer);
			SendClientMessage(playerid,-1,"Игрок онлайн,используйте /ban");
			//callcmd::ban(playerid,"GetPlayerID(account),params[1],params[2]")
			return 1;
		}
		format(zStr,sizeof(zStr),"SELECT `takeid` FROM `ban` WHERE `takeid` = '%d'",id);
		new Result:zBan = sql_query(snow, zStr, QUERY_CACHED);
		if(sql_num_rows(zBan)) return SendClientMessage(playerid, COLOR_GREY, "Данный игрок забанен");
		sql_free_result(zBan);
		new stringer[312];
		format(stringer, sizeof(stringer), "Администратор %s дал оффлайн бан игроку %s на %d дней. Причина: %s",pData[playerid][pNickname],account,params[1],params[2]);
		SendLog(stringer);
		format(zStr,sizeof(zStr),"%s получил оффлайн бан от Администратора %s на %d дней. Причина: %s",account, pData[playerid][pNickname],params[1],params[2]);
		SendClientMessageToAll(COLOR_LIGHTRED,zStr);
		new query[250];
		params[1] += gCurDay;
		if(!params[1]) params[1] += gCurDay + (365 * 99);
		format(query,sizeof(query),"INSERT INTO `ban` VALUES ('','%d','%d','%d','%s')",pData[playerid][pMysqlID],id,params[1],params[2]);
		sql_query(snow, query);
	}
	return 1;
}
А вот на стандартном
PHP:
	if(!strcmp(cmd,"/offban",true))
	{
	   	if(pData[playerid][pAdmin] < 5) return 1;
		{
		   	new zStr[128];
		   	tmp = strtok(cmdtext, idx);
		   	if(!strlen(tmp)) return SendPods(playerid, "/offban (ник игрока) [К-во дней] (причина)");
		   	new account[24]; format(account, 24, "%s", tmp);
		   	tmp = strtok(cmdtext, idx);
			if(!strlen(tmp) || !isNumeric(tmp)) return SendPods(playerid, "/offban (ник игрока) [К-во дней] (причина)");
			new time = strval(tmp);
			if(time < 1 || time > 30) return SendClientMessage(playerid,CGRAY,"Неверное к-во дней");
			tmp = strrest(cmdtext, idx);
			if(!strlen(tmp)) return SendPods(playerid, "/offban (ник игрока) [К-во дней] (причина)");
			sql_escape_string(snow, account,account, 24);
			format(zStr,sizeof(zStr),"SELECT `id`,`admin` FROM `aplayerakk` WHERE `nickname` = '%s'",account);
			new Result:r = sql_query(snow, zStr, QUERY_CACHED);
			if(!sql_num_rows(r)) return SendClientMessage(playerid, COLOR_GREY, "Аккаунты не найдены");
			new id = sql_get_field_int(r, 0);
			new admin = sql_get_field_int(r, 1);
			sql_free_result(r);
 			if(admin == 8) return SendPods(playerid, "/offban [name]");
 			if(admin > pData[playerid][pAdmin]) return SendClientMessage(playerid,CGRAY,"Вы не можете забанить администратора выше уровнем");
   			if(GetPlayerID(account) != -1)
			{
    			new stringer[256];
				format(stringer,sizeof(stringer),"/ban %d %d %s",GetPlayerID(account), time, tmp);
				OnPlayerCommandText(playerid,stringer);
				return 1;
			}
			format(zStr,sizeof(zStr),"SELECT `takeid` FROM `ban` WHERE `takeid` = '%d'",id);
			new Result:zBan = sql_query(snow, zStr, QUERY_CACHED);
			if(sql_num_rows(zBan)) return SendClientMessage(playerid, COLOR_GREY, "Данный игрок забанен");
			sql_free_result(zBan);
	  		new stringer[255];
			format(stringer, sizeof(stringer), "Администратор %s дал оффлайн бан игроку %s на %d дней. Причина: %s",pData[playerid][pNickname],account,time,tmp);
			SendLog(stringer);
			format(zStr,sizeof(zStr),"%s получил оффлайн бан от Администратора %s на %d дней. Причина: %s",account, pData[playerid][pNickname],time,tmp);
			SendClientMessageToAll(COLOR_LIGHTRED,zStr);
			new query[250];
			time += gCurDay;
			if(!time) time += gCurDay + (365 * 99);
			format(query,sizeof(query),"INSERT INTO `ban` VALUES ('','%d','%d','%d','%s')",pData[playerid][pMysqlID],id,time,tmp);
			sql_query(snow, query);
		}
	}
Помогите пожалуйста
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу