SA-MP Forums Archive
Создание Античита - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Создание Античита (/showthread.php?tid=111392)

Pages: 1 2 3


Создание Античита - Jeka91 - 01.12.2009

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


Re: Создание Античита - heufix - 01.12.2009

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


Re: Создание Античита - MX_Master - 02.12.2009

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

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


Re: Создание Античита - MX_Master - 02.12.2009

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

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

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;
}



Re: Создание Античита - Serafim_sd - 02.12.2009

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



Re: Создание Античита - MX_Master - 03.12.2009

все верно

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


Re: Создание Античита - Jeka91 - 03.12.2009

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


Re: Создание Античита - Serafim_sd - 03.12.2009

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


Re: Создание Античита - Jeka91 - 03.12.2009

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


Re: Создание Античита - MX_Master - 03.12.2009

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


Re: Создание Античита - isan - 03.12.2009

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


Re: Создание Античита - heufix - 04.12.2009

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


Re: Создание Античита - MX_Master - 04.12.2009

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


Re: Создание Античита - MX_Master - 04.12.2009

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

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


Re: Создание Античита - Serafim_sd - 04.12.2009

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


Re: Создание Античита - Riaz - 04.12.2009

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


Re: Создание Античита - MX_Master - 04.12.2009

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


Re: Создание Античита - Serafim_sd - 04.12.2009

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


Re: Создание Античита - CrunkBankS - 04.12.2009

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


Re: Создание Античита - Serafim_sd - 04.12.2009

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