Отслеживание номера автомобиля игрока.

АнонимДима

Известный
Автор темы
21
3
Версия MoonLoader
.026-beta
Доброго времени суток, не сильно шарю в луа скриптинге, так же не нашёл аналогичных скриптов.
Суть такова, что скрипт должен написать как 3д текст в центре авто с его номером.
Написал следующий скрипт который не так успешно работал, а именно показывало номера только на некоторых авто но не на всех в зоне стрима.
Сам код ниже:

Код:
local ev = require "samp.events"

function ev.onSetVehicleNumberPlate(vehicleId, text)

idtext = sampCreate3dText(text, 0xff00FF00, 0, 0, 0, 20, true, -1, vehicleId)

end
 
Последнее редактирование:

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,778
11,221
Вообще использовать 3д тексты не очень хорошая идея, так как будет приседать фпс если на экране их более 10, но вот рабочий код
1659695258401.png

Lua:
script_author('chapo')
local sampev = require "samp.events"
local VehiclesNumberPlates = {}

function sampev.onVehicleStreamIn(vehId, data)
    VehiclesNumberPlates[vehId] = sampCreate3dText(tostring(vehId), 0xff00FF00, 0, 0, 0, 20, true, -1, vehId)
end

function sampev.onVehicleStreamOut(vehId)
    if VehiclesNumberPlates[vehId] then
        if sampIs3dTextDefined(handle) then
            sampDestroy3dText(handle)
        end
    end
end

function onScriptTerminate(script, q)
    if script == thisScript() then
        for id, handle in pairs(VehiclesNumberPlates) do
            if sampIs3dTextDefined(handle) then
                sampDestroy3dText(handle)
            end
        end
    end
end
 

АнонимДима

Известный
Автор темы
21
3
Вообще использовать 3д тексты не очень хорошая идея, так как будет приседать фпс если на экране их более 10, но вот рабочий код
Посмотреть вложение 161113
Lua:
script_author('chapo')
local sampev = require "samp.events"
local VehiclesNumberPlates = {}

function sampev.onVehicleStreamIn(vehId, data)
    VehiclesNumberPlates[vehId] = sampCreate3dText(tostring(vehId), 0xff00FF00, 0, 0, 0, 20, true, -1, vehId)
end

function sampev.onVehicleStreamOut(vehId)
    if VehiclesNumberPlates[vehId] then
        if sampIs3dTextDefined(handle) then
            sampDestroy3dText(handle)
        end
    end
end

function onScriptTerminate(script, q)
    if script == thisScript() then
        for id, handle in pairs(VehiclesNumberPlates) do
            if sampIs3dTextDefined(handle) then
                sampDestroy3dText(handle)
            end
        end
    end
end
То что ты написал пишет ид кара как в /dl а надо что бы тречило серверные номера например "Arizona" "Arizona ST" или кастом номера, я отредачил скрипт который показывал номера, но плохо.
 

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,778
11,221
То что ты написал пишет ид кара как в /dl а надо что бы тречило серверные номера например "Arizona" "Arizona ST" или кастом номера, я отредачил скрипт который показывал номера, но плохо.
попробуй это, но я не уверен что оно сработает
Lua:
script_author('chapo')
local sampev = require "samp.events"
local VehiclesNumberPlates = {}

function sampev.onVehicleStreamIn(vehId, data)
    VehiclesNumberPlates[vehId] = sampCreate3dText(tostring(vehId), 0xff00FF00, 0, 0, 0, 20, true, -1, vehId)
end

function sampev.onVehicleStreamOut(vehId)
    if VehiclesNumberPlates[vehId] then
        if sampIs3dTextDefined(VehiclesNumberPlates[vehId]) then
            sampDestroy3dText(VehiclesNumberPlates[vehId])
        end
    end
end

function sampev.onSetVehicleNumberPlate(vehId, text)
    if VehiclesNumberPlates[vehId] then
        if sampIs3dTextDefined(VehiclesNumberPlates[vehId]) then
            sampSet3dTextString(VehiclesNumberPlates[vehId], text)
            print('[NUMBER PLATE] New number plate for vehicle '..vehId..': "'..text..'"')
        end
    end
end

function onScriptTerminate(script, q)
    if script == thisScript() then
        for id, handle in pairs(VehiclesNumberPlates) do
            if sampIs3dTextDefined(handle) then
                sampDestroy3dText(handle)
            end
        end
    end
end
 

nizya

Потрачен
174
44
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
попробуй это, но я не уверен что оно сработает
Lua:
script_author('chapo')
local sampev = require "samp.events"
local VehiclesNumberPlates = {}

function sampev.onVehicleStreamIn(vehId, data)
    VehiclesNumberPlates[vehId] = sampCreate3dText(tostring(vehId), 0xff00FF00, 0, 0, 0, 20, true, -1, vehId)
end

function sampev.onVehicleStreamOut(vehId)
    if VehiclesNumberPlates[vehId] then
        if sampIs3dTextDefined(VehiclesNumberPlates[vehId]) then
            sampDestroy3dText(VehiclesNumberPlates[vehId])
        end
    end
end

function sampev.onSetVehicleNumberPlate(vehId, text)
    if VehiclesNumberPlates[vehId] then
        if sampIs3dTextDefined(VehiclesNumberPlates[vehId]) then
            sampSet3dTextString(VehiclesNumberPlates[vehId], text)
            print('[NUMBER PLATE] New number plate for vehicle '..vehId..': "'..text..'"')
        end
    end
end

function onScriptTerminate(script, q)
    if script == thisScript() then
        for id, handle in pairs(VehiclesNumberPlates) do
            if sampIs3dTextDefined(handle) then
                sampDestroy3dText(handle)
            end
        end
    end
end
попробуй это, но я не уверен что оно сработает
Lua:
script_author('chapo')
local sampev = require "samp.events"
local VehiclesNumberPlates = {}

function sampev.onVehicleStreamIn(vehId, data)
    VehiclesNumberPlates[vehId] = sampCreate3dText(tostring(vehId), 0xff00FF00, 0, 0, 0, 20, true, -1, vehId)
end

function sampev.onVehicleStreamOut(vehId)
    if VehiclesNumberPlates[vehId] then
        if sampIs3dTextDefined(VehiclesNumberPlates[vehId]) then
            sampDestroy3dText(VehiclesNumberPlates[vehId])
        end
    end
end

function sampev.onSetVehicleNumberPlate(vehId, text)
    if VehiclesNumberPlates[vehId] then
        if sampIs3dTextDefined(VehiclesNumberPlates[vehId]) then
            sampSet3dTextString(VehiclesNumberPlates[vehId], text)
            print('[NUMBER PLATE] New number plate for vehicle '..vehId..': "'..text..'"')
        end
    end
end

function onScriptTerminate(script, q)
    if script == thisScript() then
        for id, handle in pairs(VehiclesNumberPlates) do
            if sampIs3dTextDefined(handle) then
                sampDestroy3dText(handle)
            end
        end
    end
end
Здравствуй, Всефорумный карманный негр, нерабочий код вроде, не отображает номера

цитата
 

nizya

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

nizya

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