--SQL LITE
handler = dbConnect("sqlite", "przechowywalnia.db")
dbExec(handler, "CREATE TABLE IF NOT EXISTS `przechowywalnia` (`id` INTEGER, `model` INTEGER, `wlasciciel` INTEGER, przebieg FLOAT, paliwo FLOAT)")
dbExec(handler, "CREATE TABLE IF NOT EXISTS `puszkodzenia` (`id` INTEGER, `hp` INTEGER, `p0` INTEGER, `p1` INTEGER, `p2` INTEGER, `p3` INTEGER, `p4` INTEGER, `p5` INTEGER, `p6` INTEGER)")
function onStartPrzechowywalnia()
--marker
local maly = createMarker( -100.38,1051.10,19.87-0.9, "cylinder", 1.4, 36, 255, 0, 85)
addEventHandler("onMarkerHit", maly, onPrzechowywalniaHit)
local przecho = createBlip (-96.87,1040.83,19.87, 35)
duzy = createMarker(-96.87,1040.83,19.87-0.9, "cylinder", 8, 0, 133, 99, 80)
end
addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), onStartPrzechowywalnia)
function onPrzechowywalniaHit(hitElement)
if getElementType(hitElement) == "player" then
local acc = getPlayerAccount(hitElement)
if acc then
local veh = getPedOccupiedVehicle(hitElement)
if not veh then
local login = getAccountName(acc)
local query = dbQuery(handler, "SELECT * FROM przechowywalnia WHERE wlasciciel='"..login.."'")
local result, rows = dbPoll (query, -1)
triggerClientEvent(hitElement, "showPrzechowywalniaGUI", root, result or {})
end
end
end
end
addEvent("onPrzywrocPojazdZPrzechowywalni", true)
addEventHandler("onPrzywrocPojazdZPrzechowywalni", getRootElement(),
function(id)
local query = dbQuery(handler, "SELECT * FROM przechowywalnia WHERE id='"..id.."'")
local result, rows = dbPoll (query, -1)
if #result > 0 then
dbExec(handler, "DELETE FROM przechowywalnia WHERE id='"..id.."'")
--tworze pojazd
local x, y, z = getElementPosition(duzy)
local zrob = exports.systempojazdow:stworzPojazd(id, x, y, z+2)
if zrob then
setVehicleDamage(zrob)
setElementData(zrob, "pojazdy_paliwo", paliwo)
setElementData(zrob, "pojazdy_przebieg", przebieg)
warpPedIntoVehicle(source, zrob)
else
outputChatBox("#919191[#CC0000ERROR#919191]Podane auto #CC0000nie istnieje#919191.", source, 255, 255, 255, true)
end
dbExec(handler, "DELETE FROM puszkodzenia WHERE id='"..id.."'")
else
outputChatBox("#919191[#CC0000ERROR#919191]Podane auto #CC0000nie istnieje #919191ju? w przechowywalni.", source, 255, 255, 255, true)
end
end)
function czyPojazdJestWPrzechowywalni(id)
local query = dbQuery(handler, "SELECT * FROM przechowywalnia WHERE id='"..id.."'")
local result, rows = dbPoll (query, -1)
if #result > 0 then
return true
else
return false
end
end
--##
timery = {}
function onPrzechoVehExit(player, seat)
if seat == 0 then
local id = getElementData(source, "car_id")
if id then
if isElementWithinMarker(source, duzy) then
timery[id] = setTimer(oddajPojazdDoPrzechowywalni, 50, 1, source, player, id, true)
end
end
end
end
addEventHandler("onVehicleExit", getRootElement(), onPrzechoVehExit)
function oddajPojazdDoPrzechowywalni(veh, player, id, bool, paliwo, przebieg)
if isElement(veh) then
local acc = getPlayerAccount(player)
if acc then
local wlasciciel = getElementData(veh, "car_owner")
local model = getElementModel(veh)
local paliwo = getElementData(veh, "pojazdy_paliwo") or 100
local przebieg = getElementData(veh, "pojazdy_przebieg") or 100
dbExec(handler, "INSERT INTO przechowywalnia VALUES('"..id.."', '"..model.."', '"..wlasciciel.."', '"..paliwo.."', '"..przebieg.."')")
--<< zniszczenia
local hp, p0, p1, p2, p3, p4, p5, p6 = getVehicleDamage(veh)
dbExec(handler, "INSERT INTO puszkodzenia VALUES('"..id.."', '"..hp.."', '"..p0.."', '"..p1.."', '"..p2.."', '"..p3.."', '"..p4.."', '"..p5.."', '"..p6.."')")
--
if isElement(player) then
if bool then
outputChatBox("#919191Tw?j pojazd #FF9D00"..getVehicleName(veh).." #919191zosta? umieszczony w przechowywalni.", player, 255, 255, 255, true)
else
outputChatBox("#919191Odda?e? pojazd #FF9D00"..getVehicleName(veh).." #919191do przechowywalni.", player, 255, 255, 255, true)
end
end
destroyElement(veh)
end
end
end
function komendaDlaAdmina(player)
local acc = getPlayerAccount(player)
if acc then
local login = getAccountName(acc)
if isObjectInACLGroup ("user."..login, aclGetGroup("Admin")) then
local veh = getPedOccupiedVehicle(player)
if veh then
local id = getElementData(veh, "car_id")
if id then
oddajPojazdDoPrzechowywalni(veh, player, id)
end
end
end
end
end
addCommandHandler("oddajauto", komendaDlaAdmina)
function komendaDlaAdmina2(player)
local acc = getPlayerAccount(player)
if acc then
local login = getAccountName(acc)
if isObjectInACLGroup ("user."..login, aclGetGroup("Supporter")) then
local veh = getPedOccupiedVehicle(player)
if veh then
local id = getElementData(veh, "car_id")
if id then
oddajPojazdDoPrzechowywalni(veh, player, id)
end
end
end
end
end
addCommandHandler("oddajauto", komendaDlaAdmina2)
function onPrzechoVehEnter(player, seat)
if seat == 0 then
local id = getElementData(source, "car_id")
if id then
if isTimer(timery[id]) then
killTimer(timery[id])
end
end
end
end
addEventHandler("onVehicleEnter", getRootElement(), onPrzechoVehEnter)
function komendaDlaAdmina3(player)
local acc = getPlayerAccount(player)
if acc then
local login = getAccountName(acc)
if isObjectInACLGroup ("user."..login, aclGetGroup("Admin2")) then
local veh = getPedOccupiedVehicle(player)
if veh then
local id = getElementData(veh, "car_id")
if id then
oddajPojazdDoPrzechowywalni(veh, player, id)
end
end
end
end
end
addCommandHandler("oddajauto", komendaDlaAdmina3)
--<< Zapis i ustawianie uszkodzen w pojezdzie
function getVehicleDamage(veh)
local id = getElementData(veh, "car_id")
if id then
save = {}
local hp = getElementHealth(veh)
for i=0, 6 do
local panel = getVehiclePanelState (veh, i)
save[i] = panel
end
local p0, p1, p2, p3, p4, p5, p6 = save[0], save[1], save[2], save[3], save[4], save[5], save[6]
save = nil
return hp, p0, p1, p2, p3, p4, p5, p6
end
end
function setVehicleDamage(veh)
local id = getElementData(veh, "car_id")
if id then
local query = dbQuery(handler, "SELECT * FROM puszkodzenia WHERE id='"..id.."'")
local result, rows = dbPoll (query, -1)
if #result > 0 then
local hp, p0, p1, p2, p3, p4, p5, p6 = result[1].hp, result[1].p0, result[1].p1, result[1].p2, result[1].p3, result[1].p4, result[1].p5, result[1].p6
save = {}
save = {p0, p1, p2, p3, p4, p5, p6}
for i=0, 6 do
setVehiclePanelState (veh, i, save[i + 1])
end
setElementHealth(veh, hp)
save = nil
end
end
end