hitmarker

W1ll04eison

Участник
Автор темы
328
19
Версия MoonLoader
.026-beta
Подскажите, как грамотней сделать hitmarker(иначе как попадание по игроку).
А т.е, при попадания в игрока будет показываться маркер(к примеру, изображение перекрестия или т.п) в том месте, куда ты попал в игрока.
Через renderDrawTexture я знаю как выводить изображение, но как это сделать hitmarker'om я не особо представляю, подскажите пожалуйста, дайте пример
 
Решение
Тебе нужно использовать пакет Bullet Sync, данный пакет отправляется при выстреле
Для взаимодействия с данным пакетом я использую библиотеку SAMP.lua - https://www.blast.hk/threads/14624/
Вот тебе структура данного пакета
Lua:
struct BulletSyncData
{
    uint8_t               targetType;
    uint16_t           targetId;
    struct VectorXYZ origin;
    struct VectorXYZ target;
    struct VectorXYZ center;
    uint8_t               weaponId;
} __attribute__ ((packed));

Тебе понадобится targetType и target, первый отвечает во что ты попал, а второй куда ты попал
Чтобы взаимодействовать со своими выстрелами - используй onSendBulletSync

Lua:
local hit = require 'lib.samp.events'

function hit.onSendBulletSync(data)
    if...

:re

Участник
32
10
Тебе нужно использовать пакет Bullet Sync, данный пакет отправляется при выстреле
Для взаимодействия с данным пакетом я использую библиотеку SAMP.lua - https://www.blast.hk/threads/14624/
Вот тебе структура данного пакета
Lua:
struct BulletSyncData
{
    uint8_t               targetType;
    uint16_t           targetId;
    struct VectorXYZ origin;
    struct VectorXYZ target;
    struct VectorXYZ center;
    uint8_t               weaponId;
} __attribute__ ((packed));

Тебе понадобится targetType и target, первый отвечает во что ты попал, а второй куда ты попал
Чтобы взаимодействовать со своими выстрелами - используй onSendBulletSync

Lua:
local hit = require 'lib.samp.events'

function hit.onSendBulletSync(data)
    if data.targetType == 1 then -- Цифра 1 отвечает за попадание по педам, то есть 'Если я попал по игроку, то'
        -- После проверки отрисовывай картинку с помощью координат data.target.x и data.target.y
    end
end

Это если ты хочешь, чтобы картинка рисовалась на скине игркока в которого ты попал, а если хочешь на экране, то переменная target тебе не нужна
 
  • Нравится
Реакции: Loocking и W1ll04eison

W1ll04eison

Участник
Автор темы
328
19
Тебе нужно использовать пакет Bullet Sync, данный пакет отправляется при выстреле
Для взаимодействия с данным пакетом я использую библиотеку SAMP.lua - https://www.blast.hk/threads/14624/
Вот тебе структура данного пакета
Lua:
struct BulletSyncData
{
    uint8_t               targetType;
    uint16_t           targetId;
    struct VectorXYZ origin;
    struct VectorXYZ target;
    struct VectorXYZ center;
    uint8_t               weaponId;
} __attribute__ ((packed));

Тебе понадобится targetType и target, первый отвечает во что ты попал, а второй куда ты попал
Чтобы взаимодействовать со своими выстрелами - используй onSendBulletSync

Lua:
local hit = require 'lib.samp.events'

function hit.onSendBulletSync(data)
    if data.targetType == 1 then -- Цифра 1 отвечает за попадание по педам, то есть 'Если я попал по игроку, то'
        -- После проверки отрисовывай картинку с помощью координат data.target.x и data.target.y
    end
end

Это если ты хочешь, чтобы картинка рисовалась на скине игркока в которого ты попал, а если хочешь на экране, то переменная target тебе не нужна
Спасибо за пояснение