PDA

Просмотр полной версии : [Вопрос] Отправка фейк пули, или повторной пули.



Enrique_Black
19.04.2017, 13:33
Доброго времени суток ребзя, интересует если способ, возможно какой то вспомогательный плагин.

Который позволит отправить фейковую пулю, или повторную пулю после выстрела?

ziggi
19.04.2017, 14:01
С помощью функции SendBulletData из плагина YSF: http://forum.sa-mp.com/showthread.php?t=513499

Enrique_Black
19.04.2017, 14:06
С помощью функции SendBulletData из плагина YSF: http://forum.sa-mp.com/showthread.php?t=513499


Смотри какая ситуация, я стреляю поподаю обьект, мне нужно удалить этот обьект и выпустить еще одну пулю, которая полетит по тем же кординатам.

Но в SendBulletData есть поля hitid и hittype в которые я не знаю что указать в моем случае.

Что можно сделать в данном случае, обращаюсь к человеку с более высоким уровнем знаний..

Geebrox
19.04.2017, 15:24
SendBulletData(playerid, INVALID_PLAYER_ID, BULLET_HIT_TYPE_NONE, ...);

Это всего лишь пример того, что пуля не попадает ни в кого и ни на что.

Если за твоим объектом стоит какой нибудь игрок, либо еще какой нибудь объект то меняй hittype

Подробную информацию про hittype можешь найти тут (http://wiki.sa-mp.com/wiki/BulletHitTypes)

---------------------------------

hitid - отвечает за игрока в которую попадает пуля, в моем примере это INVALID_PLAYER_ID, что означает - пуля не попадает ни в какого игрока.
Ты можешь настроить этот параметр тоже, если за объектом стоит какой нибудь игрок.

Enrique_Black
19.04.2017, 16:23
hitid - возвращает еще и ид обьекта и ид автомобиля в зависимости от hittype

И еще пару вопросов, это отправка пули или отправка информации о полете пули?

А так же за что отвечают первые три значения, вторые и третьи?

Float:fHitOriginX, Float:fHitOriginY, Float:fHitOriginZ, Float:fHitTargetX, Float:fHitTargetY, Float:fHitTargetZ, Float:fCenterOfHitX, Float:fCenterOfHitY, Float:fCenterOfHitZ

Информация не в теме разработчика не на гитхабе не указана про данные значения.

SooBad
19.04.2017, 16:42
И еще пару вопросов, это отправка пули или отправка информации о полете пули?

Естественно ин-фы, если ты не задаёшь значение аргументам, это же RPC пакет.
Подробное описание есть в документации к YSF.

Enrique_Black
19.04.2017, 16:43
SendBulletData(playerid, INVALID_PLAYER_ID, BULLET_HIT_TYPE_NONE, ...);

Если за твоим объектом стоит какой нибудь игрок, либо еще какой нибудь объект то меняй hittype
Ты можешь настроить этот параметр тоже, если за объектом стоит какой нибудь игрок.

А как я собственно могу узнать, какой игрок стоит за обьектом?)

- - - Добавлено - - -


Естественно ин-фы, это же RPC пакет.
Подробное описание есть в документации к YSF.

Но жизни отниматься будут же при этом если я выставлю свой дамаг в weaponshot?

SooBad
19.04.2017, 16:52
Но жизни отниматься будут же при этом если я выставлю свой дамаг в weaponshot?
Пакеты способны лишь визуально подменить ин-фу клиента, либо отправить ложные данные серверу, вследствие, если вся сторонняя инфа блокируется, - то ты не сможешь предоставить пакету возможность синхронизации с сервером. Насчёт своего дамага - не знаю, но, думаю, что пакет будет проходить независимо от этого.
А вообще... Зачем тебе отправлять ложные?

ziggi
19.04.2017, 17:08
Но жизни отниматься будут же при этом если я выставлю свой дамаг в weaponshot?

Если ты укажешь правильно hittype и hitid, то урон игроку будет нанесён. Урона будет нанесено столько, сколько бы нанёс обычный выстрел.


А как я собственно могу узнать, какой игрок стоит за обьектом?)

Тут уже нужно подключать тригонометрию, уверен, что что-то подобное уже есть, поищи.

