Софт RakSAMP Lite

Жоский поцик

Участник
115
15
qq, можете сказать как сделать что бы бот после просмотра всех машин в зоне стрима садился в любую из них, желательно без кика :)
 

chromiusj

Известный
Модератор
5,656
3,959
qq, можете сказать как сделать что бы бот после просмотра всех машин в зоне стрима садился в любую из них, желательно без кика :)
Без кика много кто хочет а ты попробуй с киком
Вот тебе список машин
Вот тебе сидение в машинах
 

vovans.

Активный
132
124
Привет, подскажите пожалуйста как открыть диалог с начальным нпс(квестовым). Я пробовал юзать прожатие альт, но чет не работает(Мб я криворукий😁 )
 

sazzas1978

Известный
134
127
Lua:
local ffi = require 'ffi'
local sampfuncs = require "sampfuncs"
require 'samp.synchronization'

local storePackets = {
    [PACKET_PLAYER_SYNC] = 0,
    [PACKET_VEHICLE_SYNC] = 0,
    [PACKET_AIM_SYNC] = 0
}

local syncTypes = {
    [PACKET_PLAYER_SYNC] = "PlayerSyncData",
    [PACKET_VEHICLE_SYNC] = "VehicleSyncData",
    [PACKET_AIM_SYNC] = "AimSyncData"
}

registerHandler("onSendPacket", function(id, bs)
    if storePackets[id] ~= nil and syncTypes[id] ~= nil then
        local copyBs = bitStream.new()
        copyBs:writeBitStream(bs)
        copyBs:resetWritePointer()
        storePackets[id] = copyBs
    end
end)

function storeSyncData(pointer, packet_id)
    local bs = storePackets[packet_id]
    local new_sync_data = ffi.new(syncTypes[packet_id])
    local syncPointer = ffi.cast('intptr_t', ffi.cast('void*', new_sync_data))
    bs:writeBuffer(pointer, ffi.sizeof(syncPointer))
end

function samp_create_sync_data(sync_type, copy_from_player)

    local raknet = require 'samp.raknet'

    copy_from_player = copy_from_player or true
    local sync_traits = {
        player = {'PlayerSyncData', raknet.PACKET.PLAYER_SYNC},
        vehicle = {'VehicleSyncData', raknet.PACKET.VEHICLE_SYNC},
        passenger = {'PassengerSyncData', raknet.PACKET.PASSENGER_SYNC},
        aim = {'AimSyncData', raknet.PACKET.AIM_SYNC},
        trailer = {'TrailerSyncData', raknet.PACKET.TRAILER_SYNC},
        unoccupied = {'UnoccupiedSyncData', raknet.PACKET.UNOCCUPIED_SYNC},
        bullet = {'BulletSyncData', raknet.PACKET.BULLET_SYNC},
        spectator = {'SpectatorSyncData', raknet.PACKET.SPECTATOR_SYNC}
    }
    local sync_info = sync_traits[sync_type]
    local data_type = 'struct ' .. sync_info[1]
    local data = ffi.new(data_type, {})
    local raw_data_ptr = tonumber(ffi.cast('uintptr_t', ffi.new(data_type .. '*', data)))
    -- copy player's sync data to the allocated memory
    if copy_from_player then
        storeSyncData(raw_data_ptr, sync_info[2])
    end
    -- function to send packet
    local func_send = function()
        local bs = bitStream.new()
        bs:writeInt8(sync_info[2])
        bs:writeBuffer(raw_data_ptr, ffi.sizeof(data))
        bs:sendPacketEx(HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 1)
    end
    -- metatable to access sync data and 'send' function
    local mt = {
        __index = function(t, index)
            return data[index]
        end,
        __newindex = function(t, index, value)
            data[index] = value
        end
    }
    return setmetatable({send = func_send}, mt)
end

Lua:
local ffi = require 'ffi'
local sampfuncs = require "sampfuncs"
require 'samp.synchronization'

local storePackets = {
    [PACKET_PLAYER_SYNC] = 0,
    [PACKET_VEHICLE_SYNC] = 0,
    [PACKET_AIM_SYNC] = 0
}

local syncTypes = {
    [PACKET_PLAYER_SYNC] = "PlayerSyncData",
    [PACKET_VEHICLE_SYNC] = "VehicleSyncData",
    [PACKET_AIM_SYNC] = "AimSyncData"
}

