Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2021-12-28, 14:37


KucharSolo







Wiek: 35
Na forum: 3438 dni
Posty: 94
Nick w MP: Kuchar

Piwa: 2

Respekt: 31

Witam, posiadam skrypt na fotoradar i wszystko dzia?a opr?cz jednej rzeczy a mianowicie gdy przekrocz? pr?dko?? to zabiera pieni?dze kierowcy i pasa?erowi. Chcia?bym ustawi? aby mandat dostawa? tylko kierowca. Prosz? o pomoc. Poni?ej wklejam kod. Dzi?kuje za pomoc.

Po stronie CLIENTA:

--[[
    authorAsthma.
    (c2020 <-- fvck this year
]]

local sxsy guiGetScreenSize();
local zoom 1
local baseX 1920
local minZoom 2

if sx baseX then
    zoom math.min(minZoombaseX/sx);
end


function scaleX(typevalue)
    if type == 'center' then
        return math.floor(sx/value/zoom)
    elseif type == 'left' then
        return math.floor(sx value/zoom)
    elseif type == 'right' then
        return math.floor(value/zoom)
    end
end

function scaleY(typevalue)
    if type == 'center' then
        return math.floor(sy/value/zoom)
    elseif type == 'top' then
        return math.floor(value/zoom)
    elseif type == 'down' then
        return math.floor(sy value/zoom)
    end
end

local txd engineLoadTXD ("foto.txd");
engineImportTXD (txd16101 )
local dff engineLoadDFF ("foto.dff");
engineReplaceModel (dff16101 )

_table = {};

local takenPhoto nil

--[[
    przyklad
    {x,y,z,rx,ry,rz,zasiegFotoradary,dopuszczalnaPredkosc}
]]

local points = {
    { -2711.51312.862.34,0,0,0,7,maxVelocity=50},
    {-2598.63379, -490.1339473.4849,0,0,0,7,maxVelocity=30},
}


for 1,#points do
    points[i].cs createColSphere(points[i][1],points[i][2],points[i][3],points[i][7]);
    object createObject(16101,points[i][1],points[i][2],points[i][3],points[i][4],points[i][5],points[i][6])
end

function renderSpeedCamera()
    dxDrawText('Model: '.._table.myVehicle,scaleX('center',0),scaleY('down',300),scaleX('center',0),scaleY('down',300),white,1.2/zoom,'default','center','center');
    dxDrawText('Rejestracja pojazdu: '.._table.plateText,scaleX('center',0),scaleY('down',280),scaleX('center',0),scaleY('down',280),white,1.2/zoom,'default','center','center');
    dxDrawText('Tw?j nick: '.._table.nick,scaleX('center',0),scaleY('down',260),scaleX('center',0),scaleY('down',260),white,1.2/zoom,'default','center','center');
    dxDrawText('Twoja pr?dko??: '.._table.myVelocity..'km/h',scaleX('center',0),scaleY('down',240),scaleX('center',0),scaleY('down',240),white,1.2/zoom,'default','center','center');
    dxDrawText('Dopuszczalna pr?dko??: '.._table.maxVelocity..'km/h',scaleX('center',0),scaleY('down',220),scaleX('center',0),scaleY('down',220),white,1.2/zoom,'default','center','center');
    dxDrawText('Przekroczono o: '.._table.speedExceeded..'km/h',scaleX('center',0),scaleY('down',200),scaleX('center',0),scaleY('down',200),white,1.2/zoom,'default','center','center');
    dxDrawText('Kwota mandatu: '.._table.pricePhoto..'PLN',scaleX('center',0),scaleY('down',180),scaleX('center',0),scaleY('down',180),white,1.2/zoom,'default','center','center');
end


function renderDetector()
    local x,y,getElementPosition(localPlayer)
    for _,v in ipairs(points) do
        local distance getDistanceBetweenPoints3D(x,y,z,v[1],v[2],v[3])
        if distance <= 151 then
            dxDrawRectangle(scaleX('right',10),scaleY('down',25),70/zoom,20/zoom,tocolor(0,0,0,180))
            dxDrawText(math.floor(distance)..'m',scaleX('right',45),scaleY('down',15),scaleX('right',45),scaleY('down',15),white,1/zoom,'default-bold','center','center')
            dxDrawImage(scaleX('right',10),scaleY('down',100),70/zoom,70/zoom,'disc.png')
            dxDrawText(v.maxVelocity,scaleX('right',45),scaleY('down',65),scaleX('right',45),scaleY('down',65),tocolor(0,0,0),2.5/zoom,'default-bold','center','center')
        end
    end
end

function onSpeedCameraHit(element,dm)
    if takenPhoto then return end
    for i,v in pairs(points) do
        if source == points[i].cs then
            if element == localPlayer then 
                if isPedInVehicle(element) and getVehicleController(getPedOccupiedVehicle(element))then
                    if getElementDimension(element) == and getElementInterior(element) == 0 then
                        local sxsysz getElementVelocity(getPedOccupiedVehicle(element));
                        local speed = (( sx^sy^sz^2) ^(0.5)) *0.7*180*1.310
                        if (speed 10 points[i].maxVelocitythen
                            playSound('fotoradar.ogg',false);
                            fadeCamera(false,0.1,255,255,255);
                            setTimer(fadeCamera,60,1,true,1.5);
                            _table = {
                                nick getPlayerName(element):gsub('#%x%x%x%x%x%x',''),
                                maxVelocity points[i].maxVelocity,
                                myVelocity string.format("%.01f",speed),
                                speedExceeded string.format("%.01f",speed points[i].maxVelocity),
                                plateText getVehiclePlateText(getPedOccupiedVehicle(element)),
                                myVehicle getVehicleNameFromModel(getElementModel(getPedOccupiedVehicle(element))),
                                pricePhoto math.floor(tonumber(speed points[i].maxVelocity) * 3),
                            };
                                triggerServerEvent('takeMoneyFromPhoto',resourceRoot,_table.pricePhoto)
                                addEventHandler('onClientRender',root,renderSpeedCamera)
                                takenPhoto true
                                setTimer(function()
                                    takenPhoto nil
                                    removeEventHandler('onClientRender',root,renderSpeedCamera)
                                    _table = {}
                                end,10000,1)
                        end
                    end
                end
            end
        end
    end
end
addEventHandler('onClientColShapeHit',resourceRoot,onSpeedCameraHit)




addEventHandler('onClientVehicleEnter',root,function(player,seat)
    if player == localPlayer and seat == 0 then
        if getElementData(source,'detector:speed'then 
            addEventHandler('onClientRender',root,renderDetector)
        end
    end
end)

addEventHandler('onClientVehicleExit',root,function(player,seat)
    if player == localPlayer and seat == 0 then
        if getElementData(source,'detector:speed'then 
            removeEventHandler('onClientRender',root,renderDetector)
        end
    end
end)



Po stronie SERWERA:

addEvent('takeMoneyFromPhoto',true)

function takeMoneyFromPhoto(value)
    takePlayerMoney(client,value)
end
addEventHandler('takeMoneyFromPhoto',resourceRoot,takeMoneyFromPhoto)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-12-28, 22:28


Matikmontana

Modern Stories






Wiek: 22
Na forum: 2473 dni
Posty: 423
Nick w MP: Mazeusz*

Piwa: 1015

Respekt: 130
Respekt: 130

Ostrzeżeń: 60%
dodaj do skryptu sprawdzenie czy gracz jest kierowc? pojazdu

Więcej informacji znajdziesz w Wikipedii MTA:

getVehicleController


[ Dodano: 2021-12-28, 22:30 ]
if getVehicleController(getPedOccupiedVehicle(theElement))~=localPlayer then return end

Postaw piwo autorowi tego posta
 

 
Tagi: fotoradar :: zabiera :: kase :: dla :: pasazera
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Fotoradar zabiera kase dla pasazera Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku