Advertisement
Guest User

Untitled

a guest
Aug 18th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.07 KB | None | 0 0
  1. local monitorSize = {guiGetScreenSize()}
  2. local panelSize = {500, 300}
  3. local panelPos_x, panelPos_y = monitorSize[1]/2-panelSize[1]/2, monitorSize[2]/2-panelSize[2]/2
  4. local jobPed = {}
  5. local job_Font = dxCreateFont("files/font.TTF", 9)
  6. local job_Font2 = dxCreateFont("files/font.TTF", 10)
  7.  
  8. local job_PedPos = {
  9.     {113, 381.44741821289, 174.26916503906, 1008.3828125, "George"},
  10.     -- {2, 2035.3885498047, -2448.5388183594, 13.611819267273, "PentiX egy köcsög buzi aki kitörölte a városháza mappot...."},
  11. }
  12. local startTick = getTickCount()
  13. local progress = ""
  14. local elements = ""
  15.  
  16. local jobs_Table = { -- Munak neve, Munak leírása, Kép neve, munka ID
  17.     {"Járműszállító", "Vadonatúj gépjárműveket kell leszállítanod az üzletekbe.", "vehicletransport", 1},
  18.     {"Pizzafutár", "Szállítsd ki a frissen sült pizzát Los Santos lakosai számára.", "pizza", 2},
  19.     --{"Árufeltöltő", "Dokkokból új alkatrészeket kell szállítanod a megrendelőknek.", "Boxicon", 3},
  20.     --{"Buszsofőr", "A személyszállítás közúti ágazatában kell tevékenykedned, mint buszvezető.", "Boxicon", 4},
  21.     {"Csomagszállító", "Csomagokat kell kiszállítanod megadott címekre.", "csomagszallito", 5},
  22.     {"Favágó", "Fákat kell kivágni és eljuttatni a fatelepre.", "forest", 6},
  23. }
  24. local maxElem = 3
  25. local nextPage = 0
  26. local show = false
  27.  
  28. function createPeds()
  29.     for index,value in ipairs (job_PedPos) do
  30.         if isElement(jobPed[index]) then destroyElement(jobPed[index]) end
  31.         jobPed[index] = createPed(value[1], value[2], value[3], value[4])
  32.         setPedRotation(jobPed[index], 260)
  33.         setElementInterior(jobPed[index], 3)
  34.         setElementDimension(jobPed[index], 3)
  35.         setElementFrozen(jobPed[index], true)
  36.         jobPed[index]:setData("ped:job", true)
  37.         jobPed[index]:setData("ped:name",value[5])
  38.         jobPed[index]:setData("name:tags", "Munkáltató")
  39.         --createBlip(value[2], value[3], value[4], 62)
  40.         --setPedAnimation ( jobPed[index], "INT_OFFICE", "OFF_Sit_Idle_Loop", -1, true, false, false )
  41.     end
  42. end
  43. addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), createPeds)
  44. createPeds()
  45.  
  46. addEventHandler ( "onClientPedDamage", getRootElement(),
  47.     function ()
  48.         if getElementData(source,"ped:job") then
  49.             cancelEvent ()
  50.         end
  51.     end
  52. )
  53.  
  54. addEventHandler("onClientClick", root, function (button, state, x, y, elementx, elementy, elementz, element)
  55.     if element and element:getData("ped:job") and not show then
  56.         if state == "down" and button == "left" then
  57.             local x, y, z = getElementPosition(getLocalPlayer())
  58.             if getDistanceBetweenPoints3D(x, y, z, elementx, elementy, elementz) <= 5 then
  59.                 startTick = getTickCount()
  60.                 progress = "OutBack"
  61.                 removeEventHandler("onClientRender", root, createPanel)
  62.                 addEventHandler("onClientRender", root, createPanel)
  63.                 removeEventHandler("onClientKey",root,keyControl)
  64.                 addEventHandler("onClientKey",root,keyControl)
  65.                 show = true
  66.                 elements = element
  67.             end
  68.         end
  69.     elseif state == "down" and button == "left" and show then
  70.         elem = 0
  71.         for index, value in ipairs (jobs_Table) do
  72.             if (index > nextPage and elem < maxElem) then
  73.                 elem = elem + 1
  74.                 if dobozbaVan(panelAnimX+10+480-110, panelPos_y-50+40+elem*(65), 100, 30, x, y) then
  75.                     if jobs_Table[tonumber(index)][4] == localPlayer:getData("char:job") then
  76.                         destroyPlayerJob(jobs_Table[tonumber(index)][4])
  77.                         localPlayer:setData("char:job", 0)
  78.                         outputChatBox("#00aeef[Munka]: #ffffffSikeresen leadtad a #00aeef"..jobs_Table[tonumber(index)][1].. "#ffffff munkát.", 255, 255, 255, true)
  79.                     elseif jobs_Table[tonumber(index)][4] ~= localPlayer:getData("char:job") and localPlayer:getData("char:job") == 0 then
  80.                         localPlayer:setData("char:job", jobs_Table[tonumber(index)][4])
  81.                         startPlayerJob(jobs_Table[tonumber(index)][4])
  82.                         outputChatBox("#00aeef[Munka]: #ffffffSikeresen felvetted a #00aeef"..jobs_Table[tonumber(index)][1].. "#ffffff munkát.", 255, 255, 255, true)
  83.                     else
  84.                         outputChatBox("#dc143c[Hiba]: #ffffffNeked már van munkád.", 255, 255, 255, true)
  85.                     end
  86.                     currentjob = jobs_Table[tonumber(index)][4]
  87.                 end
  88.             end
  89.         end
  90.         triggerServerEvent("updateJobToServer", localPlayer, currentjob)
  91.     end
  92. end)
  93.  
  94. function createPanel()
  95.     local jX, jY, jZ = getElementPosition(getLocalPlayer())
  96.     local bX, bY, bZ = getElementPosition(elements)
  97.     if (getDistanceBetweenPoints3D(jX, jY, jZ, bX, bY, bZ) > 5 ) then removeEventHandler("onClientRender", root, createPanel) removeEventHandler("onClientKey",root,keyControl) show = false return end
  98.     Time = (getTickCount() - startTick) / 1800
  99.     panelAnimX = interpolateBetween(0-panelSize[1],0,0,panelPos_x,0,0,Time,progress)   
  100.     dxDrawRectangle(panelAnimX, panelPos_y, panelSize[1], panelSize[2], tocolor(0, 0, 0, 170))
  101.     dxDrawRectangle(panelAnimX, panelPos_y, panelSize[1], 25, tocolor(0, 0, 0, 230))
  102.     dxDrawRectangle(panelAnimX, panelPos_y+panelSize[2]-25, panelSize[1], 25, tocolor(0, 0, 0, 230))
  103.     dxDrawText("A panel bezárásához nyomd meg a #D24D57'backspace'#ffffff gombot. Görgess a további munkákért.", panelAnimX+5, panelPos_y+panelSize[2]-20, panelSize[1], 0, tocolor(255, 255, 255, 255), 1, job_Font, "left", "top", false, false, false, true)
  104.     dxDrawText("ExtendGaming - #00aeef Munka panel", panelAnimX+5, panelPos_y+5, panelSize[1], 0, tocolor(255, 255, 255, 255), 1, job_Font, "left", "top", false, false, false, true)
  105.     local elem = 0
  106.     for index, value in ipairs (jobs_Table) do
  107.         if (index > nextPage and elem < maxElem) then
  108.             elem = elem + 1
  109.             local text = ""
  110.             local r, g, b = 0, 174, 235
  111.             if value[4] == localPlayer:getData("char:job") then
  112.                 text = "Felmondás"
  113.                 r, g, b = 210, 77, 87
  114.             else
  115.                 text = "Felvétel"
  116.                 r, g, b = 0, 174, 235
  117.  
  118.             end
  119.             dxDrawRectangle(panelAnimX+10, panelPos_y-65+40+elem*(65), panelSize[1]-20, 60, tocolor(0, 0, 0, 170))
  120.             dxDrawImage(panelAnimX+15, panelPos_y-60+40+elem*(65), 50, 50, "files/job_images/"..value[3]..".png",tocolor(255, 255, 255, 255))
  121.             dxDrawText(value[1], panelAnimX+10+480/2, panelPos_y-60+40+elem*(65), panelAnimX+10+480/2, 0, tocolor(255, 255, 255, 255), 1, job_Font, "center", "top", false, false, false, true)
  122.             dxDrawText(value[2], panelAnimX+10+60, panelPos_y-45+40+elem*(65), 0, 0, tocolor(255, 255, 255, 255), 1, job_Font, "left", "top", false, false, false, true)
  123.             if isInSlot(panelAnimX+10+480-110, panelPos_y-50+40+elem*(65), 100, 30) then
  124.                 dxDrawRectangle(panelAnimX+10+480-110, panelPos_y-50+40+elem*(65), 100, 30, tocolor(r, g, b, 230))
  125.                 dxDrawText(text, panelAnimX+10+480-110+100/2, panelPos_y-50+40+elem*(65)+30/2, panelAnimX+10+480-110+100/2,  panelPos_y-50+40+elem*(65)+30/2, tocolor(0, 0, 0, 255), 1, job_Font2, "center", "center", false, false, false, true)
  126.             else
  127.                 dxDrawRectangle(panelAnimX+10+480-110, panelPos_y-50+40+elem*(65), 100, 30, tocolor(0, 0, 0, 230))
  128.                 dxDrawText(text, panelAnimX+10+480-110+100/2, panelPos_y-50+40+elem*(65)+30/2, panelAnimX+10+480-110+100/2,  panelPos_y-50+40+elem*(65)+30/2, tocolor(255, 255, 255, 255), 1, job_Font2, "center", "center", false, false, false, true)
  129.             end
  130.         end
  131.     end
  132. end
  133.  
  134. function keyControl(k, s)
  135.     if k == "mouse_wheel_up" then
  136.         if(nextPage>0)then
  137.             nextPage = nextPage - 1
  138.         end
  139.     elseif k == "mouse_wheel_down" then
  140.         nextPage = nextPage + 1
  141.         if(nextPage > #jobs_Table-maxElem)then
  142.             nextPage = #jobs_Table-maxElem
  143.         end
  144.     elseif k == "backspace" then
  145.         removeEventHandler("onClientRender", root, createPanel)
  146.         removeEventHandler("onClientKey",root,keyControl)
  147.         show = false
  148.     end
  149. end
  150.  
  151. function isInSlot(xS,yS,wS,hS)
  152.     if(isCursorShowing()) then
  153.         XY = {guiGetScreenSize()}
  154.         local cursorX, cursorY = getCursorPosition()
  155.         cursorX, cursorY = cursorX*XY[1], cursorY*XY[2]
  156.         if(dobozbaVan(xS,yS,wS,hS, cursorX, cursorY)) then
  157.             return true
  158.         else
  159.             return false
  160.         end
  161.     end
  162. end
  163.  
  164. function dobozbaVan(dX, dY, dSZ, dM, eX, eY)
  165.     if(eX >= dX and eX <= dX+dSZ and eY >= dY and eY <= dY+dM) then
  166.         return true
  167.     else
  168.         return false
  169.     end
  170. end
  171.  
  172. function startPlayerJob(ID)
  173.     if not localPlayer then return end
  174.     --outputChatBox(ID)
  175.     if (tonumber(ID) == 1) then
  176.         startTransportJob()
  177.     elseif (tonumber(ID) == 2) then
  178.         startJob() 
  179.     elseif (tonumber(ID) == 3) then
  180.         createMarkerToJob()
  181.     elseif (tonumber(ID) == 6) then
  182.         createMarkerFunction()
  183.     end
  184. end
  185.  
  186. function destroyPlayerJob(ID)
  187.     if not localPlayer then return end
  188.     if (tonumber(ID) == 1) then
  189.         destroyTransportJob()  
  190.     elseif (tonumber(ID) == 2) then
  191.         destroyJob()   
  192.     elseif (tonumber(ID) == 3) then
  193.         destroyStorageBox()
  194.     elseif (tonumber(ID) == 6) then
  195.         destroyMarkerFunction()
  196.     end
  197. end
  198.  
  199. function munkaSpawn()
  200.     local Loggedin = getElementData(localPlayer, "loggedin")
  201.  
  202.     if (Loggedin) then
  203.         jelenlegiMunka = tonumber(localPlayer:getData("char:job"))
  204.         if (jelenlegiMunka == 1) then -- Járműszállító
  205.             startTransportJob()
  206.         else
  207.             destroyTransportJob()
  208.         end    
  209.         if (jelenlegiMunka == 2) then -- Pizza
  210.             startJob()
  211.         else
  212.             destroyJob()
  213.         end    
  214.         if (jelenlegiMunka == 3) then -- Árufeltöltő
  215.             createMarkerToJob()
  216.         else
  217.             destroyStorageBox()
  218.         end    
  219.        
  220.         if (jelenlegiMunka == 6) then -- Favágó
  221.             createMarkerFunction()
  222.         else
  223.             destroyMarkerFunction()
  224.         end
  225.  
  226.     end
  227. end
  228.  
  229. addEventHandler ( "onClientElementDataChange", getRootElement(),
  230. function ( dataName )
  231.     if getElementType ( source ) == "player" and dataName == "char:job" then
  232.         if getElementData(source,dataName) == 1 then
  233.             startTransportJob()
  234.         else
  235.             destroyTransportJob()
  236.         end    
  237.         if getElementData(source,dataName) == 2 then
  238.             startJob()
  239.         else
  240.             destroyJob()
  241.         end    
  242.         if getElementData(source,dataName) == 3 then
  243.             createMarkerToJob()
  244.         else
  245.             destroyStorageBox()
  246.         end    
  247.         if getElementData(source,dataName) == 6 then
  248.             createMarkerToJob()
  249.         else
  250.             destroyMarkerFunction()
  251.         end
  252.     end
  253. end )
  254.  
  255.  
  256. addEventHandler("onClientPlayerSpawn", localPlayer,
  257.     function()
  258.         setTimer(munkaSpawn, 1000, 1)
  259.     end
  260. )
  261.  
  262. addEventHandler( "onClientResourceStart", getRootElement( ),
  263.     function ( resource )
  264.         if (resource ~= getThisResource()) then return end
  265.         setTimer(munkaSpawn, 1000, 1)
  266.     end
  267. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement