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

Wysłany: 2019-03-09, 01:43


ProWhiteQ

Ucze sie LUA






Wiek: 46
Na forum: 4482 dni
Posty: 38

Piwa: 6

Respekt: 50

Witam! Mam problem z zapisem ostaniego kierowcy na serwerze, nie wiem czy ma to zwi?zek z b??dem tabeli w MySQL czy b??d w skryptach. Dodaj? do tego skrypt na pojazdy:

vehicles=0
root=getRootElement()
resourceRoot=getResourceRootElement(getThisResource())

local nlOffsets={
    [411]={-1,0,-0.6},    -- infernus
    [470]={-1,0,-0.4},    -- patriot
    [541]={-0.9,0,-0.4},    -- bulelt
    [549]={-0.9,0,-0.4},    -- tampa
    [587]={-1,0,-0.5},    -- euros
}

local nlIDX={
    3962,2113,1784,2054,2428,2352
}
function getAdmin2(plr,level)
    if level then
        local result=exports["ogrpg-db"]:dbGet("SELECT * from ogrpg_admins WHERE serial=? AND level=?", getPlayerSerial(plr), level)
        if result and #result > 0 then
            return true
        else
            return false
        end
    else
        local result=exports["ogrpg-db"]:dbGet("SELECT * from ogrpg_admins WHERE serial=?", getPlayerSerial(plr))
        if result and #result > 0 then
            return true
        else
            return false
        end
    end
end
--///////////////////////////////////// WCZYTYWANIE POJAZD?W /////////////////////////////////
function onRespawnVehicles(_,id,poss)
    -- Settings (QUERY)
    if id then
        result=exports["ogrpg-db"]:dbGet("SELECT * FROM ogrpg_vehicles WHERE parking=1 AND id=?", id)
        query=exports["ogrpg-db"]:dbSet("UPDATE ogrpg_vehicles SET parking=0 WHERE id=?", id)
    else
        result=exports["ogrpg-db"]:dbGet("SELECT * FROM ogrpg_vehicles WHERE parking=0")
    end

    -- Pairs
    for ile,vehicle in pairs(result) do
        vehicles=ile

        if id then pos={poss[1], poss[2], poss[3], poss[4], poss[5], poss[6]}
        else pos=split(vehicle["pos"], ",") end

        local color=split(vehicle["color"], ",")
        local lights=split(vehicle["headlights"], ",")

        local veh=createVehicle(vehicle["model"], pos[1], pos[2], pos[3], pos[4], pos[5], pos[6])
        setVehicleColor(veh, color[1], color[2], color[3], color[4],color[5], color[6], color[7], color[8],color[9], color[10], color[11], color[12])
        setVehicleHeadLightColor(veh, lights[1], lights[2], lights[3])
        if vehicle["plateText"] ~= "" then
        setVehiclePlateText(veh, vehicle["plateText"])
        else
         setVehiclePlateText(veh, tostring("SF  "..vehicle["id"]))
        end
        setElementFrozen(veh, (vehicle["frozen"]) > 0)
        if vehicle["paintjob"] ~= 3 then
        setVehiclePaintjob(veh, vehicle["paintjob"])
        end
        setElementHealth(veh, vehicle["health"])
        setElementData(veh,"vehicle:spawn",true)
        setElementData(veh,"vehicle:id", vehicle["id"])
        setElementData(veh,"vehicle:fuel", vehicle["fuel"])
        setElementData(veh,"vehicle:desc", vehicle["text"] or false)
        setElementData(veh,"vehicle:mileage", vehicle["mileage"])
        setElementData(veh,"vehicle:driver", vehicle["driver"])
        setElementData(veh,"vehicle:ownedGroup", vehicle["ownedGroup"])
        setElementData(veh,"vehicle:ownedPlayer", vehicle["ownedPlayer"])
        setElementData(veh,"vehicle:LPG", vehicle["gaz"])
        setElementData(veh,"Zamontowane:LPG", vehicle["GazZamont"])
        setElementData(veh,"licznik:kolor", vehicle["licznik"])
        setElementData(veh,"Zawieszenie:Pneumatyczne", vehicle["zawieszenie"])
        setElementData(veh,"vehicle:drzwidogury", vehicle["drzwi"])
        setElementData(veh,"Pojemnosc:silnika", vehicle["silnik"])
            local Pojemnosc = getElementData(veh,"Pojemnosc:silnika") or "Zwykly"
            if Pojemnosc == '2.0cm3' then -- pojemnosc silnika 2.0
               setVehicleHandling(veh, "engineAcceleration", 14.0)
            elseif Pojemnosc == '2.5cm3' then -- pojemnosc silnika 2.5
               setVehicleHandling(veh, "engineAcceleration", 15.5)
                        elseif Pojemnosc == '3.5cm3' then -- pojemnosc silnika 3.5
                           setVehicleHandling(veh, "engineAcceleration",19.5)
                           setVehicleHandling(veh, "driveType", "awd")
                           setVehicleHandling(veh, "maxVelocity", 205.0)
            end
              local drziwdogora = getElementData(veh,"vehicle:drzwidogury")
         if drziwdogora == 'Tak' then
                setElementData(veh, "tuning.lsdDoor", true)
    end
        if (type(vehicle['rent']) == "string") then
        local tabelka = {}
        local rente = split(vehicle['rent'], ',')
        for k,v in ipairs(rente) do
        table.insert(tabelka,v)
        end
        setElementData(veh,"vehicle:rent", tabelka or false)
        else
        setElementData(veh,"vehicle:rent",0)
        end
    --[[    if vehicle["rearlights"] ~= "" then
        setElementData(veh,"vehicle:light", vehicle["rearlights"])
        else
        setElementData(veh,"vehicle:light", "High Quality")
        end]]--
        setElementData(veh,"neony", vehicle["neon"])
        if vehicle["blokada"] == "true" then
            setElementData(veh,"vehicle:block", true)
            setVehicleWheelStates(veh, 2, 2, 2, 2)
        else
            setElementData(veh,"vehicle:block", false)
        end
        local rodzajneonu=tonumber(getElementData(veh,"neony"))
        if getElementData(veh,"neony") ~= 0 then
        local m = getElementModel(veh)
        local of
        if not nlOffsets[m] then
        of={-1,0,-0.5}
        else
        of=nlOffsets[m]
        end
        neon1=createObject(nlIDX[rodzajneonu],0,0,0)
        neon2=createObject(nlIDX[rodzajneonu],0,0,0)
        setElementData(veh,"zneony", {neon1, neon2})
        attachElements(neon1,veh,of[1],of[2],of[3])
        attachElements(neon2,veh,-of[1],of[2],of[3])
        end

        for i,v in ipairs(split(vehicle["tuning"], ",")) do addVehicleUpgrade(veh, v) end
        for i,v in ipairs(split(vehicle["panelstates"], ",")) do setVehiclePanelState(veh, i, tonumber(v)) end
        setVehicleDamageProof(veh, true)
                setElementData(veh, "vehicle:BezynaWloczone", true)
                setElementFrozen(veh,true)
    end
    outputDebugString("[og-vehicles] Wczytano "..vehicles.." pojazdow.")
