По этой системе АМХ мне нужно, чтобы всем игрокам выводилось сообщение о том, что этот игрок МХ. Но при любом использовании GetLocalPlayer все попытки высветить текст совершаются локально на компьютере МХшника. Как решить эту проблему?

Принятый ответ

Решил проблему следующим путем: при несовпадении данных в Memory, заставляем читера выделить специального скрытого в тумане войны юнита, а в другом триггере по событии выделения пишем, что GetTriggerPlayer() - МХшник, и только потом кикаем его.
quq_CCCP:
Для бана нужна работа с хост ботом
Ты неправильно понял. Если люди по Гарене играют, то они должны знать, что игрок отключается по неуважительной причине, чтобы сразу его забанить и потом не париться с ним. Бан-то локальный в Гарене, не то что на хост-боте.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
32
7 лет назад
0
Никак, ненужно выводить никаких ников, мхашник может на своей машине выключать все это, десинх и все.
2
15
7 лет назад
2
Никак, ненужно выводить никаких ников, мхашник может на своей машине выключать все это, десинх и все.
И как тогда дать игрокам понять, что игрок именно ливнул за МХ, а не по любой другой причине?
0
32
7 лет назад
0
Зачем?
Мх = нефиг делать, те кто постоянно вылетают без причины, будут грешить на мх а не на античит, что наруку всем разумным картоделам...
0
15
7 лет назад
0
Зачем?
Мх = нефиг делать, те кто постоянно вылетают без причины, будут грешить на мх а не на античит, что наруку всем разумным картоделам...
Они будут грешить на недоработку в карте, а МХ у них как в крови. К тому же, лучше кикнуть один раз и забанить, чем давать ему играть снова с надеждой на то, что он не читер?
0
20
7 лет назад
Отредактирован biridius
0
синхронизация данных? где-то в середине
типо того
function SyncInt takes player p, integer val returns integer
	if (GetLocalPlayer() == p) then
		call StoreInteger(cache, "", "", val)
	endif
	call TriggerSyncStart()
	if (GetLocalPlayer() == p) then
		call SyncStoredInteger(cache, "", "")
	endif
	call TriggerSleepAction(2.)
	call TriggerSyncReady()
	return GetStoredInteger(cache, "", "")
endfunction

//...
if cheese then
	local player p = GetLocalPlayer()
	local integer local_val = GetPlayerId(p)
	local integer result_var = SyncInt(p, local_val)
	call BJDebugMsg("Player "+GetPlayerName(Player(result_var))+" is cheating")
else
endif
0
32
7 лет назад
Отредактирован quq_CCCP
0
Игрок то видит что его кикает за мх. Для бана нужна работа с хост ботом, простите не верю что ваш уровень, у вас есть кодеры на с++ хост бот на сервере?
Тем более не советую афишировать наличие в карти античитов, антивзломов и так далее, будет меньше головной боли.
biridius:
синхронизация данных? где-то в середине
типо того
function SyncInt takes player p, integer val returns integer
	if (GetLocalPlayer() == p) then
		call StoreInteger(cache, "", "", val)
	endif
	call TriggerSyncStart()
	if (GetLocalPlayer() == p) then
		call SyncStoredInteger(cache, "", "")
	endif
	call TriggerSleepAction(2.)
	call TriggerSyncReady()
	return GetStoredInteger(cache, "", "")
endfunction

//...
if cheese then
	local player p = GetLocalPlayer()
	local integer local_val = GetPlayerId(p)
	local integer result_var = SyncInt(p, local_val)
	call BJDebugMsg("Player "+GetPlayerName(Player(result_var))+" is cheating")
else
endif
Во время дисинха, мы будем синхатся с читером?
Как бы не вылететь в след за ним, в момент обнаружения чита его уже нету в игре, что с ним синхать?
Без особых извращений данные в кеше очень легко правятся читерами, желаете чтобы в вашей карте был аналог ICCUP WINHACK?
0
20
7 лет назад
Отредактирован biridius
0
Глянул систему античита. ЯТП десинк вызывает создание юнита для локального игрока. Что мешает создавать юнита только для игрока номер N, а номер игрока для сообщения передавать (через синхрон данных) всем? И создавать юнита только после показа сообщения
0
32
7 лет назад
0
biridius:
Глянул систему античита. ЯТП десинк вызывает создание юнита для локального игрока. Что мешает создавать юнита только для игрока номер N, а номер игрока для сообщения передавать (через синхрон данных) всем? И создавать юнита только после показа сообщения
Есть идеи как получить от читера только доставерные пакеты, да и самого читера?
Передача данных будет осуществятся локально с его машины.
0
15
7 лет назад
0
Решил проблему следующим путем: при несовпадении данных в Memory, заставляем читера выделить специального скрытого в тумане войны юнита, а в другом триггере по событии выделения пишем, что GetTriggerPlayer() - МХшник, и только потом кикаем его.
quq_CCCP:
Для бана нужна работа с хост ботом
Ты неправильно понял. Если люди по Гарене играют, то они должны знать, что игрок отключается по неуважительной причине, чтобы сразу его забанить и потом не париться с ним. Бан-то локальный в Гарене, не то что на хост-боте.
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.