GetPlayerWeaponData
#1

Многие наверное знают баг данной функции что иногда когда игрок сидит в машине она показывает что у игрока есть оружие и патроны которых в действительности нету. Из за того что существует данный баг у меня не получается сделать корректно анти чит на оружие, он всегда срабатывает ложно при контакте игрока с машиной. Я пробовал отключать проверку на оружие когда игрок находится в машине но тогда игроки спокойно читерят себе оружие и стреляют с пассажирского седения. Конечно когда они покидают тс античит их ловит, это конечно хорошо но то что они убивают игроков с машины это довольно уж большая проблемка. Может есть какой то фикс данной функции или же кто то знает как сделать что бы она не срабатывала ложно?
Reply
#2

Пусть убьёт игрока - тем самым он подтвердит, что у него есть это запрещённое оружие. Лучше предоставить неудобство одному, чем всему серверу, имхо.
Reply
#3

Quote:
Originally Posted by Silicium
Посмотреть сообщение
Пусть убьёт игрока - тем самым он подтвердит, что у него есть это запрещённое оружие. Лучше предоставить неудобство одному, чем всему серверу, имхо.
Можно же ещё с выстрела. Через OnPlayerTakeDamage, например. И никто не успеет умереть.
Reply
#4

Quote:
Originally Posted by DrumYum
Посмотреть сообщение
Можно же ещё с выстрела. Через OnPlayerTakeDamage, например. И никто не успеет умереть.
OnPlayerWeaponShot тогда уж)
Reply
#5

Quote:
Originally Posted by Makar93
Посмотреть сообщение
OnPlayerWeaponShot тогда уж)
с транспорта он и не работает
Reply
#6

А че Getplayerweapon уже не модно? Вроде как в авто определяет даже теперь
Reply
#7

Quote:
Originally Posted by Jon_De
Посмотреть сообщение
А че Getplayerweapon уже не модно? Вроде как в авто определяет даже теперь
Есть такой чит что у игрока оружие в руках но GetPlayerWeapon показывает что оружия в руках нету. В данном случае только GetPlayerWeaponData помогает но в транспорте не правильно работает....
Reply
#8

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
Есть такой чит что у игрока оружие в руках но GetPlayerWeapon показывает что оружия в руках нету. В данном случае только GetPlayerWeaponData помогает но в транспорте не правильно работает....
OnPlayerGiveDamage?
Reply
#9

Quote:
Originally Posted by Eims
Посмотреть сообщение
OnPlayerGiveDamage?
Не думаю что это решение так как хочу сразу наказывать игрока за читы а не только после того как он начнет наносить кому то урон..
Reply
#10

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
Не думаю что это решение так как хочу сразу наказывать игрока за читы а не только после того как он начнет наносить кому то урон..
Ну тогда придётся пройтись в гости к каждому игроку SA-MP и удалить у них различные NOP'ы, дабы можно было спокойно обойтись стандартными возможностями.
Да и кто мешает OnPlayerGiveDamage использовать только когда игрок в авто?
И почему так важно сразу наказывать игрока? Ну наколдовал он себе миниган в авто и что? Он же не мешает никому этим, пок не начнёт убивать. А уж как начнёт, сразу накажем
Reply
#11

Quote:
Originally Posted by Eims
Посмотреть сообщение
Ну тогда придётся пройтись в гости к каждому игроку SA-MP и удалить у них различные NOP'ы, дабы можно было спокойно обойтись стандартными возможностями.
Да и кто мешает OnPlayerGiveDamage использовать только когда игрок в авто?
И почему так важно сразу наказывать игрока? Ну наколдовал он себе миниган в авто и что? Он же не мешает никому этим, пок не начнёт убивать. А уж как начнёт, сразу накажем
Если он начнет стрелять он по любом успеет убить игрока. На моем сервере если игрок умирает он теряет всю статистику аккаунта, оружие, деньги и ему придется все начинать по новой.
Reply
#12

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
Если он начнет стрелять он по любом успеет убить игрока. На моем сервере если игрок умирает он теряет всю статистику аккаунта, оружие, деньги и ему придется все начинать по новой.
Делов то, суём игроков в одну команду = урон нанести не могут.
Работаем с новыми калбеками, имеем серверную жизнь. Если игрок начитерил оружие, то при срабатывании калбека можно сразу наказать и урон не выставлять.
Reply
#13

Quote:
Originally Posted by White_116
Посмотреть сообщение
Делов то, суём игроков в одну команду = урон нанести не могут.
Работаем с новыми калбеками, имеем серверную жизнь. Если игрок начитерил оружие, то при срабатывании калбека можно сразу наказать и урон не выставлять.
Коктейль молотова, граната, дым ведь не будут наносить урон игрока все равно?