end

--///////////////////////////////////// ZAPISYWANIE POJAZD?W /////////////////////////////////
function onSaveVehicle(vehicle)
    if getElementData(vehicle,"vehicle:spawn") then
        -- Setting
        local panelstates={}
        local model=getElementModel(vehicle)
        local health=getElementHealth(vehicle)
        local x,y,z=getElementPosition(vehicle)
        local rx,ry,rz=getElementRotation(vehicle)
        local desc=getElementData(vehicle,"vehicle:desc") or ""
        local id=getElementData(vehicle,"vehicle:id")
        local fuel=getElementData(vehicle,"vehicle:fuel")
        local mileage=getElementData(vehicle,"vehicle:mileage")
        local c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12=getVehicleColor(vehicle, true)
        local driver=getElementData(vehicle,"vehicle:driver") or ""
        local gaz=getElementData(vehicle,"vehicle:LPG")
        local silnik=getElementData(vehicle,"Pojemnosc:silnika") or "Zwykly"
        local licznik=getElementData(vehicle,"licznik:kolor") or "Zwykly"
        local GazZamont=getElementData(vehicle,"Zamontowane:LPG") or "Brak"
        local zawieszenie=getElementData(vehicle,"Zawieszenie:Pneumatyczne") or "Brak"
        local drzwi=getElementData(vehicle,"vehicle:drzwidogury") or "Nie"
        local rent=getElementData(vehicle,"vehicle:rent")
        local player=getElementData(vehicle,"vehicle:ownedPlayer")
     --   local group=getElementData(vehicle,"vehicle:ownedGroup")
        local blokada=getElementData(vehicle,"vehicle:block")
        local neon=getElementData(vehicle,"neony")
        local h1,h2,h3=getVehicleHeadLightColor(vehicle)
        local paintjob=getVehiclePaintjob(vehicle)
        local rear="Brak"
        local frozen= isElementFrozen(vehicle) and 1 or 0
        for i=0,6 do table.insert(panelstates, getVehiclePanelState(vehicle,i)) end
        panelstates=table.concat(panelstates,",")
        upgrades=getVehicleUpgrades(vehicle)
        if not upgrades then upgrades={} end
        upgrades=table.concat(upgrades, ",")
        -- Query
        local query = exports["ogrpg-db"]:dbSet(string.format("UPDATE ogrpg_vehicles SET model='%d', pos='%.2f,%.2f,%.2f,%.2f,%.2f,%.2f', rent='%d',text='%s', health='%d', fuel='%d', mileage='%d', frozen='%d', driver='%s', color='%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d', panelstates='%s', paintjob='%d', tuning='%s', headlights='%d,%d,%d', ownedPlayer='%d', neon='%d', silnik='%s', gaz='%d', GazZamont='%s', zawieszenie='%s', drzwi='%s', licznik='%s', blokada='%s' WHERE id=%d",
        model, x,y,z, rx,ry,rz, "0",desc, health, fuel, mileage, frozen, driver, c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12, panelstates, paintjob, upgrades, h1,h2,h3, player, neon, silnik, gaz, GazZamont, zawieszenie, drzwi, licznik, tostring(blokada), id))
        if (type(rent) == "table") then
        local rr = string.format("%s", table.concat(rent, ',') )
    --    outputDebugString(rr)
        local query2= exports['ogrpg-db']:dbSet("UPDATE ogrpg_vehicles SET rent=? WHERE id=?",rr,id)
        end
    end
