Как визуально создать игрока с ником?

Статус
В этой теме нельзя размещать новые ответы.

kuzheren

Известный
Автор темы
484
445
Версия MoonLoader
.026-beta
Хочется создать игрока с ником и собственным ид, чтобы ему можно было менять позицию и movespeed через samp events, но не знаю как сэмулировать создание игрока. Должно получиться примерно как на скрине.
1621173390899.png
 

kuzheren

Известный
Автор темы
484
445
Спустя больше месяца я понял как это сделать, если кому-то надо, на заметку:

Lua:
function main()
    sampRegisterChatCommand('spawnplayer', function(arg) -- заспавнить игрока
        if sampIsPlayerConnected(arg) then
            local x, y, z = getCharCoordinates(PLAYER_PED)
            local angle = getCharHeading(PLAYER_PED)
            local bs = raknetNewBitStream()
            raknetBitStreamWriteInt16(bs, arg)
            raknetBitStreamWriteInt8(bs, 1)
            raknetBitStreamWriteInt32(bs, 20)
            raknetBitStreamWriteFloat(bs, x)
            raknetBitStreamWriteFloat(bs, y)
            raknetBitStreamWriteFloat(bs, z)
            raknetBitStreamWriteFloat(bs, angle)
            raknetBitStreamWriteInt32(bs,  0xFFFFFFFF)
            raknetBitStreamWriteInt8(bs, 20)
            raknetEmulRpcReceiveBitStream(32, bs)
            raknetDeleteBitStream(bs)   
        else
            sampAddChatMessage('Даун, игрока нет', -1)
        end
    end)
    sampRegisterChatCommand('connectp', function(arg) -- подключить игрока с ником
        id, name = string.match(arg, '(.+) (.+)') -- аргументы - ид и имя
        bs = raknetNewBitStream()
        raknetBitStreamWriteInt16(bs, id)
        raknetBitStreamWriteInt32(bs, 0)
        raknetBitStreamWriteInt8(bs, 0)
        raknetBitStreamWriteInt8(bs, #name)
        raknetBitStreamWriteString(bs, name)
        raknetEmulRpcReceiveBitStream(137, bs)
        raknetDeleteBitStream(bs)
        sampAddChatMessage('Connect', -1)
        bs = raknetNewBitStream()
        raknetBitStreamWriteInt16(bs, id)
        raknetBitStreamWriteInt32(bs, 0)
        raknetBitStreamWriteInt32(bs, 50)
        raknetEmulRpcReceiveBitStream(155, bs)
        raknetDeleteBitStream(bs)
    end)
    wait(-1)
end
1625130113931.png
 
  • Нравится
Реакции: colton. и Letovv

Letovv

Активный
240
60
Спустя больше месяца я понял как это сделать, если кому-то надо, на заметку:

Lua:
function main()
    sampRegisterChatCommand('spawnplayer', function(arg) -- заспавнить игрока
        if sampIsPlayerConnected(arg) then
            local x, y, z = getCharCoordinates(PLAYER_PED)
            local angle = getCharHeading(PLAYER_PED)
            local bs = raknetNewBitStream()
            raknetBitStreamWriteInt16(bs, arg)
            raknetBitStreamWriteInt8(bs, 1)
            raknetBitStreamWriteInt32(bs, 20)
            raknetBitStreamWriteFloat(bs, x)
            raknetBitStreamWriteFloat(bs, y)
            raknetBitStreamWriteFloat(bs, z)
            raknetBitStreamWriteFloat(bs, angle)
            raknetBitStreamWriteInt32(bs,  0xFFFFFFFF)
            raknetBitStreamWriteInt8(bs, 20)
            raknetEmulRpcReceiveBitStream(32, bs)
            raknetDeleteBitStream(bs)  
        else
            sampAddChatMessage('Даун, игрока нет', -1)
        end
    end)
    sampRegisterChatCommand('connectp', function(arg) -- подключить игрока с ником
        id, name = string.match(arg, '(.+) (.+)') -- аргументы - ид и имя
        bs = raknetNewBitStream()
        raknetBitStreamWriteInt16(bs, id)
        raknetBitStreamWriteInt32(bs, 0)
        raknetBitStreamWriteInt8(bs, 0)
        raknetBitStreamWriteInt8(bs, #name)
        raknetBitStreamWriteString(bs, name)
        raknetEmulRpcReceiveBitStream(137, bs)
        raknetDeleteBitStream(bs)
        sampAddChatMessage('Connect', -1)
        bs = raknetNewBitStream()
        raknetBitStreamWriteInt16(bs, id)
        raknetBitStreamWriteInt32(bs, 0)
        raknetBitStreamWriteInt32(bs, 50)
        raknetEmulRpcReceiveBitStream(155, bs)
        raknetDeleteBitStream(bs)
    end)
    wait(-1)
end
закинь сюда что-ли https://www.blast.hk/threads/13380/
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,768
11,210
зачем? это простая эмуляция rpc
может туда еще закинуть
Lua:
function hp(count)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteFloat(bs, count)
    raknetEmulRpcReceiveBitStream(14, bs)
    raknetDeleteBitStream(bs)
end

function arm(count)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteFloat(bs, count)
    raknetEmulRpcReceiveBitStream(67, bs)
    raknetDeleteBitStream(66)
end

function want(id)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, id)
    raknetEmulRpcReceiveBitStream(133, bs)
    raknetDeleteBitStream(bs)
end
 

kuzheren

Известный
Автор темы
484
445
зачем? это простая эмуляция rpc
может туда еще закинуть
Lua:
function hp(count)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteFloat(bs, count)
    raknetEmulRpcReceiveBitStream(14, bs)
    raknetDeleteBitStream(bs)
end

function arm(count)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteFloat(bs, count)
    raknetEmulRpcReceiveBitStream(67, bs)
    raknetDeleteBitStream(66)
end

function want(id)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt8(bs, id)
    raknetEmulRpcReceiveBitStream(133, bs)
    raknetDeleteBitStream(bs)
end
некоторые даже этого не умеют...
 

kuzheren

Известный
Автор темы
484
445
Через samp events ты с ним взаимодействовать не сможешь.
я это понял еще месяц назад, поэтому я хочу заставить двигаться этого игрока через эмуляцию пакета, а как ее применить к отдельному игроку мне непонятно, если можешь помочь ответь тут https://www.blast.hk/threads/92822/
 
Статус
В этой теме нельзя размещать новые ответы.