Исходник Teleport Trinity-Rp for Interier

™ ChipFamily

По ту сторону надежды.
Автор темы
5,143
1,985
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Телепорт который пофиксили после рестарта от 14 апреля.​
Lua:
script_name("Trinity TP")
script_author("(drags - blast.hk)")
script_version("Poxuy na Versiyu")
local ffi = require 'ffi'
local ev =     require 'lib.samp.events'
local tp = 0
local mpos = {}
ffi.cdef[[
    struct stPickup
    {
        int        iModelID;
        int        iType;
        float    fPosition[3];
    };

    struct stPickupPool
    {
        int                iPickupsCount;
        uint32_t        ul_GTA_PickupID[4096];
        int                iPickupID[4096];
        int                iTimePickup[4096];
        uint8_t            unk[4096 * 3];
        struct stPickup pickup[4096];
    };
]]
-- xuyevij method, Jlen` DeJLaT` HopMaJlHo, nu a xyJLe Bu XoTuTe oT FRee?
function ev.onSetCheckpoint(pos)
    mpos = pos
end
function ev.onDisableCheckpoint()
    mpos = {}
end

function ev.onSetPlayerPos(pos)
    if tp == 1 then
        local bool, x, y, z = getTargetBlipCoordinates(); if not bool then return false end
        requestCollision(x, y); loadScene(x, y, z)
        bool, pos.x, pos.y, pos.z = getTargetBlipCoordinates()
        if bool then
            tp = 0
            return {pos}
        end
    end
    if tp == 2 then
        if mpos.x ~= nil then
            pos.x,pos.y,pos.z = mpos.x,mpos.y,mpos.z
            tp = 0
            return {pos}
        end
    end
end


function sampGetInfoPickup(id)
    local pool = ffi.cast('struct stPickupPool*', sampGetPickupPoolPtr())
    local distance = 999999
    local lid = -1
    local x,y,z
    for i=1,4096 do
        if pool.iPickupID[i] > 0 then
            if pool.pickup[i].iModelID == id then
            x, y, z = pool.pickup[i].fPosition[0],pool.pickup[i].fPosition[1],pool.pickup[i].fPosition[2]
            local px, py, pz = getCharCoordinates(playerPed)
            dist = getDistanceBetweenCoords3d(x, y, z, px, py, pz)
            if dist < distance then
                distance = dist
                lid = i
            end
            end
        end
    end
    return lid,pool.pickup[lid].fPosition[0],pool.pickup[lid].fPosition[1],pool.pickup[lid].fPosition[2]
end

function sendSync(x, y, z, pic)
  local _, myId = sampGetPlayerIdByCharHandle(PLAYER_PED)
  local data = allocateMemory(68)
  sampStorePlayerOnfootData(myId, data)
  if z ~= nil then
    setStructFloatElement(data, 6, x, false)
    setStructFloatElement(data, 10, y, false)
    setStructFloatElement(data, 14, z, false)
  end
  sampSendOnfootData(data)
  sampSendPickedUpPickup(pic)
  sampForceOnfootSync()
  freeMemory(data)
end

function ftp(id)
local pid,x,y,z = sampGetInfoPickup(19198)
    local pickup = sampGetPickupHandleBySampId(pid)
        if doesPickupExist(pickup) then
            sendSync(x,y,z, pid)
            tp = id
        end 
end
function main()
repeat wait(0) until isSampAvailable()
sampRegisterChatCommand("tp", function()
if getCharActiveInterior(playerPed) ~= 0 then
ftp(1)
else
sampAddChatMessage("{EB4E20}[Trinity-TP]{FFFFFF} Вы должны находится в интерьере, рядом с выходом", 0x84FF09)
end
end)
sampRegisterChatCommand("tp.c", function()
if getCharActiveInterior(playerPed) ~= 0 then
ftp(2)
else
sampAddChatMessage("{EB4E20}[Trinity-TP]{FFFFFF} Вы должны находится в интерьере, рядом с выходом", 0x84FF09)
end
end)
wait(-1)
end
 
Последнее редактирование:
  • Нравится
Реакции: MrCold и gtasa.exe

NikolayMalinov