end

function onParkVehicle(vehicle) 
    local query=exports["ogrpg-db"]:dbSet("UPDATE ogrpg_vehicles SET parking=1 WHERE id=?", getElementData(vehicle,"vehicle:id"))
    if query then
        local zneony=getElementData(vehicle,"zneony")
        if (zneony and type(zneony)=="table") then
        destroyElement(zneony[1])
        destroyElement(zneony[2])
        removeElementData(vehicle,"zneony")
        end
        destroyElement(vehicle)
    end
end

--///////////////////////////////////// SPRAWDZANIE USTAWIE? /////////////////////////////////
function getSettings(plr,code,value)
    local uid=getElementData(plr,"player:uid")
    if not uid then return end
    if value == "faction" then
        local result=exports["ogrpg-db"]:dbGet("SELECT * FROM ogrpg_factions WHERE code=? AND uid=?", code, uid)
        if result and #result > 0 then
            return result[1].code
        else
            return false
        end
    end
    if value == "organization" then
        local result=exports["ogrpg-db"]:dbGet("SELECT * FROM sg_organizacje WHERE uid=?", uid)
        if result and #result > 0 then
            return result[1].code
        else
            return false
        end
    end
    if value == "owner" then
        local result=exports["ogrpg-db"]:dbGet("SELECT * FROM ogrpg_users WHERE id=?", uid)
        if result and #result > 0 then
            return result[1].id
        else
            return false
        end
    end
end

--///////////////////////////////////// INNE USTAWIENIA /////////////////////////////////
addEventHandler("onVehicleExit", root, function(plr,seat)
    if seat ~= 0 then return end 
       onSaveVehicle(source)
       setVehicleEngineState(source, true)
    setVehicleDamageProof(source, true)
    unbindKey(plr, 'h', 'down', bindHoron4)
end)


addEventHandler("onPlayerQuit", root, function()
    local veh=getPedOccupiedVehicle(source)
    if veh then
        setVehicleDamageProof(source, true)
        onSaveVehicle(veh)
    end
end)

addEventHandler("onResourceStop", resourceRoot, function()
    for i,v in ipairs(getElementsByType("vehicle")) do
        onSaveVehicle(v)
        local zneony=getElementData(v,"zneony")
        if (zneony and type(zneony)=="table") then
        destroyElement(zneony[1])
        destroyElement(zneony[2])
        removeElementData(v,"zneony")
        end
    end
    outputDebugString("[og-vehicles] Saved all vehicles!")
end)

