Rakashy Posted March 31, 2021 Share Posted March 31, 2021 Estou com um problema bem chato, que é o seguinte, fiz um painel em Dx para concessionaria que contem 3 abas de veiculos, estou utilizando isCursorOnElement para determinar a posição do mouse para alternar as abas e para comprar os veículos ao clicar em seus respectivos botões, porém se eu deixar um botao de comprar um carro na primeira ABA, quando alterno para a segunda aba, ao clicar na posição aonde se encontra o botão da da primeira ABA, ele executa o evento, ou seja, compra o carro, mesmo não estando mais na aba dos carros.. Existe alguma maneira de bloquear isso ? ja tentei de tudo e não tive sucesso Link to comment
Joaovit13 Posted March 31, 2021 Share Posted March 31, 2021 (edited) Olá, tudo bem? Bom eu já tive esse problema e consegui resolver da seguinte forma: function isMouseInPosition(x, y, width, height) if(not isCursorShowing()) then return false end local sx, sy = guiGetScreenSize() local cx, cy = getCursorPosition() local cx, cy = (cx * sx), (cy * sy) return((cx >= x and cx <= x + width) and (cy >= y and cy <= y + height)) end E em vez de usar o isCursorElement use o isMouseInPostion(). Ele funciona da seguinte forma dentro do painel dx aonde você deseja clicar use ele dessa forma como exemplo: if isMouseInPosition(screenW * 0.3133, screenH * 0.5768, screenW * 0.0836, screenH * 0.0794) then As posições dele deve ser a da posição do local aonde deseja clicar. Obs: A função isMouseInPosition deve estar no final do seu código do client. Edited March 31, 2021 by Joaovit13 Link to comment
Rakashy Posted April 1, 2021 Author Share Posted April 1, 2021 Meu código é mais ou menos assim, a questão , é, por exemplo, minha Dx possui 3 Abas, uma de carros, uma de motos, e uma de vips, só que quando alterno para as outras abas, se eu clico em algum lugar que tenha alguma função de clique na aba 1, ele executa a ação, entende ?ele pega o "isCursorElement" da Aba 1 mesmo estando na aba 2 ou 3 Link to comment
Boechat Posted April 1, 2021 Share Posted April 1, 2021 9 hours ago, Rakashy said: Meu código é mais ou menos assim, a questão , é, por exemplo, minha Dx possui 3 Abas, uma de carros, uma de motos, e uma de vips, só que quando alterno para as outras abas, se eu clico em algum lugar que tenha alguma função de clique na aba 1, ele executa a ação, entende ?ele pega o "isCursorElement" da Aba 1 mesmo estando na aba 2 ou 3 Crie uma variável para saber em qual aba você está e coloque uma condição quando o player clicar para comprar para saber em qual aba ele está. Vamos supor que tem 2 abas e é na aba 1 que deve comprar o veículo: local aba if isCursorOnElement (POSIÇÃO DA ABA 1 ) then aba = 'Aba1' elseif isCursorOnElement (POSIÇÃO DA ABA 2 ) then aba = 'Aba2' end if isCursorOnElement (POSIÇÃO DO BOTÃO DE COMPRAR ) and aba == 'Aba1' then EXECUTA A FUNÇÃO DE COMPRAR end Deu pra entender? Link to comment
Rakashy Posted April 1, 2021 Author Share Posted April 1, 2021 1 hour ago, Boechat said: Crie uma variável para saber em qual aba você está e coloque uma condição quando o player clicar para comprar para saber em qual aba ele está. Vamos supor que tem 2 abas e é na aba 1 que deve comprar o veículo: local aba if isCursorOnElement (POSIÇÃO DA ABA 1 ) then aba = 'Aba1' elseif isCursorOnElement (POSIÇÃO DA ABA 2 ) then aba = 'Aba2' end if isCursorOnElement (POSIÇÃO DO BOTÃO DE COMPRAR ) and aba == 'Aba1' then EXECUTA A FUNÇÃO DE COMPRAR end Deu pra entender? Opa, deu sim amigo!, eu estava utilizando ElementData para definir as abas, e acabei me enrolando, dps de observar de novo consegui resolver, mais acabei optando por organizar as abas em Dx's diferentes, entende ? 1 Função para cada aba, assim tenho melhor controle, e já está funcionando 100%, mais obrigado, sua resposta também funciona muito bem! 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