+MarceloM. Posted May 18, 2021 Share Posted May 18, 2021 (edited) Boa tarde pessoal, sou novo no ramo de script e estou com um pequeno problema. Quando o jogador passa pelo marker mesmo não estando com a data "carga" ele recebe o dinheiro e o veiculo é excluido, o que estou fazendo de errado? local markerPegarTrab = createMarker (-2422.6025390625, -607.6884765625, 131.5625, "cylinder", 1.5, 0, 255, 255) -- MARKER ONDE O JOGADOR PODERÁ PEGAR O TRABALHO local blipPegarTrab = createBlipAttachedTo(markerPegarTrab, 42) -- BLIP ONDE O JOGADOR PODERÁ PEGAR O TRABALHO, SERÁ MOSTRADO NO GPS/MAPA local markerFinal = createMarker(-2433.3100585938, -614.18701171875, 132.55688476562, "checkpoint", 3.0, 0, 255, 255) -- CRIA O MARKER ONDE SERÁ ENTREGUE O CAMINHÃO local blipFinal = createBlipAttachedTo(markerFinal, 0) -- CRIA O BLIP ONDE SERÁ ENTREGUE O CAMINHÃO setElementVisibleTo(markerFinal, getRootElement(), false) setElementVisibleTo(blipFinal, getRootElement(), false) -- FUNÇÃO ONDE EXIBE UMA MENSAGEM QUANDO O JOGADOR ENTRAR NO MARKER PARA PEGAR O TRABALHO -- function msgTrab(thePlayer) if isElementWithinMarker(thePlayer, markerPegarTrab) == true then -- CHECA SE O JOGADOR ESTÁ NO MARKER outputChatBox(" ", thePlayer) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", thePlayer) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", thePlayer) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", thePlayer) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", thePlayer) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", thePlayer) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", thePlayer) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", thePlayer) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox("#00FFFF==================", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00FFFF CAMINHONEIRO", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00FFFF==================", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00CED1Digite /caminhoneiro para começar a trabalhar.", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT QUANDO O JOGADOR ESTIVER EM CIMA DO MARKER end end addEventHandler("onMarkerHit", markerPegarTrab, msgTrab) -- "ONMARKERHIT" SERVE PARA EXECUTAR A FUNÇÃO QUANDO O PLAYER ENCOSTAR NO MARKER vehicle = {} -- VARIÁVEL VEÍCULO trailer = {} -- VARIÁVEL CARGA -- FUNÇÃO QUE DA PARA O JOGADOR O VEICULO QUE SERÁ USADO NO TRABALHO -- function pegarTrab(thePlayer) if getPedOccupiedVehicle(thePlayer) == false then -- CHECA SE O JOGADOR ESTÁ EM UM VEICULO if isElementWithinMarker(thePlayer, markerPegarTrab) == true then -- CHECA SE O JOGADOR ESTÁ NO MARKER setElementData(thePlayer, "Caminhoneiro", true) -- SETA UMA "ETIQUETA" DE "CAMINHONEIRO" NO JOGADOR, QUE SERÁ USADO PARA EXECUTAR FUNÇÕES APENAS SE O JOGADOR ESTIVER COM ESSA ETIQUETA vehicle[thePlayer] = createVehicle(514, -2433.3100585938, -614.18701171875, 132.55688476562, 0, 0, 100) -- CRIA O VEICULO QUE SERÁ USADO NO TRABALHO warpPedIntoVehicle(thePlayer, vehicle[thePlayer]) -- TELEPORTA O JOGADOR PARA DENTRO DO VEICULO trailer[thePlayer] = createVehicle(584, -2498.4177246094, -603.14990234375, 133.5625, 0, 0, 180) -- CRIA UMA CARGA QUE SERÁ USADO NO TRABALHO blipCarga = createBlipAttachedTo(trailer[thePlayer], 0) -- CRIA UM "BLIP" NO GPS/MAPA ONDE A CARGA ESTÁ end end end addCommandHandler("caminhoneiro", pegarTrab) -- EXECUTA A FUNÇÃO QUANDO O PLAYER DIGITA A FUNÇÃO QUE ESTÁ ENTRE ASPAS -- FUNÇÃO QUE CRIA O SEGUNDO MARKER ONDE O PLAYER IRÁ ENTREGAR O CAMINHÃO -- function pegarCarga(theTruck, trailer) if isElement(vehicle[thePlayer]) then -- CHECA SE O JOGADOR ESTÁ COM O VEICULO DO TRABALHO setElementVisibleTo(blipCarga, getRootElement(), false) -- SETA O BLIP DA CARGA PARA 0 OU FALSE setElementData(getRootElement(), "Carga", true) -- SETA UMA "ETIQUETA" DE "CARGA" NO JOGADOR, QUE SERÁ USADO PARA EXECUTAR FUNÇÕES APENAS SE O JOGADOR ESTIVER COM ESSA ETIQUETA setElementVisibleTo(markerFinal, getRootElement(), true) -- SETA O MARKER FINAL COMO TRUE, OU SEJA, IRÁ APARECER PARA O JOGADOR setElementVisibleTo(blipFinal, getRootElement(), true) -- SETA O BLIP FINAL COMO TRUE, OU SEJA, IRÁ APARECER PARA O JOGADOR outputChatBox(" ", getRootElement()) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", getRootElement()) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", getRootElement()) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox("#00CED1A carga foi encaixada com sucesso, agora entregue a encomenda no marker.", getRootElement(), 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT QUANDO O JOGADOR ENCAIXAR A CARGA end end addEventHandler("onTrailerAttach", getRootElement(), pegarCarga) -- EXECUTA A FUNÇÃO CASO O JOGADOR ENCAIXAR A CARGA NO CAMINHÃO function finalTrab(thePlayer) if vehicle[thePlayer] and isElement(trailer[thePlayer]) then if getElementData(thePlayer, "Caminhoneiro") and getElementData(thePlayer, "Carga") == true then givePlayerMoney(thePlayer, 5000) setElementVisibleTo(markerFinal, thePlayer, false) setElementVisibleTo(blipFinal, thePlayer, false) destroyElement(vehicle[thePlayer]) destroyElement(trailer[thePlayer]) outputChatBox("#00FFFF==================", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00FFFF CAMINHONEIRO", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00FFFF==================", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00CED1Você entregou a encomenda e recebeu R$5.000,00 .", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT QUANDO O JOGADOR ENTREGAR A CARGA end else return end end addEventHandler("onMarkerHit", markerFinal, finalTrab) -- FUNÇÃO EXECUTADA QUANDO O PLAYER PERDER A CARGA function perdeuCarga(theTruck, trailer) setElementVisibleTo(blipFinal, getRootElement(), false) -- SETA A VISIBILIDADE DO BLIP FINAL PARA 0 OU FALSE setElementVisibleTo(markerFinal, getRootElement(), false) -- SETA A VISIBILIDADE DO MARKER FINAL PARA 0 OU FALSE setElementVisibleTo(blipCarga, getRootElement(), true) -- SETA A VISIBILIDADE DO BLIP DA CARGA PARA 1 OU TRUE setElementData(getRootElement(), "Carga", false) -- SETA A ETIQUETA "CARGA" PARA 0 OU FALSE outputChatBox(" ", getRootElement()) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", getRootElement()) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", getRootElement()) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox("#00CED1A carga foi desencaixada, recupere-a e entregue a encomenda!", getRootElement(), 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT QUANDO O JOGADOR PERDER A CARGA end addEventHandler("onTrailerDetach", getRootElement(), perdeuCarga) -- EXECUTA A FUNÇÃO QUANDO O "TRAILER" FOR DESENCAIXADO -- FUNÇÃO QUE DESTRÓI O VEICULO APOS O PLAYER SAIR DO VEICULO/SAIR DO SERVIDOR/MORRER/VEICULO EXPLODIR -- function sairVeiculo(vehicle, thePlayer) outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox("#00FFFF==================", source, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00FFFF CAMINHONEIRO", source, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00FFFF==================", source, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00CED1Você saiu do caminhão e acabou perdendo o trabalho.", source, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT QUANDO O JOGADOR MORRER/SAIR DO VEICULO/VEICULO EXPLODIR... setElementVisibleTo(blipCarga, getRootElement(), false) -- SETA A VISIBILIDADE DO BLIP DA CARGA PARA 0 OU FALSE setElementVisibleTo(markerFinal, getRootElement(), false) -- SETA A VISIBILIDADE DO MARKER DA CARGA PARA 0 OU FALSE setElementVisibleTo(blipFinal, getRootElement(), false) -- SETA A VISIBILIDADE DO BLIP FINAL PARA 0 OU FALSE if (isElement(vehicle[thePlayer])) then -- CHECA SE O VEICULO ESTÁ SPAWNADO destroyElement(vehicle[thePlayer]) -- CASO ESTIVER SPAWNADO O VEICULO SERÁ DESTRUÍDO if (isElement(trailer[thePlayer])) then -- CHECA SE A CARGA ESTÁ SPAWNADA destroyElement(trailer[thePlayer]) -- CASO ESTIVER SPAWNADA A CARGA SERÁ DESTRUIÍDA end end end addEventHandler("onPlayerQuit", getRootElement(), sairVeiculo) -- EXECUTA A FUNÇÃO QUANDO O PLAYER SAIR DO SERVIDOR addEventHandler("onPlayerVehicleExit", getRootElement(), sairVeiculo) -- EXECUTA A FUNÇÃO QUANDO O PLAYER SAIR DO VEICULO Edited May 18, 2021 by +MarceloM. Link to comment
Boechat Posted May 19, 2021 Share Posted May 19, 2021 22 hours ago, +MarceloM. said: function finalTrab(thePlayer) if vehicle[thePlayer] and isElement(trailer[thePlayer]) then if getElementData(thePlayer, "Caminhoneiro") and getElementData(thePlayer, "Carga") == true then givePlayerMoney(thePlayer, 5000) setElementVisibleTo(markerFinal, thePlayer, false) setElementVisibleTo(blipFinal, thePlayer, false) destroyElement(vehicle[thePlayer]) destroyElement(trailer[thePlayer]) outputChatBox("#00FFFF==================", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00FFFF CAMINHONEIRO", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00FFFF==================", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT outputChatBox("#00CED1Você entregou a encomenda e recebeu R$5.000,00 .", thePlayer, 255, 255, 255, true) -- APENAS O TEXTO QUE IRÁ APARECER NO CHAT QUANDO O JOGADOR ENTREGAR A CARGA end else return end end addEventHandler("onMarkerHit", markerFinal, finalTrab) Eu não olhei com muita atenção mas percebi que nessa função que eu destaquei acima talvez devesse ter um setElementData(thePlayer, "Carga", false). Do jeito que está (eu acho) que vai bugar a partir da segunda vez que fizer esse trajeto. Outra coisa também é que você está usando setElementData(getRootElement(), "Carga", false), isso está errado, não use setElementData no root (a não ser que você saiba exatamente o que está fazendo). Use no seElementData no elemento player, como eu exemplifiquei acima. Link to comment
Jonas^ Posted May 19, 2021 Share Posted May 19, 2021 (edited) Não é necessário usar isto: outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT Para limpar o chat, basta usar: clearChatBox (source) Tem muita coisa errada nesse seu código, foi você mesmo que fez? Edited May 19, 2021 by Jonas^ Link to comment
Rakashy Posted May 21, 2021 Share Posted May 21, 2021 (edited) setElementData(getRootElement(), "Carga", true) Seu problema está ai.. Como boechat disse, não se usa elementData em "root" a não ser que queira desencadear algo para TODOS do servidor. Use o elemento referente ao player. No caso do lado do servidor, se da referência ao source, más tbm não se utiliza "source" como parâmetro de função, então faça referência ao jogador e chame a variável referente a ele. No seu caso parece ser "thePlayer", apenas substitua estes "getRootElement()" pelo player local e veja se resolve. On 19/05/2021 at 13:57, Jonas^ said: Não é necessário usar isto: outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT outputChatBox(" ", source) -- DÁ UM ESPAÇO EM BRANCO NO CHAT Para limpar o chat, basta usar: clearChatBox (source) Tem muita coisa errada nesse seu código, foi você mesmo que fez? Provavelmente sim, pode ver que existe MUITA coisa errada no código, coisa típica de quem está começando agora sem saber aonde está se metendo.... é normal errar, o que podemos fazer é aconselhar e guia-lo para o rumo certo, ai cabe a ele aprender ou não... Agora se for mais um daqueles que só vem aqui e esperam receber o código pronto, ai eu sinto muito pois não vai chegar muito longe. Edited May 21, 2021 by Rakashy 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