PDA

Просмотр полной версии : [Поиск] OnPlayerWeaponShot



Kazoox
30.04.2016, 17:11
Приветствую. Хотелось бы поинтересоваться существует ли NOP/sob или что-то в этом роде для блокировки вызова паблика OnPlayerWeaponShot? Поиск не помог, подобного не нашёл.

DeimoS
30.04.2016, 21:06
Приветствую. Хотелось бы поинтересоваться существует ли NOP/sob или что-то в этом роде для блокировки вызова паблика OnPlayerWeaponShot? Поиск не помог, подобного не нашёл.

Нет, ибо этот коллбэк вызывается исключительно на стороне сервера. А NOP есть только на те функции, которые обращаются к игроку за информацией.

Kazoox
30.04.2016, 21:26
Нет, ибо этот коллбэк вызывается исключительно на стороне сервера. А NOP есть только на те функции, которые обращаются к игроку за информацией.

А как же тогда паблики OnPlayerGiveDamage и OnPlayerTakeDamage? Многие собы "блокируют" их за счёт чего и обходят многие уныленькие античиты.

DeimoS
02.05.2016, 10:25
А как же тогда паблики OnPlayerGiveDamage и OnPlayerTakeDamage? Многие собы "блокируют" их за счёт чего и обходят многие уныленькие античиты.

Они и блокируются только потому, что, например:
- OnPlayerGiveDamage срабатывает тогда, когда клиент отправляет серверу пакет о том, что он (клиент) нанёс урон другому игроку (отсюда и появились все эти читы с фейковым уроном игрокам)
- OnPlayerTakeDamage срабатывает тогда, когда сервер отправляет игроку, которому был нанесён урон, пакет с, собственно, синхронизацией этого урона. NOP позволяет такой пакет игнорировать, тем самым сервер не получит подтверждения о том, что пакет получен и проигнорирует его, посчитав, что он просто утерялся (а утеря пакетов - это норма для интернета).

То бишь, в обоих случаях сервер работает с клиентом игроков, обмениваясь с ним информацией, тем самым позволяя игроку эту информацию подменить/проигнорировать. Это как если деньги игрока постоянно узнавать через GetPlayerMoney и записывать их в переменную для хранения, то бишь, этим открыть дорогу для читеров (такие деньги можно будет той же артманией взломать).

Kazoox
02.05.2016, 11:57
Они и блокируются только потому, что, например:
- OnPlayerGiveDamage срабатывает тогда, когда клиент отправляет серверу пакет о том, что он (клиент) нанёс урон другому игроку (отсюда и появились все эти читы с фейковым уроном игрокам)
- OnPlayerTakeDamage срабатывает тогда, когда сервер отправляет игроку, которому был нанесён урон, пакет с, собственно, синхронизацией этого урона. NOP позволяет такой пакет игнорировать, тем самым сервер не получит подтверждения о том, что пакет получен и проигнорирует его, посчитав, что он просто утерялся (а утеря пакетов - это норма для интернета).

То бишь, в обоих случаях сервер работает с клиентом игроков, обмениваясь с ним информацией, тем самым позволяя игроку эту информацию подменить/проигнорировать. Это как если деньги игрока постоянно узнавать через GetPlayerMoney и записывать их в переменную для хранения, то бишь, этим открыть дорогу для читеров (такие деньги можно будет той же артманией взломать).

Ээмм, OnPlayerWeaponShot так же вызывается когда сервер получает пакет от игрока с информацией об выстреле и его так же по сути можно блокировать, просто это никому не надо, получается так?

ziggi
03.05.2016, 00:21
Ээмм, OnPlayerWeaponShot так же вызывается когда сервер получает пакет от игрока с информацией об выстреле и его так же по сути можно блокировать, просто это никому не надо, получается так?

Конечно это никому не надо, какой в этом смысл? Чтобы не отправить информацию о выстреле, достаточно не стрелять.

DeimoS
03.05.2016, 10:12
Ээмм, OnPlayerWeaponShot так же вызывается когда сервер получает пакет от игрока с информацией об выстреле и его так же по сути можно блокировать, просто это никому не надо, получается так?

Ты путаешь коллбэки/функции, которые отправляют информацию читеру и которую информацию от читера принимают.
Первые можно заблокировать, но подделывать данные бессмысленно, ибо ты их подделаешь только для себя.
А вторые блокировать бессмысленно (не во всех случаях, но с OnPlayerWeaponShot именно тот случай), ибо этим ты, по сути, просто отключаешь синхронизацию определённых действий (но это в большинстве случаев легко отлавливается со стороны сервера)

OnPlayerWeaponShot срабатывает только при выстреле. Заблокировав отправку пакетов о выстреле ты убьёшь синхронизацию своих выстрелов для других игроков => и урон от этих выстрелов будет сервером проигнорирован (точнее, вообще не будет отправлен серверу). Какой в этом толк для читера?
А вот раз OnPlayerWeaponShot срабатывает при получении пакета о выстреле, значит и информацию с пакетом можно подделать, отправив ложный ID оружия, например. Но это всё легко отлавливается