Добавление функции в скрипт

F L I P S T A R

Участник
Автор темы
62
1
Версия MoonLoader
Другое
Приветствую.
Можете подсказать как можно дополнить этот скрипт, чтобы по команде он искал ближайший транспорт к моему персонажу и удалял его визуально.
Суть скрипта, который я дал: по команде он удаляет визуально транспорт по айди, которое я ввел.
Заранее спасибо.

Lua:
local q = require 'lib.samp.events'
local bit = require 'lib.samp.events.bitstream_io'

del = false

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(2000) end

    sampRegisterChatCommand('dlv', deletecar)
    wait(-1)
end

function deletecar(id)
    idik = tonumber(id)
        hideCar(idik)
    end
    
function q.onVehicleStreamIn()
    if del then
        return false
    end
end

function hideCar(id)
local w = bit.bs_write
local bs = raknetNewBitStream()
w.int16(bs, id)
raknetEmulRpcReceiveBitStream(165, bs)
end
 
Решение
Lua:
function getClosestCarId()
    local minDist = 9999
    local closestId = -1
    local x, y, z = getCharCoordinates(PLAYER_PED)
    for i, k in ipairs(getAllVehicles()) do
        local xi, yi, zi = getCarCoordinates(k)
        local dist = math.sqrt( (xi - x) ^ 2 + (yi - y) ^ 2 + (zi - z) ^ 2 )
        if dist < minDist then
            minDist = dist
            result, closestId = sampGetVehicleIdByCarHandle(k)
        end
    end
    return closestId
end
Lua:
sampRegisterChatCommand('delsus', function() deletecar(getClosestCarId()) end)
пофиксил функцию, оказывается она возвращала айди модельки, а не машины, теперь всё работает

reversed

Участник
69
17
Lua:
sampRegisterChatCommand('delcc', deleteCar(getClosestCarId))
Lua:
function getClosestCarId()
    local minDist = 9999
    local closestId = -1
    local x, y, z = getCharCoordinates(PLAYER_PED)
    for i, k in ipairs(getAllVehicles()) do
       local xi, yi, zi = getCarCoordinates(k)
       local dist = math.sqrt( (xi - x) ^ 2 + (yi - y) ^ 2 + (zi - z) ^ 2 )
       if dist < minDist then
          minDist = dist
          closestId = getCarModel(k)
       end
    end
    return closestId
end
функцию взял отсюда https://www.blast.hk/threads/55083/post-496664
 

F L I P S T A R

Участник
Автор темы
62
1
Lua:
sampRegisterChatCommand('delcc', deleteCar(getClosestCarId))
Lua:
function getClosestCarId()
    local minDist = 9999
    local closestId = -1
    local x, y, z = getCharCoordinates(PLAYER_PED)
    for i, k in ipairs(getAllVehicles()) do
       local xi, yi, zi = getCarCoordinates(k)
       local dist = math.sqrt( (xi - x) ^ 2 + (yi - y) ^ 2 + (zi - z) ^ 2 )
       if dist < minDist then
          minDist = dist
          closestId = getCarModel(k)
       end
    end
    return closestId
end
Когда ввожу команду активации этой функции, выдает ошибку:

attempt to call a nil value
stack traceback:
Script died due to an error. (17BBDEE4)
 

reversed

Участник
69
17
Lua:
function getClosestCarId()
    local minDist = 9999
    local closestId = -1
    local x, y, z = getCharCoordinates(PLAYER_PED)
    for i, k in ipairs(getAllVehicles()) do
        local xi, yi, zi = getCarCoordinates(k)
        local dist = math.sqrt( (xi - x) ^ 2 + (yi - y) ^ 2 + (zi - z) ^ 2 )
        if dist < minDist then
            minDist = dist
            result, closestId = sampGetVehicleIdByCarHandle(k)
        end
    end
    return closestId
end
Lua:
sampRegisterChatCommand('delsus', function() deletecar(getClosestCarId()) end)
пофиксил функцию, оказывается она возвращала айди модельки, а не машины, теперь всё работает
 
  • Нравится
Реакции: F L I P S T A R

F L I P S T A R

Участник
Автор темы
62
1
Lua:
function getClosestCarId()
    local minDist = 9999
    local closestId = -1
    local x, y, z = getCharCoordinates(PLAYER_PED)
    for i, k in ipairs(getAllVehicles()) do
        local xi, yi, zi = getCarCoordinates(k)
        local dist = math.sqrt( (xi - x) ^ 2 + (yi - y) ^ 2 + (zi - z) ^ 2 )
        if dist < minDist then
            minDist = dist
            result, closestId = sampGetVehicleIdByCarHandle(k)
        end
    end
    return closestId
end
Lua:
sampRegisterChatCommand('delsus', function() deletecar(getClosestCarId()) end)
пофиксил функцию, оказывается она возвращала айди модельки, а не машины, теперь всё работает
Спасибо, все работает идеально.