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

Wysłany: 2017-03-12, 02:22


Krzemo1234







Wiek: 26
Na forum: 3751 dni
Posty: 387
Nick w MP: Krzemo

Piwa: 16

Respekt: 40

Client
local marker=createMarker(-2358.20, -50.6335.31-1"cylinder"5000155)
local cuboid=createColCuboid(-2361.4538574219, -60.19949340820333.18706893920956.632.511)
createBlip(-2319.64, -36.9935.3255,2,0,0,0,0,0,275)

local wstep=false
local podatek=0

local text=createElement("text")
setElementPosition(text,-2358.20, -50.6335.31)
setElementData(text,"name","Gie?da\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.740.330.250.50"Gielda"true)
guiWindowSetSizable(wm.windowfalse)
guiWindowSetMovable(wm.windowfalse)
guiSetVisible(wm.windowfalse)
wm.label=guiCreateLabel(0.060.070.890.07"Wpisz cen? kt?ra ma widnie? na poje?dzie."truewm.window)
guiLabelSetHorizontalAlign(wm.label"center"false)
guiLabelSetVerticalAlign(wm.label"center")
wm.label2=guiCreateLabel(0.060.210.890.07"Po odj?ciu podatku cena wyniesie: 0 PLN"truewm.window)
guiLabelSetHorizontalAlign(wm.label2"center"false)
guiLabelSetVerticalAlign(wm.label2"center")
wm.edit=guiCreateEdit(0.060.400.910.10""truewm.window)
wm.submit2=guiCreateButton(0.060.550.900.16"Zgadzam si?"truewm.window)
wm.submit=guiCreateButton(0.060.750.900.20"Akceptuj"truewm.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
    exports["1"]:outputNotificationBox ("#cc0000Jed? go napraw!")
    exports["1"]:outputNotificationBox ("#cc0000Pojazd zbyt mocno uszkodzony!")
        return
    end
    if getElementData(veh,"vehicle:ownedPlayer") ~= getElementData(localPlayer,"player:uid"then return end
    showCursor(true,false)
    guiSetVisible(wm.windowtrue)
    guiSetVisible(wm.label2false)
    guiSetVisible(wm.submit2false)
    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.windowfalse)
end)

addEventHandler("onClientGUIClick"resourceRoot, function()
    if not wstep then return end
    local cena=tonumber(guiGetText(wm.edit))
    if not cena or cena or cena ~= math.floor(cena) or cena 5000000 then
        exports["1"]:outputNotificationBox ("#cc0000Podano nieprawid?ow? cen?!")
        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
        guiSetVisible(wm.submit2true)
        guiSetVisible(wm.label2true)
        guiSetText(wm.label2"Akceptujesz podan? cen?? "..cena.." PLN")
    end
    if source == wm.submit2 then
    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:UID",getElementData(localPlayer,"player:uid"))
    setElementData(veh,"vehicle:cena:G",tonumber(cena))
    setElementData(veh,"vehicle:id:G",getElementData(veh"vehicle:id"))
    guiSetVisible(wm.windowfalse)
    showCursor(false)
    end
end)

function znajdzprzezuid(uid)
    if not uid then return end
    for _,p in pairs(getElementsByType('player'),root,false) do
        if getElementData(p,"player:uid") and getElementData(p,"player:uid") == uid then return p end
    end
    return false
end
gielda = {}

function RGBToHex(redgreenbluealpha)
    if ( (red or red 255 or green or green 255 or blue or blue 255) or (alpha and (alpha 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,cuboidthen return end
for i,v in ipairs(getElementsByType("vehicle",root,true)) do
    if getElementData(v"vehicle:gielda",truethen
    if getElementData(v"vehicle:id") == getElementData(v"vehicle:id:G"then
    local online=znajdzprzezuid(getElementData(v,"vehicle:owner:UID"))
    if online then jest="#00FF00Dost?pny (ID: "..getElementData(online,"id")..")" else jest="#FF0000Niedost?pny" end
    local desc=string.format("ID Auta: %d\nPojazd: "..RGBToHex0255100,false).."%s"..RGBToHex(255255255).."\nCena: %d PLN\nPrzebieg: %dkm\nSprzedaj?cy: %s\nStatus sprzedaj?cego: %s\n#FFFFFFAby sprawdzi? informacje o tym poje?dzie wpisz /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 isEventHandlerAddedsEventNamepElementAttachedTofunc )
    if
        typesEventName ) == 'string' and
        isElementpElementAttachedTo ) and
        typefunc ) == 'function'
    then
        local aAttachedFunctions getEventHandlerssEventNamepElementAttachedTo )
        if typeaAttachedFunctions ) == 'table' and #aAttachedFunctions > 0 then
            for iv in ipairsaAttachedFunctions ) do
                if == func then
                    return true
                end
            end
        end
    end
    return false