addEventHandler("onVehicleEnter", root, function(plr,seat)
    if seat ~= 0 then return end 
            local Pojemnosc = getElementData(source,"Pojemnosc:silnika") or "Zwykly"
            if Pojemnosc == '2.0cm3' then -- pojemnosc silnika 2.0
               setVehicleHandling(source, "engineAcceleration", 14.0)
            elseif Pojemnosc == '2.5cm3' then -- pojemnosc silnika 2.5
               setVehicleHandling(source, "engineAcceleration", 15.5)
                        elseif Pojemnosc == '3.5cm3' then -- pojemnosc silnika 3.5
                           setVehicleHandling(source, "engineAcceleration",19.5)
                           setVehicleHandling(source, "driveType", "awd")
                           setVehicleHandling(source, "maxVelocity", 205.0)
            end
end)

addEventHandler("onVehicleEnter", root, function(plr,seat)
    if seat ~= 0 then return end 
        local zawiesze = getElementData(source,"Zawieszenie:Pneumatyczne")
                   if zawiesze == 'Tak' then
                        outputChatBox("* Posiadasz zawieszenie pneumatyczne, mo?esz je regulowa? komend? /zawieszenie 1-5", plr, 255,255,255)
     return
end
end)

--///////////////////////////////////// SPRAWDZENIE W?A?CICIELA /////////////////////////////////
addEventHandler("onVehicleStartEnter", resourceRoot, function(plr,seat,jacked)
    if seat == 0 then
        local rent=getElementData(source, "vehicle:rent")
        local group=getElementData(source, "vehicle:ownedGroup")
        if group == "0" then group = "Brak" end
        local player=getElementData(source, "vehicle:ownedPlayer")
        if getAdmin2(plr, 3) then
            return
        end
        if rent and (type(rent) == "table") then
            for i,s in pairs(rent) do
                if tonumber(s) == getElementData(plr,"player:uid") then
                return end
            end
        end
        
        local plrgroup = getElementData(plr,"player:organization")
        if plrgroup then
        --    outputDebugString(group)
            if getSettings(plr,false,"organization") == group then return end
        end
        if player and player ~= getSettings(plr,false,"owner") then
            triggerClientEvent(plr,"addNotification",root,"* Nie masz kluczyk?w do tego pojazdu.","error")
            cancelEvent()
        end
    end
end)

addEventHandler("onVehicleStartEnter", root, function(plr,seat,jacked)
    if jacked then 
        if getElementData(source,"vehicle:ownedPlayer") == getElementData(plr,"player:uid") then return end
        cancelEvent()
    end
end)

addEventHandler("onVehicleStartEnter", root, function(plr,seat,jacked)
    if seat == 0 then
        if getElementData(source,"spawnowany")== true then
            if getElementData(plr,"player:admin")== false then
                cancelEvent()
            end
        end
    end
end)

addEventHandler("onElementDestroy", getRootElement(), function ()
  if getElementType(source) == "vehicle" then
      local zneony=getElementData(source,"zneony")
    if (zneony and type(zneony)=="table") then
        destroyElement(zneony[1])
        destroyElement(zneony[2])
        removeElementData(source,"zneony")
        end
    end
end)


addEventHandler("onResourceStart", resourceRoot, function() onRespawnVehicles(_,false) end)


--[[
vehicles retrieval - mechanizm wylawiajacy pojazdy z wody
@author Lukasz Biegaj <wielebny@bestplay.pl>
@author Karer <karer.programmer@gmail.com>
@author WUBE <wube@lss-rp.pl>
@copyright 2011-2013 Lukasz Biegaj <wielebny@bestplay.pl>
]]--



function shuffle(t)
  local n = #t
 
  while n >= 2 do
    -- n is now the last pertinent index
    local k = math.random(n) -- 1 <= k <= n
    -- Quick swap
    t[n], t[k] = t[k], t[n]
    n = n - 1
  end
  return t
end