Потрачен
7
2
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Он не работает просто нам исходник чтоль?
 

MrCold

Активный
364
118
Телепорт который пофиксили после рестарта от 14 апреля.​
Lua:
script_name("Trinity TP")
script_author("(blast.hk)")
script_version("Poxuy na Versiyu")
local ffi = require 'ffi'
local ev =     require 'lib.samp.events'
local tp = 0
local mpos = {}
ffi.cdef[[
    struct stPickup
    {
        int        iModelID;
        int        iType;
        float    fPosition[3];
    };

    struct stPickupPool
    {
        int                iPickupsCount;
        uint32_t        ul_GTA_PickupID[4096];
        int                iPickupID[4096];
        int                iTimePickup[4096];
        uint8_t            unk[4096 * 3];
        struct stPickup pickup[4096];
    };
]]
-- xuyevij method, Jlen` DeJLaT` HopMaJlHo, nu a xyJLe Bu XoTuTe oT FRee?
function ev.onSetCheckpoint(pos)
    mpos = pos
end
function ev.onDisableCheckpoint()
    mpos = {}
end

function ev.onSetPlayerPos(pos)
    if tp == 1 then
        local bool, x, y, z = getTargetBlipCoordinates(); if not bool then return false end
        requestCollision(x, y); loadScene(x, y, z)
        bool, pos.x, pos.y, pos.z = getTargetBlipCoordinates()
        if bool then
            tp = 0
            return {pos}
        end
    end
    if tp == 2 then
        if mpos.x ~= nil then
            pos.x,pos.y,pos.z = mpos.x,mpos.y,mpos.z
            tp = 0
            return {pos}
        end
    end
end


function sampGetInfoPickup(id)
    local pool = ffi.cast('struct stPickupPool*', sampGetPickupPoolPtr())
    local distance = 999999
    local lid = -1
    local x,y,z
    for i=1,4096 do
        if pool.iPickupID[i] > 0 then
            if pool.pickup[i].iModelID == id then
            x, y, z = pool.pickup[i].fPosition[0],pool.pickup[i].fPosition[1],pool.pickup[i].fPosition[2]
            local px, py, pz = getCharCoordinates(playerPed)
            dist = getDistanceBetweenCoords3d(x, y, z, px, py, pz)
            if dist < distance then
                distance = dist
                lid = i
            end
            end
        end
    end
    return lid,pool.pickup[lid].fPosition[0],pool.pickup[lid].fPosition[1],pool.pickup[lid].fPosition[2]
end

function sendSync(x, y, z, pic)
  local _, myId = sampGetPlayerIdByCharHandle(PLAYER_PED)
  local data = allocateMemory(68)
  sampStorePlayerOnfootData(myId, data)
  if z ~= nil then
    setStructFloatElement(data, 6, x, false)
    setStructFloatElement(data, 10, y, false)
    setStructFloatElement(data, 14, z, false)
  end
  sampSendOnfootData(data)
  sampSendPickedUpPickup(pic)
  sampForceOnfootSync()
  freeMemory(data)
end

function ftp(id)
local pid,x,y,z = sampGetInfoPickup(19198)
    local pickup = sampGetPickupHandleBySampId(pid)
        if doesPickupExist(pickup) then
            sendSync(x,y,z, pid)
            tp = id
        end 
end
function main()
repeat wait(0) until isSampAvailable()
sampRegisterChatCommand("tp", function()
if getCharActiveInterior(playerPed) ~= 0 then
ftp(1)
else
sampAddChatMessage("{EB4E20}[Trinity-TP]{FFFFFF} Вы должны находится в интерьере, рядом с выходом", 0x84FF09)
end
end)
sampRegisterChatCommand("tp.c", function()
if getCharActiveInterior(playerPed) ~= 0 then
ftp(2)
else
sampAddChatMessage("{EB4E20}[Trinity-TP]{FFFFFF} Вы должны находится в интерьере, рядом с выходом", 0x84FF09)
end
end)
wait(-1)
end
До сих пор работает, зашёл в интерьер, метку не поставил, тпнулся в деревню у фермы, и кика не было
 
  • Нравится
Реакции: ™ ChipFamily