HitmanLM Posted November 16, 2021 Share Posted November 16, 2021 (edited) fiz um script para que dependendo do grupo uma imagem aparecesse sem a nescessidade de fazer nada, somente o player estando no grupo ja aparecer essa imagem porem não esta aparecendo a imagem if isObjectInACLGroup ("user."..equipe, aclGetGroup("1")) then dxDrawImage(x*587, y*360, x*45, y*97/100, "img/gfx/1.png", 0, 0, 0, tocolor(255, 255, 255, des1), false) elseif isObjectInACLGroup ("user."..equipe, aclGetGroup("2")) then dxDrawImage(x*587, y*360, x*45, y*97/100, "img/gfx/2.png", 0, 0, 0, tocolor(255, 255, 255, des1), false) elseif isObjectInACLGroup ("user."..equipe, aclGetGroup("3")) then dxDrawImage(x*587, y*360, x*45, y*97/100, "img/gfx/3.png", 0, 0, 0, tocolor(255, 255, 255, des1), false) end Edited November 16, 2021 by Lord Henry Código convertido de HTML para LUA. Link to comment
Other Languages Moderators Lord Henry Posted November 16, 2021 Other Languages Moderators Share Posted November 16, 2021 Isso acontece pois a função isObjectInACLGroup é server-side, mas a função dxDrawImage é client-side. Link to comment
HitmanLM Posted November 16, 2021 Author Share Posted November 16, 2021 6 minutes ago, Lord Henry said: Isso acontece pois a função isObjectInACLGroup é server-side, mas a função dxDrawImage é client-side. entendi irmão, tem alguma função que substitua o isObjectinACLGroup no client, ou tenho que fazer um script serve para vincular ao Client? Link to comment
Other Languages Moderators Lord Henry Posted November 16, 2021 Other Languages Moderators Share Posted November 16, 2021 Terá q fazer um script server-side e vincular ao client usando triggerClientEvent. Link to comment
HitmanLM Posted November 16, 2021 Author Share Posted November 16, 2021 ótimo, ultima pergunta, aparentemente estou tentando juntar 2 coisas que não tem como eu usar no mesmo script exemplo: eu usando o server eu consigo acesso a essa função: isObjectInACLGroup usando o cliente consigo acesso a essa: dxDrawImage o problema e o seguinte como pode ver as 2 estão interligadas no script como eu faço para usar isObjectInACLGroup no server porem utilizando as imagens que estaram no cliente pela função dxDrawImage ?? espero que tenha entendido kk sei que ta um pouco embolado desculpe. Link to comment
HitmanLM Posted November 16, 2021 Author Share Posted November 16, 2021 darei exemplo pratico para explicar melhor: client: local x, y, z = getElementPosition(localPlayer) local marker = createMarker ( x, y, z ) function trigger ( hitPlayer ) if source == marker then triggerServerEvent ( "givePlayerWeapon", hitPlayer ) dxDrawImage(x*290, y*475, x*150, y*110, "img/gfx/1.png", 0, 0, 0, tocolor(255, 255, 255), true) end end addEventHandler ("onClientMarkerHit", root, trigger) server: function weapon () giveWeapon (source, 31, 30, true) end addEvent ("givePlayerWeapon", true) addEventHandler ("givePlayerWeapon", root, weapon) e só um exemplo que fiz para testar porem ele não chama a imagem (não tera nada a ver com a arma e sim com a imagem fiz via arma para testar o recebimento) Link to comment
Other Languages Moderators Lord Henry Posted November 16, 2021 Other Languages Moderators Share Posted November 16, 2021 Olá, quando for colar scripts no fórum, utilize o botão <> do fórum e selecione a linguagem LUA na janela q aparecer. Seguindo com sua dúvida. Você não passa a imagem por parâmetro e sim os valores. Você pode passar uma tabela do cliente para o servidor, especificando quais imagens estão disponíveis. Ex: -- Client-side local imagens = { [1] = true, [2] = false, } triggerServerEvent("givePlayerWeapon", hitPlayer, imagens) -- Server-side addEvent("givePlayerWeapon", true) addEventHandler("givePlayerWeapon", root, function (theImages) if (theImages[1]) then -- Imagem 1 existe. end end) 1 Link to comment
HitmanLM Posted November 19, 2021 Author Share Posted November 19, 2021 (edited) tentei mais esta difícil não sei onde estou errado consegue auxiliar? entro no grupo e não acontece nada -- Client-side table{ [1] = dxDrawImage(x*290, y*475, x*150, y*110, "img/gfx/grupo1.png", 0, 0, 0, tocolor(255, 255, 255, des1), false), [2] = dxDrawImage(x*290, y*475, x*150, y*110, "img/gfx/grupo2.png", 0, 0, 0, tocolor(255, 255, 255, des1), false), [3] = dxDrawImage(x*290, y*475, x*150, y*110, "img/gfx/grupo3.png", 0, 0, 0, tocolor(255, 255, 255, des1), false), [4] = dxDrawImage(x*290, y*475, x*150, y*110, "img/gfx/semgrupo.png", 0, 0, 0, tocolor(255, 255, 255, des1), false), } local imagens = { [1] = true, [2] = false, } triggerServerEvent("chamarimagem", hitPlayer, imagens) -- Server-side addEvent("chamarimagem", true) addEventHandler("chamarimagem", root, function (theImages) function chamarimagem(thePlayer) if isObjectInACLGroup('user.'..ACL, aclGetGroup("grupo1")) then chamarimagem [1] elseif isObjectInACLGroup('user.'..ACL, aclGetGroup("grupo2")) then chamarimagem [2] elseif isObjectInACLGroup('user.'..ACL, aclGetGroup("grupo3")) then chamarimagem [3] else isObjectInACLGroup('user.'..ACL, aclGetGroup("semgrupo")) then chamarimagem [4] end end end end end Edited November 19, 2021 by HitmanLM Link to comment
HitmanLM Posted November 26, 2021 Author Share Posted November 26, 2021 não consigo fazer a imagem aparecer, estou perdido no código, consegue ajudar? @Lord Henry --client local img_names = { [1] = "img/gfx/BOPE.png", [2] = "img/gfx/EB.png", [3] = "img/gfx/PCRJ.png", [4] = "img/gfx/semequipe.png", } local function draw_img(x, y, des1, n) dxDrawImage(x*290, y*475, x*150, y*110, img_names[n], 0, 0, 0, tocolor(255, 255, 255, des1), false) end local img_idx = false; addEventHandler("onClientRender", root, function() if (img_idx) then dxDrawText("test: " .. img_idx, 100, 300); end end ); local imagens = { [1] = true, [2] = false, } triggerServerEvent("chamarimagem", localPlayer, imagens) addEvent("onClientSelectPlayerGroup", true); addEventHandler("onClientSelectPlayerGroup", root, function(idx) if not (source == localPlayer) then return; end; outputChatBox("selected group: " .. idx); img_idx = idx; end ); --server: addEvent("chamarimagem", true) addEventHandler("chamarimagem", root, function (theImages) local theGroup if isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), aclGetGroup("BOPE")) then theGroup = 1 elseif isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), aclGetGroup("EB")) then theGroup = 2 elseif isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), aclGetGroup("PCRJ")) then theGroup = 3 elseif isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), aclGetGroup("semgrupo")) then theGroup = 4 end triggerClientEvent(client, "onClientSelectPlayerGroup", client, theGroup); end ) 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