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

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

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

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

Анти-Чит на оружие v.1.0.1

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

Semikola

Умник
Здравствуйте, пользователи Pawno-Info.
Сегодня я хочу вам представить Атни-Чит на оружие.
Данный Анти-Чит рассчитан на моды основанные на RLS.

ВАЖНО!
PHP:
Что бы данный анти-чит работал. Выдача всего серверного оружие должна производится в переменные
в enum pInfo
{
pSlot1,pSlot2,pSlot3..pSlot10,pSlotAmmo1,pSlotAmmo2,pSlotAmmo3..pSlotAmmo10
}
Обычно для этого в RLS есть функция GiveRichGun(playerid,weaponid,ammo);

Если у вас есть:
PHP:
public AntiCheat()
то в него вставляем следующий код:

PHP:
//---------------------------------------------------------------[Анти-Чит на оружие]
for(new i; i<GetMaxPlayers(); i++)
{
	if(!IsPlayerConnected(i)) continue;
	new gun;
	gun = GetPlayerWeapon(i);
	if(IsAColdGun(gun))
	{
		//pSlot1
		if(PlayerInfo[i][pSlot1] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6681");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6681",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	
	else if(IsAPistol(gun))
	{
		//pSlot2
		if(PlayerInfo[i][pSlot2] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6682");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6682",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	else if(IsAShotgun(gun))
	{
		//pSlot3
		if(PlayerInfo[i][pSlot3] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6683");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6683",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	else if(IsAMachineGun(gun))
	{
		//pSlot4
		if(PlayerInfo[i][pSlot4] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6684");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6684",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	else if(IsAnAssault(gun))
	{
		//pSlot5
		if(PlayerInfo[i][pSlot5] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6685");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6685",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	else if(IsARifle(gun))
	{
		//pSlot6
		if(PlayerInfo[i][pSlot6] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6686");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6686",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	else if(IsAHeavyAssault(gun))
	{
		//pSlot7
		if(PlayerInfo[i][pSlot7] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6687");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6687",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	else if(IsAGrenade(gun))
	{
		//pSlot8
		if(PlayerInfo[i][pSlot8] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6688");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6688",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	else if(IsAStuff1(gun))
	{
		//pSlot9
		if(PlayerInfo[i][pSlot9] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6689");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6689",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
	else if(IsAGirlsStuff(gun))
	{
	        //pSlot10
		if(PlayerInfo[i][pSlot10] != gun)
		{
			SendClientMessage(i,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве. Код: #6690");
			GetPlayerName(i,CheaterName,sizeof(CheaterName));
			format(string,sizeof(string),"%s был кикнут по подозрению на чит-оружие. Код: #6690",CheaterName);
			TalkForAllAdmin(COLOR_YELLOW2,string);
			Kick(i);
		}
	}
			
}
//---------------------------------------------------------------[Анти-Чит на оружие]
А если нет, то
PHP:
Создаем
public AntiCheat()
{}
и вставляем весь выше приведенный код!
и + добавить к основному
PHP:
ко всем new добавляем:
new UpdatedAntiCheatInfo;
Далее идем в
PHP:
public OnGameModeInit()
И прописываем там:
PHP:
UpdatedAntiCheatInfo = SetTimer("AntiCheat",2000,true);
Для сообщения о читерстве всей администрации добавить:
PHP:
stock TalkForAllAdmin(color,string[])
{
for(new x; x<GetMaxPlayers(); x++)
{
	if(IsPlayerConnected(x))
	{
		if(PlayerInfo[x][pAdmin] >= 1)
		{
			SendClientMessage(x,color,string);
		}
	}
}
}
Так же обязательно добавить:
PHP:
stock IsAColdGun(gunid)
{
	switch(gunid)
	{
	    case 2..9: return 1;
	}
	return 0;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу