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

Wysłany: 2017-01-14, 14:35


NeroNix







Wiek: 27
Na forum: 3755 dni
Posty: 69

Piwa: 1

Respekt: 40,5

Ostrzeżeń: 100%
Witam , mam problem, gdy? mam prace sweepera, kt?ry jest prawie na ka?dym serwerze tak? sam? jak na Its Your World. Liczy ona po 1 kg, a ja chcia?bym zrobi? ?eby liczy?o po 0.01 kg . Jak to zrobi? ?


Za pomoc piwko i respekt

CLIENT:
local czas = getTickCount()

function speeed(car)
local a1,b1,c1 = getElementVelocity(car)
local fast = ((a1^2+b1^2+c1^2)^(0.5) *180)
return fast
end
local code="Sweepers" -- kod pracy
tekstury = {
    [0] = true,
    [1] = true,
    [2] = true,
}

function render(pojazd)
local x,y,z = getElementPosition(pojazd)
fxAddWaterSplash (x,y,z-1.9)
if (getTickCount() - czas) < 6000 then return end
czas = getTickCount()
--if (not isVehicleOnGround(pojazd)) then outputDebugString("ground FALSE")  return end
if speeed(pojazd) < 30 then return end
ziemia = getGroundPosition(x,y,z) - 0.001
hit,_,_,_,_,_,_,_,material,_,target = processLineOfSight (x,y,z, x, y, ziemia,true, false, true, true, false, true  )
if hit == false then
--outputDebugString("HIT FALSE")
 return end
if (not tekstury[material]) then
--outputDebugString("MATERIAL FALSE")
return end
local smiecie = getElementData(pojazd,"vehicle:trash")
local kg = math.random(0.8,1.2)
if not getElementData(localPlayer,"player:premium") then
limit = 200
else
limit = 250
end
if smiecie >= limit then return end
setElementData(pojazd,"vehicle:trash",smiecie+kg)

setElementData(pojazd,"vehicle:desc","Nape?nienie zbiornika : ["..smiecie.." kg]")
end
local function shit()
local pojazd = getPedOccupiedVehicle(localPlayer)
if not pojazd then return end
if not getVehicleEngineState(pojazd) then return end
if speeed(pojazd) < 4 then
toggleControl ("brake_reverse", false )
else
toggleControl ("brake_reverse", true )
end
render(pojazd)
end


addEventHandler("onClientVehicleEnter", resourceRoot,
    function(thePlayer, seat)
        if thePlayer == getLocalPlayer() then
            if getElementData(source,"vehicle:job") == code then
            addEventHandler("onClientRender",root,shit)
            end
        end
end)
addEventHandler("onClientVehicleExit", resourceRoot,
    function(thePlayer, seat)
        if thePlayer == getLocalPlayer() then
            if getElementData(source,"vehicle:job") == code then
            removeEventHandler("onClientRender",root,shit)
            end
        end
end)

addEventHandler('onClientResourceStart', resourceRoot,
function()
shader = dxCreateShader('shader.fx')
terrain = dxCreateTexture('sweeper92decal128.png')
dxSetShaderValue(shader, 'gTexture', terrain)
engineApplyShaderToWorldTexture(shader, 'sweeper92decal128')
end
)


Server:

local money = 35 -- ile dostajesz za 1 kg
local score = 6 -- Reputacji ile dostajesz
createBlip(1362.90, -1651.87, 13.38, 46,2,0,0,0,0,0,275)