registerHandler("onSendPacket", function(id, bs)
    if storePackets[id] ~= nil and syncTypes[id] ~= nil then
        local copyBs = bitStream.new()
        copyBs:writeBitStream(bs)
        copyBs:resetWritePointer()
        storePackets[id] = copyBs
    end
end)

function storeSyncData(pointer, packet_id)
    local bs = storePackets[packet_id]
    local new_sync_data = ffi.new(syncTypes[packet_id])
    local syncPointer = ffi.cast('intptr_t', ffi.cast('void*', new_sync_data))
    bs:writeBuffer(pointer, ffi.sizeof(syncPointer))
end

function samp_create_sync_data(sync_type, copy_from_player)

    local raknet = require 'samp.raknet'

    copy_from_player = copy_from_player or true
    local sync_traits = {
        player = {'PlayerSyncData', raknet.PACKET.PLAYER_SYNC},
        vehicle = {'VehicleSyncData', raknet.PACKET.VEHICLE_SYNC},
        passenger = {'PassengerSyncData', raknet.PACKET.PASSENGER_SYNC},
        aim = {'AimSyncData', raknet.PACKET.AIM_SYNC},
        trailer = {'TrailerSyncData', raknet.PACKET.TRAILER_SYNC},
        unoccupied = {'UnoccupiedSyncData', raknet.PACKET.UNOCCUPIED_SYNC},
        bullet = {'BulletSyncData', raknet.PACKET.BULLET_SYNC},
        spectator = {'SpectatorSyncData', raknet.PACKET.SPECTATOR_SYNC}
    }
    local sync_info = sync_traits[sync_type]
    local data_type = 'struct ' .. sync_info[1]
    local data = ffi.new(data_type, {})
    local raw_data_ptr = tonumber(ffi.cast('uintptr_t', ffi.new(data_type .. '*', data)))
    -- copy player's sync data to the allocated memory
    if copy_from_player then
        storeSyncData(raw_data_ptr, sync_info[2])
    end
    -- function to send packet
    local func_send = function()
        local bs = bitStream.new()
        bs:writeInt8(sync_info[2])
        bs:writeBuffer(raw_data_ptr, ffi.sizeof(data))
        bs:sendPacketEx(HIGH_PRIORITY, UNRELIABLE_SEQUENCED, 1)
    end
    -- metatable to access sync data and 'send' function
    local mt = {
        __index = function(t, index)
            return data[index]
        end,
        __newindex = function(t, index, value)
            data[index] = value
        end
    }
    return setmetatable({send = func_send}, mt)
end
создает и отправляет синхранизацию копируя последнею отправленную (чтоб не заполнять все поля с 0), вроде не видел аналогов тут
 
Последнее редактирование:

0o000

Новичок
2
2
photo_2023-07-09_21-39-13.jpg

Как мне это пофиксить? До 3 версии работает все отлично, а на этой нет https://www.blast.hk/threads/158370/
 

Slava Kolosov

Новичок
3
0
Всем привет. может кто помочь с установкой и настройкой рак бота? За отдельную благодарность?
Или скинуть тему где все для чайников обьясняют
 

chromiusj

Известный
Модератор
5,656
3,959
Всем привет. может кто помочь с установкой и настройкой рак бота? За отдельную благодарность?
Или скинуть тему где все для чайников обьясняют
Что настраивать то
В теме все написано досконально и нормально
 

chromiusj

Известный
Модератор
5,656
3,959
абсолютный чайник не шарю какая папка даже за что отвечает
Пиздец тебе объяснять тогда,ты игры также что-ли качаешь
Качаешь архив с раксампом,разархивируешь в любом удобном тебе месте
Запускаешь екзешник там где баба нарисована там менюшка ник аккаунта и айпи сервера и кнопка запустить
Дальше сам поймешь
 

RidelMuz

Новичок
14
0
Как сделать пропинговку сервера в раксампе иначе? Постоянная загрузка стоит, раньше такого не было, коннектфикс не помогает
 

lainban

Известный
1,427
606
Привет, как правильно реализовать скрипт?
code:
local sampev = require("samp.events")
function onSetPosition(x,y,z)
    local xx, yy, zz = getBotPosition()
    if (x == xx and y == yy and z ~= zz) then print("слап") end
end
Код:
local sampev = require("samp.events")
function sampev.onSetPlayerPos(pos)
    local xx, yy, zz = getBotPosition()
    if (pos.x == xx and pos.y == yy and pos.z ~= zz) then print("слап") end
end
 

vovans.

Активный
132
124
Привет, как можно взять ближайший пикап? (Не используя setAutoPick(true))