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

Wysłany: 2023-12-29, 18:00


Sugarakabongo







Wiek: 20
Na forum: 1405 dni
Posty: 6
Nick w MP: jasiek

Piwa: 11

Respekt: 50

Cześć, Przychodzę z pytaniem, gdzie mogę zmienić wymagany poziom na pracach? Paczka DemusMTA 2020

tutaj skrypt po stronie clienta w pracy i dmta_job-settings


Kod:

local sx, sy = guiGetScreenSize()
local tick = getTickCount( )

local settings = {

job_markerpos = {-95.22, 25.34, 3.12},
pos_x = 1280,
pos_y = 720,
jobCode = "pszczelarz",
gui = false,
guiJob = false,
bees = 0,
targetCol = nil,
targetBlip = nil,

}

local ule = {

{-69.16, 54.96, 3.12, 0, -110, 0},
{-70.76, 50.96, 3.12, 0, -110, 0},
{-72.26, 46.96, 3.12, 0, -110, 0},

}

local beePos = {}

for i,v in ipairs(ule) do
i = createObject(1899, v[1], v[2], v[3]-0.9)
setElementRotation(i, v[4]+90, v[5], v[6])

marker = createMarker(v[1], v[2], v[3]-0.85, "cylinder", 2, 255, 51, 204, 75)
setElementData(marker, "marker:ped", true)
setElementData(marker, "marker:text", "PODEJDŹ ABY ZEBRAĆ MIÓD")
end

local w, h = (sx/settings.pos_x),(sy/settings.pos_y)
local zoom = 1
if sx < settings.pos_x then
zoom = math.min(2, settings.pos_x / sx)
end

addEventHandler( "onClientResourceStart", resourceRoot, function()
marker = createMarker(settings.job_markerpos[1], settings.job_markerpos[2], settings.job_markerpos[3]-1, "cylinder", 2, 255, 51, 204, 75)
setElementData(marker, "marker:text", "PRACA DORYWCZA - PSZCZELARZ")

addEventHandler( "onClientMarkerHit", marker, openGUI_honey)
addEventHandler( "onClientMarkerLeave", marker, closeGUI_honey)
end)

function openGUI_honey(el)
if el ~= localPlayer then return end
if getPedOccupiedVehicle(el) then return end
if not isEventHandlerAdded("onClientRender", root, honeyGUI) then
addEventHandler("onClientRender", root, honeyGUI)
end
showCursor(true)
settings.gui = 1
end

function closeGUI_honey(el)
if el ~= localPlayer then return end
if getPedOccupiedVehicle(el) then return end
if isEventHandlerAdded("onClientRender", root, honeyGUI) then
removeEventHandler("onClientRender", root, honeyGUI)
end
showCursor(false)
settings.gui = false
end