local code="Sweepers" -- kod pracy
local jobOnline=false -- czy praca w??czona
local jobVehicles = { -- pozycj? pojazd?w
    {574, 1360.75, -1661.67, 13.36-0.2,0.0,360.0,267.7},
    {574, 1360.75, -1661.67+4, 13.36-0.2,0.0,360.0,267.7},
    {574, 1360.75, -1661.67+8, 13.36-0.2,0.0,360.0,267.7},
    {574, 1360.75, -1661.67+12, 13.36-0.2,0.0,360.0,267.7},
    {574, 1360.75, -1661.67+16, 13.36-0.2,0.0,360.0,267.7},
    {574, 1360.75, -1661.67+20, 13.36-0.2,0.0,360.0,267.7},
    {574, 1360.75, -1661.67+24, 13.36-0.2,0.0,360.0,267.7},
    {574, 1360.75, -1661.67+28, 13.36-0.2,0.0,360.0,267.7},

}

local jobMarker = createMarker(1375.67, -1632.17, 13.38-0.90,"corona",2.5,100,50,10)
local text = createElement("text")
setElementData(text,"name", "Punkt rozladowania")
setElementPosition(text,1375.67, -1632.17, 13.38+0.2)
for i,v in ipairs(jobVehicles) do
    local veh=createVehicle(v[1], v[2], v[3], v[4], v[5], v[6], v[7])
    setVehicleRespawnPosition(veh, v[2], v[3], v[4], v[5], v[6], v[7])
    setElementData(veh,"vehicle:desc","Czyszczenie ulic")
    setElementData(veh,"vehicle:mileage", math.random(1000,50000))
    setElementData(veh,"vehicle:fuel",100)
    setElementData(veh,"vehicle:job",code)
    setVehicleDamageProof(veh, true)
    toggleVehicleRespawn(veh, true)
    setVehicleIdleRespawnDelay(veh, 10000)
    setElementFrozen(veh,true)
    removeVehicleSirens(veh)
    addVehicleSirens(veh, 2, 2, true, true, false, true)
    setVehicleSirens(veh, 1, -0.3, 0.4, 1.3, 255, 255, 0, 104.6, 91.8)
    setVehicleSirens(veh, 2, 0.3, 0.4, 1.3, 255, 255, 0, 104.6, 91.8)
end



addEventHandler("onVehicleStartEnter", resourceRoot, function(plr,seat)
    if seat ~= 0 then return end
    if jobOnline == false then
        outputChatBox("* Praca jest wy??czona.", plr, 255, 0, 0)
        cancelEvent()
        return
    end
    if getElementData(plr,"player:job") then
        outputChatBox("* Posiadasz aktywn? prac?!", plr, 255, 0, 0)
        cancelEvent()
        return
    end
end)

addEventHandler("onVehicleExit", resourceRoot, function(plr,seat)
    if seat ~= 0 then return end
    setElementData(source,"vehicle:desc","Czyszczenie ulic")
    setElementData(plr,"player:job",false)
  toggleControl ( plr, "brake_reverse", true )
end)

addEventHandler("onVehicleEnter", resourceRoot, function(plr,seat)
    if seat ~= 0 then return end
    setElementFrozen(source,false)
    setVehicleDamageProof(source, false)
    setElementData(source,"vehicle:trash",0)
    setElementData(plr,"player:job",code)
    outputChatBox("* Rozpocz??e?(a?) prac?!", plr)
    outputChatBox("* Posprz?taj ulice miasta!", plr)
    if not getElementData(plr, "player:premium") then
    outputChatBox("* Pami?taj ?e maksymalne zape?nienie zbiornika to 200 kg!", plr, 255, 255, 255)
    else
    outputChatBox("* Pami?taj ?e maksymalne zape?nienie zbiornika to 250 kg!", plr, 255, 255, 255)
    end
--    toggleControl ( plr, "brake_reverse", false )
end)