end

timerke nil
aktualizujdane()



function renderinge()
if not isElementWithinColShape(localPlayer,cuboidthen return end
    local rootxrootyrootz 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 <= 14 then
                    if isLineOfSightClearrootx,rooty,rootzx,y,ztruetruefalsetruefalsetruetrue,vehicle then
                        dxDrawText(desc:gsub("#%x%x%x%x%x%x",""), sxsysxsytocolor(000255), vopisrozmiar-0.01vopisFont"center""center")
                        dxDrawText(descsxsysxsytocolor(255255255255), vopisrozmiarvopisFont"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,renderingethen
removeEventHandler("onClientRender",root,renderinge)
end
addEventHandler("onClientRender",rootrenderinge)
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,renderingethen
removeEventHandler("onClientRender",root,renderinge)
end
--if isTimer(timerkethen killTimer(timerkeend
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)


Server
local LIMIT=-- tylko gracz mo?e kupitrzy pojazdy

local cmd="sprzedajpojazd"
local cmd2="akceptuj"
local sprzedazPojazdu={}
local marker=nil
local timer=nil

local pozycjeMarkerow={
    -- Opis nad markeremx,y,zintdim
    {"Gie?da Las Venturas\nSprzeda? pojazd?w"2527.78,-1290.79,1048.29,2,1}, -- gielda san fierro I
    
}

for i,v in pairs(pozycjeMarkerow) do
    local mkr=createMarker(v[2], v[3], v[4]-0.90"cylinder"2.02550035)
    setElementDimension(mkrv[6] or 0)
    setElementInterior(mkrv[5] or 0)
    setElementData(mkr"sprzedaz:pojazd?w"true)
    
    marker mkr
    
    local t=createElement("text")
    setElementData(t,"name"v[1])
    setElementPosition(t,v[2],v[3],v[4])
    setElementDimension(tv[6] or 0)
    setElementInterior(tv[5] or 0)
    addEventHandler ("onMarkerHit"mkr, function(el,md)
    exports["1"]:outputNotificationBox (el"#00cccc/sprzedajpojazd <NICK/ID> <ID POJAZDU> <CENA>")
    exports["1"]:outputNotificationBox (el"#00cc00Aby sprzeda? pojazd wpisz:")
    setElementData(el"sprzedaz:pojazdow"true)
end)
    addEventHandler ("onMarkerLeave"mkr, function(el,md)
    exports["1"]:outputNotificationBox (el"#cc0000Wyszed?e? z markera!")
    setElementData(el"sprzedaz:pojazdow"false)
end)
end


function checkVehiclePlayer(plr)
    -- Pobieramy tabeli nast?pnie zwracamy j?
    local result=exports["pystories-db"]:dbGet("SELECT * FROM pystories_vehicles")
    local number=0
    -- Uruchamiamy p?tlspradzaj?cpojazdy z bazy danych i
    -- por?wnujemy w?a?ciciela z UID osoby kt?ra chce zakupi?
    for i,v in ipairs(result) do
        if result[1].ownedPlayer == getElementData(plr,"player:sid"then
            number=number+1
        end
    end
    -- Zwracamy ilo?? pojazd?w gracza je?eli nie ma zwr?ci
    -- mu false.
    return number
end


local function pokazOperacje(plr)
    if not sprzedazPojazdu[plrthen return end
    local veh=sprzedazPojazdu[plr][3] -- sprawdzanie tablicy
    outputChatBox("* Otrzyma?e?/a? ofert? sprzeda?y pojazdu "..getVehicleNameFromModel(getVehicleModel(veh)).." za cen? "..sprzedazPojazdu[plr][4], plr2552550)
    outputChatBox("* ID: "..getElementData(veh,"vehicle:id").." | Przebieg: "..getElementData(veh,"vehicle:mileage")..""plr2552550)
    outputChatBox("* Aby potwierdzi? zakup prosz? wpisz /akceptuj, masz 20 sekund"plr2552550)
    timer=setTimer(function()
        sprzedazPojazdu[plr]=nil
        exports["1"]:outputNotificationBox (plr"#cc0000Transakcja zosta?a anulowana!")
        removeCommandHandler("akceptuj"akceptujTransakcje) -- usuwanie komendy
    end200001)
    addCommandHandler("akceptuj"akceptujTransakcje) -- tworzenie komendy
end

function akceptujTransakcje(plr,cmd)
    if not sprzedazPojazdu[plrthen return end
    local veh=sprzedazPojazdu[plr][3]
    local cost=sprzedazPojazdu[plr][4]
    local target=sprzedazPojazdu[plr][1]
    if cost 0 then
        exports["1"]:outputNotificationBox (plr"#cc0000Cena jest nieprawid?owa!")
        return
    end
    if tonumber(cost) > getPlayerMoney(plrthen
        exports["1"]:outputNotificationBox (plr"#cc0000Nie posiadasz tyle got?wki!")
        return
    end
    givePlayerMoney(targetcost)
    takePlayerMoney(plrcost)
    killTimer(timer)
    exports["1"]:outputNotificationBox (plr"#00cc00Sprzeda? przeprowadzona pomy?lnie!")
    exports["1"]:outputNotificationBox (target"#00cc00Sprzeda? przeprowadzona pomy?lnie!")
    removeCommandHandler("akceptuj"akceptujTransakcje) -- usuwanie komendy
    wykonajZapytanie(veh,plr) -- do bazy danych ustawiamy od razu
end

function wykonajZapytanie(veh,plr)
    setElementData(veh,"vehicle:ownedGroup"0)
    setElementData(veh,"vehicle:rent"0)
    setElementData(veh,"vehicle:ownedPlayer",getElementData(plr,"player:sid"))
    exports["pystories-db"]:dbSet("UPDATE pystories_vehicles SET ownedPlayer=? AND ownedGroup=0 AND rent=0 WHERE id=?"getElementData(plr,"player:sid"), getElementData(veh,"vehicle:id"))
    local text string.format("[SELL-CAR] Gracz "..getPlayerName(localPlayer).."("..getElementData(localPlayer,"player:sid")..") sprzeda? pojazd "..getElementData(veh,"vehicle:id").." dla "..getPlayerName(plr).."("..getElementData(plr,"player:sid")..")")
    triggerEvent("admin:logs"roottext)
 --   triggerClientEvent(root"admin:addText"rootpm_text)
    triggerClientEvent("onDebugMessage"resourceRoottext,5"Sprzeda? auta")
--    triggerClientEvent(root"admin:addText"root, )
end

addCommandHandler(cmd, function(plr,_,cel,id,cost)
    if getElementData(plr"sprzedaz:pojazdow")== false then 
        exports["1"]:outputNotificationBox (plr"#cc0000Nie jeste? w odpowiednim miejscu!")
        return
    end
    costt=tonumber(cost)
    if not cel or not costt then
        exports["1"]:outputNotificationBox (plr"#cc0000U?ycie: #00cccc/sprzedajpojazd <NICK/ID> <ID POJAZDU> <CENA>")
        return
    end
    local target=exports["pystories-core"]:findPlayer(plr,cel)
    if not target then
        exports["1"]:outputNotificationBox (plr"#cc0000Nie znaleziono podanego gracza!")
        return
    end
    if getElementData(target"sprzedaz:pojazdow")== false then 
        exports["1"]:outputNotificationBox (plr"#cc0000Nie jeste? w miejscu przeznaczonym do tego!")
        return
    end
    if tonumber(costt) < 0 then
        exports["1"]:outputNotificationBox (plr"#cc0000Podano nieprawid?ow? warto??!")
        return
    end
    local result=exports["pystories-db"]:dbGet("SELECT * FROM pystories_vehicles WHERE id=? AND parking=1 LIMIT 1;"id)
    if result and #result > 0 then
        exports["1"]:outputNotificationBox (plr"#cc0000Pojazd znajduje si? na parkingu. Nie mo?esz go sprzeda?!")
        return
    end
    for _,vehicle in ipairs(getElementsByType("vehicle")) do
        if tonumber(getElementData(vehicle,"vehicle:id")) == tonumber(idthen
            if tonumber(getElementData(vehicle,"vehicle:ownedPlayer")) ~= tonumber(getElementData(plr,"player:sid")) then
                exports["1"]:outputNotificationBox (plr"#cc0000Nie jeste? w?a?cicielem tego pojazdu!")
                return
            end
            sprzedazPojazdu[target]={plr,target,vehicle,costt}
        end
    end
    if checkVehiclePlayer(target) and checkVehiclePlayer(target) >= LIMIT then
        exports["1"]:outputNotificationBox (plr"#cc0000Maksymalnie ten gracz mo?e mie?: #00cccc"..LIMIT.." #cc0000pojazd?w!")
        return
    end
    pokazOperacje(target)
    exports["1"]:outputNotificationBox (plr"#00cc00Pomy?lnie wys?ano ofert? sprzeda?y pojazdu!")
end)

function vehinfo(plr)
local car=getPedOccupiedVehicle(plr)
if not car then outputChatBox("Nie jeste? w poje?dzie!"plr25500) return end
outputChatBox(" "plr0255255)
outputChatBox(" "plr0255255)
outputChatBox("Ulepszenia mechaniczne tego pojazdu:"plr0255255)
local baza=exports["pystories-db"]:dbGet("SELECT * FROM pystories_vehicles WHERE id=?"getElementData(car"vehicle:id"))
for i,vehicle in pairs(baza) do
mk1=vehicle['mk1']
mk2=vehicle['mk2']
rh=vehicle['rh']
naped=vehicle['naped']
end
if tonumber(mk1) == 1 then us1="TAK" else us1="NIE" end
if tonumber(mk2) == 1 then us2="TAK" else us2="NIE" end
if tonumber(rh) == 1 then rh1="TAK" else rh1="NIE" end
outputChatBox("Przyspieszenie 1: "..us1..""plr0255,0)
outputChatBox("Przyspieszenie 2: "..us2..""plr0255,0)
outputChatBox("Gwintwane Zawieszenie: "..rh1..""plr0255,0)
end
addCommandHandler("v.info"vehinfo)


Za pomoc zimne :piwo: dlaczego to nie dzia?a ?

[ Dodano: 2017-03-12, 02:23 ]
Wje?d?am w marker dok?adnie czarny i nic si? nie dzieje

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-03-12, 02:55


amited







Wiek: 26
Na forum: 3714 dni
Posty: 1233
Nick w MP: Amited

Piwa: 512

Respekt: 466
Respekt: 466

A b??d poda? to nie ?aska? A tak po za tym tutaj nie jest tworzony ?aden czarny marker :)

Podpis
"amited" napisał/a:
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-03-12, 13:39


Krzemo1234







Wiek: 26
Na forum: 3751 dni
Posty: 387
Nick w MP: Krzemo

Piwa: 16

Respekt: 40

B??dzik http://imgur.com/a/OlujX

[ Dodano: 2017-03-12, 16:07 ]
?

[ Dodano: 2017-03-13, 18:10 ]
pomo?e kto? w ko?cu ?

Podpis
Jeśli ci pomogłem zostaw zimne :piwo:
Postaw piwo autorowi tego posta
 

 
Tagi: nie :: działa :: giełda
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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