Фейк выстрел

Oki_Bern

Участник
Автор темы
278
6
Версия MoonLoader
Другое
Возможно ли как то сделать фейк выстрел от другого игрока, по его иду/хенделу
 
Решение
Возможно ли как то сделать фейк выстрел от другого игрока, по его иду/хенделу
эмулируй пакет BulletSync
C++:
struct BulletSyncData {
    uint8_t   targetType;
    uint16_t  targetId;
    VectorXYZ origin;
    VectorXYZ target;
    VectorXYZ center;
    uint8_t   weaponId;
};
Lua:
local playerId = 100
local targetId = 99
local weaponId = 24

local result1, playerPed = sampGetCharHandleBySampPlayerId(playerId)
local result2, targetPed = sampGetCharHandleBySampPlayerId(targetId)
if result and result2 then
    local playerX, playerY, playerZ = getCharCoordinates(playerPed)
    local targetX, targetY, targetZ = getCharCoordinates(targetPed)
   
    local bs = raknNewBitStream()
    raknetBitStreamWriteInt16(bs, playerId)...

whyega52

Eblang головного мозга
Модератор
2,847
2,803
Возможно ли как то сделать фейк выстрел от другого игрока, по его иду/хенделу
эмулируй пакет BulletSync
C++:
struct BulletSyncData {
    uint8_t   targetType;
    uint16_t  targetId;
    VectorXYZ origin;
    VectorXYZ target;
    VectorXYZ center;
    uint8_t   weaponId;
};
Lua:
local playerId = 100
local targetId = 99
local weaponId = 24

local result1, playerPed = sampGetCharHandleBySampPlayerId(playerId)
local result2, targetPed = sampGetCharHandleBySampPlayerId(targetId)
if result and result2 then
    local playerX, playerY, playerZ = getCharCoordinates(playerPed)
    local targetX, targetY, targetZ = getCharCoordinates(targetPed)
   
    local bs = raknNewBitStream()
    raknetBitStreamWriteInt16(bs, playerId)
    raknetBitStreamWriteInt8(bs, 1)
    raknetBitStreamWriteInt16(targetId)
    -- origin
    raknetBitStreamWriteFloat(bs, playerX)
    raknetBitStreamWriteFloat(bs, playerY)
    raknetBitStreamWriteFloat(bs, playerZ)
    -- target
    raknetBitStreamWriteFloat(bs, targetX)
    raknetBitStreamWriteFloat(bs, targetY)
    raknetBitStreamWriteFloat(bs, targetZ)
    -- center
    raknetBitStreamWriteFloat(bs, 0)
    raknetBitStreamWriteFloat(bs, 0)
    raknetBitStreamWriteFloat(bs, 0)
    raknetBitStreamWriteInt8(bs, weaponId)
    raknetEmulPacketReceiveBitStream(206, bs)
    raknetDeleteBitStream(bs)
end
 
  • Нравится
Реакции: Vespan, Oki_Bern и Loku

Oki_Bern

Участник
Автор темы
278
6
эмулируй пакет BulletSync
C++:
struct BulletSyncData {
    uint8_t   targetType;
    uint16_t  targetId;
    VectorXYZ origin;
    VectorXYZ target;
    VectorXYZ center;
    uint8_t   weaponId;
};
Lua:
local playerId = 100
local targetId = 99
local weaponId = 24

local result1, playerPed = sampGetCharHandleBySampPlayerId(playerId)
local result2, targetPed = sampGetCharHandleBySampPlayerId(targetId)
if result and result2 then
    local playerX, playerY, playerZ = getCharCoordinates(playerPed)
    local targetX, targetY, targetZ = getCharCoordinates(targetPed)
  
    local bs = raknNewBitStream()
    raknetBitStreamWriteInt16(bs, playerId)
    raknetBitStreamWriteInt8(bs, 1)
    raknetBitStreamWriteInt16(targetId)
    -- origin
    raknetBitStreamWriteFloat(bs, playerX)
    raknetBitStreamWriteFloat(bs, playerY)
    raknetBitStreamWriteFloat(bs, playerZ)
    -- target
    raknetBitStreamWriteFloat(bs, targetX)
    raknetBitStreamWriteFloat(bs, targetY)
    raknetBitStreamWriteFloat(bs, targetZ)
    -- center
    raknetBitStreamWriteFloat(bs, 0)
    raknetBitStreamWriteFloat(bs, 0)
    raknetBitStreamWriteFloat(bs, 0)
    raknetBitStreamWriteInt8(bs, weaponId)
    raknetEmulPacketReceiveBitStream(206, bs)
    raknetDeleteBitStream(bs)
end
Правильно я сделал?
Lua:
require "lib.moonloader"
local playerId = nil
local weaponId = 31 -- m4
function main()
  while not isSampAvailable() do wait(100) end
  sampRegisterChatCommand("fd", function(arg)
  playerId = arg
  end)
    while true do wait(0)
         if isKeyDown(VK_V) then
             if playerId ~= nil then
             local result1, playerPed = sampGetCharHandleBySampPlayerId(playerId)
                if result1 then
                local playerX, playerY, playerZ = getCharCoordinates(playerPed)
                local bs = raknNewBitStream()
                raknetBitStreamWriteInt16(bs, playerId)
                raknetBitStreamWriteInt8(bs, 1)
                -- origin
                raknetBitStreamWriteFloat(bs, playerX)
                raknetBitStreamWriteFloat(bs, playerY)
                raknetBitStreamWriteFloat(bs, playerZ)
                -- center
                raknetBitStreamWriteFloat(bs, 0)
                raknetBitStreamWriteFloat(bs, 0)
                raknetBitStreamWriteFloat(bs, 0)
                raknetBitStreamWriteInt8(bs, weaponId)
                raknetEmulPacketReceiveBitStream(206, bs)
                raknetDeleteBitStream(bs)
                end
                sampSendTakeDamage(playerId, 10, weaponId, 9)
             end
         end
    end
end
 

Похожие темы

    • Закрыта
    • Опрос
    Ответы
    262
    Просмотры
    83K
  1. Ответы
    14
    Просмотры
    11K
  2. Ответы
    61
    Просмотры
    38K