Будет проблема с зачислением убийце статистики так как в таком случае killerid == INVALID_PLAYER_ID
Reply
#14

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
Если он начнет стрелять он по любом успеет убить игрока. На моем сервере если игрок умирает он теряет всю статистику аккаунта, оружие, деньги и ему придется все начинать по новой.
Эмм, при первом же пакете с уроном от читера узнаешь, что у него читы. Паблик вызывается не при убийстве, а при любом нанесении урона игроком игроку. Хотя с тем числом NOP'ов, что сейчас есть у читеров, одним каким-то пабликом не обойтись. Тут нужна комплексная защита

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
Коктейль молотова, граната, дым ведь не будут наносить урон игрока все равно?

Будет проблема с зачислением убийце статистики так как в таком случае killerid == INVALID_PLAYER_ID
Отслеживаем нажатие кнопки выстрела и проверяем какое оружие у игрока в руках. Если, например, граната запрещена и у игрока она имеется - отбиваем её и сбиваем анимацию броска. Но опять же, NOPы дают о себе знать...
Reply
#15

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
Коктейль молотова, граната, дым ведь не будут наносить урон игрока все равно?
Брехня всё это, в Z всё хорошо работает, не то что в E.

Quote:
Originally Posted by Kolstin
Посмотреть сообщение
Будет проблема с зачислением убийце статистики так как в таком случае killerid == INVALID_PLAYER_ID
А зачем вообще игрока убивать?
Reply
#16

Quote:
Originally Posted by White_116
Посмотреть сообщение
Брехня всё это, в Z всё хорошо работает, не то что в E.

А зачем вообще игрока убивать?
Значить я не правильно понял что вы имели введу в этом посте: http://forum.sa-mp.com/showpost.php?...3&postcount=12

Я понял это так:
- Устанавливаем обоим игрокам одинаковые SetPlayerTeam
- Создаем новый колбек где будем отымать хп игроку в зависимости от ид оружия. Demage(playerid=ид_кому_нанесем_урон, targetid=ид_кто_нас_урон, weaponid=оружие_с_которого_стреляли)
- В колбеке Demage мы будем проверять выдавали ли мы игроку оружие и если не выдавали наказываем, а если выдавали наносим урон.
- Колбек Demage мы будем пропускать через OnPlayerWeaponShot что бы узнать с какого оружия стреляют, по кому и кто стреляет.
- Баги: Не будет анимаций стандартных при уроне, не будет урона от всего оружия которое не стреляет(гранаты, ракетницы, рукопашное оружие, кулак...), OnPlayerWeaponShot не вызывается в машине на сколько я понял(могу ошибатся).
Reply
#17

OnPlayerTakeDamage - для взрывов и пулемёта у транспорта.
А для всего остального есть OnPlayerGiveDamage.
OnPlayerWeaponShot - для того, чтобы бы античит от патронов сделать. Сделал 2 выстрела а значения старые или даже большие = кик.
Quote:

Баги: Не будет анимаций стандартных при уроне

Будут. ИМХО, их вообще нужно было сделать опциональными, включить/выключить, так как по факту синхронизируется 1/3 анимации и переходит в "скольжение"
Reply
#18

Quote:
Originally Posted by White_116
Посмотреть сообщение
OnPlayerTakeDamage - для взрывов и пулемёта у транспорта.
А для всего остального есть OnPlayerGiveDamage.
OnPlayerWeaponShot - для того, чтобы бы античит от патронов сделать. Сделал 2 выстрела а значения старые или даже большие = кик.
Будут. ИМХО, их вообще нужно было сделать опциональными, включить/выключить, так как по факту синхронизируется 1/3 анимации и переходит в "скольжение"
Разве если у игроков одинаковая SetPlayerTeam то когда по игроку стреляют у него анимации боли проигрываются?
Reply
#19

Меня тоже интересует этот вопрос. Есть у меня одна идея только вот возможности потестировать нет. Если ф-я(GetPlayerWeaponData) вернет ложную информацию и я отниму все оружия у игрока(ResetPlayerWeapons) и снова вызову GetPlayerWeaponData ф-ю, ф-я вернет ложную информацию или нет?
Reply
#20

Quote:
Originally Posted by Johurt
Посмотреть сообщение
Меня тоже интересует этот вопрос. Есть у меня одна идея только вот возможности потестировать нет. Если ф-я(GetPlayerWeaponData) вернет ложную информацию и я отниму все оружия у игрока(ResetPlayerWeapons) и снова вызову GetPlayerWeaponData ф-ю, ф-я вернет ложную информацию или нет?
Все будет по нулям.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)