Rakashy Posted April 12, 2021 Share Posted April 12, 2021 Fiz um sistema aonde o jogador começa a trabalhar no marker, e ele tem uma mensagem em DxText dizendo quem está trabalhando, no caso "Ninguém" e quando alguém começa a trabalhar no marker, ele muda a msg de "Ninguém" para o nome do jogador, a questão é que o Texto só muda pro jogador que está trabalhando, pros outros jogadores continua "Ninguém" ao invés de aparecer o nome do player. Como faço pra alterar a msg pra todos ao invés de apenas 1 ? Parte do texto lado do cliente function Texto() Nome1 = getElementData(localPlayer, "TrabalhandoMarker1") or "#FF0000Ninguém" local x,y,z = getElementPosition(localPlayer) local mx, my, mz = getElementPosition(markerplantar1) local distance = getDistanceBetweenPoints3D(mx, my, mz,x,y,z) if distance < 20 then local sx,sy = getScreenFromWorldPosition(mx, my, mz) if sx and sy then local coords = {sx,sy} if coords[1] and coords[2] then dxDrawText("Jogador(a) Trabalhando ➤#00FFFF "..Nome1, coords[1], coords[2]-175, coords[1], coords[2]-175, tocolor(255,255,255,255), 1, "sans", "center", "center", false, false, false, true) else getElementData(localPlayer, "segurandoDroga") == "Sim" then dxDrawText("Entregue seus recursos antes de colher de novo!", coords[1], coords[2], coords[1], coords[2], tocolor(255,0,0,255), 2, "sans", "center", "center", false, false, false, false) end end end end addEventHandler("onClientRender", getRootElement(), Texto) Parte do server que muda o ElementData para o nome do jogador if isElementWithinMarker(source, markerplantar1) then setElementData(source, "TrabalhandoMarker1", getPlayerName(source)) Como é o marker : Quando começo a trabalhar ele muda de "Ninguém" pro meu nick : Só que só muda pra quem está trabalhando, pros outros jogadores continua "Ninguém" : Link to comment
Boechat Posted April 13, 2021 Share Posted April 13, 2021 (edited) Do lado do servidor você deve chamar um evento para todos os clientes assim que alguém começar a trabalhar, por exemplo: não testei server-side Quote local trabalhadorAtual addEvent('toggleTrabalhador', true) function toggleTrabalhador (player, bool) --Quando alguém do lado do client entrar em trabalho, chama essa função do servidor triggerClientEvent('toggleClientTrabalhador', player, player, bool) if bool then trabalhadorAtual = player else trabalhadorAtual = nil end end addEventHandler('toggleTrabalhador', root, toggleTrabalhador) addEventHandler('onPlayerLogin', root, function() --Se alguém logar também carregará o jogador que está trabalhando pra ela if trabalhadorAtual then triggerClientEvent(source, 'toggleClientTrabalhador', source, trabalhadorAtual, true) end end) client-side Quote local Nome1 = "#FF0000Ninguém" addEvent('toggleClientTrabalhador', true) function toggleClientTrabalhador(player, bool) if bool then Nome1 = getPlayerName(player) else Nome1 = "#FF0000Ninguém" end end addEventHandler('toggleClientTrabalhador', root, toggleClientTrabalhador) function trabalhar (bool) --Chamar essa função quando o player entrar/sair do serviço (bool = true para entrou e false para saiu do serviço) triggerServerEvent ('toggleTrabalhador', localPlayer, localPlayer, bool) end ------------------------------------------------------------------- function Texto() local x,y,z = getElementPosition(localPlayer) local mx, my, mz = getElementPosition(markerplantar1) local distance = getDistanceBetweenPoints3D(mx, my, mz,x,y,z) if distance < 20 then local sx,sy = getScreenFromWorldPosition(mx, my, mz) if sx and sy then local coords = {sx,sy} if coords[1] and coords[2] then dxDrawText("Jogador(a) Trabalhando ➤#00FFFF "..Nome1, coords[1], coords[2]-175, coords[1], coords[2]-175, tocolor(255,255,255,255), 1, "sans", "center", "center", false, false, false, true) else getElementData(localPlayer, "segurandoDroga") == "Sim" then dxDrawText("Entregue seus recursos antes de colher de novo!", coords[1], coords[2], coords[1], coords[2], tocolor(255,0,0,255), 2, "sans", "center", "center", false, false, false, false) end end end end addEventHandler("onClientRender", getRootElement(), Texto) Edited April 13, 2021 by Boechat 1 Link to comment
Rakashy Posted April 13, 2021 Author Share Posted April 13, 2021 Então, utilizei o código e implementei ao script, a mensagem mostra, porém não está alterando para o nome do jogador, agora só fica "Ninguém"... Link to comment
Rakashy Posted April 13, 2021 Author Share Posted April 13, 2021 5 hours ago, Boechat said: Do lado do servidor você deve chamar um evento para todos os clientes assim que alguém começar a trabalhar, por exemplo: não testei server-side client-side Consegui resolver mano, na real está perfeito. Tive apenas que alterar a parte do server-side aonde está "player" troquei pra source, e consegui chamar a função de boa no restante do script, agora já aparece pra todos, muito obrigado, dei um like ae já. Adm já pode fechar o tópico. Link to comment
Boechat Posted April 14, 2021 Share Posted April 14, 2021 18 hours ago, Rakashy said: Consegui resolver mano, na real está perfeito. Tive apenas que alterar a parte do server-side aonde está "player" troquei pra source, e consegui chamar a função de boa no restante do script, agora já aparece pra todos, muito obrigado, dei um like ae já. Adm já pode fechar o tópico. Então tá show kkkk mas só uma dica: tente evitar usar get e setElementData, principalmente dentro do evento onClientRender que chama a função milhares de vezes por minuto, são funções MUITO úteis mas já vi pessoas aqui no fórum dizendo que exige bastante do server. 1 Link to comment
Rakashy Posted April 14, 2021 Author Share Posted April 14, 2021 6 hours ago, Boechat said: Então tá show kkkk mas só uma dica: tente evitar usar get e setElementData, principalmente dentro do evento onClientRender que chama a função milhares de vezes por minuto, são funções MUITO úteis mas já vi pessoas aqui no fórum dizendo que exige bastante do server. Sim, eu retirei essa parte do getElement, valeu ae mano, ajudou bastante 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