Gripex Posted July 8, 2020 Share Posted July 8, 2020 function Remove() if assignShow == false then return false end for i = 1,5 do if isMouseInRectPosition(assignSlots[i][1], assignSlots[i][2], assignSlots[i][3], assignSlots[i][4]) then if assigns[i] then triggerServerEvent("remove", resourceRoot, assigns[i]["key"], assigns[i]["item"]) iprint(assigns[i]["key"], assigns[i]["item"]) end end end end addEvent("showItems", true) addEventHandler("showItems", root, function (assignItems) if assignShow then if #assignItems == 0 then iprint(assignShow) return end assigns = assignItems local maxKeys = 5 iprint(assignShow) for i, v in ipairs(assigns) do if assigns[i]["item"] == "Buster" then assigns[i]["item"] = "pizza" end img1 = assignItems[1] and {["img"] = ":images/"..assignItems[1]["item"]..".png", ["key"] = assignItems[1]["key"]} img2 = assignItems[2] and {["img"] = ":images/"..assignItems[2]["item"]..".png", ["key"] = assignItems[2]["key"]} img3 = assignItems[3] and {["img"] = ":images/"..assignItems[3]["item"]..".png", ["key"] = assignItems[3]["key"]} img4 = assignItems[4] and {["img"] = ":images/"..assignItems[4]["item"]..".png", ["key"] = assignItems[4]["key"]} img5 = assignItems[5] and {["img"] = ":images/"..assignItems[5]["item"]..".png", ["key"] = assignItems[5]["key"]} if i >= maxKeys then break end end else if #assignItems == 0 then removeEventHandler("onClientClick", root, assignKeysRemove) assignShow = false iprint(assignShow) return end assigns = assignItems local maxKeys = 5 iprint(assignShow) for i, v in ipairs(assigns) do if assigns[i]["item"] == "Buster" then assigns[i]["item"] = "pizza" end img1 = assignItems[1] and {["img"] = ":images/"..assignItems[1]["item"]..".png", ["key"] = assignItems[1]["key"]} img2 = assignItems[2] and {["img"] = ":images/"..assignItems[2]["item"]..".png", ["key"] = assignItems[2]["key"]} img3 = assignItems[3] and {["img"] = ":images/"..assignItems[3]["item"]..".png", ["key"] = assignItems[3]["key"]} img4 = assignItems[4] and {["img"] = ":images/"..assignItems[4]["item"]..".png", ["key"] = assignItems[4]["key"]} img5 = assignItems[5] and {["img"] = ":images/"..assignItems[5]["item"]..".png", ["key"] = assignItems[5]["key"]} if i >= maxKeys then break end end addEventHandler("onClientClick", root, Remove) assignShow = true end end) it had Problem when i click on isMouseInRectPosition(assignSlots[1], assignSlots[2], assignSlots[3], assignSlots[4]) iprint work but item doesn't remove but if i removed this loop for i, v in ipairs(assigns) do it will work fine, any Help? Link to comment
Moderators IIYAMA Posted July 8, 2020 Moderators Share Posted July 8, 2020 57 minutes ago, Gripex said: do it will work fine, any Help? Clean up your code and add comments, then I do not mind take a look at it. Currently I am looking at alien code... 1 Link to comment
Gripex Posted July 8, 2020 Author Share Posted July 8, 2020 54 minutes ago, IIYAMA said: Clean up your code and add comments, then I do not mind take a look at it. Currently I am looking at alien code... addEvent("showItems", true) addEventHandler("showItems", root, function (assignItems) if assignShow then if #assignItems == 0 then iprint(assignShow) return end assigns = assignItems img1 = assignItems[1] and {["img"] = ":images/"..assignItems[1]["item"]..".png", ["key"] = assignItems[1]["key"]} img2 = assignItems[2] and {["img"] = ":images/"..assignItems[2]["item"]..".png", ["key"] = assignItems[2]["key"]} img3 = assignItems[3] and {["img"] = ":images/"..assignItems[3]["item"]..".png", ["key"] = assignItems[3]["key"]} img4 = assignItems[4] and {["img"] = ":images/"..assignItems[4]["item"]..".png", ["key"] = assignItems[4]["key"]} img5 = assignItems[5] and {["img"] = ":images/"..assignItems[5]["item"]..".png", ["key"] = assignItems[5]["key"]} else if #assignItems == 0 then removeEventHandler("onClientRender", root, assignKeysUI) removeEventHandler("onClientClick", root, assignKeysRemove) assignShow = false return end assigns = assignItems img1 = assignItems[1] and {["img"] = ":images/"..assignItems[1]["item"]..".png", ["key"] = assignItems[1]["key"]} img2 = assignItems[2] and {["img"] = ":images/"..assignItems[2]["item"]..".png", ["key"] = assignItems[2]["key"]} img3 = assignItems[3] and {["img"] = ":images/"..assignItems[3]["item"]..".png", ["key"] = assignItems[3]["key"]} img4 = assignItems[4] and {["img"] = ":images/"..assignItems[4]["item"]..".png", ["key"] = assignItems[4]["key"]} img5 = assignItems[5] and {["img"] = ":images/"..assignItems[5]["item"]..".png", ["key"] = assignItems[5]["key"]} addEventHandler("onClientRender", root, assignKeysUI) addEventHandler("onClientClick", root, assignKeysRemove) assignShow = true end end) Thats cleaned COde, i want if get assignItems[1]["item"] like assignItems[1]["item"] == "Test" then change Test to Any name i want it like assignItems[1]["item"] == "Test1" Link to comment
Moderators IIYAMA Posted July 8, 2020 Moderators Share Posted July 8, 2020 (edited) 2 hours ago, Gripex said: Thats cleaned COde, i want if get assignItems[1]["item"] like assignItems[1]["item"] == "Test" then change Test to Any name i want it like assignItems[1]["item"] == "Test1" That is still an alien explanation. But let me give you 2 concepts addCommandHandler("changeItem", function (cmd, index, value) index = tonumber(index) if index and value then assignItems[index]["item"] = value outputChatBox("set!") end end, false) -- not caseSensitive addCommandHandler("changeItemIfValue", function (cmd, value, newValue) if value and newValue then --[[ Loop through all items, until you find the right one, then replace it's value. ]] for i=1, #assignItems do local item = assignItems[i] if item and item["item"] == value then item["item"] = newValue outputChatBox("set!") break end end end end, false) -- not caseSensitive Edited July 8, 2020 by IIYAMA Link to comment
Gripex Posted July 9, 2020 Author Share Posted July 9, 2020 (edited) 22 hours ago, IIYAMA said: That is still an alien explanation. But let me give you 2 concepts addCommandHandler("changeItem", function (cmd, index, value) index = tonumber(index) if index and value then assignItems[index]["item"] = value outputChatBox("set!") end end, false) -- not caseSensitive addCommandHandler("changeItemIfValue", function (cmd, value, newValue) if value and newValue then --[[ Loop through all items, until you find the right one, then replace it's value. ]] for i=1, #assignItems do local item = assignItems[i] if item and item["item"] == value then item["item"] = newValue outputChatBox("set!") break end end end end, false) -- not caseSensitive There aren't way to make list for changing item? Without command And I need count from 1 to 5 inside it bcs if item in img2 or any one so it work fine Edited July 9, 2020 by Gripex Link to comment
Moderators IIYAMA Posted July 9, 2020 Moderators Share Posted July 9, 2020 14 minutes ago, Gripex said: There aren't way to make list for changing item? Without command You will need to decide what the input must be. If it is scrolling, clicking (on a specific something), typing, commands, that doesn't matter as long as that input can be translated to the instructions you want to give to your code. I picked commands, because you only created an input (clicking) for removing items: function Remove() if assignShow == false then return false end for i = 1,5 do if isMouseInRectPosition(assignSlots[i][1], assignSlots[i][2], assignSlots[i][3], assignSlots[i][4]) then if assigns[i] then triggerServerEvent("remove", resourceRoot, assigns[i]["key"], assigns[i]["item"]) iprint(assigns[i]["key"], assigns[i]["item"]) --[[ ... ]] But not to replace them with another one, as you instructed here: On 08/07/2020 at 19:57, Gripex said: Thats cleaned COde, i want if get assignItems[1]["item"] like assignItems[1]["item"] == "Test" then change Test to Any name i want it like assignItems[1]["item"] == "Test1" Link to comment
Gripex Posted July 10, 2020 Author Share Posted July 10, 2020 19 hours ago, IIYAMA said: You will need to decide what the input must be. If it is scrolling, clicking (on a specific something), typing, commands, that doesn't matter as long as that input can be translated to the instructions you want to give to your code. I picked commands, because you only created an input (clicking) for removing items: function Remove() if assignShow == false then return false end for i = 1,5 do if isMouseInRectPosition(assignSlots[i][1], assignSlots[i][2], assignSlots[i][3], assignSlots[i][4]) then if assigns[i] then triggerServerEvent("remove", resourceRoot, assigns[i]["key"], assigns[i]["item"]) iprint(assigns[i]["key"], assigns[i]["item"]) --[[ ... ]] But not to replace them with another one, as you instructed here: i mean there are Much Items to make it export img with other name and if i restarted scripts then names what i typed it it will remove! u got me ? it's exports item names from ServerSide but i want it export other name of image if assigns[i]["item"] == "Buster" then assigns[i]["item"] = "pizza" end if assigns[i]["item"] == "Other" then assigns[i]["item"] = "pizza" end if assigns[i]["item"] == "Test2" then assigns[i]["item"] = "burger" end u got me ? Link to comment
Moderators IIYAMA Posted July 10, 2020 Moderators Share Posted July 10, 2020 2 hours ago, Gripex said: i mean there are Much Items to make it export img with other name and if i restarted scripts then names what i typed it it will remove! u got me ? yes I understand that if you do not save your data inside of a database, it will be gone after restarting the resource. 2 hours ago, Gripex said: it's exports item names from ServerSide but i want it export other name of image I lost you here. You want to replace names? Which you already have saved in the database? And then return that result back to clientside and update the list there as well? Link to comment
Gripex Posted July 11, 2020 Author Share Posted July 11, 2020 7 hours ago, IIYAMA said: yes I understand that if you do not save your data inside of a database, it will be gone after restarting the resource. I lost you here. You want to replace names? Which you already have saved in the database? And then return that result back to clientside and update the list there as well? Yes, Server Side had items name and saved on DB its return to client side but i want when it return of get item name of server side just make photo of it as i want, u understand me? I mean if return Test so if get item called Test it return to image called "Name" But i want data to save it Link to comment
Moderators IIYAMA Posted July 11, 2020 Moderators Share Posted July 11, 2020 8 hours ago, Gripex said: But i want data to save it Did you already add a database identifier to all your items? Because without there is a change that will be desync. About making a photo. Serverside: You can take the screenshot with: https://wiki.multitheftauto.com/wiki/TakePlayerScreenShot and receive it on: https://wiki.multitheftauto.com/wiki/OnPlayerScreenShot Or clientside: You can capture the screen with: https://wiki.multitheftauto.com/wiki/DxCreateScreenSource Get the pixels of it: https://wiki.multitheftauto.com/wiki/DxGetTexturePixels Convert the pixels to a (compressed) format: https://wiki.multitheftauto.com/wiki/DxConvertPixels Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now