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

АнонимДима

Известный
Автор темы
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

tg/inst: @moujeek
Модератор
9,074
12,037
Вообще использовать 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

tg/inst: @moujeek
Модератор
9,074
12,037
То что ты написал пишет ид кара как в /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
Здравствуй, Всефорумный карманный негр, нерабочий код вроде, не отображает номера

цитата