local function vr()

    local pojazdy=getElementsByType("vehicle")

    if (#pojazdy<1) then return end

    local pojazdwoda={}
    for _,pojazd in ipairs(pojazdy) do
        if isElementInWater(pojazd) and not getVehicleController(pojazd) then
            local x,y,z=getElementPosition(pojazd)
            if (z<-1) then
                table.insert(pojazdwoda,pojazd)
            end
        end
    end
    if (#pojazdwoda<1) then return end

    outputDebugString("Pojazdow w wodzie/pod mapa: " .. #pojazdwoda)

    shuffle(pojazdwoda)
    
    local pojazd=pojazdwoda[1]
    if getElementData(pojazd, "vehicle:spawn") then
        onParkVehicle(pojazd)
    else
        respawnVehicle(pojazd)
    end
end
setTimer(vr, 35000, 0)

--//////////////////////////////////////////////////////// Licencje

local categoryA={[463] = true,[462] = true,[461] = true,[581] = true,[448] = true,[468] = true,[471] = true,[521] = true,[522] = true,[523] = true} 
local categoryB={[602] = true,[545] = true,[496] = true,[517] = true,[401] = true,[410] = true,[518] = true,[600] = true,[527] = true,[436] = true,[589] = true,[580] = true,[419] = true,[439] = true,[533] = true,[549] = true,[526] = true,[491] = true,[474] = true,[445] = true,[467] = true,[604] = true,[426] = true,[507] = true,[547] = true,[585] = true,[405] = true,[587] = true,[409] = true,[466] = true,[550] = true,[492] = true,[566] = true,[546] = true,[540] = true,[551] = true,[421] = true,[516] = true,[529] = true,[488] = true,[460] = true,
[469] = true,[487] = true,[510] = true,[509] = true,[481] = true,[586] = true,[472] = true,[473] = true,[493] = true,[595] = true,[484] = true,[430] = true,[453] = true,[452] = true,[446] = true,[454] = true,[485] = true,[552] = true,
[438] = true,[574] = true,[420] = true,[525] = true,[408] = true,[596] = true,[597] = true,[427] = true,[599] = true,[490] = true,[432] = true,[528] = true,[601] = true,[407] = true,[544] = true,[470] = true,[598] = true,[588] = true,
[532] = true,[443] = true,[486] = true,[531] = true,[543] = true,[422] = true,[583] = true,[478] = true,[605] = true,[554] = true,[530] = true,[418] = true,[572] = true,[582] = true,[536] = true,[575] = true,[534] = true,
[567] = true,[535] = true,[576] = true,[412] = true,[402] = true,[542] = true,[603] = true,[475] = true,[449] = true,[537] = true,[570] = true,[441] = true,[464] = true,[501] = true,[465] = true,[564] = true,[568] = true,[557] = true,[424] = true,[504] = true,[495] = true,[457] = true,[539] = true,[483] = true,[571] = true,[500] = true, 
[444] = true,[556] = true,[429] = true,[411] = true,[541] = true,[559] = true,[415] = true,[561] = true,[480] = true,[560] = true,[562] = true,[506] = true,[565] = true,[451] = true,[434] = true,[558] = true,[494] = true,[555] = true,[502] = true,[477] = true,[503] = true,[579] = true,[400] = true,[404] = true,[489] = true,[505] = true,[479] = true,[442] = true,[458] = true,
[606] = true,[607] = true,[610] = true,[590] = true,[569] = true,[611] = true,[584] = true,[608] = true,[435] = true,[450] = true,[591] = true,[594] = true}
local categoryC={[403] = true,[406] = true,[413] = true,[414] = true,[416] = true,[423] = true,[428] = true,[431] = true,[433] = true,[437] = true,[440] = true,[455] = true,[456] = true,[459] = true,[482] = true,[498] = true,[499] = true,[508] = true,[514] = true,[515] = true,[524] = true,[538] = true,[573] = true}
addEventHandler("onVehicleStartEnter", resourceRoot, function(plr,seat,jacked)
    if seat == 0 then
        if categoryA[getElementModel(source)] then
           if exports["ogrpg-prace-settings"]:getVehicleLicense(plr,"A") then
            cancelEvent()
            end
        elseif categoryB[getElementModel(source)] then
            if exports["ogrpg-prace-settings"]:getVehicleLicense(plr,"B") then
            cancelEvent()
            end
        elseif categoryC[getElementModel(source)] then
            if exports["ogrpg-prace-settings"]:getVehicleLicense(plr,"C") then
            cancelEvent()
            end
        end
    end
end)





local categoryL={592,553,577,488,511,497,548,563,512,476,593,447,425,519,520,460,417,469,487,513}

-- Tutaj dalsza cze?c kodu
addEventHandler("onVehicleStartEnter", getRootElement(), function(plr,seat,jacked)
    if seat ~= 0 then return end
        local queryA=string.format("SELECT * FROM ogrpg_punish WHERE type=%q AND active=1 AND serial=%q AND time>NOW() LIMIT 1","A", getPlayerSerial(plr))
        local resultA=exports["ogrpg-db"]:pobierzWyniki(queryA)
        if (resultA) then
            cancelEvent()
            outputChatBox("* Posiadasz zawieszone prawo jazdy do "..resultA["time"]..", za: "..resultA["reason"], plr, 255, 0, 0)
        else
            exports["ogrpg-db"]:dbSet("DELETE FROM ogrpg_punish WHERE type=? AND active=1 AND serial=?", "A", getPlayerSerial(plr))
        end
--[[        ("..resultA["type"]..")
        local queryB=string.format("SELECT * FROM ogrpg_punish WHERE type=%q AND active=1 AND serial=%q AND time>NOW() LIMIT 1","B", getPlayerSerial(plr))
        local resultB=exports["ogrpg-db"]:pobierzWyniki(queryB)
        if (resultB) then
            cancelEvent()
            outputChatBox("* Posiadasz zawieszone prawo jazdy kat("..resultB["type"]..") do "..resultB["time"]..", za: "..resultB["reason"], plr, 255, 0, 0)
        else
            exports["ogrpg-db"]:dbSet("DELETE FROM ogrpg_punish WHERE type=? AND active=1 AND serial=?", "B", getPlayerSerial(plr))
        end
        local queryC=string.format("SELECT * FROM ogrpg_punish WHERE type=%q AND active=1 AND serial=%q AND time>NOW() LIMIT 1","C", getPlayerSerial(plr))
        local resultC=exports["ogrpg-db"]:pobierzWyniki(queryC)
        if (resultC) then
            cancelEvent()
            outputChatBox("* Posiadasz zawieszone prawo jazdy kat("..resultC["type"]..") do "..resultC["time"]..", za: "..resultC["reason"], plr, 255, 0, 0)
        else
            exports["ogrpg-db"]:dbSet("DELETE FROM ogrpg_punish WHERE type=? AND active=1 AND serial=?", "C", getPlayerSerial(plr))
        end
        ]]--
        --[[local queryC=string.format("SELECT * FROM ogrpg_punish WHERE type=%q AND active=1 AND serial=%q AND time>NOW() LIMIT 1","C", getPlayerSerial(plr))
        local resultC=exports["ogrpg-db"]:pobierzWyniki(queryC)
        if (resultC) then
            cancelEvent()
            outputChatBox("* Posiadasz zawieszone prawo jazdy kat("..resultC["type"]..") do "..resultC["time"]..", za: "..resultC["reason"], plr, 255, 0, 0)
        else
            exports["ogrpg-db"]:dbSet("DELETE FROM ogrpg_punish WHERE type=? AND active=1 AND serial=?", "C", getPlayerSerial(plr))
        end]]--
    --[[if categoryL[getElementModel(source)] then
        query=string.format("SELECT * FROM ogrpg_punish WHERE type=%q AND active=1 AND serial=%q AND time>NOW() LIMIT 1","L", getPlayerSerial(target))
        local result=exports["ogrpg-db"]:pobierzWyniki(query)
        if (result) then
            cancelEvent()
            outputChatBox("* Posiadasz zawieszone prawo jazdy do "..result["time"]..", za: "..result["reason"], plr, 255, 0, 0)
        else
            exports["ogrpg-db"]:dbSet("DELETE FROM ogrpg_punish WHERE type=? AND active=1 AND serial=?", "L", getPlayerSerial(plr))
        end
    end]]-- Kat L zostala zablokowana ]]--
end)

addEventHandler("onVehicleEnter", getRootElement(), function(plr,seat,jacked)
    if seat ~= 0 then return end
        local queryA=string.format("SELECT * FROM ogrpg_punish WHERE type=%q AND active=1 AND serial=%q AND time>NOW() LIMIT 1","A", getPlayerSerial(plr))
        local resultA=exports["ogrpg-db"]:pobierzWyniki(queryA)
        if (resultA) then
            setControlState ( plr, "enter_exit", true )
            setTimer(toggleControl, 3000, 1,  plr,"enter_exit", true)
            outputChatBox("* Posiadasz zawieszone prawo jazdy do "..resultA["time"]..", za: "..resultA["reason"], plr, 255, 0, 0)
        else
            exports["ogrpg-db"]:dbSet("DELETE FROM ogrpg_punish WHERE type=? AND active=1 AND serial=?", "A", getPlayerSerial(plr))
        end
end)

local strefa = { }
local strefy = {
    {1336.23840, 656.78876, 9.85624, 60.50634765625, 146.80010986328, 16.164074325562 },
    {924.07690, 1661.90576, 9.25354, 194.91711425781, 138.31750488281, 23.899999046326},
    {2197.99780, 2405.43872, -31.81085, 178.1982421875, 112.3896484375, 57.499998474121},
}
 
local ogranicznik = createElement ("ogranicznik");
for i,v in ipairs ( strefy  ) do
     strefa[i] = createColCuboid ( v [ 1 ], v [ 2 ], v [ 3 ], v [ 4 ], v [ 5 ], v [ 6 ], v [7] )
     setElementParent (strefa [i], ogranicznik);
end
 
addEventHandler("onColShapeHit", ogranicznik, function(el,md)
    if getElementType(el)=="vehicle" then
            setElementData(el,"vehicle:tempspeed", 50)
    end
end)
addEventHandler("onColShapeLeave", ogranicznik, function(el,md)
    if getElementType(el)=="vehicle" then
        removeElementData(el,"vehicle:tempspeed")
    end
end)


Oraz stron? clienta suszarki:



local w,h = guiGetScreenSize()

local vehicle={}
vehicle.id=nil
vehicle.speed=nil
vehicle.driver=nil

local option={}
value=nil
element=nil
option.selected=0
option.actived=false

option["vehicle"]={
    "Akcja: Napraw pojazd",
    "Akcja: Odeslij do przechowalni",
    "Akcja: Respawnuj Pojazd(usun)",
    "Akcja: Przenie? pojazd",
    "Akcja: Zatankuj pojazd",
    "Akcja: Gleba",
}

option["player"]={
    "Akcja: Przenie? do siebie",
    "Akcja: Wyrzu? gracza",
    "Akcja: Prze?aduj gracza",
    "Akcja: Ulecz gracza",
    "Akcja: Przenie? do niego",
}

function isPedAiming ( thePedToCheck )
    if isElement(thePedToCheck) then
        if getElementType(thePedToCheck) == "player" or getElementType(thePedToCheck) == "ped" then
            if getPedTask(thePedToCheck, "secondary", 0) == "TASK_SIMPLE_USE_GUN" then
                return true
            end
        end
    end
    return false
end

function isRendering()
    if option.actived == true then
        if not element then return end
        local vx,vy,vz=getElementVelocity(element)
        mathSpeed=(vx^2+vy^2+vz^2)^0.5*1.8*100
        if mathSpeed < 0 then return end
        if value == "vehicle" then
            local vid=getElementData(element,"vehicle:id") or "b??d"
            local driver=getElementData(element,"vehicle:driver") or "b??d"
            local plate=getVehiclePlateText(element) or 0
           -- dxDrawText("Suszarka Administracji",(288/1280)*w, (214/720)*h, (1008/1280)*w, (402/720)*h, tocolor(255, 255, 255, 255), 1.50, "default", "center", "center", false, false, false, false, false)
            dxDrawImage((278/1280)*w, (267/720)*h, (735/1280)*w, (209/720)*h, ":ogrpg-offices/license/okn.png", 0, 0, 0, tocolor(0, 0, 0, 185), false)
            dxDrawText(string.format("%.02f", mathSpeed).." km/h", (825/1280)*w, (1013/720)*h, (446/1280)*w, (446/720)*h, tocolor(255, 255, 255, 255), (2.00/1280)*w, (2.00/720)*h, "default-bold", "center", "center", false)
            dxDrawText("Rejestracja: "..plate, (297/1280)*w, (653/720)*h, (486/1280)*w, (80/720)*h, tocolor(255, 255, 255, 255), (1.00/1280)*w, (1.00/720)*h, "default-bold", "center", "center", false)
            dxDrawText("ID: "..vid.."\n\nOstatni kierowca: "..driver, (486/1280)*w, (600/720)*h, (688/1280)*w, (80/720)*h, tocolor(255, 255, 255, 255), (1.00/1280)*w, (1.00/720)*h, "default-bold", "center", "center", false)
            if getElementData(localPlayer,"player:faction") ~= 5 then
            dxDrawText(option[value][option.selected] or "Akcja: Nie wybrano", (688/1280)*w, (600/720)*h, (957/1280)*w, (83/720)*h, tocolor(217, 0, 0, 255), (1.00/1280)*w, (1.00/720)*h, "default-bold", "center", "center", false)
            end
          end
        if value == "player" then
            local id=getElementData(element,"id") or "b??d"
            local uid=getElementData(element,"player:uid") or "b??d"
            local ogp=getElementData(element,"player:Reputacja") or "b??d"
            local faction=getElementData(element,"player:faction") or "b??d"
            if not getElementData(element,"p:inv") then
            dxDrawImage((278/1280)*w, (267/720)*h, (735/1280)*w, (209/720)*h, ":ogrpg-offices/license/okn.png", 0, 0, 0, tocolor(0, 0, 0, 185), false)
            dxDrawText("UID: "..uid, (296/1280)*w, (600/720)*h, (486/1280)*w, (53/720)*h, tocolor(255, 255, 255, 255), (2.00/1280)*w, (2.00/720)*h, "default-bold", "center", "center", false)
            dxDrawText("RP: "..ogp, (297/1280)*w, (653/720)*h, (486/1280)*w, (80/720)*h, tocolor(255, 255, 255, 255), (1.00/1280)*w, (1.00/720)*h, "default-bold", "center", "center", false)
            dxDrawText(getPlayerName(element).."("..id..")\n\nFrakcja(ID): "..faction, (486/1280)*w, (600/720)*h, (688/1280)*w, (80/720)*h, tocolor(255, 255, 255, 255), (1.00/1280)*w, (1.00/720)*h, "default-bold", "center", "center", false)
            if getElementData(localPlayer,"player:faction") ~= 5 then
            dxDrawText(option[value][option.selected] or "Akcja: Nie wybrano", (688/1280)*w, (600/720)*h, (957/1280)*w, (83/720)*h, tocolor(217, 0, 0, 255), (1.00/1280)*w, (1.00/720)*h, "default-bold", "center", "center", false)
            end
            end
        end
    end
end

addEventHandler("onClientPlayerTarget",root, function(el)
    if isPedAiming(localPlayer) and el and getPedWeapon(localPlayer) == 22 and getElementData(localPlayer, "player:admin") == true then
        if not option.actived  then
            if getElementData(el,"p:inv") then return end
            if getElementType(el) == "vehicle" then
                value="vehicle"
                element=el
                option.actived=true
            elseif getElementType(el) == "player" then
                value="player"
                element=el
                option.actived=true
            else return end
            bindKey("mouse1", "down", onElementClicked)
            bindKey("mouse_wheel_down", "down", onElementMoveDown)
            bindKey("mouse_wheel_up", "down", onElementMoveUp)
            addEventHandler("onClientHUDRender", root, isRendering)
        end
    else
        if option.actived then
            vehicle.el=nil
            option.actived=false
            unbindKey("mouse1", "down", onElementClicked)
            unbindKey("mouse_wheel_down", "down", onElementMoveDown)
            unbindKey("mouse_wheel_up", "down", onElementMoveUp)
            removeEventHandler("onClientHUDRender", root, isRendering)
        end
    end
end)

function onElementMoveUp() if option.selected > 4 then option.selected=1 else option.selected=option.selected+1 end end
function onElementMoveDown() if option.selected < 1 then option.selected=4 else option.selected=option.selected-1 end end
function onElementClicked() if option.selected > 0 then triggerServerEvent("onDryerAction", localPlayer, value, option.selected, element) outputDebugString ( option.selected) end end

function blokada ( prevSlot, newSlot )
    if getPedWeapon(getLocalPlayer(),newSlot) == 22 and getElementData(getLocalPlayer(),"player:admin") == true then 
        toggleControl ( "fire", false ) --disable the aim button
    else 
        toggleControl ( "fire", true ) --renable the aim button
    end
end
addEventHandler ( "onClientPlayerWeaponSwitch", getRootElement(), blokada )

Prosi? bym o pomoc, DB3 nie pokazuje b??d?w.

Postaw piwo autorowi tego posta
 

 
Tagi: ostatni :: kierowca :: zapis
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Ostatni kierowca Zapis 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