Float:fHitOriginX, Float:fHitOriginY, Float:fHitOriginZ - позиция, откуда будет произведён выстрел
Float:fHitTargetX, Float:fHitTargetY, Float:fHitTargetZ - позиция, куда будет произведён выстрел
Float:fCenterOfHitX, Float:fCenterOfHitY, Float:fCenterOfHitZ - смещение от центра цели, для игрока можно установить тоже, что и для fHitTarget

Enrique_Black
19.04.2017, 17:21
Тригонометрия тригонометрией . Все тогда будет зависить от пинга. Я ведь правильно понимаю? Своебразная защита от стрельбы сквозь стены.

vovandolg
19.04.2017, 19:50
SendBulletData не наносит урона же или я что то не знаю?

Я кэк бы работал с R16 на своём Zombie Apokalypse сервере когда то и было лишь видно как с моей стороны вылетал трассер без проигрывания анимации и без нанесения урона летящий в сторону указанной цели.

Enrique_Black
19.04.2017, 20:34
SendBulletData не наносит урона же или я что то не знаю?

Я кэк бы работал с R16 на своём Zombie Apokalypse сервере когда то и было лишь видно как с моей стороны вылетал трассер без проигрывания анимации и без нанесения урона летящий в сторону указанной цели.

А при отправке SendBulletData пакета, будет ли вызван тот же WeaponShot еще раз?

vovandolg
19.04.2017, 20:50
А при отправке SendBulletData пакета, будет ли вызван тот же WeaponShot еще раз?

Нет вроде бы, это тупая имитация трассера,
если перевести название функции то станет всё ясно что она делает,
если бы она называлась SendWeaponShot то возможно что то наносила бы, а так ...

Enrique_Black
19.04.2017, 23:01
Последний вопрос, возможно ли получание информации через RPC пакет. Скажем сразу после ее изменения.?

Enrique_Black
19.04.2017, 23:51
Хотя еще один вопрос, из какого пакета можно извлечь значение данной функции GetPlayerCameraTargetPlayer?

Ибо задача состоит в том что бы узнать ее значение до того как прийдет апдейт на сервер.

SooBad
20.04.2017, 00:49
Последний вопрос, возможно ли получание информации через RPC пакет. Скажем сразу после ее изменения.?

Возможно. Но сервер может не обработать/не отправить данные обратно. Отправить сам по себе запрос труда не составит.
P.S.: для вопроса ниже: по аналогии.

ziggi
20.04.2017, 01:49
SendBulletData не наносит урона же или я что то не знаю?

Я кэк бы работал с R16 на своём Zombie Apokalypse сервере когда то и было лишь видно как с моей стороны вылетал трассер без проигрывания анимации и без нанесения урона летящий в сторону указанной цели.


Нет вроде бы, это тупая имитация трассера,
если перевести название функции то станет всё ясно что она делает,
если бы она называлась SendWeaponShot то возможно что то наносила бы, а так ...

Видимо ты не указал в качестве hitid ID игрока, то урон нанесён не будет. Эта функция - полноценный выстрел.


Хотя еще один вопрос, из какого пакета можно извлечь значение данной функции GetPlayerCameraTargetPlayer?

Ибо задача состоит в том что бы узнать ее значение до того как прийдет апдейт на сервер.

Из пакета прицеливания (AIM), для 0.3.7 - это 203.

Enrique_Black
20.04.2017, 04:09
Видимо ты не указал в качестве hitid ID игрока, то урон нанесён не будет. Эта функция - полноценный выстрел.



Из пакета прицеливания (AIM), для 0.3.7 - это 203.

Прости за тупой вопрос, но как я вытащу от туда это значение, если в пакете максимум что можно отловить так это кординаты позиции камеры.

ziggi
20.04.2017, 09:16
Прости за тупой вопрос, но как я вытащу от туда это значение, если в пакете максимум что можно отловить так это кординаты позиции камеры.

Если это так, то из пакета данных об игроке (207): https://github.com/kurta999/YSF/blob/YSF_/src/Structs.h#L485-L488

Enrique_Black
20.04.2017, 23:33
Если это так, то из пакета данных об игроке (207): https://github.com/kurta999/YSF/blob/YSF_/src/Structs.h#L485-L488

Но причем Raknet к YSF?

Если я все правильно понимаю, что я не хрена уже не понимаю.
Но в пакете с игроком работая через RAKNET вроде как нет данных параметров

ziggi
20.04.2017, 23:43
Но причем Raknet к YSF?

