[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
проблема с античитом на деньги
Дата: 23.03.2010, Вторник, 07:30:52 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 132
Репутация: 6+
вот античит нашёл

Тут и так всё понятно: читерство - это зло, а со злом надо бороться
Начнем нашу борьбу с объявления массива, в котором мы будем хранить количество денег всех игроков:
Code
new plmoney[MAX_PLAYERS];//В самый верх мода, т. к. это глобальный массив

В public OnPlayerConnect засунем это:
Code
plmoney[playerid] = 0;

Теперь созданим "паблик", который будет давать деньги "от имени сервера":
Code
//Засуньте куда-угодно, но НЕ в другой "паблик"
public GivePlayerMoneyLegal(playerid,money)
{
if(money > 0)//Если мы даем деньги
{
plmoney[playerid] += money;//Сначала добавим это кол-во денег в наш массив
GivePlayerMoney(playerid,money);//И дадим эту сумму игроку
return 1;//Неважно, что эта функция будет возвращать, пусть это будет "тру"
}
else//Еслы мы забираем деньги
{
GivePlayerMoney(playerid,money);//Сначала заберем эту сумму игроку
plmoney[playerid] += money;//В наш массив добавим это кол-во денег
}
return 1;//Неважно, что эта функция будет возвращать, пусть это будет "тру"
}

Т. к. это "паблик", его нужно "профорвардить", засунем эту строку над нашим пабликом:
Code
forward GivePlayerMoneyLegal(playerid,money);

Теперь найдем OnPlayerUpdate, и засунем туда это:
Code
if(GetPlayerMoney(playerid) > plmoney[playerid])//Если у игрока на руках денег больше, чем должно быть... Значит он их читернул.
{
new str[64];//Переменная, в которую мы запишем наше уведомление о обнаружении читера
new plname[MAX_PLAYER_NAME];//Переменная, в которую мы поместим имя читера
GetPlayerName(playerid,plname,sizeof(plname));//Узнаем имя нашего читера
format(str,sizeof(str),"АНТИЧИТ: %s был кикнут. Причина: Читерство ($%d)",plname,GetPlayerMoney(playerid) - plmoney[playerid]);//Поместим всю нужную информацию в нашу переменную
SendClientMessageToAll(0xF0624496,str);//Опозорим этого игрока на весь сервер
Kick(playerid);//И кикнем его
}

Всё что остаётся сделать - заменить стандартную GivePlayerMoney на созданную нами GivePlayerMoneyLegal.
Если вы всё сделали правильно - то читерство денег на вашем сервере должно прекратиться.

ВАЖНО: этот код так-же будет кикать людей, которые выиграли деньги в казино или заработали их при помощи прыжков/стантов, т. к. все вмешательства в денежную сумму игрока со стороны сам

установил и он работает кикает за деньги читерские но там написано замень все гивплауермани на гивплауерманилегал.Я все заменил но меня всёровно на сервере кикает сразу в чём баг этого античита???

Добавлено (23.03.2010, 07.30)
---------------------------------------------
вобщем античит норм сделал,но минемально в собейте делать 500 баксов а античит кикает после трёх раз нажатия на 500,как сделать что бы сразу кикало после первой попытки считить?

  • Страница 1 из 1
  • 1
Поиск: