Создание Античита
#1

Помогите сделать Античит для Ролеплей сервера на деньги, чтобы деньги уменьшались когда их пытаються начитерить!
Reply
#2

Что тебе мешает в строку "Поиск" or "Search" Ввести "Anti money cheat" ?
Reply
#3

Самый простой античит на деньги - создать глобальный массив с кол-вом элементов, равным макс. кол-ву игроков. В нем будет хранится текущее кол-во денег каждого игрока. В моде при даче денег, нужно изменять/проверять значение денег для нужного игрока в этом массиве.

В качестве дополнения можно установить таймер на функцию, которая к примеру, каждые 5 сек, будет выставлять игроку его реальное кол-во денег, которое записано в глобальном массиве.
Reply
#4

может кто может и лучше, и меньше написать, не знаю, мой античит на деНги такой. НЕПРОВЕРЕНО ! (:

Код:
//
// вставить в начало мода
//

stock playerMoney[MAX_PLAYERS];

stock ac_GivePlayerMoney ( playerid, money )
{
	playerMoney[playerid] += money;
	
	ResetPlayerMoney(playerid);
	GivePlayerMoney( playerid, playerMoney[playerid] );
}

stock ac_ResetPlayerMoney ( playerid )
{
	playerMoney[playerid] = 0;
	ResetPlayerMoney(playerid);
}

stock ac_GetPlayerMoney ( playerid )
{
	return playerMoney[playerid];
}

forward updatePlayersMoney();
public updatePlayersMoney()
{
	for ( new i = 0; i < MAX_PLAYERS; i++ )
		if ( IsPlayerConnected(i) )
		{
			ResetPlayerMoney(i);
			GivePlayerMoney( i, playerMoney[i] );
		}
}

#define GivePlayerMoney ac_GivePlayerMoney
#define ResetPlayerMoney ac_ResetPlayerMoney
#define GetPlayerMoney ac_GetPlayerMoney




public OnGameModeInit ()
{
	// каждые 10 сек каждому онлайн игроку будет выставлено его
	// реальное кол-во денег, которое хранится на сервере
	SetTimer( "updatePlayersMoney", 10000, 1 );

	return 1;
}
Reply
#5

тоже самое и со здоровьем и бронью
массив здоровья и брони и функция на таймере которая проверяет кол-во здоровья и брони у игрока у игрока.
Если у игрока здоровья больше - присваивает значение из массива, если меньше (например поранился) то присваивает ячейке массива кол-во здоровья игрока.
НО этот метод не определит заморозку здоровья...
Reply
#6

все верно

также можно посоветовать вместо функций stock использовать макросы #define, т.к. это уменьшает скорость выполения действий
Reply
#7

помогло то помогло вот токо когда я передаю деньги /pay тоже снимаються и зарплата и тд.
Помогите что делать
Reply
#8

ммм) ты должен будешь изменить функцию GivePlayerMoney) так чтобы эта функция не только давала денег игроку но и прибавляла их к числу в массиве)
Reply
#9

есть Skype?обьясни плиз!
Reply
#10

Jeka91
уже все разжевали и подали на блюдечке. на лицо явное непонимание основ скриптинга.
Reply
#11

в моем плагине встроеный античит на деньги
Reply
#12

Quote:
Originally Posted by mysan[playerid
; ]
в моем плагине встроеный античит на деньги
Щяс напишет где скачать...
Reply
#13

Мне жаль тока, что сам самп клиент не мониторит изменение своих же переменных сторонними процессами. Было бы прикольно, если п клиент создавал резервные копии значений своих переменных постоянно в разных местах, чтобы собейты не могли уловить первоисточник.
Reply
#14

Quote:
Originally Posted by Serafim_sd
тоже самое и со здоровьем и бронью
массив здоровья и брони и функция на таймере которая проверяет кол-во здоровья и брони у игрока у игрока.
Если у игрока здоровья больше - присваивает значение из массива, если меньше (например поранился) то присваивает ячейке массива кол-во здоровья игрока.
НО этот метод не определит заморозку здоровья...
кста в моем примере, это скорее не античит на деньги, это вариант хранения клиентских переменных на сервере.

Я помню кто-то с инглиш форума подал идею отнимать у игрока 1.0 жизни и через короткое время снова проверять значение жизни игрока. Если оно увеличилось на 1.0 или больше, то это смахивает на годмод. НО в игре же полно всяких точек общепита, которые не контролируются сервом, что ЯВНО уменьшает шансы найти читера.
Reply
#15

ммм мысль) а если игрок тупо на Esc? у него же не отмимется... а точки общепита отсекаются как я писал выше, т.е. если у игрока больше здоровья то присваивается значение с сервера. а так можно например раз в минуту отнимать 1 жизни и смотреть какое значение вернется. так что точки общепита не уменьшают эти шансы)
Reply
#16

Собейт устанавливает хп на определённое количество.
Reply
#17

чувствуется, что ты им пользовался (: вот скажи, как к примеру можно проверять игрока, чтобы спалить его с собейтом, да даже к примеру с годмодом?
Reply
#18

даже если и устанавливает... допустим на 78%, мы берем отнимаем 1%, проверяем сколько осталось, если меньше 78% (даже если не 77 а еще меньше, если например игрока ранят) то игрок не чит, а если стало вновь 78 то бан)
Reply
#19

А вы думали про то что деньги получить в казино можно или за трюки, вот как сделать анти чит чтоб эти деньги зачислялись? а то получается как за чит считает
Reply
#20

да никак, кореш) деньги за трюки банально отключить модом, а в казино деньги будут просто сбрасываться.
или же можно сделать исключение для казино (если игрок в интерьере то учитывать эти деньги) НО игрок сможет прокачать деньги атманью простой зайдя в казино.... можно вообще отключить входы в интерьеры а сделать их самому)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)