Если я все правильно понимаю, что я не хрена уже не понимаю.
Но в пакете с игроком работая через RAKNET вроде как нет данных параметров

При том, что в YSF довольно точно воссозданы структуры SA-MP, поэтому я сослался на исходник этого плагина, для более наглядного пояснения.

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

Enrique_Black
21.04.2017, 15:22
При том, что в YSF довольно точно воссозданы структуры SA-MP, поэтому я сослался на исходник этого плагина, для более наглядного пояснения.

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

Если меня правильно осведомили то с помощью RNM можно извлечь информацию только из 3-х пакетов.
Это синхронизация игрока/Автомобили и Аим.

Поправь если ошибаюсь

vovandolg
22.04.2017, 01:47
Видимо ты не указал в качестве hitid ID игрока, то урон нанесён не будет. Эта функция - полноценный выстрел.


Когда ты поиграешь, проверишь и скажешь что проверял лично, тогда может ещё поверю, а так ну не дурачек я же совсем, аргументы оставлять пустыми или не проверять каждый, на крайняк в FS примеры посмотреть, говорю же трассер вылетал от игрока А к игроку Б и всё...

Enrique_Black
22.04.2017, 03:37
Когда ты поиграешь, проверишь и скажешь что проверял лично, тогда может ещё поверю, а так ну не дурачек я же совсем, аргументы оставлять пустыми или не проверять каждый, на крайняк в FS примеры посмотреть, говорю же трассер вылетал от игрока А к игроку Б и всё...

Возможно данные были не коректны. Если преград нету между игроками то урон будет нанесен.
Хотя не могу утверждать, поскольку помимо серверного у меня еще своя система урона с мелким уроном, поэтому точно не замерял и подтвердить ту или иную версию не могу.

Ну а вообще если рассудить логически, даже при отправлении информации о том или ином клиент должен обработать данные и вернуть результат.

Но опять же я не уверен, изменения данных происходит на стороне сервера или клиента.

ziggi
22.04.2017, 12:00
Когда ты поиграешь, проверишь и скажешь что проверял лично, тогда может ещё поверю, а так ну не дурачек я же совсем, аргументы оставлять пустыми или не проверять каждый, на крайняк в FS примеры посмотреть, говорю же трассер вылетал от игрока А к игроку Б и всё...

Конечно я это проверял лично - плагин FCNPC, над которым я работаю, работает именно по этому принципу и боты, в чём ты можешь сам убедиться, полноценно наносят урон игрокам.

vovandolg
23.04.2017, 00:04
Конечно я это проверял лично - плагин FCNPC, над которым я работаю, работает именно по этому принципу и боты, в чём ты можешь сам убедиться, полноценно наносят урон игрокам.

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

DeimoS
23.04.2017, 03:59
Я проверял на игроках только, урона не было будь у тебя в руке указанный ствол, не будь у тебя его тоже самое, тупо трассер вылетал в сторону жертвы и без урона...

А фейковый пакет с данными, генерируемый плагином, от игрока чем-то отличается от фейкового пакета с данными, генерируемого плагином, от бота?

Enrique_Black
23.04.2017, 15:59
А фейковый пакет с данными, генерируемый плагином, от игрока чем-то отличается от фейкового пакета с данными, генерируемого плагином, от бота?

Глупо иметь отрицания на данный счет. Как было сказано выше просто некоректно настроен полет пули значит.

vovandolg
25.04.2017, 03:24
:rofl: я вам ещё раз повторю тут, есть готовый FS от разработчика плагина, и там есть готовая кмд по использованию этой функции, можете удосужится и посмотреть правильно ли она настроена и потом уже говорить что я правильно или не правильно её использовал, не работала стрельба при R16, с сампом завязал проверять не охото снова...

ziggi
25.04.2017, 08:16
:rofl: я вам ещё раз повторю тут, есть готовый FS от разработчика плагина, и там есть готовая кмд по использованию этой функции, можете удосужится и посмотреть правильно ли она настроена и потом уже говорить что я правильно или не правильно её использовал, не работала стрельба при R16, с сампом завязал проверять не охото снова...

И теперь ты будешь всю жизнь утверждать, что она не работает? Плагин обновляется, уже доступна версия R19, и на сколько я помню, в более ранних версиях как-раз были проблемы с этой функцией.