kevincouto6 Posted December 2, 2018 Share Posted December 2, 2018 Eai, pessoal poderiam me ajudar com isso Lado Client createMarkerLocations1 = { {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } createMarkerLocations2 = { {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } createMarkerLocations3 = { {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } createMarkerLocations4 = { {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } createMarkerLocations5 = { {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } function callServerFunction() function createRandomMarker(table) local randomRow = math.random(1,#table) return createMarker(table[randomRow][1], table[randomRow][2], table[randomRow][3], table[randomRow][4], table[randomRow][5], table[randomRow][6], table[randomRow][7], table[randomRow][8], table[randomRow][9]) end local markerElement1 = createRandomMarker(createMarkerLocations1) markerFim1 = createBlipAttachedTo ( markerElement1, 19 ) local markerElement2 = createRandomMarker(createMarkerLocations2) markerFim2 = createBlipAttachedTo ( markerElement2, 19 ) local markerElement3 = createRandomMarker(createMarkerLocations3) markerFim3 = createBlipAttachedTo ( markerElement3, 19 ) local markerElement4 = createRandomMarker(createMarkerLocations4) markerFim4 = createBlipAttachedTo ( markerElement4, 19 ) local markerElement5 = createRandomMarker(createMarkerLocations5) markerFim5 = createBlipAttachedTo ( markerElement5, 19 ) function partfim1 (source) if veh5[client] and isElement(veh5[client]) then cardrivepoints = cardrivepoints+1 outputChatBox("Funcionando!",source,0,0,0,true) destroyElement (markerElement1) setElementVisibleTo ( markerFim1, root, false ) end if cardrivepoints >= 5 then completed(source) end end addEventHandler("onClientMarkerHit",markerElement1 ,partfim1) function partfim2 (source) if veh5[source] and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 outputChatBox("Funcionando!",source,0,0,0,true) destroyElement (markerElement2) setElementVisibleTo ( markerFim2, root, false ) end if cardrivepoints >= 5 then completed(source) end end addEventHandler("onClientMarkerHit",markerElement2 ,partfim2) function partfim3 (source) if callServerFunction (server, veh5[source]) and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 outputChatBox("Funcionando!",source,0,0,0,true) destroyElement (markerElement3) setElementVisibleTo ( markerFim3, root, false ) end if cardrivepoints >= 5 then completed(source) end end addEventHandler("onClientMarkerHit",markerElement3 ,partfim3) function partfim4 (source) if veh5[source] and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 outputChatBox("Funcionando!",source,0,0,0,true) destroyElement (markerElement4) setElementVisibleTo ( markerFim4, root, false ) end if cardrivepoints >= 5 then completed(source) end end addEventHandler("onClientMarkerHit",markerElement4 ,partfim4) function partfim5 (source) if veh5[source] and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 outputChatBox("Funcionando!",source,0,0,0,true) destroyElement (markerElement5) setElementVisibleTo ( markerFim5, root, false ) end if cardrivepoints >= 5 then completed(source) end end addEventHandler("onClientMarkerHit",markerElement5 ,partfim5) end addEvent ("mission5", true) addEventHandler ("mission5", getRootElement(), callServerFunction) Este é o lada server bom meu problema e fazer ele detectar o veiculo que foi criado no lado server, mas " if veh5[source] and is Element (veh5[source]) then " ele não funciona no lado client o que devo fazer pra resolver isso, alguem pode me ajudar ? --mission five-- cardrivepoints = 0 i = 1 -- contador global veh5 = {} -- Recomendo que evite posi趥s decimais muito grandes. Use s?頳 casas decimais. localitionveh55 = { [1] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, [2] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, [3] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, [4] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, [5] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, -- O primeiro, quinto e sexto valor das posi趥s n䯠est䯠sendo usados. Recomendo que delete-os. } function inicio5 () if isElement (veh5[client]) then -- Client = localPlayer, somente neste caso. destroyElement (veh5[client]) veh5[client] = nil end local vx ,vy, vz, vrot = localitionveh55[ i ][ 2 ], localitionveh55[ i ][ 3 ], localitionveh55[ i ][ 4 ], localitionveh55[ i ][ 7 ] i = i + 1 if i > #localitionveh55 then -- se i > 5, ent䯺 i = 1 end Trabalho = true veh5[client] = createVehicle ( 401, vx, vy, vz, 0, 0, vrot ) warpPedIntoVehicle (client, veh5[client]) outputChatBox ("#ffff00Drive the veh5icle to the checkpoint. Note: You cannot leave the car during the mission.", client, 0, 0, 0, true) triggerClientEvent (client, "mission5", client) local player2 = client addEventHandler ( "onVehicleExplode", veh5[client], function () if (veh5[player2]) and isElement(veh5[player2]) then destroyElement (source) takePlayerMoney ( player2, 5000 ) outputChatBox("Mission failed, your veh5icle blew up.", player2 , 255, 0, 0) end end) end addEvent ("iniciaJob5", true) -- Cria o evento "iniciaJob e permite que ele seja chamado pelo client. addEventHandler ("iniciaJob5", getRootElement(), inicio5) -- Executa essa fun褯 quando o evento "iniciaJob" for chamado. Link to comment
brunob22 Posted December 2, 2018 Share Posted December 2, 2018 codigo incompleto.. impossivel entender alguma coisa ai pelo menos para mim Link to comment
kevincouto6 Posted December 2, 2018 Author Share Posted December 2, 2018 4 hours ago, brunob22 said: codigo incompleto.. impossivel entender alguma coisa ai pelo menos para mim O codigo esta completo unica parte que falta e da "iniciajob5" e onde esta a GuiList, queria saber como fazer para detectar o veh5 que esta no lado serve, no lado client. Exemplo quando passo em cima do "Marker" a função não funciona devido o veh estar no lado server, exeste uma maneira de faze-lo detectar o veh ? Link to comment
brunob22 Posted December 2, 2018 Share Posted December 2, 2018 1 minute ago, kevincouto6 said: O codigo esta completo unica parte que falta e da "iniciajob5" e onde esta a GuiList, queria saber como fazer para detectar o veh5 que esta no lado serve, no lado client. Exemplo quando passo em cima do "Marker" a função não funciona devido o veh estar no lado server, exeste uma maneira de faze-lo detectar o veh ? entendi agora.. tenta isso troca isso triggerClientEvent (client, "mission5", client) por isso triggerClientEvent (client, "mission5", client,veh5) no client mude function callServerFunction() por function callServerFunction(veh5) e assim use a variavel " veh5 " em lado client se funcionar avisa Link to comment
kevincouto6 Posted December 2, 2018 Author Share Posted December 2, 2018 44 minutes ago, brunob22 said: Olá funcionou porem um pouco diferente, agora tenho que descobrir como usar o "setElementVisibleTo" essa função só funciona no server estao estou tentando usar triggerServerEvent Porem não consigo fazer não detecta o "CreateBlipAttachedTo" que foi criado no client tem alguma dica ou idea para eu usar ? Link to comment
brunob22 Posted December 2, 2018 Share Posted December 2, 2018 26 minutes ago, kevincouto6 said: Olá funcionou porem um pouco diferente, agora tenho que descobrir como usar o "setElementVisibleTo" essa função só funciona no server estao estou tentando usar triggerServerEvent Porem não consigo fazer não detecta o "CreateBlipAttachedTo" que foi criado no client tem alguma dica ou idea para eu usar ? não entendi Link to comment
DNL291 Posted December 2, 2018 Share Posted December 2, 2018 (edited) Alguns erros no lado client: Você tá usando uma função que é server-side ("setElementVisibleTo") e além disso não é necessário fazer isso no client, visto que tudo executa só para o jogador local. outputChatBox está recebendo um argumento "source" sendo que no client não é necessário; todas outputs no client funciona só para o jogador local. O valor "client" é usado no lado server, isso serve para a validação do jogador local. Use localPlayer. Edit: no caso ali deve ser o parâmetro hitPlayer, que foi definido como "source" Sobre a detecção do veículo, só fazer o que já foi dito - enviar o elemento no evento "mission5" Edited December 2, 2018 by DNL291 Link to comment
kevincouto6 Posted December 2, 2018 Author Share Posted December 2, 2018 36 minutes ago, DNL291 said: Assim esta o script porem agora tenho que Deletar os BLIP conforme os jogador coletar os Marker, só q para isso a função que deixa invisivel funciona apenas no lado server, e os BLIP foram criados no lado Client como fasso para deixa-los invisiveis Client-side ---------------------------------------------------------------------------------------- cardrivepoints = 0 local createMarkerLocations1 = { {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {231.41704, 1877.68689, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } local createMarkerLocations2 = { {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {231.85756, 1892.57666, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } local createMarkerLocations3 = { {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {229.22476, 1906.36658, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } local createMarkerLocations4 = { {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {212.10025, 1908.91870, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } local createMarkerLocations5 = { {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 0 ,255 ,0, 255}, {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170 }, {192.29828, 1911.02271, 17.64063 -1, "cylinder", 4, 255, 255, 0, 170}, } function outher () function createRandomMarker(table) local randomRow = math.random(1,#table) return createMarker(table[randomRow][1], table[randomRow][2], table[randomRow][3], table[randomRow][4], table[randomRow][5], table[randomRow][6], table[randomRow][7], table[randomRow][8], table[randomRow][9]) end markerElement1 = createRandomMarker(createMarkerLocations1) markerFim1 = createBlipAttachedTo ( markerElement1, 19 ) markerElement2 = createRandomMarker(createMarkerLocations2) markerFim2 = createBlipAttachedTo ( markerElement2, 19 ) markerElement3 = createRandomMarker(createMarkerLocations3) markerFim3 = createBlipAttachedTo ( markerElement3, 19 ) markerElement4 = createRandomMarker(createMarkerLocations4) markerFim4 = createBlipAttachedTo ( markerElement4, 19 ) markerElement5 = createRandomMarker(createMarkerLocations5) markerFim5 = createBlipAttachedTo ( markerElement5, 19 ) end addEvent ("mission5", true) addEventHandler ("mission5", getRootElement(), outher) function callServerFunction (veh5) function partfim1 (source) if veh5[source] and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 destroyElement (markerElement1) end if cardrivepoints >= 1 then triggerServerEvent ("completedMissionCollect", localPlayer) end end addEventHandler("onClientMarkerHit",markerElement1 ,partfim1) function partfim2 (source) if veh5[source] and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 destroyElement (markerElement2) end if cardrivepoints >= 1 then triggerServerEvent ("completedMissionCollect", localPlayer) end end addEventHandler("onClientMarkerHit",markerElement2 ,partfim2) function partfim3 (source) if veh5[source] and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 destroyElement (markerElement3) end if cardrivepoints >= 1 then triggerServerEvent ("completedMissionCollect", localPlayer) end end addEventHandler("onClientMarkerHit",markerElement3 ,partfim3) function partfim4 (source) if veh5[source] and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 destroyElement (markerElement4) end if cardrivepoints >= 1 then triggerServerEvent ("completedMissionCollect", localPlayer) end end addEventHandler("onClientMarkerHit",markerElement4 ,partfim4) function partfim5 (source) if veh5[source] and isElement(veh5[source]) then cardrivepoints = cardrivepoints+1 destroyElement (markerElement5) end if cardrivepoints >= 1 then triggerServerEvent ("completedMissionCollect", localPlayer) end end addEventHandler("onClientMarkerHit",markerElement5 ,partfim5) end addEvent ("mission5", true) addEventHandler ("mission5", getRootElement(), callServerFunction) server-side --mission five-- i = 1 -- contador global veh5 = {} -- Recomendo que evite posi趥s decimais muito grandes. Use s?頳 casas decimais. localitionveh55 = { [1] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, [2] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, [3] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, [4] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, [5] = {401, 216.82504, 1870.22961, 17.3440, 0, 0, 270}, -- O primeiro, quinto e sexto valor das posi趥s n䯠est䯠sendo usados. Recomendo que delete-os. } function inicio5 () if isElement (veh5[client]) then -- Client = localPlayer, somente neste caso. destroyElement (veh5[client]) veh5[client] = nil end local vx ,vy, vz, vrot = localitionveh55[ i ][ 2 ], localitionveh55[ i ][ 3 ], localitionveh55[ i ][ 4 ], localitionveh55[ i ][ 7 ] i = i + 1 if i > #localitionveh55 then -- se i > 5, ent䯺 i = 1 end Trabalho = true veh5[client] = createVehicle ( 401, vx, vy, vz, 0, 0, vrot ) warpPedIntoVehicle (client, veh5[client]) outputChatBox ("#ffff00Drive the veh5icle to the checkpoint. Note: You cannot leave the car during the mission.", client, 0, 0, 0, true) triggerClientEvent (client, "mission5", client,veh5) local player2 = client addEventHandler ( "onVehicleExplode", veh5[client], function () if (veh5[player2]) and isElement(veh5[player2]) then destroyElement (source) takePlayerMoney ( player2, 5000 ) outputChatBox("Mission failed, your veh5icle blew up.", player2 , 255, 0, 0) end end) end addEvent ("iniciaJob5", true) -- Cria o evento "iniciaJob e permite que ele seja chamado pelo client. addEventHandler ("iniciaJob5", getRootElement(), inicio5) -- Executa essa fun褯 quando o evento "iniciaJob" for chamado. function sair5 (source) if (veh5[source]) and isElement(veh5[source]) then destroyElement (veh5[source]) takePlayerMoney ( source, 5000 ) outputChatBox("#ff0000Mission failed, you have left the veh5icle.", source ,0,0,0,true) else end end addEventHandler ( "onVehicleExit", getRootElement(), sair5 ) function morrer5() if (veh5[source]) and isElement(veh5[source]) then destroyElement (veh5[source]) takePlayerMoney ( source, 5000 ) outputChatBox("#ff0000Mission failed, you have left the veh5icle.", source ,0,0,0,true) else end end addEventHandler("onPlayerWasted", root, morrer5) function completed(source) if veh5[source] and isElement(veh5[source]) then destroyElement (veh5[source]) givePlayerMoney(source,20000) cardrivepoints = 0 outputChatBox("#00ff00Mission passed. You successfully completed this task. You've received $10.000!",source,0,0,0,true) else end end addEvent ("completedMissionCollect", true) addEventHandler ("completedMissionCollect", getRootElement(), MissionWin) Link to comment
DNL291 Posted December 3, 2018 Share Posted December 3, 2018 (edited) Eu sinceramente não entendi o porquê deixar o blip invisível, ocultar os elementos de outros jogadores não vai ser necessário, como eu já disse. É por isso mesmo que nesses tipos de scripts você deve criar o(s) elemento(s) que devem mostrar ao jogador local no lado client. O script tá feito de uma forma meio bagunçada, mas vamos lá: Você quer que remova o blip vinculado ao marker, basta usar destroyElement( marker ) usando a variável da marker correspondente. Exemplo: cardrivepoints = cardrivepoints+1 destroyElement (markerElement1) destroyElement(markerFim1) if cardrivepoints >= 1 then triggerServerEvent ("completedMissionCollect", localPlayer) end Edited December 3, 2018 by DNL291 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