Как слапнуть себя ИЗ машины? Как сделать проверку координат, чтобы пошло следующее действие?

xcdco

Известный
Автор темы
344
168
Версия MoonLoader
.026-beta
делаю бота, который будет делать определённую последовательность действий.
мне нужно узнать как сделать так, чтобы мой персонаж вылазил с машины (желательно ещё чтобы он в неё обратно телепортировался без киков, в открытом доступе /tp.seat)
как сделать так, чтобы при нахождении на определенных координатах у тебя шло следующее действие?


луашки делаю редко-редко, на уровень хуже даже юрия кода, но на костылях делаю скрипты, которые нужны мне.
 
Последнее редактирование:
Решение
я всё делаю на уровне что загуглил от и сделал.
как мне корды с чекпоинтов которые меняются раз в минуту на x y ставить?
Перехватывать RPC
Lua:
local sampev = require 'lib.samp.events' -- подключаем библиотеку

function sampev.SETCHECKPOINT(position,radius) -- перехватываем RPC о создании чекпоинта
    x,y,z = position -- получаем координаты чекпоинта
    rad = radius
end

Перехватывать RPC
Lua:
local sampev = require 'lib.samp.events' -- подключаем библиотеку

function sampev.onSetCheckpoint(position,radius) -- перехватываем RPC о создании чекпоинта
    x,y,z = position -- получаем координаты чекпоинта
    rad = radius
end
Обновил, не правильно написал название рпц

пиздец, проверил...

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,778
2,598
я всё делаю на уровне что загуглил от и сделал.
как мне корды с чекпоинтов которые меняются раз в минуту на x y ставить?
Возвращает координаты маркера:

Lua:
function SearchMarker(posX, posY, posZ, radius, isRace)
    local ret_posX = 0.0
    local ret_posY = 0.0
    local ret_posZ = 0.0
    local isFind = false

    for id = 0, 31 do
        local MarkerStruct = 0
        if isRace then MarkerStruct = 0xC7F168 + id * 56
        else MarkerStruct = 0xC7DD88 + id * 160 end
        local MarkerPosX = representIntAsFloat(readMemory(MarkerStruct + 0, 4, false))
        local MarkerPosY = representIntAsFloat(readMemory(MarkerStruct + 4, 4, false))
        local MarkerPosZ = representIntAsFloat(readMemory(MarkerStruct + 8, 4, false))

        if MarkerPosX ~= 0.0 or MarkerPosY ~= 0.0 or MarkerPosZ ~= 0.0 then
            if getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ) < radius then
                ret_posX = MarkerPosX
                ret_posY = MarkerPosY
                ret_posZ = MarkerPosZ
                isFind = true
                radius = getDistanceBetweenCoords3d(MarkerPosX, MarkerPosY, MarkerPosZ, posX, posY, posZ)
            end
        end
    end

    return isFind, ret_posX, ret_posY, ret_posZ
end

Lua:
res, mx, my, mz = SearchMarker(posX, posY, posZ, 5000000000000000000000, true)
 

UBP

Известный
349
191
я всё делаю на уровне что загуглил от и сделал.
как мне корды с чекпоинтов которые меняются раз в минуту на x y ставить?
Перехватывать RPC
Lua:
local sampev = require 'lib.samp.events' -- подключаем библиотеку

function sampev.SETCHECKPOINT(position,radius) -- перехватываем RPC о создании чекпоинта
    x,y,z = position -- получаем координаты чекпоинта
    rad = radius
end

Перехватывать RPC
Lua:
local sampev = require 'lib.samp.events' -- подключаем библиотеку

function sampev.onSetCheckpoint(position,radius) -- перехватываем RPC о создании чекпоинта
    x,y,z = position -- получаем координаты чекпоинта
    rad = radius
end
Обновил, не правильно написал название рпц

пиздец, проверил, оно возвращает таблицу
Держи
Lua:
local sampev = require 'lib.samp.events'
local x,y,z = 0
function sampev.onSetCheckpoint(position,radius)
    pos = position
    rad = radius
    for k,v in pairs(pos) do
        if k == 'x' then
            x = v
        elseif k == 'y' then
            y = v 
        elseif k == 'z' then
            z = v
        end
        print(x,y,z) -- выводим значение
    end
end
 
Последнее редактирование: