local marker=createMarker(2119.19, -2091.64, 12.85-1, "cylinder", 5, 0,122,255,255,50)
setElementData(marker, 'typ', 'pojazd')
local cuboid=createColCuboid(2119.19, -2091.64, 12.85-1, 27.5, 71.25, 6.25)
createBlip(2119.19, -2091.64, 12.85, 43,2,0,0,0,0,0,275)
local wstep=false
local podatek=0
local text=createElement("text")
setElementPosition(text,2119.19, -2091.64, 12.85)
setElementData(text,"name","Gie?da Los Santos\nUstawianie ceny.")
function getPlayerName2(plr)
if not plr then return end
return getPlayerName(plr):gsub("#%x%x%x%x%x%x","")
end
local wm={}
wm.window=guiCreateWindow(0.74, 0.33, 0.25, 0.50, "Gielda", true)
guiWindowSetSizable(wm.window, false)
guiWindowSetMovable(wm.window, false)
guiSetVisible(wm.window, false)
wm.label=guiCreateLabel(0.06, 0.07, 0.89, 0.07, "Wpisz cen? kt?ra ma widnie? na poje?dzie.", true, wm.window)
guiLabelSetHorizontalAlign(wm.label, "center", false)
guiLabelSetVerticalAlign(wm.label, "center")
wm.label2=guiCreateLabel(0.06, 0.21, 0.89, 0.07, "Po odj?ciu podatku cena wyniesie: 0 PLN", true, wm.window)
guiLabelSetHorizontalAlign(wm.label2, "center", false)
guiLabelSetVerticalAlign(wm.label2, "center")
wm.edit=guiCreateEdit(0.06, 0.40, 0.91, 0.10, "", true, wm.window)
wm.submit2=guiCreateButton(0.06, 0.55, 0.90, 0.16, "Zgadzam si?", true, wm.window)
wm.submit=guiCreateButton(0.06, 0.75, 0.90, 0.20, "Akceptuj", true, wm.window)
addEventHandler("onClientMarkerHit", resourceRoot, function(el,md)
if not md or el ~= localPlayer then return end
if not wstep then return end
local veh=getPedOccupiedVehicle(localPlayer)
if not veh then return end
if getVehicleController(veh) ~= localPlayer then return end
local spawn=getElementData(veh,"vehicle:id")
if not spawn then return end
if getElementHealth(veh) < 900 then
outputChatBox("#bf0101✖ #FFFFFFPosiadasz zbyt uszkodzony pojazd, id? go napraw.",255,255,255,true)
return
end
if getElementData(veh,"vehicle:ownedPlayer") ~= getElementData(localPlayer,"player:sid") then return end
showCursor(true,false)
guiSetVisible(wm.window, true)
guiSetVisible(wm.label2, false)
guiSetVisible(wm.submit2, false)
guiSetInputMode("no_binds_when_editing")
end)
addEventHandler("onClientMarkerLeave", resourceRoot, function(el,md)
if el~=localPlayer then return end
if not wstep then return end
showCursor(false)
guiSetVisible(wm.window, false)
end)
addEventHandler("onClientGUIClick", resourceRoot, function()
if not wstep then return end
local cena=tonumber(guiGetText(wm.edit))
if not cena or cena < 1 or cena ~= math.floor(cena) or cena > 1100000000 then
outputChatBox("#bf0101✖ #FFFFFFPodano nieprawid?ow? cen?.",255, 255, 255, true)
return
end
local veh=getPedOccupiedVehicle(localPlayer)
if not veh then return end
if getVehicleController(veh) ~= localPlayer then return end
if not getElementData(veh,"vehicle:id") then return end
if source == wm.submit then
--podatek=math.floor(cena/2)
guiSetVisible(wm.submit2, true)
guiSetVisible(wm.label2, true)
guiSetText(wm.label2, "Akceptujesz podan? cen?? "..cena.." PLN")
end
if source == wm.submit2 then
-- local desc=string.format("Pojazd: %s\nCena: %d PLN\nPrzebieg: %dkm\nSprzedaj?cy: %s\nStatus sprzedaj?cego: Dostepny", getVehicleName(veh), tonumber(cena), getElementData(veh,"vehicle:mileage"), getPlayerName2(localPlayer))
setElementData(veh,"vehicle:desc",false)
setElementData(veh,"vehicle:gielda",true)
setElementData(veh,"vehicle:nazwa:G",getVehicleName(veh))
setElementData(veh,"vehicle:owner:G",getPlayerName(localPlayer):gsub("#%x%x%x%x%x%x",""),true)
setElementData(veh,"vehicle:owner:SID",getElementData(localPlayer,"player:sid"))
setElementData(veh,"vehicle:cena:G",tonumber(cena))
setElementData(veh,"vehicle:id:G",getElementData(veh, "vehicle:id"))
guiSetVisible(wm.window, false)
showCursor(false)
end
end)
function znajdzprzezsid(sid)
if not sid then return end
for _,p in pairs(getElementsByType('player'),root,false) do
if getElementData(p,"player:sid") and getElementData(p,"player:sid") == sid then return p end
end
return false
end
gielda = {}
function RGBToHex(red, green, blue, alpha)
if ( (red < 0 or red > 255 or green < 0 or green > 255 or blue < 0 or blue > 255) or (alpha and (alpha < 0 or alpha > 255) ) ) then
return nil
end
if ( alpha ) then
return string.format("#%.2X%.2X%.2X%.2X", red,green,blue,alpha)
else
return string.format("#%.2X%.2X%.2X", red,green,blue)
end
end
local function aktualizujdane()
if not isElementWithinColShape(localPlayer,cuboid) then return end
for i,v in ipairs(getElementsByType("vehicle",root,true)) do
if getElementData(v, "vehicle:gielda",true) then
if getElementData(v, "vehicle:id") == getElementData(v, "vehicle:id:G") then
local online=znajdzprzezsid(getElementData(v,"vehicle:owner:SID"))
if online then jest="#007affDost?pny (ID: "..getElementData(online,"id")..")" else jest="#FF0000Niedost?pny" end
local desc=string.format("#FFFFFFID Auta: #007aff%d\n#FFFFFFPojazd: "..RGBToHex( 0, 122, 255,false).."%s"..RGBToHex(0, 122, 255).."\n#FFFFFFCena: #007aff%d PLN\n#FFFFFFPrzebieg: #007aff%dkm\n#FFFFFFSprzedaj?cy: #007aff%s\n#FFFFFFStatus sprzedaj?cego: %s\n#FFFFFFAby sprawdzi? informacje nt. tego pojazdu wpisz: #007aff/v.info", tonumber(getElementData(v, "vehicle:id")), getElementData(v, "vehicle:nazwa:G"), tonumber(getElementData(v, "vehicle:cena:G")), getElementData(v,"vehicle:mileage"), getElementData(v,"vehicle:owner:G"), jest)
gielda[v] = desc
end
end
end
end
if not vopisFont then vopisFont = "default-bold"; vopisrozmiar=1.0 end
function isEventHandlerAdded( sEventName, pElementAttachedTo, func )
if
type( sEventName ) == 'string' and
isElement( pElementAttachedTo ) and
type( func ) == 'function'
then
local aAttachedFunctions = getEventHandlers( sEventName, pElementAttachedTo )
if type( aAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
for i, v in ipairs( aAttachedFunctions ) do
if v == func then
return true
end
end
end
end
return false
end
timerke = nil
aktualizujdane()
function renderinge()
if not isElementWithinColShape(localPlayer,cuboid) then return end
local rootx, rooty, rootz = getCameraMatrix()
for i,vehicle in ipairs(getElementsByType("vehicle",root,true)) do
local x,y,z=getElementPosition(vehicle)
local sx,sy=getScreenFromWorldPosition(x,y,z)
if sx and sy then
local desc=gielda[vehicle]
if desc then
local distance=getDistanceBetweenPoints3D(rootx,rooty,rootz,x,y,z)
if distance <= 25 then
if isLineOfSightClear( rootx,rooty,rootz, x,y,z, true, true, false, true, false, true, true,vehicle ) then
dxDrawText(desc:gsub("#%x%x%x%x%x%x",""), sx, sy, sx, sy, tocolor(0, 0, 0, 255), vopisrozmiar-0.01, vopisFont, "center", "center")
dxDrawText(desc, sx, sy, sx, sy, tocolor(255, 255, 255, 255), vopisrozmiar, vopisFont, "center", "center",false,false,false,true)
end
end
end
end
end
end
addEventHandler("onClientColShapeHit",cuboid,function(el,md)
if not md then return end
if el ~= localPlayer then return end
if isEventHandlerAdded("onClientRender",root,renderinge) then
removeEventHandler("onClientRender",root,renderinge)
end
addEventHandler("onClientRender",root, renderinge)
timerke = setTimer(aktualizujdane,3000,0)
end)
addEventHandler("onClientColShapeLeave",cuboid,function(el,md)
if not md then return end
if el ~= localPlayer then return end
if isEventHandlerAdded("onClientRender",root,renderinge) then
removeEventHandler("onClientRender",root,renderinge)
end
--if isTimer(timerke) then killTimer(timerke) end
end)
addEventHandler("onClientColShapeHit", cuboid, function(el,md)
if not md or el ~= localPlayer then return end
if wstep then return end
wstep=true
end)
addEventHandler("onClientColShapeLeave", cuboid, function(el,md)
if getElementData(el,"vehicle:gielda") then gielda[el] = false end
if not md or el ~= localPlayer then return end
if not wstep then return end
local veh=getPedOccupiedVehicle(el)
if veh then
--setElementData(veh,"vehicle:desc",false)
setElementData(veh, "vehicle:gielda",false)
end
end)