Sugarakabongo
Wiek: 20 Na forum: 1406 dni Posty: 6
Nick w MP: jasiek
Piwa : 11
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)