addEventHandler("onVehicleRespawn", resourceRoot, function()
    veh=source
    setElementData(veh,"vehicle:desc","Czyszczenie ulic")
    setElementData(veh,"vehicle:mileage", math.random(1000,50000))
    setElementData(veh,"vehicle:fuel",100)
    setElementData(veh,"vehicle:job",code)
    setElementData(source,"vehicle:trash",0)
    setElementFrozen(veh,true)
    setVehicleDamageProof(veh, true)
    setVehicleOverrideLights ( veh, 1 )
    removeVehicleSirens(veh)
    addVehicleSirens(veh, 2, 2, true, true, false, true)
    setVehicleSirens(veh, 1, -0.3, 0.4, 1.3, 255, 255, 0, 104.6, 91.8)
    setVehicleSirens(veh, 2, 0.3, 0.4, 1.3, 255, 255, 0, 104.6, 91.8)
end)


addEventHandler("onResourceStop", resourceRoot, function()
    for i,v in ipairs(getElementsByType("player")) do
        if getElementData(v, "player:job")==code then
            setElementData(v, "player:job", false)
            toggleControl ( v, "brake_reverse", true )
        end
    end
end,false,"high")

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

addEventHandler("onMarkerHit",resourceRoot,function(element,md)
    if source ~= jobMarker then return end
    local type = getElementType(element)
    if type == "player" then
    if not getPedOccupiedVehicle(element) then return end
    if getElementData(getPedOccupiedVehicle(element),"vehicle:trash") and getElementData(getPedOccupiedVehicle(element),"vehicle:trash") >= 10 then
        local cash = getElementData(getPedOccupiedVehicle(element),"vehicle:trash")*money
        local cash = math.floor(cash)
        local m = cash
        local vt = getElementData(getPedOccupiedVehicle(element),"vehicle:trash")
        setElementData(getPedOccupiedVehicle(element),"vehicle:trash",0)
        setElementData(getPedOccupiedVehicle(element),"vehicle:desc","Czyszczenie ulic")
            if getElementData(element,"player:premium") then
            local m = cash *1.5
            local m = math.floor(m)
            outputChatBox("[Premium]* Rozladowa?e? zbiornik ?mieci. Wynagrodzenie kt?re dostajesz za "..vt.."KG to 1.5x("..m.."PLN) ",element,0,160,0,true)
            givePlayerMoney(element,m)
            else
            outputChatBox("* Rozladowa?e? zbiornik ?mieci. Wynagrodzenie kt?re dostajesz za "..vt.."KG 1.5x to "..m.."PLN",element,0,160,0,true)
            givePlayerMoney(element,m)
            end
    end
    end
end)
addEventHandler("onElementDestroy", resourceRoot, function()
    local type = getElementType(source)
    if type == "vehicle" then
    cancelEvent()
    end
end)
addCommandHandler("sweep-toggle",function(plr,cmd)
if jobOnline == false then
jobOnline = true
outputChatBox("ODBLOKOWALES XD",plr,255,0,0)
else
jobOnline = false
outputChatBox("ZABLOKOWALES XD",plr,255,0,0)
end
end)
--addEventHandler("onVehicleStartEnter",resourceRoot,function(plr) if wylaczone then cancelEvent();outputChatBox("**Trwaja testy",plr,255,0,0) return end end)