function honeyGUI()
if settings.gui == 1 then
dxDrawImage(385*w, 183*h, 520*w, 355*h, ":dmta_interface/img/background.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
dxDrawText("PRACA DORYWCZA", 441*w, 183*h, 841*w, 227*h, tocolor(255, 255, 255, 255), 1/zoom, exports.dmta_interface:getGUIFont("normal15"), "center", "bottom", false, false, false, false, false)
dxDrawText("PSZCZELARZ", 441*w, 229*h, 841*w, 277*h, tocolor(255, 51, 204, 255), 1/zoom, exports.dmta_interface:getGUIFont("light10"), "center", "top", false, false, false, false, false)
if getElementData(localPlayer, "player:job") then
exports['dmta_buttons']:dxCreateButton("Zakończ pracę", 570*w, 408*h, 150*w, 55*h, 1)
else
exports['dmta_buttons']:dxCreateButton("Pracuj", 570*w, 408*h, 150*w, 55*h, 1)
end
exports['dmta_buttons']:dxCreateButton("Zamknij", 570*w, 473*h, 150*w, 55*h, 2)
dxDrawText("Praca polega na zbieraniu miodu z uli\nktóre są rozstawione na farmie", 441*w, 310*h, 841*w, 358*h, tocolor(255, 255, 255, 255), 1/zoom, exports.dmta_interface:getGUIFont("light10"), "center", "center", false, false, false, false, false)
end
end

function renderBees()
dxDrawImage(377*w, 133*h, 526*w, 455*h, ":dmta_interface/img/background.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
dxDrawText("KLIKAJ NA PSZCZOŁY ABY ZEBRAĆ MIÓD ("..settings.bees.."/6)", 378*w, 133*h, 900*w, 172*h, tocolor(255, 255, 255, 255), 1/zoom, exports.dmta_interface:getGUIFont("light10"), "center", "center", false, false, false, false, false)

if beePos.bee_1end == true then
beePos.bee_1 = math.floor(beePos.bee_1)
beePos.r, beePos.g, beePos.b = 200, 200, 200
else
beePos.bee_1 = interpolateBetween(437, 0, 0, 817, 0, 0, (getTickCount()-tick)/3000, "SineCurve")
beePos.r, beePos.g, beePos.b = 255, 255, 255
end

if beePos.bee_2end == true then
beePos.bee_2 = math.floor(beePos.bee_2)
beePos.r2, beePos.g2, beePos.b2 = 200, 200, 200
else
beePos.bee_2 = interpolateBetween(437, 0, 0, 817, 0, 0, (getTickCount()-tick)/2500, "SineCurve")
beePos.r2, beePos.g2, beePos.b2 = 255, 255, 255
end

if beePos.bee_3end == true then
beePos.bee_3 = math.floor(beePos.bee_3)
beePos.r3, beePos.g3, beePos.b3 = 200, 200, 200
else
beePos.bee_3 = interpolateBetween(437, 0, 0, 817, 0, 0, (getTickCount()-tick)/3250, "SineCurve")
beePos.r3, beePos.g3, beePos.b3 = 255, 255, 255
end

if beePos.bee_4end == true then
beePos.bee_4 = math.floor(beePos.bee_4)
beePos.r4, beePos.g4, beePos.b4 = 200, 200, 200
else
beePos.bee_4 = interpolateBetween(437, 0, 0, 817, 0, 0, (getTickCount()-tick)/3750, "SineCurve")
beePos.r4, beePos.g4, beePos.b4 = 255, 255, 255
end

if beePos.bee_5end == true then
beePos.bee_5 = math.floor(beePos.bee_5)
beePos.r5, beePos.g5, beePos.b5 = 200, 200, 200
else
beePos.bee_5 = interpolateBetween(437, 0, 0, 817, 0, 0, (getTickCount()-tick)/2550, "SineCurve")
beePos.r5, beePos.g5, beePos.b5 = 255, 255, 255
end

if beePos.bee_5end == true then
beePos.bee_5 = math.floor(beePos.bee_5)
beePos.r5, beePos.g5, beePos.b5 = 200, 200, 200
else
beePos.bee_5 = interpolateBetween(437, 0, 0, 817, 0, 0, (getTickCount()-tick)/3150, "SineCurve")
beePos.r5, beePos.g5, beePos.b5 = 255, 255, 255
end

if beePos.bee_6end == true then
beePos.bee_6 = math.floor(beePos.bee_6)
beePos.r6, beePos.g6, beePos.b6 = 200, 200, 200
else
beePos.bee_6 = interpolateBetween(437, 0, 0, 817, 0, 0, (getTickCount()-tick)/2750, "SineCurve")
beePos.r6, beePos.g6, beePos.b6 = 255, 255, 255
end

dxDrawImage(beePos.bee_1*w, 182*h, 47*w, 43*h, ":dmta_job_honey/bee.png", 0, 0, 0, tocolor(beePos.r, beePos.g, beePos.b, 255), false)
dxDrawImage(beePos.bee_2*w, 242*h, 47*w, 43*h, ":dmta_job_honey/bee.png", 0, 0, 0, tocolor(beePos.r2, beePos.g2, beePos.b2, 255), false)
dxDrawImage(beePos.bee_3*w, 302*h, 47*w, 43*h, ":dmta_job_honey/bee.png", 0, 0, 0, tocolor(beePos.r3, beePos.g3, beePos.b3, 255), false)
dxDrawImage(beePos.bee_4*w, 362*h, 47*w, 43*h, ":dmta_job_honey/bee.png", 0, 0, 0, tocolor(beePos.r4, beePos.g4, beePos.b4, 255), false)
dxDrawImage(beePos.bee_5*w, 422*h, 47*w, 43*h, ":dmta_job_honey/bee.png", 0, 0, 0, tocolor(beePos.r5, beePos.g5, beePos.b5, 255), false)
dxDrawImage(beePos.bee_6*w, 482*h, 47*w, 43*h, ":dmta_job_honey/bee.png", 0, 0, 0, tocolor(beePos.r6, beePos.g6, beePos.b6, 255), false)
end

addEventHandler("onClientClick", root, function(btn, state)
if btn == "left" and state == "up" then
if settings.guiJob ~= true then return end
if isMouseIn(beePos.bee_1*w, 182*h, 47*w, 43*h) then
if beePos.bee_1end ~= true then
beePos.bee_1end = true
settings.bees=settings.bees+1
end
elseif isMouseIn(beePos.bee_2*w, 242*h, 47*w, 43*h) then
if beePos.bee_2end ~= true then
beePos.bee_2end = true
settings.bees=settings.bees+1
end
elseif isMouseIn(beePos.bee_3*w, 302*h, 47*w, 43*h) then
if beePos.bee_3end ~= true then
beePos.bee_3end = true
settings.bees=settings.bees+1
end
elseif isMouseIn(beePos.bee_4*w, 362*h, 47*w, 43*h) then
if beePos.bee_4end ~= true then
beePos.bee_4end = true
settings.bees=settings.bees+1
end
elseif isMouseIn(beePos.bee_5*w, 422*h, 47*w, 43*h) then
if beePos.bee_5end ~= true then
beePos.bee_5end = true
settings.bees=settings.bees+1
end
elseif isMouseIn(beePos.bee_6*w, 482*h, 47*w, 43*h) then
if beePos.bee_6end ~= true then
beePos.bee_6end = true
settings.bees=settings.bees+1
end
end

if settings.bees == 6 then
settings.bees = 0
destroyPoint()
setTimer(function()
createPoint()
end, 500, 1)
triggerServerEvent("jobMoney", localPlayer, localPlayer, "pszczelarz")
end
end
end)

function createPoint()
local point = math.random(1, #ule)

settings.targetCol = createMarker(ule[point][1], ule[point][2], ule[point][3]-0.5, "corona", 2, 255, 51, 204, 55)
settings.targetBlip = createBlipAttachedTo(settings.targetCol, 12)

addEventHandler( "onClientMarkerHit", settings.targetCol, hit)
end

function destroyPoint()
if isElement(settings.targetCol) then
removeEventHandler( "onClientMarkerHit", settings.targetCol, hit)
destroyElement(settings.targetCol)
end
if isElement(settings.targetBlip) then
destroyElement(settings.targetBlip)
end
settings.bees = 0
settings.guiJob = false
beePos = {}
removeEventHandler("onClientRender", root, renderBees)
showCursor(false)
end

function hit(el)
if el ~= localPlayer then return end
if isPedInVehicle(localPlayer) then return end
settings.bees = 0
settings.guiJob = true
beePos = {}
addEventHandler("onClientRender", root, renderBees)
showCursor(true)
end

addEventHandler( "onClientPlayerWasted", root, function()
if getElementData(source, "player:job") == settings.jobCode then
destroyPoint()
setElementData(source, "player:job", false)
removeEventHandler("onClientRender", root, honeyGUI)
settings.gui = false
showCursor(false)
end
end)

addEventHandler("onClientClick", root, function(btn, state)
if btn == "left" and state == "up" then
if isMouseIn(570*w, 473*h, 150*w, 55*h) and settings.gui == 1 then -- Exit
removeEventHandler("onClientRender", root, honeyGUI)
settings.gui = false
showCursor(false)
elseif isMouseIn(570*w, 408*h, 150*w, 55*h) and settings.gui == 1 then -- Start job
if getElementData(localPlayer, "player:job") then
destroyPoint()
setElementData(localPlayer, "player:job", false)
removeEventHandler("onClientRender", root, honeyGUI)
settings.gui = false
showCursor(false)
else
removeEventHandler("onClientRender", root, honeyGUI)
settings.gui = false
showCursor(false)
createPoint()
setElementData(localPlayer, "player:job", settings.jobCode)
end
end
end
end)

local strefa = createColCuboid(-139.88, -5.47, -24.19, 96.92, 91.72, 68.34)

addEventHandler( "onClientColShapeLeave", strefa, function(el)
if el ~= localPlayer then return end
if getElementData(localPlayer, "player:job") then
destroyPoint()
setElementData(localPlayer, "player:job", false)
removeEventHandler("onClientRender", root, honeyGUI)
settings.gui = false
showCursor(false)
end
end)

function isMouseIn ( x, y, width, height )
if ( not isCursorShowing( ) ) then
return false
end
local sx, sy = guiGetScreenSize ( )
local cx, cy = getCursorPosition ( )
local cx, cy = ( cx * sx ), ( cy * sy )
if ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) then
return true
else
return false
end
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




------------------------


settings:


--[[element = nil
sw, sh = guiGetScreenSize()
zoom = 1
tick = getTickCount( )
rot = 0
if sw < 1280 then
zoom = math.min(2, 1280 / sw)
end

function renderTargetJob(getElement, text)
element = getElement
setElementData(element, "element:text", text)
addEventHandler("onClientRender", root, renderThis)
end

local marker1 = dxCreateTexture(":dmta_download/loading.png")

function renderThis()
if isElement(element) then
local x, y, z = getElementPosition(element)
local x2, y2, z2 = getElementPosition(localPlayer)
local sx, sy = getScreenFromWorldPosition(x,y,z)
local rootx, rooty, rootz = getCameraMatrix()
if sx and sy then
local desc = getElementData(element, "element:text")
if desc then
local distance = getDistanceBetweenPoints3D(x2, y2, z2,x,y,z)
rot = rot + 0.15
size = 1.75
size = size - 0.25
size = size + 2 * (math.sin(getTickCount() / 700) * 0.00)
local rotX, rotY = math.cos(rot) * size, math.sin(rot) * size


dxDrawText("♦ PUNKT ♦\n"..desc.." - "..math.floor(distance).." m", sx-(sw/10)+1,sy-(sw/10)+1,sx+(sw/10)-10+1,sy-10+1, tocolor(0,0,0,255), 1/zoom, exports.dmta_interface:getGUIFont("normal15"), "center","center",false, true, false, true)
dxDrawText("♦ PUNKT ♦#ffffff\n"..desc.." - "..math.floor(distance).." m", sx-(sw/10),sy-(sw/10),sx+(sw/10)-10,sy-10, tocolor(255, 255, 0, 255), 1/zoom, exports.dmta_interface:getGUIFont("normal15"), "center","center",false, true, false, true)
dxDrawMaterialLine3D(x + rotX, y + rotY, z, x - rotX, y - rotY, z + 0.01, marker1, 3, tocolor(255, 255, 255, 255), x, y, z+500000000)
end
end
end
end


local marker = createElement("Maciek")
setElementPosition(marker, 1467.07, 2764.51, 10.67-0.93)
renderTargetJob(marker, "JD")
--]]


-- local ped = createPed(78, 2203.08, 2588.52, 6.77, 50, true)
-- setPedAnimation (ped, "CRACK", "crckidle2", -1, true, false )


server settings ------------------------


local mnoznik = 2

local settings = {

["kosiarki"] = {
money = {7500, 10500},
exp = {5,10},
jobPoints = {1,2},
},

["magazynier"] = {
money = {13500, 18500},
exp = {5,10},
jobPoints = {3, 4},
},

["kurier"] = {
money = {42500, 50000},
exp = {2,10},
jobPoints = {5,10},
},

["pszczelarz"] = {
money = {4500, 8500},
exp = {2,4},
jobPoints = {1,3},
},

["farmer"] = {
money = {70000, 75000},
exp = {5,15},
jobPoints = {2,5},
},

}


addEvent("jobMoney", true)
addEventHandler("jobMoney", root, function(plr, job)
if isElement(plr) then
local siano = math.random(settings[job].money[1], settings[job].money[2])
local exp = math.random(settings[job].exp[1], settings[job].exp[2])
local punkty = math.random(settings[job].jobPoints[1], settings[job].jobPoints[2])
local uid = getElementData(plr, "player:uid")

if uid and punkty then
exports['dmta_db']:dbSet('UPDATE dmta_users SET jobPoints=jobPoints+? WHERE id=?',math.floor(punkty), uid)
end

if getElementData(plr, "player:premium") then
local siano = math.floor((siano*1.2)*math.floor(mnoznik))
local exp = math.floor((exp*1.2)*math.floor(mnoznik))
givePlayerMoney(plr, siano)
exports.dmta_levels:addExp(plr, exp)
exports.dmta_interface:showPlayerNotification(plr, "Otrzymujesz wynagrodzenie w postaci "..siano.."$ oraz "..exp.." EXP", "info")
else
local siano = math.floor(siano*math.floor(mnoznik))
local exp = math.floor(exp*math.floor(mnoznik))
givePlayerMoney(plr, siano)
exports.dmta_levels:addExp(plr, exp)
exports.dmta_interface:showPlayerNotification(plr, "Otrzymujesz wynagrodzenie w postaci "..siano.."$ oraz "..exp.." EXP", "info")
end
else
outputDebugString("Błąd - Event: jobMoney", 3)
end
end)


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Wysłany: 2023-12-29, 18:27


TheSebaPL

Mod-team






Wiek: 21
Na forum: 3098 dni
Posty: 964

Piwa: 3102

Respekt: 640,5
Respekt: 640,5Respekt: 640,5

Sugarakabongo, w każdej pracy oddzielnie jest jeżeli się nie mylę.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Wysłany: 2023-12-29, 18:39


Sugarakabongo







Wiek: 20
Na forum: 1405 dni
Posty: 6
Nick w MP: jasiek

Piwa: 11

Respekt: 50

"TheSebaPL" napisał/a:

Sugarakabongo, w każdej pracy oddzielnie jest jeżeli się nie mylę.


tylko mi bardziej chodzi gdzie w skrypcie

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Tagi: gdzie :: można :: ustawić :: wymagany :: poziom :: pracy?
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Gdzie można ustawić wymagany poziom w pracy? Odpowiedz do tematu

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