- 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
Последнее редактирование: