+Sommer Posted January 31, 2019 Share Posted January 31, 2019 Olá novamente , provavelmente estou quebrando uma regra do fórum (que no caso seria criar + de 1 tópico sobre o mesmo assunto, mas o tópico anterior meu foi trancado) e peço desculpas, mas... Bom tenho algumas duvidas 1 - como posso fazer um circulo marcar a vida como a foto deste link : foto.png 2 - como posso fazer com que o player ao sentir fome ou sede perca vida aos poucos, e o mesmo circulo citado na duvida acima marque o quanto o player sente de fome e sede. 3 - ultima duvida é como salvar isso quando o player sair e um sistema de compra de lanches e bebidas para eles poderem compra ( OBS: Já tentei utilizar, alguns setElementData, getElementData, setElementHealth junto com um setTimer mas não ficou de uma forma legal ficou meio bugado, e o circulo desproporcional ) Agradeço a todos desde já Link to comment
DNL291 Posted January 31, 2019 Share Posted January 31, 2019 1 - Com dxDrawImageSection - este tópico vai te ajudar com os cálculos necessários: https://forum.multitheftauto.com/topic/95911-bug-what-wrong-in-this-circle-hud 2 - Você pode definir um tempo com setTimer para ativar o inicio da perca de fome/sede sempre que o jogador comer ou beber algo. E fazer uma verificação, resetando quando necessário. Para a subtração do valores, você pode usar também setTimer e definir um tempo para abaixar esses valores. Para abaixar a vida quando sentir fome: Fazendo os passos que eu disse acima, você poderá verificar a quantidade de sede/fome continuamente e ir setando a vida do jogador com get/setElementHealth. Obs: minha primeira resposta também vale para a barra de fome e sede. 3 - Salvamento: Eventos onPlayerQuit; onPlayerLogout e onResourceStop para o salvamento dos dados. Salve com: getElementData (que será definido no carregamento) e setAccountData. Carregamento: Eventos onPlayerLogin e onResourceStart. Obtenha o salvamento na conta (com getAccountData) e defina no player com setElementData Sistema de compra: Você pode procurar algum resource existente ou criar do zero. Todos esforço em fazer é válido, então se você já tentou fazer mostre aqui o código. 1 Link to comment
+Sommer Posted January 31, 2019 Author Share Posted January 31, 2019 18 minutes ago, DNL291 said: 1 - Com dxDrawImageSection - este tópico vai te ajudar com os cálculos necessários: https://forum.multitheftauto.com/topic/95911-bug-what-wrong-in-this-circle-hud 2 - Você pode definir um tempo com setTimer para ativar o inicio da perca de fome/sede sempre que o jogador comer ou beber algo. E fazer uma verificação, resetando quando necessário. Para a subtração do valores, você pode usar também setTimer e definir um tempo para abaixar esses valores. Para abaixar a vida quando sentir fome: Fazendo os passos que eu disse acima, você poderá verificar a quantidade de sede/fome continuamente e ir setando a vida do jogador com get/setElementHealth. Obs: minha primeira resposta também vale para a barra de fome e sede. 3 - Salvamento: Eventos onPlayerQuit; onPlayerLogout e onResourceStop para o salvamento dos dados. Salve com: getElementData (que será definido no carregamento) e setAccountData. Carregamento: Eventos onPlayerLogin e onResourceStart. Obtenha o salvamento na conta (com getAccountData) e defina no player com setElementData Sistema de compra: Você pode procurar algum resource existente ou criar do zero. Todos esforço em fazer é válido, então se você já tentou fazer mostre aqui o código. Então, eu até tenho uma parte do código porem eu exclui a parte da barra de vida/fome/colete/sede etc... pois oque eu estava pensando era usar uma imagem(circulo) e fazer um calculo para que inverte-se o eixo y que seria invés de ir de baixo para cima ir de cima para baixo, porem não ficava, muito legal pois distorcia toda a imagem... mas mesmo assim vou colocar a parte que eu refiz do script local sWidth, sHeight = guiGetScreenSize() local x, y = (sWidth/1366), (sHeight/768) local font = dxCreateFont("font.ttf", 15) setElementData(localPlayer, "hunger", 100) setElementData(localPlayer, "thirst", 100) setElementData(localPlayer, "sleep", 100) function dxInterFace() local health = getElementHealth(localPlayer) local armor = getPedArmor(localPlayer) local hunger = getElementData(localPlayer, "hunger") local thirst = getElementData(localPlayer, "thirst") local sleep = getElementData(localPlayer, "sleep") end addEventHandler("onClientRender", root, dxInterFace) setTimer(function() if setElementData(localPlayer, "hunger", getElementData(localPlayer, "hunger")-1) then setElementData(localPlayer, "hunger", 100) setElementHealth(localPlayer, 0) end, 50, 0) Como disse exclui a parte do dxDrawImage, pois não estava me agradando distorcendo a imagem. Link to comment
Other Languages Moderators Lord Henry Posted February 1, 2019 Other Languages Moderators Share Posted February 1, 2019 Regra número 2: Nunca delete seu código, deixe como comentário. Só delete se tiver certeza de que nunca vai usar nada daquilo ou então já sabe como fazer algo melhor. A regra 1 era usar dxDrawImageSection mesmo ahuahauahauh. 1 Link to comment
+Sommer Posted February 1, 2019 Author Share Posted February 1, 2019 (edited) 5 minutes ago, Lord Henry said: Regra número 2: Nunca delete seu código, deixe como comentário. Só delete se tiver certeza de que nunca vai usar nada daquilo ou então já sabe como fazer algo melhor. A regra 1 era usar dxDrawImageSection mesmo ahuahauahauh. SAHUSHUAHSUHA, deletei porque eu decoro todos os códigos minha cabeça parece código binário, as vezes esquecço mas como é coisa momentânea... logo agradeço vocês ae só vou testar o código to dando uma estuda para decorar direitinho como funciona o código. Edited February 1, 2019 by +DeepSea Link to comment
+Sommer Posted February 2, 2019 Author Share Posted February 2, 2019 (edited) local sWidth, sHeight = guiGetScreenSize() local x, y = (sWidth/1366), (sHeight/768) local font = dxCreateFont("font/font.ttf", 15) function dxRenderHud() dxDrawImageSection(400, 200, 64, 64, 0, 0, 64, 64, "images/icone_colete") dxDrawImage(420, 220, 64, 64, 0, 0, 64, 64, "images/icone_colete") end addEventHandler("onClientRender", root, dxRenderHud) --[[ function dxHud() local vida = getElementHealth(localPlayer) local colete = getPedArmor(localPlayer) dxDrawImage(x*575, y*650, x*265, y*20, "images/barra_colete.png", 0, 0, 0, tocolor(0, 0, 0, 150), false) dxDrawImage(x*575, y*650, x*265/100*colete, y*20, "images/barra_colete.png", 0, 0, 0, tocolor(65, 144, 239, 255), false) dxDrawImage(x*545, y*650, x*20, y*20, "images/icone_colete.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawText(math.floor(colete).." | 100", x*1220, y*1292, x*25, y*25, tocolor(255, 255, 255, 255), 0.7, font, "center", "center", false, false, false, true, false) dxDrawImage(x*575, y*680, x*265, y*20, "images/barra_vida.png", 0, 0, 0, tocolor(0, 0, 0, 150), false) dxDrawImage(x*575, y*680, x*265/100*vida, y*20, "images/barra_vida.png", 0, 0, 0, tocolor(95, 202, 64, 255), false) dxDrawImage(x*545, y*680, x*20, y*20, "images/icone_vida.png", 0, 0, 0, tocolor(255, 255, 255, 255), false) dxDrawText(math.floor(vida).." | 100", x*1220, y*1352, x*25, y*25, tocolor(255, 255, 255, 255), 0.7, font, "center", "center", false, false, false, true, false) end addEventHandler("onClientRender", root, dxHud) --]] local components = { "weapon", "ammo", "health", "clock", "money", "breath", "armour", "wanted" } addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()), function () for _, component in ipairs( components ) do setPlayerHudComponentVisible( component, false ) end end) Manos podem me explicar como funciona o dxDrawImageSection? até agora não entendi como funciona segui o exemplo do link para aquele tópico e não aconteceu nada, já usei o debugscript 3 também e não acusa nada. e aprendi também que não se exclui código mesmo estando errado =D Atualização : ele apareceu este erro, WARNING:Hud/client.lua:6: Error loading image @ 'dxDrawImageSection' [Expected material at argument 5 got number '0'] e este outro WARNING:Hud/client.lua:7: Bad argument @ 'dxDrawImage' [Expected material at argument 5 got number '0'] (OBS: Esse é só um rascunho que fiz para facilitar e também não quero expor o código pois e exclusivo, consegui fazer o timer da fome e sede, o save também esta funcionando, muito obrigado por ter me ajudado nesta parte) Edited February 2, 2019 by +DeepSea Link to comment
DNL291 Posted February 3, 2019 Share Posted February 3, 2019 Faltou adicionar a extensão da imagem nas linhas 6 e 7. Em dxDrawImage Você colocou parâmetros a mais. Tenta fazer o código do Hud com o fundo e as imagens primeiro, depois você faz a aplicação da dxDrawImageSection. Link to comment
Other Languages Moderators Lord Henry Posted February 3, 2019 Other Languages Moderators Share Posted February 3, 2019 bool dxDrawImage (float posX, float posY, float width, float height, mixed image) bool dxDrawImage (420, 220, 64, 64, 0 ERRO, 0 ERRO, 64 ERRO, 64 ERRO, "images/icone_colete" ERRO) Marquei os parâmetros errados. Link to comment
+Sommer Posted February 3, 2019 Author Share Posted February 3, 2019 (edited) Ata eu que mosquei coloquei os parâmetros do dxDrawImageSection também no dxDrawImage Edited February 3, 2019 by +Sommer Link to comment
+Sommer Posted February 5, 2019 Author Share Posted February 5, 2019 Ae galera, muito obrigado pela ajuda de vcs, eu consegui terminar e esta funcionando 100% muito obrigado mesmo vcs são foda dms 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