addCommandHandler("respsweepery",function(plr,cmd)
if exports["dutyadmin"]:getAdmin(plr,4) or exports["dutyadmin"]:getAdmin(plr,3) then
for i,v in ipairs(jobVehicles) do
    local veh=createVehicle(v[1], v[2], v[3], v[4], v[5], v[6], v[7])
    setVehicleRespawnPosition(veh, v[2], v[3], v[4], v[5], v[6], v[7])
    setElementData(veh,"vehicle:desc","Czyszczenie ulic")
    setElementData(veh,"vehicle:mileage", math.random(1000,50000))
    setElementData(veh,"vehicle:fuel",100)

    setElementData(veh,"vehicle:job",code)
    setVehicleDamageProof(veh, true)
    toggleVehicleRespawn(veh, true)
    setVehicleIdleRespawnDelay(veh, 10000)
    setElementFrozen(veh,true)
    removeVehicleSirens(veh)
    addVehicleSirens(veh, 2, 2, true, true, false, true)
    setVehicleSirens(veh, 1, -0.3, 0.4, 1.3, 255, 255, 0, 104.6, 91.8)
    setVehicleSirens(veh, 2, 0.3, 0.4, 1.3, 255, 255, 0, 104.6, 91.8)
    addEventHandler("onVehicleExit",veh,function(plr,seat) destroyElement(source);setElementData(plr,"player:job",false) end)
    addEventHandler("onVehicleRespawn",veh,function() destroyElement(source); end)
end
end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-01-14, 15:49


_Haze

Peace Yo!






Wiek: 25
Na forum: 4325 dni
Posty: 1648
Nick w MP: Haze

Piwa: 2628

Respekt: 1020
Respekt: 1020

Po 1 masz tu 32132132 zmiennych kt?re nie s? potrzebne. A ?eby dawa? np 0.1 to tylko podmieniasz
kg = math.random(0.1,1.3) (w og?le to dziwi? si? ?e to dzia?a poniewa? trzeba podawa? liczby ca?kowite ale ok ) na kg = 0.1 jak nie umiesz tego zrobi? to masz kod tutaj
local czas = getTickCount()

function speeed(car)
local a1,b1,c1 = getElementVelocity(car)
local fast = ((a1^2+b1^2+c1^2)^(0.5) *180)
return fast
end
local code="Sweepers" -- kod pracy
tekstury = {
    [0] = true,
    [1] = true,
    [2] = true,
}

function render(pojazd)
local x,y,z = getElementPosition(pojazd)
fxAddWaterSplash (x,y,z-1.9)
if (getTickCount() - czas) < 6000 then return end
czas = getTickCount()
--if (not isVehicleOnGround(pojazd)) then outputDebugString("ground FALSE")  return end
if speeed(pojazd) < 30 then return end
ziemia = getGroundPosition(x,y,z) - 0.001
hit,_,_,_,_,_,_,_,material,_,target = processLineOfSight (x,y,z, x, y, ziemia,true, false, true, true, false, true  )
if hit == false then
--outputDebugString("HIT FALSE")
 return end
if (not tekstury[material]) then
--outputDebugString("MATERIAL FALSE")
return end
local smiecie = getElementData(pojazd,"vehicle:trash")
local kg = 0.1
if not getElementData(localPlayer,"player:premium") then
limit = 200
else
limit = 250
end
if smiecie >= limit then return end
setElementData(pojazd,"vehicle:trash",smiecie+kg)

setElementData(pojazd,"vehicle:desc","Nape?nienie zbiornika : ["..smiecie.." kg]")
end
local function shit()
local pojazd = getPedOccupiedVehicle(localPlayer)
if not pojazd then return end
if not getVehicleEngineState(pojazd) then return end
if speeed(pojazd) < 4 then
toggleControl ("brake_reverse", false )
else
toggleControl ("brake_reverse", true )
end
render(pojazd)
end


addEventHandler("onClientVehicleEnter", resourceRoot,
    function(thePlayer, seat)
        if thePlayer == getLocalPlayer() then
            if getElementData(source,"vehicle:job") == code then
            addEventHandler("onClientRender",root,shit)
            end
        end
end)
addEventHandler("onClientVehicleExit", resourceRoot,
    function(thePlayer, seat)
        if thePlayer == getLocalPlayer() then
            if getElementData(source,"vehicle:job") == code then
            removeEventHandler("onClientRender",root,shit)
            end
        end
end)

addEventHandler('onClientResourceStart', resourceRoot,
function()
shader = dxCreateShader('shader.fx')
terrain = dxCreateTexture('sweeper92decal128.png')
dxSetShaderValue(shader, 'gTexture', terrain)
engineApplyShaderToWorldTexture(shader, 'sweeper92decal128')
end
)


Postaw piwo autorowi tego posta
 

 
Tagi: praca :: sweepry
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