Tekken Posted September 4, 2020 Share Posted September 4, 2020 Salut, de curand m-am apucat sa refac un inventory pentru DayZ « dinala jmeker » cu imagini, si cum eu sut umpic cam nul in dx l-am facut in gui, toate bune si frumoase totul merge ca planuit mai putin scrollul, eu am incercat ceva de genu’ cu bindkey mouse_well_up si down si o iterare in getElementsByType("gui-staticimage ") si gen sa le adaug sau sa le scat din height, merge, dar de fiecare data cand dau scroll in sus sau in jos pierd sau eventual castig in dimensiuni cea ce imi face imaginile sa se suprapuna cand revin la pozitia initiala , si nu inteleg de ce, poate cineva mai experimentat in dx sau gui ma poate ajuta, o sa pun un exemplu mai tarziu ca acum is pe telefon. O intrebate serioasa pe ro sa vedem daca gasim si solutie. Sunt dispus sa raspund la intrebari de genul, daca bineinteles se si formuleaza sa avem umpic de activitate pe forum, zic. Link to comment
SheriffG Posted September 4, 2020 Share Posted September 4, 2020 Hai ca de mult n-am mai dat prin lua si si-asa nu-s eu expert in scripting, dar am zis sa ma ambitionez putin. Problema e urmatoarea, nu inteleg daca folosesti un GUI custom sau un ScrollPanel din Gui. Daca folosesti scroll panel ma gandesc ca daca imaginile statice le pui ca child al ScrollPanel-ului, se misca automat, iar daca vrei sa faci un bind pentru scroll pui la bindKey cv de genul: guiScrollPaneSetVerticalScroll(guiScrollPaneGetVerticalScroll +/- o_valoare_numerica) Nu inteleg exact cum vrei sa arate inventarul tau si ce vrei sa folosesti, dx sau GUI. Daca ne dai un exemplu si de preferat o poza chiar o sa incerc sa-mi sparg capul sa vedem daca reusim ceva Link to comment
Tekken Posted September 5, 2020 Author Share Posted September 5, 2020 Oups nu m-am exprimat bine, folosesc o imagine ca fundal deci fara scrollpanel, nu sunt sigur dar parca scrollpanel nu este transparent nu? Ideea e ca nu vreau sa se vada gen sa fie ca in dx. Link to comment
Tekken Posted September 5, 2020 Author Share Posted September 5, 2020 Un mic exemplu umpic simplificat. local sX, sY = guiGetScreenSize(); local bgW, bgH = 260, 470; local bgX, bgY = (sX-bgW)/2, (sY-bgH)/2; local lW = (bgW-15)/2; local sW = (bgW-25)/4; local row = 0; function drawInventory() if isInvOpen then inventar = guiCreateStaticImage(bgX+(bgW/2), bgY-15, bgW, bgH, "images/bg.png", false); -- Fundalul local loot = isPlayerInLoot(); if loot then guix, guiy = bgX+(bgW/1.25), bgY-15; else guix, guiy = bgX, bgY-15; end guiSetPosition(inventar, guix, guiy, false); --Pozitia fundalului local offsetX, offsetY = 5, 5; width = 0; row = 1; for i = 1, 7 do if i < 3 then width = lW; else width = sW; end for _,v in ipairs(inventoryItems[i]) do local q = getElementData(localPlayer, v[1]) or 0; if (q > 0) then if bgW-offsetX < width then offsetX = 5; offsetY = offsetY+(sW+5); row = row + 1; end local bgImage = guiCreateStaticImage(offsetX, offsetY, width, sW, "images/scoreboard.png", false, inventar); --Imaginea fundalului itemului guiSetAlpha(bgImage, 0.1); local theItem = guiCreateStaticImage(offsetX, offsetY, width, sW, "images/items/"..v[1]..".png", false, inventar); --Imaginea itemului local theLabel = guiCreateLabel(0, 0, 1, 1, "1", true, theItem); guiSetFont(theLabel, "default-bold-small"); alphaTable[theLabel] = bgImage; imgDataTable[theLabel] = {npath, width, 1, v[1]}; offsetX = offsetX + width + 5; end end end end end -- tentativa de scroll bindKey("mouse_wheel_up", "down", function() if isInvOpen then if getMousePosition() == "inventar" then if row <= 7 then return; end if rowsMoved == 0 then return; end local toadd = sW+5; rowsMoved = rowsMoved - 1; for _,v in ipairs(getElementsByType("gui-staticimage")) do if getElementParent(v) == inventar then local x, y = guiGetPosition(v, false); guiSetPosition(v, x, y+toadd, false); end end end end end); bindKey("mouse_wheel_down", "down", function() if isInvOpen then if getMousePosition() == "inventar" then if rowsMoved + 7 >= row then return; end if rowsMoved == row then return; end local toadd = sW+5; rowsMoved = rowsMoved + 1; for _,v in ipairs(getElementsByType("gui-staticimage")) do if getElementParent(v) == inventar then local x, y = guiGetPosition(v, false); guiSetPosition(v, x, y-toadd, false); end end end end end); Arata asa: https://imgur.com/a/FegFWat Dar dupa cateva scrolluri arata asa: https://imgur.com/WqbtGxv N-am incercat inca scrollpane. Link to comment
Tekken Posted September 5, 2020 Author Share Posted September 5, 2020 Merci tuturor pentru participare am reusit cu scrollpane :) 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