Advertisement
Guest User

clien

a guest
Aug 4th, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 26.81 KB | None | 0 0
  1. local show = false
  2. local triggered = false
  3. local itemElement = nil
  4. local isCraftShowing = false
  5. local tooltip_text_color = tocolor( 255, 255, 255, 230 )
  6. local tooltip_background_color = tocolor( 0, 0, 0, 190 )
  7. local font = dxCreateFont("files/segoeui.ttf", 20)
  8.  
  9. local move = false
  10. local sx,sy = guiGetScreenSize()
  11. local wSizeX, wSizeY = 426, 300
  12. local defX, defY = sx - wSizeX - 10, (sy/2) - (wSizeY/2)
  13. local defX2 = defX
  14. local defY2 = defY + 80
  15. local smallSize = 50
  16. local activeTab = 1
  17.  
  18. local actualItem = 0
  19. local actualSlot = -1
  20. local actualValue = 0
  21. local actualDuty = 0
  22. local actualID = 0
  23. local anim = "right"
  24.  
  25. --mozgatás
  26. local movedItemSlot = -1
  27. local isMove = false
  28. local movedItem = 0
  29. local movedItemValue = 0
  30. local movedItemID = 0
  31. local movedItemDuty = 0
  32. local hoverElement = nil
  33. local switchTo = 0
  34. local openTrash = true
  35. --mozgatás vége
  36.  
  37. addEventHandler("onClientResourceStart", resourceRoot, function()
  38.     if getElementData(localPlayer,"spawned") then
  39.         triggerServerEvent("loadPlayerItems", localPlayer, localPlayer)
  40.     end
  41.     -- setTimer(function()
  42.         -- if getElementData(localPlayer,"spawned") then
  43.             -- saveItems(localPlayer)
  44.         -- end
  45.     -- end, 300000, 0)
  46. end)
  47.  
  48. addEvent("onClientReceiveItems", true)
  49. addEventHandler("onClientReceiveItems", root, function(items)
  50.     for i=0,31 do
  51.         setElementData(localPlayer, "items"..i, 0)
  52.     end
  53.     for k,v in pairs(items) do
  54.         local item = v[1]
  55.         local value = v[2]
  56.         local slot = v[3]
  57.         local id = v[4]
  58.         local itemOnSlot = tonumber(getElementData(localPlayer, "items"..slot)) or 0
  59.         if itemOnSlot > 0 or slot == -1 then
  60.             slot = getNextAvailableSlot(localPlayer)
  61.         end
  62.         setElementData(localPlayer, "items"..slot, item)
  63.         setElementData(localPlayer, "itemvalue"..slot..item, value)
  64.         setElementData(localPlayer, "itemid"..slot..item, id)
  65.     end
  66. end)
  67.  
  68. function checkCursor()
  69.     if not guiGetInputEnabled() and not isMTAWindowActive() and isCursorShowing( ) then
  70.         return true
  71.     else
  72.         return false
  73.     end
  74. end
  75.  
  76. local function tooltip( text, text2 )
  77.     if checkCursor() then
  78.         local x,y = getCursorPosition( )
  79.         local x,y = x * sx, y * sy
  80.         text = tostring( text )
  81.         if text2 then
  82.             text2 = tostring( text2 )
  83.         end
  84.        
  85.         if text == text2 then
  86.             text2 = nil
  87.         end
  88.        
  89.         local width = dxGetTextWidth( text, 1, "clear" ) + 20
  90.         if text2 then
  91.             width = math.max( width, dxGetTextWidth( text2, 1, "clear" ) + 20 )
  92.             text = text .. "\n" .. text2
  93.         end
  94.         local height = 10 * ( text2 and 5 or 3 )
  95.         x = math.max( 10, math.min( x, sx - width - 10 ) )
  96.         y = math.max( 10, math.min( y, sy - height - 10 ) )
  97.        
  98.         dxDrawRectangle( x, y, width, height, tooltip_background_color, true )
  99.         dxDrawText( text, x, y, x + width, y + height, tooltip_text_color, 1, "default", "center", "center", false, false, true )
  100.     end
  101. end
  102.  
  103. local function isInBox( x, y, xmin, xmax, ymin, ymax )
  104.     if checkCursor() then
  105.         x = tonumber(x) or 0
  106.         y = tonumber(y) or 0
  107.         xmin = tonumber(xmin) or 0
  108.         xmax = tonumber(xmax) or 0
  109.         ymin = tonumber(ymin) or 0
  110.         ymax = tonumber(ymax) or 0
  111.         return x >= xmin and x <= xmax and y >= ymin and y <= ymax
  112.     else
  113.         return false
  114.     end
  115. end
  116.  
  117. function getCursorPos()
  118.     if checkCursor() then
  119.         cx,cy = getCursorPosition ()
  120.         cx,cy = cx*sx,cy*sy
  121.     else
  122.         cx,cy = -500,-500
  123.     end
  124.     return cx,cy
  125. end
  126.  
  127. local invState = false
  128.  
  129. local canOpenCraft = false
  130. local craftState = false
  131.  
  132. bindKey("i", "down", function()
  133.     if getElementData(localPlayer, "spawned") == true and not getElementData(localPlayer, "char:adminJailed") then
  134.         openInventory(localPlayer)
  135.         invState = not invState
  136.         setElementData(localPlayer, "char:inventoryOpened", invState)
  137.     end
  138. end)
  139.  
  140. bindKey("u", "down", function()
  141.     if getElementData(localPlayer, "spawned") == true and not getElementData(localPlayer, "char:adminJailed") and canOpenCraft then
  142.         craftState = not craftState
  143.     end
  144. end)
  145.  
  146. bindKey("m", "down", function()
  147.     showCursor(not isCursorShowing())
  148. end)
  149.  
  150. function clickTrash(button, state, absX, absY, wx, wy, wz, element)
  151.     if getElementData(getLocalPlayer(), "exclusiveGUI") then
  152.         return
  153.     end
  154.     if not cooldown and element and getElementType(element) =="object" and state=="up" and (getElementModel(element) == 2332 or getElementModel(element) == 1359) then
  155.         local px, py, pz = getElementPosition( localPlayer )
  156.         local ax, ay, az = getElementPosition( element )
  157.        
  158.         if getDistanceBetweenPoints3D( px, py, pz, ax, ay, az ) < 5 and openTrash then
  159.             openInventory(element)
  160.         end
  161.     end
  162. end
  163. addEventHandler( "onClientClick", getRootElement(), clickTrash )
  164.  
  165. local wait = false
  166.  
  167. local weapons = {
  168.     [44] = true,
  169.     [45] = true,
  170.     [46] = true,
  171.     [47] = true,
  172.     [48] = true,
  173.     [49] = true,
  174.     [57] = true,
  175.     [58] = true,
  176.     [59] = true,
  177.     [31] = true,
  178.     [37] = true,
  179. }
  180.  
  181. function openInventory(element)
  182.     if element == localPlayer then
  183.         canOpenCraft = true
  184.     else
  185.         canOpenCraft = false
  186.     end
  187.     clickDown = nil
  188.     movedItem = 0
  189.     movedItemSlot = -1
  190.     movedItemValue = 0
  191.     movedItemID = -1
  192.     movedItemDuty = 0
  193.     if not wait then
  194.         if anim == "right" then
  195.             itemElement = element
  196.             startTick = getTickCount()
  197.            
  198.             wait = true
  199.             setTimer(function()
  200.                 wait = false
  201.             end, 600, 1)
  202.  
  203.             anim = "left"
  204.             mutat = true
  205.             activeTab = 1
  206.         else
  207.             if getElementType(element) == "vehicle" or getElementType(element) == "object" and not getElementData(element, "food") then
  208.                 setTimer(openInventory, 1000, 1, element)
  209.             end
  210.             startTick = getTickCount()
  211.            
  212.             wait = true
  213.             setTimer(function()
  214.                 wait = false
  215.                 itemElement = localPlayer
  216.                 mutat = false
  217.             end, 600, 1)
  218.  
  219.             anim = "right"
  220.            
  221.             activeTab = 1
  222.         end
  223.     end
  224. end
  225. addEvent("openInventory", true)
  226. addEventHandler("openInventory", getRootElement(), openInventory)
  227.  
  228. local size = 45
  229. local spacer = 5
  230.  
  231. local tempTable = {}
  232.  
  233. --itemid --itemslot
  234. local actionBarItems = {}
  235. function removeActionBarItem(slot)
  236.     for i=1,5 do
  237.         if actionBarItems[i] and actionBarItems[i][2] == slot then
  238.             actionBarItems[i] = nil
  239.         end
  240.     end
  241. end
  242. addEvent("removeActionBarItem", true)
  243. addEventHandler("removeActionBarItem", root, removeActionBarItem)
  244.  
  245. addEventHandler("onClientResourceStart", resourceRoot, function()
  246.     for i=1,5 do
  247.         local item = getElementData(localPlayer, "char:ActionBarItem"..i)
  248.         if item then
  249.             actionBarItems[i] = {item[1], item[2]}
  250.         end
  251.     end
  252. end)
  253.  
  254. addEvent("onClientReceiveActionBar", true)
  255. addEventHandler("onClientReceiveActionBar", root, function()
  256.     for i=1,5 do
  257.         local item = getElementData(localPlayer, "char:ActionBarItem"..i)
  258.         if item then
  259.             actionBarItems[i] = {item[1], item[2]}
  260.         end
  261.     end
  262. end)
  263.  
  264. local craftItems = {}
  265. local notShowInventoryItems = {}
  266. local activeCraftMenu = -1
  267. addEventHandler("onClientRender", getRootElement(), function()
  268.     local cursorX, cursorY = getCursorPos()
  269.     if not getElementData(localPlayer, "char:adminJailed") and getElementData(localPlayer, "spawned") then
  270.         local aX = sx/2-(275/2)
  271.         local aY = sy-size-spacer
  272.         dxDrawRectangle(aX-3,aY-2,250,50,tocolor(0,0,0,200))
  273.         if not isInBox(cursorX, cursorY, aX, aX + 265, aY, aY + 50) then
  274.             activeActionBarMenu = 0
  275.         end
  276.        
  277.         for i=1, 5 do
  278.             dxDrawImage(aX, aY, 20, 20, "files/itemslot.png")
  279.             if isInBox(cursorX, cursorY, aX, aX + size, aY, aY + size) then
  280.                 activeActionBarMenu = i
  281.                 dxDrawImage(aX, aY, 20, 20, "files/itemslot.png")
  282.                 if actionBarItems[i] then
  283.                     tooltip(getItemName(actionBarItems[i][1]), "Slot: "..actionBarItems[i][2])
  284.                 end
  285.             elseif getKeyState(i) then
  286.                 dxDrawImage(aX, aY, 20, 20, "files/itemslot.png")
  287.             end
  288.             if actionBarItems[i] then
  289.                 dxDrawImage(aX, aY, 20, 20, "images/"..actionBarItems[i][1]..".png")
  290.             end
  291.             aX = aX+size+spacer
  292.         end
  293.     end
  294.    
  295.     if mutat and isElement(itemElement) then
  296.         local isMove = clickDown and movedItemSlot and ( getTickCount( ) - clickDown >= 200 )
  297.         local sor
  298.         local regisor
  299.         local hely
  300.         progress = (getTickCount() - startTick) / 700
  301.        
  302.         if anim == "left" then
  303.             defX = interpolateBetween (
  304.                 sx,0,0,
  305.                 defX2,0,0,
  306.                 progress,"InOutQuad"
  307.             )
  308.         else
  309.             defX = interpolateBetween (
  310.                 defX2,0,0,
  311.                 sx,0,0,
  312.                 progress,"InOutQuad"
  313.             )
  314.         end
  315.        
  316.         dxDrawImage( defX, defY, 426, 300, "files/invbg.png" )
  317.        
  318.         if craftState and canOpenCraft then
  319.             activeCraftMenu = -1
  320.             local craftX, craftY = defX-248, defY
  321.             dxDrawImage(craftX, craftY, 248, 300, "files/craftbg.png" )
  322.            
  323.             --- 1
  324.             local startX, startY = craftX+44, craftY+80
  325.             for i=0,8 do
  326.                 sor = math.floor(i/3)
  327.                 if(sor ~= regisor) then
  328.                     hely = 0
  329.                 end
  330.                 local xe2 = startX + size * hely + spacer * hely
  331.                 local ye2 = startY + size * sor + spacer * sor
  332.                
  333.                 dxDrawImage(xe2, ye2, 20, 20, "files/itemslot.png" )
  334.                 if isInBox(cursorX, cursorY, xe2, xe2+size, ye2, ye2+size) then
  335.                     dxDrawImage(xe2, ye2, 20, 20, "files/itemslot.png" )
  336.                     activeCraftMenu = i
  337.                 end
  338.                
  339.                 if craftItems[i] and craftItems[i][1] then
  340.                     dxDrawImage(xe2, ye2, size, size, "images/"..craftItems[i][1]..".png" )
  341.                     if activeCraftMenu == i then
  342.                         tooltip(getItemName(craftItems[i][1]),"A kivételhez kattints!")
  343.                     end
  344.                 end
  345.                
  346.                 regisor = sor
  347.                 hely = hely + 1
  348.             end
  349.         end
  350.  
  351.         if not isInBox( cursorX, cursorY, defX + 5, defX + 440, defY2, defY2 + 215 ) then
  352.             actualItem = 0
  353.             actualSlot = -1
  354.             actualValue = 0
  355.             actualDuty = 0
  356.         end
  357.  
  358.         if isInBox( cursorX, cursorY, defX, defX + 446, defY, defY + 310 ) then
  359.             canMoveToWorld = false
  360.         else
  361.             canMoveToWorld = true
  362.         end
  363.        
  364.         -- if activeTab == 1 then
  365.             defX = defX + 13
  366.             for i=0, 31 do
  367.                 sor = math.floor(i/8)
  368.                 if(sor ~= regisor) then
  369.                     hely = 0
  370.                 end
  371.                 local xe = defX + size * hely + spacer * hely
  372.                 local ye = defY2 + size * sor + spacer * sor
  373.                
  374.                 -- if activeTab == 1 then
  375.                     item = tonumber(getElementData(itemElement, "items"..i)) or 0
  376.                     value = getElementData(itemElement, "itemvalue"..i..item)
  377.                     itemValue = tonumber(value) or 0
  378.                     -- if itemValue == 0 then
  379.                         -- itemValue = tostring(value) or "Ismeretlen érték"
  380.                     -- end
  381.                     itemID = tonumber(getElementData(itemElement, "itemid"..i..item)) or 0
  382.                     itemDuty = tonumber(getElementData(itemElement, "dutyitem"..i..item)) or 0
  383.                     dxDrawImage( xe, ye, 20, 20, "files/itemslot.png" )
  384.                     if isInBox( cursorX, cursorY, xe, xe + size, ye, ye + size ) and not notShowInventoryItems[i] then
  385.                         actualSlot = i
  386.                         actualItem = item
  387.                         actualValue = itemValue
  388.                         actualDuty = itemDuty
  389.                         actualID = itemID
  390.                         dxDrawImage( xe, ye, 20, 20, "files/itemslot.png" )
  391.                         if item > 0 then
  392.                             -- if type(itemValue) == "number" then
  393.                                 if itemValue > 1 and not weapons[item] then
  394.                                     tooltip(getItemName(item, itemValue), "Érték: ".. itemValue)
  395.                                 elseif item == 20 then
  396.                                     tooltip(getItemName(item, itemValue), "Számod: ".. getElementData(localPlayer, "dbid"))
  397.                                 elseif weapons[item] then
  398.                                     if itemValue == 0 then
  399.                                         itemValue = 0
  400.                                     else
  401.                                         itemValue = itemValue - 1
  402.                                     end
  403.                                     tooltip(getItemName(item, itemValue), "Lőszer: ".. itemValue)
  404.                                 else
  405.                                     tooltip(getItemName(item, itemValue))
  406.                                 end
  407.                             -- else
  408.                                 -- tooltip(getItemName(item, itemValue), itemValue)
  409.                             -- end
  410.                         end
  411.                     end
  412.                     if item > 0 and not notShowInventoryItems[i] then
  413.                         itemIMG = fileExists ( "images/" .. item .. ".png" ) and "images/" .. item .. ".png" or "images/48.png"
  414.                         if itemIMG then
  415.                             if isMove and movedItemSlot == i then
  416.                                 -- dxDrawImage( cursorX - 25, cursorY - 25, size, size, "files/itemslot.png",0,0,0,tocolor(255,255,255,255), true )
  417.                                 dxDrawImage( cursorX - 25, cursorY - 25, size, size, itemIMG,0,0,0,tocolor(255,255,255,255), true )
  418.                             else
  419.                                 dxDrawImage( xe, ye, size, size, itemIMG )
  420.                             end
  421.                         else
  422.                             setElementData(itemElement, "items"..i, 0)
  423.                         end
  424.                     end
  425.                 -- end
  426.                
  427.                 regisor = sor
  428.                 hely = hely + 1
  429.             end
  430.         -- end
  431.        
  432.         if checkCursor() then
  433.             local screenx, screeny, worldx, worldy, worldz = getCursorPosition()
  434.             local cameraX, cameraY, cameraZ = getWorldFromScreenPosition( cursorX, cursorY, 0.1 )
  435.             col, x, y, z, hoverElement = processLineOfSight( cameraX, cameraY, cameraZ, worldx, worldy, worldz )
  436.         end
  437.     end
  438. end)
  439.  
  440. addEventHandler("onClientKey", getRootElement(), function(key, state)
  441.     if key == "delete" and state and actualItem > 0 and actualSlot >= 0 then
  442.         if getElementType(itemElement) == "player" and itemElement ~= localPlayer then return end
  443.         outputDebugString(actualID)
  444.         if actualID > 0 then
  445.             triggerServerEvent("delItem", localPlayer, actualID, itemElement, actualSlot)
  446.         end
  447.         setElementData(itemElement, "items"..actualSlot, 0)
  448.         setElementData(itemElement, "itemvalue"..actualSlot..actualItem, 0)
  449.         setElementData(itemElement, "itemid"..actualSlot..actualItem, 0)
  450.         if actualItem == 76 and itemElement == localPlayer then
  451.             setElementData(localPlayer, "char:id_code", nil)
  452.         end
  453.         if itemElement == localPlayer then
  454.             removeActionBarItem(actualSlot)
  455.         end
  456.         setElementData(localPlayer, "lastMeMessage", "megsemmisít egy tárgyat. [".. getItemName(actualItem) .."]")
  457.     elseif key == "delete" and state and activeActionBarMenu > 0 and not isChatBoxInputActive() then
  458.         actionBarItems[activeActionBarMenu] = nil
  459.         setElementData(localPlayer, "char:ActionBarItem"..activeActionBarMenu, nil)
  460.     end
  461. end)
  462.  
  463. for i=1,5 do
  464.     bindKey(i, "down", function()
  465.         if actionBarItems[i] and not isChatBoxInputActive() and not isConsoleActive() and not isMainMenuActive() and not isMTAWindowActive() then
  466.             if not notShowInventoryItems[actionBarItems[i][2]] then
  467.                 useItem(actionBarItems[i][1], 0, actionBarItems[i][2])
  468.             end
  469.         end
  470.     end)
  471. end
  472.  
  473. addEventHandler("onClientClick",getRootElement(), function(button, state, cursorX, cursorY, worldX, worldY, worldZ)
  474.     if itemElement and getElementType(itemElement) == "player" and itemElement ~= localPlayer then
  475.         return
  476.     end
  477.     if state == "down" and button == "left" and anim == "left" then
  478.         clickDown = getTickCount( )
  479.         if actualItem > 0 then
  480.             movedItemSlot = actualSlot
  481.             movedItem = actualItem
  482.             movedItemValue = actualValue
  483.             movedItemID = actualID
  484.             movedItemDuty = actualDuty
  485.             if isTimer(trashTimer) then killTimer(trashTimer) end
  486.             openTrash = false
  487.         end
  488.     elseif state == "up" and button == "left" and anim == "left" then
  489.         trashTimer = setTimer(function()
  490.             openTrash = true
  491.         end, 2000,1)
  492.         if activeCraftMenu >= 0 and movedItem > 0 then
  493.             craftItems[activeCraftMenu] = {movedItem,movedItemSlot}
  494.             notShowInventoryItems[movedItemSlot] = true
  495.         elseif activeCraftMenu >= 0 and craftItems[activeCraftMenu][1] > 0 then
  496.             notShowInventoryItems[craftItems[activeCraftMenu][2]] = nil
  497.             craftItems[activeCraftMenu] = nil
  498.         elseif canMoveToWorld and movedItem > 0 and movedItemSlot >= 0 then
  499.             if activeActionBarMenu > 0 and itemElement == localPlayer then
  500.                 for i=1,6 do
  501.                     if actionBarItems[i] and actionBarItems[i][1] == movedItem then
  502.                         actionBarItems[i] = nil
  503.                         setElementData(localPlayer, "char:ActionBarItem"..i, nil)
  504.                     end
  505.                    
  506.                     if i == 6 then
  507.                         actionBarItems[activeActionBarMenu] = {movedItem, movedItemSlot}
  508.                         setElementData(localPlayer, "char:ActionBarItem"..activeActionBarMenu, {movedItem, movedItemSlot})
  509.                     end
  510.                 end
  511.             elseif movedItemDuty ~= 1 and isElement(hoverElement) and getElementType(hoverElement) == "player" and hoverElement ~= localPlayer then
  512.                 local szam, msg = getNextAvailableSlot(hoverElement)
  513.                 if msg then
  514.                     if movedItem == 76 then
  515.                         triggerServerEvent("onServerShowDocument", localPlayer, localPlayer, hoverElement, 1)
  516.                         setElementData(localPlayer, "lastMeMessage", "felmutatja a személyi igazolványát.")
  517.                     elseif movedItem == 75 then
  518.                         triggerServerEvent("onServerShowDocument", localPlayer, localPlayer, hoverElement, 3)
  519.                         setElementData(localPlayer, "lastMeMessage", "felmutatja az útlevelét.")
  520.                     elseif movedItem == 111 then
  521.                         triggerServerEvent("onServerShowDocument", localPlayer, localPlayer, hoverElement, 4)
  522.                         setElementData(localPlayer, "lastMeMessage", "felmutatja a jogosítványát.")
  523.                     else
  524.                         setElementData(itemElement, "items"..movedItemSlot, 0)
  525.                         setElementData(itemElement, "itemvalue"..movedItemSlot..movedItem, 0)
  526.                         setElementData(itemElement, "itemid"..movedItemSlot..movedItem, 0)
  527.                        
  528.                         setElementData(hoverElement, "items"..szam, movedItem)
  529.                         setElementData(hoverElement, "itemvalue"..szam..movedItem, movedItemValue)
  530.                         setElementData(hoverElement, "itemid"..szam..movedItem, movedItemID)
  531.                
  532.                         playSound("itemsMoving.mp3")
  533.  
  534.                         setElementData(localPlayer, "lastMeMessage", "átad egy tárgyat ".. exports.ex_core:getAccuratePlayerName(hoverElement) .."-nak/nek. #4f98e1["..getItemName(movedItem).."]")
  535.                         if movedItemID > 0 then
  536.                             triggerServerEvent("updateItemOwner", localPlayer, movedItemID, hoverElement, szam, localPlayer)
  537.                         end
  538.                     end
  539.                 else
  540.                     outputChatBox("#4f98e1[HL]#ffffffEz az inventory tele van!",255,0,0, true)
  541.                 end
  542.             elseif movedItemDuty ~= 1 and isElement(hoverElement) and getElementType(hoverElement) == "vehicle" then
  543.                 if getElementType(itemElement) == "vehicle" then
  544.                     return
  545.                 end
  546.                 if getElementData(itemElement, "veh:Locked") == 1 then
  547.                     outputChatBox("#4f98e1[HL]#ffffffA jármű le van zárva!",255,0,0, true)
  548.                     return
  549.                 end
  550.                 local szam, msg = getNextAvailableSlot(hoverElement)
  551.                 if msg then
  552.                     setElementData(itemElement, "items"..movedItemSlot, 0)
  553.                     setElementData(itemElement, "itemvalue"..movedItemSlot..movedItem, 0)
  554.                     setElementData(itemElement, "itemid"..movedItemSlot..movedItem, 0)
  555.                     playSound("itemsMoving.mp3")               
  556.                     setElementData(hoverElement, "items"..szam, movedItem)
  557.                     setElementData(hoverElement, "itemvalue"..szam..movedItem, movedItemValue)
  558.                     setElementData(hoverElement, "itemid"..szam..movedItem, movedItemID)
  559.                    
  560.                     setElementData(localPlayer, "lastMeMessage", "berak egy tárgyat a csomagtartóba. #4f98e1["..getItemName(movedItem).."]")
  561.                     if movedItemID > 0 then
  562.                         triggerServerEvent("updateItemOwner", localPlayer, movedItemID, hoverElement, szam, localPlayer)
  563.                     end
  564.                     if isTimer(saveTime) then killTimer(saveTime) end
  565.                     saveTime = setTimer(function(veh)
  566.                         saveItems(veh)
  567.                     end, 5000, 1, hoverElement)
  568.                 else
  569.                     outputChatBox("#4f98e1[HL]#ffffffEz az inventory tele van!",255,0,0, true)
  570.                 end
  571.             elseif movedItemDuty ~= 1 and isElement(hoverElement) and getElementType(hoverElement) == "object" and getElementModel(hoverElement) == 1359 then
  572.                 local szam, msg = getNextAvailableSlot(hoverElement)
  573.                 if msg then
  574.                     setElementData(itemElement, "items"..movedItemSlot, 0)
  575.                     setElementData(itemElement, "itemvalue"..movedItemSlot..movedItem, 0)
  576.                     setElementData(itemElement, "itemid"..movedItemSlot..movedItem, 0)
  577.                    
  578.                     setElementData(hoverElement, "items"..szam, movedItem)
  579.                     setElementData(hoverElement, "itemvalue"..szam..movedItem, movedItemValue)
  580.                     setElementData(hoverElement, "itemid"..szam..movedItem, movedItemID)
  581.                     playSound("itemsMoving.mp3")                   
  582.                     setElementData(localPlayer, "lastMeMessage", "kidob egy tárgyat a kukába. #4f98e1["..getItemName(movedItem).."]")
  583.                     if movedItemID > 0 then
  584.                         triggerServerEvent("delItem", localPlayer, movedItemID, localPlayer, movedItemSlot)
  585.                     end
  586.                 else
  587.                     outputChatBox("#4f98e1[HL]#ffffffEz a kuka tele van!",255,0,0, true)
  588.                 end
  589.             elseif movedItemDuty ~= 1 and isElement(hoverElement) and getElementType(hoverElement) == "ped" then
  590.                 if movedItem == 75 and isPedInVehicle(localPlayer) then
  591.                     triggerServerEvent("sendLocalMeAction",localPlayer,localPlayer, "kihajol az ablakon és átadja az őrnek a papírjait.")      
  592.                     triggerServerEvent("sendLocalChatMessage",localPlayer,localPlayer, " Minden rendben uram. További szép napot.")          
  593.                     triggerServerEvent("openGate", getRootElement(), getElementData(hoverElement, "guard:belongsToGate"))  
  594.                 elseif not isPedInVehicle(localPlayer) then
  595.                     setElementData(localPlayer, "lastMeMessage", "átadja az őrnek a papírjait.")                
  596.                     triggerServerEvent("sendLocalChatMessage", localPlayer,localPlayer, " Minden rendben uram. További szép napot.")
  597.                 end
  598.             elseif movedItemDuty ~= 1 and isElement(hoverElement) and getElementType(hoverElement) == "object" and getElementModel(hoverElement) == 2332 then
  599.                 if getElementType(itemElement) == "object" then
  600.                     return
  601.                 end
  602.                 local szam, msg = getNextAvailableSlot(hoverElement)
  603.                 if msg then
  604.                     setElementData(itemElement, "items"..movedItemSlot, 0)
  605.                     setElementData(itemElement, "itemvalue"..movedItemSlot..movedItem, 0)
  606.                     setElementData(itemElement, "itemid"..movedItemSlot..movedItem, 0)
  607.                    
  608.                     setElementData(hoverElement, "items"..szam, movedItem)
  609.                     setElementData(hoverElement, "itemvalue"..szam..movedItem, movedItemValue)
  610.                     setElementData(hoverElement, "itemid"..szam..movedItem, movedItemID)
  611.                     playSound("itemsMoving.mp3")
  612.                    
  613.                     setElementData(localPlayer, "lastMeMessage", "berak egy tárgyat a széfbe. #4f98e1["..getItemName(movedItem).."]")
  614.                     if movedItemID > 0 then
  615.                         triggerServerEvent("updateItemOwner", localPlayer, movedItemID, hoverElement, szam, localPlayer)
  616.                     end
  617.                     if isTimer(saveTime) then killTimer(saveTime) end
  618.                     saveTime = setTimer(function(veh)
  619.                         saveItems(veh)
  620.                     end, 5000, 1, hoverElement)
  621.                 else
  622.                     outputChatBox("#4f98e1[HL]#ffffffEz a széf tele van!",255,0,0, true)
  623.                 end
  624.             end
  625.         elseif clickDown and getTickCount() - clickDown < 200 and actualItem > 0 and actualSlot >= 0 then
  626.             if getElementType(itemElement) == "player" then
  627.                 useItem(actualItem, actualValue, actualSlot)
  628.             else
  629.                 if not isTimer(waitTimer) then
  630.                     local szam, msg = getNextAvailableSlot(localPlayer)
  631.                     if msg then
  632.                         if getElementData(itemElement, "items"..actualSlot) > 0 then
  633.                             setElementData(itemElement, "items"..actualSlot, 0)
  634.                             setElementData(itemElement, "itemvalue"..actualSlot..actualItem, 0)
  635.                             setElementData(itemElement, "itemid"..actualSlot..actualItem, 0)
  636.                             setElementData(itemElement, "dutyitem"..actualSlot..actualItem, 0)
  637.                            
  638.                             setElementData(localPlayer, "items"..szam, actualItem)
  639.                             setElementData(localPlayer, "itemvalue"..szam..actualItem, actualValue)
  640.                             setElementData(localPlayer, "itemid"..szam..actualItem, movedItemID)
  641.                             setElementData(localPlayer, "dutyitem"..szam..actualItem, actualDuty)
  642.                            
  643.                             if getElementType(itemElement) == "vehicle" then
  644.                                 setElementData(localPlayer, "lastMeMessage", "kivesz egy tárgyat a csomagtartóból.")
  645.                             elseif getElementType(itemElement) == "object" and getElementModel(itemElement) == 1359 then
  646.                                 setElementData(localPlayer, "lastMeMessage", "kivesz egy tárgyat a kukából.")
  647.                             elseif getElementType(itemElement) == "object" and getElementModel(itemElement) == 2332 then
  648.                                 setElementData(localPlayer, "lastMeMessage", "kivesz egy tárgyat a széfből.")
  649.                             end
  650.                             playSound("itemsMoving.mp3")
  651.                             if movedItemID > 0 then
  652.                                 triggerServerEvent("updateItemOwner", localPlayer, movedItemID, localPlayer, szam, localPlayer)
  653.                             end
  654.                             waitTimer = setTimer(function() end, 1000, 1)
  655.                         end
  656.                     end
  657.                 end
  658.             end
  659.         elseif movedItemSlot == actualSlot then
  660.         elseif actualItem > 0 then
  661.         elseif movedItemDuty ~= 1 and actualSlot >= 0 and not notShowInventoryItems[actualSlot] then
  662.             local fegyoslot = tonumber(getElementData(itemElement, "weaponslot")) or 0
  663.             if getElementData(itemElement, "items"..movedItemSlot) and getElementData(itemElement, "items"..movedItemSlot) ~= 0 then
  664.                 local fegyoslot = tonumber(getElementData(localPlayer, "weaponslot")) or 0
  665.                 if fegyoslot == movedItemSlot then
  666.                     setElementData(localPlayer, "weaponslot", actualSlot)
  667.                 end
  668.                
  669.                 setElementData(itemElement, "items"..movedItemSlot, 0)
  670.                 setElementData(itemElement, "itemvalue"..movedItemSlot..movedItem, 0)
  671.                 setElementData(itemElement, "itemid"..movedItemSlot..movedItem, 0)
  672.                
  673.                 setElementData(itemElement, "items"..actualSlot, movedItem)
  674.                 setElementData(itemElement, "itemvalue"..actualSlot..movedItem, movedItemValue)
  675.                 setElementData(itemElement, "itemid"..actualSlot..movedItem, movedItemID)
  676.                 playSound("itemsMoving.mp3")
  677.             end
  678.         end
  679.         clickDown = nil
  680.         movedItem = 0
  681.         movedItemSlot = -1
  682.         movedItemValue = 0
  683.         movedItemID = -1
  684.         movedItemDuty = 0
  685.     end
  686. end)
  687.  
  688. function giveItem(player, itemID, itemValue, slot, id, duty)
  689.     if itemID and itemValue then
  690.         local elementID = tonumber(getElementData(player, "dbid")) or 0
  691.         local newItem = tonumber(itemID)
  692.         local newSlot, state
  693.         if not id then
  694.             id = 0
  695.         end
  696.         if not slot then
  697.             newSlot, state = getNextAvailableSlot(player)
  698.         else
  699.             newSlot, state = slot, true
  700.         end
  701.         if state == true then
  702.             if elementID > 0 then
  703.                 setElementData(player, "items"..newSlot, newItem)
  704.                 setElementData(player, "itemvalue"..newSlot..newItem, itemValue)
  705.                 setElementData(player, "itemid"..newSlot..newItem, id)
  706.                 if duty then
  707.                     setElementData(player, "dutyitem"..newSlot..newItem, 1)
  708.                 end
  709.             end
  710.         else
  711.             return false, "Inventory tele."
  712.         end
  713.         return true, "Oda adva."
  714.     end
  715. end
  716. addEvent("giveItem",true)
  717. addEventHandler("giveItem", getRootElement(), giveItem)
  718.  
  719. addCommandHandler("giveitem", function(cmd,...)
  720.     local args = {...}
  721.     if getElementData(localPlayer, "user:adminlevel") >= 6 then
  722.         if #args < 3 then
  723.             outputChatBox("#FF4400[HL - Használat]#FFFFFF: /".. cmd .." [Játékos ID] [ItemID] [ItemValue]",0,0,0,true)
  724.         else
  725.             local targetPlayer, targetPlayerName = exports.ex_core:findPlayerByPartialNick(localPlayer, args[1])
  726.             if not targetPlayer then
  727.             else
  728.                 args[2] = tonumber(args[2])
  729.                 args[3] = tostring(args[3])
  730.                 local state,msg = giveItem(targetPlayer, args[2], args[3])
  731.                 if state then
  732.                     outputChatBox("#FF4400[HL]#FFFFFF: ".. targetPlayerName .." kapott egy ".. getItemName(args[2]) .."-t ".. args[3] .." értékkel.",0,0,0,true)
  733.                 else
  734.                     outputChatBox("#FF4400[HL]#FFFFFF: ".. targetPlayerName ..": "..msg,0,0,0,true)
  735.                 end
  736.             end
  737.         end
  738.     end
  739. end)
  740.  
  741. function saveItems(element)
  742.     local temptable = {}
  743.     if getElementType(element) == "vehicle" and getVehicleType(element) == "BMX" then return end
  744.     local dbid = tonumber(getElementData(element,"dbid")) or 0
  745.     if dbid > 0 then
  746.         for i=0,31 do
  747.             local item = tonumber(getElementData(element,"items"..i)) or 0
  748.             if item > 0 then
  749.                 local dutyItem = tonumber(getElementData(element,"dutyitem"..i..item)) or 0
  750.                 if dutyItem ~= 1 then
  751.                     local itemValue = tostring(getElementData(element,"itemvalue"..i..item)) or 0
  752.                     local id = tonumber(getElementData(element,"itemid"..i..item)) or 0
  753.                     temptable[#temptable+1] = {id,i,dbid,item,itemValue}
  754.                 end
  755.             end
  756.         end
  757.     end
  758.     if #temptable > 0 then
  759.         triggerServerEvent("saveItemsWithMyPC", localPlayer, element, temptable)
  760.     end
  761. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement