+[T]rakin Posted March 3, 2019 Share Posted March 3, 2019 Estou fazendo um emprego de Leiteiro que eu tenho que pegar os leites primeiro e depois entrega, so que quando eu vou pegar o primeiro leite ele manda eu ir pegar o primeiro leite denovo o certo seria para o segundo leite. Digamos quando passo pela posição 1 fala assim no chat : outputChatBox ("Você tirou o leite. Siga para a próxima. 1/3) -- 3 = numero de posições e 1 = numeros de leites Ai devia ir para segunda posição so que ele manda ir da primeira denovo. Espero que entendam server-side leites = { [1] = {-39.298828125, -10.794921875, 3.1171875}, -- table com todos os leites em ordem. [2] = {-44.376953125, -21.642578125, 3.1171875}, [3] = {-59.50390625, -21.8125, 3.1171875}, } entregas = { [1] = {237.75390625, -88.171875, 1.4269020557404}, -- table com todos os entregas em ordem. [2] = {278.4716796875, -65.791015625, 1.578125}, } local Job_Marker = createMarker (-93.5400390625, -17.1650390625, 3.109395980835 -1, "cylinder", 1.5, 20, 70, 230, 95 ) inicioblip1 = createBlipAttachedTo(Job_Marker, 42) Vaca_1 = createPed(298, -38.6025390625, -10.6796875, 3.1171875) Vaca_2 = createPed(298, -43.2666015625, -21.455078125, 3.1171875) Vaca_3 = createPed(298, -57.974609375, -21.6103515625, 3.1171875) local Marker_Leites = {} local Blip_Leites = {} function startJob4 (thePlayer, cmd) if isElementWithinMarker (thePlayer, Job_Marker) and not getPedOccupiedVehicle (thePlayer) then -- Ao usar o comando, só funciona se o jogador estiver no marker e estiver sem veículo. local x, y, z = unpack (leites[1]) -- x, y, z recebem as coordenadas do leites[1]. Marker_Leites[thePlayer] = createMarker (x, y, z -1, "cylinder", 1.6, 0, 255, 0, 255, thePlayer) -- Cria o marker do objetivo do jogador na coordenada 1. setElementData (Marker_Leites[thePlayer], "Marker", thePlayer) -- Seta esse jogador como dono do marker, para que só funcione com ele. setElementData (Marker_Leites[thePlayer], "Leites", 0) -- Seta uma data no marker pra saber a qual coordenada ele pertence. Blip_Leites[thePlayer] = createBlipAttachedTo (Marker_Leites[thePlayer], 19) -- Cria o blip e anexa ao marker. setElementData(thePlayer, "Emprego", "Leiteiro") -- Essa data é para fazer um bloqueo que o jogador não consegue entrar no veiculo antes de pegar os leites removeElementData(thePlayer, "Leiteiro", "Veiculo") addEventHandler ("onMarkerHit", Marker_Leites[thePlayer], fim4) -- Adiciona o evento que faz funcionar o marker do objetivo. end end addEventHandler("onMarkerHit", Job_Marker, startJob4) function fim4 (hitElement) if (hitElement == getElementData (source, "Marker")) then -- Se o elemento que colidiu for o dono do marker, então: if (getElementData (source, "Leites") < #leites) then -- Se a data do marker é menor que a quantidade de leites, então: (indicando que não é a última viagem) local x, y, z = unpack (leites[getElementData (source, "Leites") + 1]) -- x, y, z recebem a próxima coordenada da table leites. setElementPosition (source, x, y, z -1) -- Coloca o marker de objetivo nessa nova coordenada. setElementData (source, "Leites", getElementData (source, "Leites") + 1) -- Seta a nova viagem nesse marker. setPedAnimation(hitElement, "BOMBER", "bom_plant_loop", 2000, true, false, false, false) outputChatBox ("Você tirou o leite. Siga para a próxima. ("..getElementData (source, "Leites").."/3)", hitElement) -- Avisa o jogador quantas viagens ele fez e quantas são no total, pra ele não pensar que está trabalhando de graça. --outputChatBox ("Leites Tirados, Siga Para a Proxima", hitElement) toggleAllControls( hitElement, false) setTimer(function() toggleAllControls( hitElement, true) end, 1800, 1) else -- Se o marker de objetivo colidido não tem data menor que a quantidade de viagens, então: (indicando que esse é o último objetivo) removeEventHandler ("onMarkerHit", Marker_Leites[hitElement], fim4) -- Remove o evento que ativa este marker, pois ele não será mais usado. destroyElement (Blip_Leites[hitElement]) -- Destroi o blip anexado ao marker de objetivo. Marker_Entrega = createMarker (-62.8828125, -4.8046875, 3.1171875 -1, "cylinder", 1.6, 0, 255, 0, 255) Blip_Leites[hitElement] = nil destroyElement (Marker_Leites[hitElement]) -- Destroi o marker de objetivo. Marker_Leites[hitElement] = nil setPedAnimation(hitElement, "BOMBER", "bom_plant_loop", 2000, true, false, false, false) toggleAllControls( hitElement, false) setTimer(function() toggleAllControls( hitElement, true) outputChatBox ("Agora vá ate o caminhão para entrega os leites!", hitElement) setElementData(hitElement, "Leiteiro", "Veiculo") end, 1800, 1) addEventHandler("onMarkerHit", Marker_Entrega, Job_E) end end end Link to comment
[M]ister Posted March 3, 2019 Share Posted March 3, 2019 Linha 28: setElementData (Marker_Leites[thePlayer], "Leites", 1) Linha 41 à 45: outputChatBox ("Você tirou o leite. Siga para a próxima. ("..getElementData (source, "Leites").."/3)", hitElement) setElementData (source, "Leites", getElementData (source, "Leites") + 1) local x, y, z = unpack (leites[getElementData (source, "Leites")]) setElementPosition (source, x, y, z -1) setPedAnimation(hitElement, "BOMBER", "bom_plant_loop", 2000, true, false, false, false) 1 Link to comment
+[T]rakin Posted March 3, 2019 Author Share Posted March 3, 2019 20 minutes ago, MaligNos said: Linha 28: setElementData (Marker_Leites[thePlayer], "Leites", 1) Linha 41 à 45: outputChatBox ("Você tirou o leite. Siga para a próxima. ("..getElementData (source, "Leites").."/3)", hitElement)setElementData (source, "Leites", getElementData (source, "Leites") + 1)local x, y, z = unpack (leites[getElementData (source, "Leites")])setElementPosition (source, x, y, z -1)setPedAnimation(hitElement, "BOMBER", "bom_plant_loop", 2000, true, false, false, false) Funciono perfeito thanks Queria aproveitar esse topico já que é do mesmo script e queria outra ajuda. Bem no marker Job_Marker ele criar o marker dos leites so que se algum jogador passa duas vezes pelo marker Job_Marker vai está criando dois markers de leites meio que um bug. E com isso o jogador vai pode fazer o trabalho quantos ele quiser ao mesmo tempo tem alguma função que bloquear de fica criando varios markers? Link to comment
[M]ister Posted March 3, 2019 Share Posted March 3, 2019 function startJob4 (thePlayer, cmd) if getElementType(thePlayer) == "player" then if not getPedOccupiedVehicle(thePlayer) and not getElementData(thePlayer, "Emprego") == "Leiteiro" then -- Ao usar o comando, só funciona se o jogador estiver no marker e estiver sem veículo. local x, y, z = unpack (leites[1]) -- x, y, z recebem as coordenadas do leites[1]. Marker_Leites[thePlayer] = createMarker (x, y, z -1, "cylinder", 1.6, 0, 255, 0, 255, thePlayer) -- Cria o marker do objetivo do jogador na coordenada 1. setElementData (Marker_Leites[thePlayer], "Marker", thePlayer) -- Seta esse jogador como dono do marker, para que só funcione com ele. setElementData (Marker_Leites[thePlayer], "Leites", 1) -- Seta uma data no marker pra saber a qual coordenada ele pertence. Blip_Leites[thePlayer] = createBlipAttachedTo (Marker_Leites[thePlayer], 19) -- Cria o blip e anexa ao marker. setElementData(thePlayer, "Emprego", "Leiteiro") -- Essa data é para fazer um bloqueo que o jogador não consegue entrar no veiculo antes de pegar os leites removeElementData(thePlayer, "Leiteiro", "Veiculo") addEventHandler ("onMarkerHit", Marker_Leites[thePlayer], fim4) -- Adiciona o evento que faz funcionar o marker do objetivo. end end end addEventHandler("onMarkerHit", Job_Marker, startJob4) Link to comment
+[T]rakin Posted March 3, 2019 Author Share Posted March 3, 2019 Quando passei pelo marker Job_Marker nao crio o marker dos leites Link to comment
[M]ister Posted March 3, 2019 Share Posted March 3, 2019 Troque a linha 3, por: if not getPedOccupiedVehicle(thePlayer) and not Marker_Leites[thePlayer] then 1 Link to comment
+[T]rakin Posted March 3, 2019 Author Share Posted March 3, 2019 6 minutes ago, MaligNos said: Troque a linha 3, por: if not getPedOccupiedVehicle(thePlayer) and not Marker_Leites[thePlayer] then Agradeço muito pela sua ajuda Agoro posso termina rsrs 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