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

Wysłany: 2016-02-14, 11:06


andrzej80

Amator Lua :D






Wiek: 30
Na forum: 3918 dni
Posty: 74
Nick w MP: andrzej80

Piwa: 1

Respekt: 50

Witam mam ma?y problem z systemem fotoradar?w - ot??, gdy kogo? on z?apie, zabiera tyle ile trzeba, wy?wietla si? wszystko co potrzeba, ale w konsoli wywala taki b??d:

Kod:

[2016-02-14 10] ERROR: [skrypty]/fotoradary/fotoradary.lua:23: attempt to perform arithmetic on local 'speedCamera' (a nil value)


Nie mam poj?cia, jak to mo?na rozwi?za? :(

Kod, w kt?rym wywala b??d:
local speedCamera={
    {2000.58984375, -1759.1041259766, 13.546875, 50, 75}, 
}

for i,v in pairs(speedCamera) do
    local cs=createColSphere(v[1], v[2], v[3], v[4]-2)
    local o1=createObject(1622, v[1], v[2], v[3]+4, 0, 0, -60)
    local o2=createObject(16101, v[1]+0.3, v[2]-0.1, v[3]+4, 180)
    setElementData(cs, 'fotoradar:predkosc', v[5] or 60, false) -- nie synchronizujemy do serwera
end

addEventHandler('onColShapeHit', resourceRoot, function(el, md)
    if not el then return end
    if getElementType(el) == 'player' then
        local veh=getPedOccupiedVehicle(el)
        if not veh then return end
        if getVehicleController(veh)~=el then return end 
        if getVehicleSirensOn(veh) then return else
            local speedCamera=tonumber(getElementData(source,'fotoradar:predkosc'))
            local vx, vy, vz=getElementVelocity(veh)
            local speedVehicle=((vx^2 + vy^2 + vz^2)^(0.5))*180
            local cost=100
            local diff=(speedVehicle-speedCamera) 
            if diff>30 then
                -- przekroczono predkosc o 30j
                cost=(diff+speedVehicle)/2
            else
                cost=diff/1.2
            end
            cost=math.floor(cost)
            if speedVehicle > speedCamera then
                -- zapisywanie ile razy kierowca przekroczyl predkosc
                -- przy 5-7 razach, zostanie informowana policja o piracie drogowym
                if getPlayerMoney(el)>cost then
                    takePlayerMoney(el, cost)
                    outputChatBox("Przekroczy?e? pr?dko??! Otrzymujesz mandat w wysoko?ci "..cost.." z?.", el, 30, 45, 110)
                else
                    outputChatBox("Przekroczy?e? pr?dko??!", el, 30, 45, 110)
                end
                outputChatBox("Dopuszczalna pr?dko??: "..speedCamera.." km/h, Twoja pr?dko??: "..string.format("%.02f", speedVehicle).." km/h.", el, 30, 45, 110)
            end
        end
    end
end)


Drugi plik:
local speedCameras={
    {-2000.60, 213.17, 27.69, 20, 75}, -- mechanik doherty
    {-1123.60, 1146.06, 37.40, 20, 140}, -- most sf - fc
    {-183.96, 1113.91, 19.74, 20, 75}, -- fort carson
    {1525.93, 1865.88, 10.82, 20, 75}, -- las venturas
    {2292.52, 1380.36, 10.82, 20, 75}, -- obok piramidy
}

for i,v in ipairs(speedCameras) do
    local cuboid=createColSphere(v[1], v[2], v[3], v[4])
      local object1=createObject(1622, v[1], v[2], v[3]+3, 0.9)
      local object2=createObject(16101, v[1]+0.3, v[2]-0.1, v[3]+2.5, 180)
    setElementData(cuboid, "speedcamera:speed", v[5])
end

addEventHandler("onColShapeHit", resourceRoot, function(el,md)
    if getElementType(el) == "player" then
        local veh=getPedOccupiedVehicle(el)
        if not veh then return end
        if getVehicleController(veh)~=el then return end
        local maxspeed=tonumber(getElementData(source,"speedcamera:speed"))
        if getVehicleSirensOn(veh) then
            outputChatBox("Jedziesz aktualnie na sygnale!", el, 30, 45, 110)
        else
            speedx, speedy, speedz = getElementVelocity(veh)
            actualspeed = (speedx^2 + speedy^2 + speedz^2)^(0.5)
            kmh = actualspeed * 180
            if kmh > maxspeed then
                local mandate=tonumber(math.floor(math.random(20,50)))
                if getPlayerMoney(el) > mandate then
                    takePlayerMoney(el, mandate)
                end
                outputChatBox("Przekroczy?e? pr?dko??! Otrzymujesz mandat w wysoko?ci: "..mandate.." z?.", el, 30, 45, 110)
                outputChatBox("Dopuszczalna pr?dko??: "..maxspeed.." km/h, Twoja pr?dko??: "..string.format("%.02f", kmh).." km/h.", el, 30, 45, 110)
            end
        end
    end
end)


Skrypt na fotoradary jest z gtaO.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-02-14, 13:32


MIKAELmta







Wiek: 25
Na forum: 4120 dni
Posty: 311

Piwa: 10631

Respekt: 355,3
Respekt: 355,3Respekt: 355,3Respekt: 355,3Respekt: 355,3

Ale co? w dzia?aniu przeszkadza ? Je?li nie, to lepiej da? sobie z tym spok?j :mrgreen:

Postaw piwo autorowi tego posta
 

 
Wysłany: 2016-02-14, 14:56


andrzej80

Amator Lua :D






Wiek: 30
Na forum: 3918 dni
Posty: 74
Nick w MP: andrzej80

Piwa: 1

Respekt: 50

W?a?nie nic nie przeszkadza, ale jak si? kilka razy przez te fotoradary przeje?d?a, to si? robi lekki spam w konsoli i logach serwerowych :D

Postaw piwo autorowi tego posta
 

 
Tagi: fotoradary
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Fotoradary Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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