kevincouto6 Posted January 5, 2019 Share Posted January 5, 2019 Server-side local veh7 = {} local vehGuincho7 = {} local timerVeh7 = {} function inicio7 ( vx7, vy7, vz7, vrot7, vxGuin7, vyGuin7, vzGuin7, vrotGuin7 ) if client ~= source or not (vrot7) then return end -- cheater detected! if isElement (veh7[client]) then destroyElement (veh7[client]) end setElementData( client, "Trabalho7", true, false ) -- seta o jogador no element-data "Trabalho"; sinc com o client desativada veh7[client] = createVehicle ( 525, vx7, vy7, vz7, 0, 0, vrot7 ) outputChatBox ("#ffff00Drive the vehicle to the checkpoint. Note: You cannot leave the car during the mission.", client, 0, 0, 0, true) warpPedIntoVehicle (client, veh7[client]) vehGuincho7[client] = createVehicle ( 602, vxGuin7, vyGuin7 + 5, vzGuin7, 0, 0, vrotGuin7 ) GuinchoPed = createPed ( 120, vxGuin7 ,vyGuin7, vzGuin7 ) warpPedIntoVehicle ( GuinchoPed, vehGuincho7[client] ) setVehicleEngineState ( vehGuincho7[client], false ) --setElementData( vehGuincho7[client], "Owner7", client ) triggerClientEvent (client, "createMakerFim7", client, GuinchoPed) timerVeh7[client] = setTimer( addEndMissionTimer7, 5000, 1, client ) local player = client addEventHandler ( "onVehicleExplode", veh7[player], function () destroyElement (source) veh7[player] = nil takePlayerMoney ( player, 5000 ) setElementData( player, "Trabalho7", nil, false ) setElementData( player, "Owner7", nil ) outputChatBox("Mission failed, your veh6icle blew up.", player , 255, 0, 0) triggerClientEvent (player, "destroyMarkerAndBlips7", player) end) function entrar7 (thePlayer) if isTimer (timerVeh7[thePlayer]) then killTimer (timerVeh7[thePlayer]) end end addEventHandler ("onVehicleEnter", veh7[client], entrar7) end addEvent ("iniciaJob7", true) addEventHandler ("iniciaJob7", getRootElement(), inicio7) function playerDead7() if veh7[source] then outputChatBox ( "Missão falhou: Você morreu!", source, 255, 255, 255, true ) destroyElement (veh7[source]) veh7[source] = nil setElementData( source, "Trabalho7", nil, false ) setElementData( source, "Owner7", nil ) triggerClientEvent (source, "destroyMarkerAndBlips7", source) end end addEventHandler ( "onPlayerWasted", getRootElement(), playerDead7) function sair7 (thePlayer) --If you leave the vehicle for more than 1 min and do not return then the vehicle will disappear and the mission will failled-- if source == veh7[thePlayer] then if isTimer (timerVeh7[thePlayer]) then resetTimer (timerVeh7[thePlayer]) else timerVeh7[thePlayer] = setTimer( addEndMissionTimer7, 5000, 1, thePlayer ) end end end addEventHandler ("onVehicleExit", getRootElement(), sair7) function addEndMissionTimer7( player ) if player then if not ( isElement( veh7[player] ) ) then return end if getVehicleController( veh7[player] ) ~= player then outputChatBox ( "Voçê Nao entrou no veiculo a tempo mission failed", player, 255, 255, 255, true ) destroyElement ( veh7[player] ) veh7[player] = nil setElementData( player, "Trabalho7", nil, false ) setElementData( player, "Owner7", nil ) triggerClientEvent (player, "destroyMarkerAndBlips7", player) end end end function completedMission7 () if veh7[source] then outputChatBox ( "Completou a missão!", source, 255, 255, 255, true ) destroyElement (veh7[source]) veh7[source] = nil setElementData( source, "Trabalho7", nil, false ) setElementData( source, "Owner7", nil ) triggerClientEvent (source, "destroyMarkerAndBlips7", source) end end addEvent ("completedFinalMission7", true) addEventHandler ("completedFinalMission7", getRootElement(), completedMission7) function abandenedMission7 () outputChatBox ( "Mission abandoned", source, 255, 255, 255, true ) destroyElement (veh7[source]) veh7[source] = nil setElementData( source, "Trabalho7", nil, false ) setElementData( source, "Owner7", nil ) triggerClientEvent (source, "destroyMarkerAndBlips7", source) end addEvent ("abandenedMission7", true) addEventHandler ("abandenedMission7", getRootElement(), abandenedMission7) Client-side localitionveh7 = { [1] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [2] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [3] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [4] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [5] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, } localitionGuinchoVeh7 = { [1] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [2] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [3] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [4] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [5] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, } local i = 1 local iGuin = 1 function createPlayerLocation7() local vx7 ,vy7, vz7, vrot7 = localitionveh7[ i ][ 2 ], localitionveh7[ i ][ 3 ], localitionveh7[ i ][ 4 ], localitionveh7[ i ][ 7 ] i = i + 1 if i > #localitionveh7 then i = 1 end local vxGuin7 ,vyGuin7, vzGuin7, vrotGuin7 = localitionGuinchoVeh7[ iGuin ][ 2 ], localitionGuinchoVeh7[ iGuin ][ 3 ], localitionGuinchoVeh7[ iGuin ][ 4 ], localitionGuinchoVeh7[ iGuin ][ 7 ] iGuin = iGuin + 1 if iGuin > #localitionGuinchoVeh7 then iGuin = 1 end triggerServerEvent( "iniciaJob7", localPlayer, vxGuin7, vyGuin7, vzGuin7, vrotGuin7, vx7 ,vy7, vz7, vrot7 ) end function finalCarMission7 ( GuinchoPed ) Mfim7 = createMarker (201.09660, 1902.68530, 17.64063 -1, "cylinder", 2, 0 ,255 ,0, 255) Bfim7 = createBlipAttachedTo ( Mfim7, 19 ) function finalmission7 () if isPedInVehicle ( GuinchoPed ) then triggerServerEvent( "completedFinalMission7", localPlayer ) end end addEventHandler("onClientMarkerHit", Mfim7, finalmission7) end addEvent ("createMakerFim7", true) addEventHandler ("createMakerFim7", getRootElement(), finalCarMission7) function destroyMarker7 () --completMission () if isElement ( Mfim7 ) then destroyElement ( Mfim7 ) end if isElement ( Bfim7 ) then destroyElement ( Bfim7 ) end end addEvent ("destroyMarkerAndBlips7", true) addEventHandler ("destroyMarkerAndBlips7", getRootElement(), destroyMarker7) Estou Projetando uma missão de guincho ou seja, algumas coisas funcionaram me b mas preciso especificar alguma coisas e resolver erros podem me ajudar * O guincho não consegue puxar o veiculo com o PED dentro, ache q fosse devido o carro ficar ligado então tentei "setVehicleEngineState ( vehGuincho7[client], false )" para desligar o veiculo enquanto o PED estava dentro porem mesmo assim não funcionou. * No final da missão onde voçê encontra o Marker, eu consegui especificar que o PED esta no veiculo, mas na hora do "onClientMarkerHit" ele vai funcionar apenas se eu passar com o veiculo não vai detectar se o carro guinchado esta junto. *o warpPedIntoVehicle, que puxa o jogador para o veiculo da missão tem um problema, ele funciona normalmente comigo, mas quando online ele não funciona com os outros jogadores, mas ainda sim continua funcionando comigo Link to comment
DNL291 Posted January 6, 2019 Share Posted January 6, 2019 Seria bom se você descrevesse como o script funciona pra quem for ajudar ao menos entender a lógica sem ter que tentar entender olhando pelo código. Debugscript mostra erros? Tentou rebocar o veículo sem o ped estar dentro? 9 hours ago, kevincouto6 said: *o warpPedIntoVehicle, que puxa o jogador para o veiculo da missão tem um problema, ele funciona normalmente comigo, mas quando online ele não funciona com os outros jogadores, mas ainda sim continua funcionando comigo Não sei se entendi bem aqui, mas o certo é o script funcionar apenas para o client/dono do veículo. E a variável GuinchoPed é melhor deixá-la numa tabela também. Creio que estas funções serão úteis pra você: getVehicleTowedByVehicle getVehicleTowingVehicle Link to comment
kevincouto6 Posted January 6, 2019 Author Share Posted January 6, 2019 16 hours ago, DNL291 said: Seria bom se você descrevesse como o script funciona pra quem for ajudar ao menos entender a lógica sem ter que tentar entender olhando pelo código. Debugscript mostra erros? Tentou rebocar o veículo sem o ped estar dentro? Não sei se entendi bem aqui, mas o certo é o script funcionar apenas para o client/dono do veículo. E a variável GuinchoPed é melhor deixá-la numa tabela também. Creio que estas funções serão úteis pra você: getVehicleTowedByVehiclegetVehicleTowingVehicle Eu decidi remover o PED, pois não consegui resolver o bug do ped dentro do veiculo então até agora não encontrei mais bugs porem aqui não sei como fazer BcarLocal7 = seria onde o veiculo de ser encontrado, Ou seja o veiculo que precisa ser guinchado, eu gostaria de fazer um detector para destruir e para criar "BcarLocal7" Quando estiver guinchado (" destroy BcarLocal7") Quando não estiver guinchado (" create BcarLocal7") como não existe uma função "onVehicleTowedByVehicle" para usar no EventHandler eu usei "onClientRender" para fazer varios detectamentos até o veiculo esta guinchado, isso esta certo ou existe outra forma mais correta de fazer "nenhum bug encontrado no debugscript 3" Client Side function finalCarMission7 ( veh7, client, vehGuincho7 ) BcarLocal7 = createBlipAttachedTo ( veh7[client], 13 ) function vehTowingVeh7 () if ( getVehicleTowingVehicle ( veh7[client] ) == vehGuincho7[client] ) then -- if it attached Mfim7 = createMarker (201.09660, 1902.68530, 17.64063 -1, "cylinder", 2, 0 ,255 ,0, 255) Bfim7 = createBlipAttachedTo ( Mfim7, 19 ) destroyElement (BcarLocal7) removeEventHandler("onClientRender", getRootElement(), vehTowingVeh7) end end addEventHandler ( "onClientRender", getRootElement(), vehTowingVeh7 ) function finalmissionRender7 () if isElement ( Mfim7 ) then removeEventHandler("onClientRender", getRootElement(), vehTowingVeh7) if isElement ( Mfim7 ) then function finalmission7 () if ( getVehicleTowingVehicle ( veh7[client] ) == vehGuincho7[client] ) then -- if it attached triggerServerEvent( "completedFinalMission7", localPlayer ) else outputChatBox ("testing") end end addEventHandler("onClientMarkerHit", Mfim7, finalmission7) end end end addEventHandler ( "onClientRender", getRootElement(), finalmissionRender7 ) end addEvent ("createMakerFim7", true) addEventHandler ("createMakerFim7", getRootElement(), finalCarMission7) Link to comment
DNL291 Posted January 8, 2019 Share Posted January 8, 2019 Tem o evento "onTrailerAttach", mas parece ser só para trailer de caminhões... Sobre o "onClientRender", uma opção melhor seria usar setTimer no lado server. Para alternar entre a criação e destruição do blip do local (o BcarLocal7) você vai precisar primeiro avançar a primeira parte. Faça a detecção de quando anexar um veículo no outro, feito isso você vai saber quando deve criar/destruir o blip. Link to comment
kevincouto6 Posted January 8, 2019 Author Share Posted January 8, 2019 13 hours ago, DNL291 said: Eu não entendi muito bem como fazer usando o setTimer. Tentei este modo porem so funciona uma vez, depois para de funcionar não aparece bug no debugscript 3, porem acho que o erro esta nesta parte, onde e verificado se o veiculo não esta guinchado " if not ( getVehicleTowingVehicle ( veh7[client] ) == vehGuincho7[client] ) then " function vehNotTowingVeh7 () if not ( getVehicleTowingVehicle ( veh7[client] ) == vehGuincho7[client] ) then -- if it attached if not isElement (BcarLocal7) then BcarLocal7 = createBlipAttachedTo ( veh7[client], 13 ) end if isElement (Mfim7) and isElement (Bfim7) then destroyElement (Mfim7) destroyElement (Bfim7) end end end addEventHandler ( "onClientRender", getRootElement(), vehNotTowingVeh7 ) function vehTowingVeh7 () if ( getVehicleTowingVehicle ( veh7[client] ) == vehGuincho7[client] ) then -- if it attached Mfim7 = createMarker (201.09660, 1902.68530, 17.64063 -1, "cylinder", 2, 0 ,255 ,0, 255) Bfim7 = createBlipAttachedTo ( Mfim7, 19 ) destroyElement (BcarLocal7) outputDebugString("destruido o criar Bcar") end end addEventHandler ( "onClientRender", getRootElement(), vehTowingVeh7 ) Link to comment
DNL291 Posted January 9, 2019 Share Posted January 9, 2019 (edited) Aqui está um exemplo da verificação com setTimer: local trabalhoGuincho_players = {} -- jogadores nesse trabalho local g_isAttached = {} -- verifica se o veículo do player está anexado ou não addEventHandler( "onResourceStart", resourceRoot, function() setTimer( function() if #trabalhoGuincho_players > 0 then -- verifica se tem ao menos 1 pessoa no trabalho for _,player in ipairs(trabalhoGuincho_players) do -- esse trecho verifica quando anexa o veículo ao outro if ( getVehicleTowingVehicle ( veh7[player] ) == vehGuincho7[player] ) and g_isAttached[player] ~= true then -- if it attached if isElement(Bfim7[player]) then destroyElement(Bfim7[player]) end if isElement(Mfim7[player]) then destroyElement(Mfim7[player]) end outputChatBox( "Veículo anexado", player ) g_isAttached[player] = true -- aqui verifica quando solta do veículo guinchado elseif (getVehicleTowingVehicle ( veh7[player] ) == vehGuincho7[player]) ~= true and g_isAttached[player] then if isElement(Mfim7[player]) ~= true then Mfim7[player] = createMarker (201.09660, 1902.68530, 17.64063 -1, "cylinder", 2, 0 ,255 ,0, 255) end if isElement(Bfim7[player]) ~= true then Bfim7[player] = createBlipAttachedTo ( Mfim7[player], 19 ) end g_isAttached[player] = false outputChatBox( "O veículo foi solto", player ) end end end end, 200, 0 ) -- irá executar esse código a cada 200ms (ou seja 5x por segundo) end ) Edited January 9, 2019 by DNL291 Link to comment
kevincouto6 Posted January 9, 2019 Author Share Posted January 9, 2019 (edited) 13 hours ago, DNL291 said: Tentei usar o que voçê me sugerio assima porem não funcionou no client, e nem no server, então me baseei no que você mandou e fiz assim, porem estou com um erro Mission_client localitionveh7 = { [1] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [2] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [3] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [4] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, [5] = {525, 212.63116, 1906.95349, 17.64063, 0, 0, 270}, } localitionGuinchoVeh7 = { [1] = {525, 224.94553, 1912.85986, 17.85481, 0, 0, 270}, [2] = {525, 224.94553, 1912.85986, 17.85481, 0, 0, 270}, [3] = {525, 224.94553, 1912.85986, 17.85481, 0, 0, 270}, [4] = {525, 224.94553, 1912.85986, 17.85481, 0, 0, 270}, [5] = {525, 224.94553, 1912.85986, 17.85481, 0, 0, 270}, } local i = 1 local iGuin = 1 function createPlayerLocation7() local vxGuin7 ,vyGuin7, vzGuin7, vrotGuin7 = localitionGuinchoVeh7[ iGuin ][ 2 ], localitionGuinchoVeh7[ iGuin ][ 3 ], localitionGuinchoVeh7[ iGuin ][ 4 ], localitionGuinchoVeh7[ iGuin ][ 7 ] iGuin = iGuin + 1 if iGuin > #localitionGuinchoVeh7 then iGuin = 1 end local vx7 ,vy7, vz7, vrot7 = localitionveh7[ i ][ 2 ], localitionveh7[ i ][ 3 ], localitionveh7[ i ][ 4 ], localitionveh7[ i ][ 7 ] i = i + 1 if i > #localitionveh7 then i = 1 end triggerServerEvent( "iniciaJob7", localPlayer, vxGuin7, vyGuin7, vzGuin7, vrotGuin7, vx7 ,vy7, vz7, vrot7 ) end addEvent( "createMakerFim7", true ) addEventHandler( "createMakerFim7", getRootElement(), function( vehGuincho7, veh7, client, client ) local timerBlip7 = setTimer( function() if ( getVehicleTowingVehicle ( vehGuincho7[client] ) == veh7[client] ) ~= true then -- if it attached if isElement(Bfim7) then destroyElement(Bfim7) end if isElement(Mfim7) then destroyElement(Mfim7) end if not isElement(BcarLocal7) then BcarLocal7 = createBlipAttachedTo ( vehGuincho7[client], 12 ) end --outputChatBox( "O veículo foi solto", player ) elseif (getVehicleTowingVehicle ( vehGuincho7[client] ) == veh7[client]) ~= false then if isElement(Mfim7) ~= true then Mfim7 = createMarker (201.09660, 1902.68530, 17.64063 -1, "cylinder", 2, 0 ,255 ,0, 255) end if isElement(Bfim7) ~= true then Bfim7 = createBlipAttachedTo ( Mfim7, 19 ) end if isElement(BcarLocal7) then destroyElement(BcarLocal7) end --outputChatBox( "Veículo anexado", player ) end end, 200, 0 ) local timerFinal7 = setTimer( function() if isElement ( Mfim7 ) then function finalmission7 () if ( getVehicleTowingVehicle ( vehGuincho7[client] ) == veh7[client] ) then -- if it attached if isTimer ( timerFinal7 ) ~= false then killTimer ( timerFinal7 ) end if isTimer ( timerBlip7 ) ~= false then killTimer ( timerBlip7 ) end triggerServerEvent( "completedFinalMission7", localPlayer ) end end addEventHandler("onClientMarkerHit", Mfim7, finalmission7) end end, 200, 0 ) end ) function destroyMarker7 () --completMission () if isElement ( BcarLocal7 ) then destroyElement ( BcarLocal7 ) end if isElement ( Mfim7 ) then destroyElement ( Mfim7 ) end if isElement ( Bfim7 ) then destroyElement ( Bfim7 ) end end addEvent ("destroyMarkerAndBlips7", true) addEventHandler ("destroyMarkerAndBlips7", getRootElement(), destroyMarker7) mission_sever local veh7 = {} local vehGuincho7 = {} local timerVeh7 = {} function inicio7 ( vxGuin7, vyGuin7, vzGuin7, vrotGuin7, vx7, vy7, vz7, vrot7 ) if client ~= source or not (vrot7) then return end -- cheater detected! if isElement (veh7[client]) then destroyElement (veh7[client]) end if client ~= source or not (vrotGuin7) then return end -- cheater detected! if isElement (vehGuincho7[client]) then destroyElement (vehGuincho7[client]) end setElementData( client, "Trabalho7", true, false ) -- seta o jogador no element-data "Trabalho"; sinc com o client desativada veh7[client] = createVehicle ( 525, vx7, vy7, vz7, 0, 0, vrot7 ) outputChatBox ("#ffff00Drive the vehicle to the checkpoint. Note: You cannot leave the car during the mission.", client, 0, 0, 0, true) warpPedIntoVehicle (client, veh7[client]) vehGuincho7[client] = createVehicle ( 602, vxGuin7, vyGuin7, vzGuin7, 0, 0, vrotGuin7 ) triggerClientEvent (client, "createMakerFim7", client, vehGuincho7, veh7, client, client ) timerVeh7[client] = setTimer( addEndMissionTimer7, 50000, 1, client ) local player = client addEventHandler ( "onVehicleExplode", veh7[player], function () destroyElement (source) destroyElement (vehGuincho7[player]) veh7[player] = nil vehGuincho7[player] = nil takePlayerMoney ( player, 5000 ) setElementData( player, "Trabalho7", nil, false ) outputChatBox("Mission failed, your veh6icle blew up.", player , 255, 0, 0) triggerClientEvent (player, "destroyMarkerAndBlips7", player) end) addEventHandler ( "onVehicleExplode", vehGuincho7[player], function () destroyElement (veh7[player]) destroyElement (source) veh7[player] = nil vehGuincho7[player] = nil takePlayerMoney ( player, 5000 ) setElementData( player, "Trabalho7", nil, false ) outputChatBox("Mission failed, your veh6icle blew up.", player , 255, 0, 0) triggerClientEvent (player, "destroyMarkerAndBlips7", player) end) function entrar7 (thePlayer) if isTimer (timerVeh7[thePlayer]) then killTimer (timerVeh7[thePlayer]) end end addEventHandler ("onVehicleEnter", veh7[client], entrar7) end addEvent ("iniciaJob7", true) addEventHandler ("iniciaJob7", getRootElement(), inicio7) function playerDead7() if veh7[source] or vehGuincho7[source] then outputChatBox ( "Missão falhou: Você morreu!", source, 255, 255, 255, true ) destroyElement (veh7[source]) destroyElement (vehGuincho7[source]) veh7[source] = nil vehGuincho7[source] = nil setElementData( source, "Trabalho7", nil, false ) triggerClientEvent (source, "destroyMarkerAndBlips7", source) end end addEventHandler ( "onPlayerWasted", getRootElement(), playerDead7) function sair7 (thePlayer) --If you leave the vehicle for more than 1 min and do not return then the vehicle will disappear and the mission will failled-- if source == veh7[thePlayer] then if isTimer (timerVeh7[thePlayer]) then resetTimer (timerVeh7[thePlayer]) else timerVeh7[thePlayer] = setTimer( addEndMissionTimer7, 50000, 1, thePlayer ) end end end addEventHandler ("onVehicleExit", getRootElement(), sair7) function addEndMissionTimer7( player ) if player then if not ( isElement( veh7[player] ) ) then return end if getVehicleController( veh7[player] ) ~= player then outputChatBox ( "Voçê Nao entrou no veiculo a tempo mission failed", player, 255, 255, 255, true ) destroyElement ( veh7[player] ) destroyElement (vehGuincho7[player]) veh7[player] = nil vehGuincho7[player] = nil setElementData( player, "Trabalho7", nil, false ) triggerClientEvent (player, "destroyMarkerAndBlips7", player) end end end function completedMission7 () if veh7[source] then outputChatBox ( "Completou a missão!", source, 255, 255, 255, true ) destroyElement (veh7[source]) destroyElement (vehGuincho7[source]) veh7[source] = nil vehGuincho7[source] = nil setElementData( source, "Trabalho7", nil, false ) triggerClientEvent (source, "destroyMarkerAndBlips7", source) end end addEvent ("completedFinalMission7", true) addEventHandler ("completedFinalMission7", getRootElement(), completedMission7) function abandenedMission7 () outputChatBox ( "Mission abandoned", source, 255, 255, 255, true ) destroyElement (veh7[source]) destroyElement (vehGuincho7[source]) veh7[source] = nil vehGuincho7[source] = nil setElementData( source, "Trabalho7", nil, false ) triggerClientEvent (source, "destroyMarkerAndBlips7", source) end addEvent ("abandenedMission7", true) addEventHandler ("abandenedMission7", getRootElement(), abandenedMission7) porem a só acontece após fazer a primeira vez a missão exemplo: fiz a missão normalmente tudo funcionando, quando vou Refaze-la, ou seja iniciar novamente ela aparece o erro ao completa-la WARNING: GUImision/c.mission.lua:106: Bad argument @ 'getVehicleTowingVehicle' [Expected vehicle at argument 1] e tambem tenho o problema com warpPedIntoVehicle ( client, veh7[client] ) não aparece nenhum erro no debug, mas funciona apenas em mim, nos outros jogadores não funciona Edited January 9, 2019 by kevincouto6 Link to comment
Other Languages Moderators Lord Henry Posted January 10, 2019 Other Languages Moderators Share Posted January 10, 2019 Vc por acaso sabe inglês? É pq ajuda bastante a entender os erros se vc souber inglês. Link to comment
kevincouto6 Posted January 10, 2019 Author Share Posted January 10, 2019 16 minutes ago, Lord Henry said: Vc por acaso sabe inglês? É pq ajuda bastante a entender os erros se vc souber inglês. Podemos dizer que meu inglês não é muito bom, mas consigo entender os erros porem não sei porque acontecem, não tenho curso de .lua ou de lógica de progamação, estou aprendendo muito com vcs do forum que me ajudam, mas tem coisas que tenho muita dificuldade como #tabelas, #for _player esta partes ainda não compreendi muito como funciona, sobre os erros Tipo aparece q o argumento 1 não foi especificado, porem na primeira vez q a missão é feita funciona sem erro, então significa q da primeira vez q foi feita a missão, o veh tinha sido especificado, porem na segunda vez não, por isso não compreendi o erro, se não tivesse funcionado a primeira vez eu saberia q estava errado porem como funcionou, eu não consegui encontrar o erro. Pude perceber uma coisa este erro apare x29 ou seja, acho q pode estar sendo causado pelo seTimer, será q meu killTimer não esta funcionado ? Link to comment
Other Languages Moderators Lord Henry Posted January 10, 2019 Other Languages Moderators Share Posted January 10, 2019 (edited) 8 hours ago, kevincouto6 said: [...] não tenho curso de .lua ou de lógica de progamação, [...] https://www.youtube.com/watch?v=M2Af7gkbbro&list=PLHz_AreHm4dmSj0MHol_aoNYCSGFqvfXV&index=2&t=20 Ta ae seu curso. Boa sorte. ----------------------- Creio que o erro acontece pois na segunda vez a variável client não existe. Na minha opinião, a variável client só deve ser usada no server-side para funções que foram chamadas pelo client-side. Edited January 10, 2019 by Lord Henry Link to comment
kevincouto6 Posted January 11, 2019 Author Share Posted January 11, 2019 (edited) Okay, eu tinha as exportado do tringgerEvent do lado server para client, teriam alguma sugestão de como eu poderia fazer para verificar se é o veiculo correto, o veiculo foi criado no lado server, devo usar um setElementData ou algo do tipo para detectar se é o jogador da missão se é o guincho da missão q foi criado pelo jogador da missão se o carro que precisa ser rebocado e o do jogador Tenho que fazer estas 3 verificações anter de completar a missão, o script esta acima, podem me sugerir algo? Fiz o marker do final no lado client para ser visto apenas pelo jogador da missão, Edited January 11, 2019 by kevincouto6 Link to comment
DNL291 Posted January 11, 2019 Share Posted January 11, 2019 (edited) Código bem bagunçado... O timer eu fiz no lado server pois imaginei que você fosse criar os elementos lá. O erro na warpPedIntoVehicle não é em você, é em quem afinal? O veículo do client vai servir para outros jogadores também? Porque da forma que os elementos estão sendo gerenciados (criados para um jogador especifico) não vai permitir que funcione para um segundo jogador. Sinceramente fica muito difícil pra alguém te ajudar, sem nem entender como as coisas funcionam e começa a montar os trechos de qualquer jeito. Comece estudar programação, o básico, você tá perdido da forma que está. E ajudaremos com explicações e te ajudar a entender como tudo funciona, caso contrário, você vai ficar na mesma sempre, vai ser difícil até pra alguém responder seus posts - eu mesmo já nem tô mais afim. Edited January 11, 2019 by DNL291 Link to comment
kevincouto6 Posted January 14, 2019 Author Share Posted January 14, 2019 (edited) Okay, Me desculpem vou tentar me expresar melhor addEvent( "createMakerFim7", true ) addEventHandler( "createMakerFim7", getRootElement(), function( vehGuincho7, veh7, client, client ) timerBlip7 = setTimer( function() if ( getVehicleTowingVehicle ( vehGuincho7[client] ) == veh7[client] ) ~= true then -- if it attached if isElement(Bfim7) then destroyElement(Bfim7) end if isElement(Mfim7) then destroyElement(Mfim7) end if not isElement(BcarLocal7) then BcarLocal7 = createBlipAttachedTo ( vehGuincho7[client], 12 ) end elseif (getVehicleTowingVehicle ( vehGuincho7[client] ) == veh7[client]) ~= false then if isElement(Mfim7) ~= true then Mfim7 = createMarker (201.09660, 1902.68530, 17.64063 -1, "cylinder", 2, 0 ,255 ,0, 255) end if isElement(Bfim7) ~= true then Bfim7 = createBlipAttachedTo ( Mfim7, 19 ) end if isElement(BcarLocal7) then destroyElement(BcarLocal7) end end end, 200, 0 ) timerFinal7 = setTimer( function() if isElement ( Mfim7 ) then if isElement ( vehGuincho7[client] ) and isElement ( veh7[client] ) then addEventHandler("onClientMarkerHit", Mfim7, function ( hitPlayer, md ) local playerVeh = getPedOccupiedVehicle(hitPlayer) if hitPlayer == localPlayer and playerVeh and getElementData(playerVeh, "Owner7") == hitPlayer and md then if ( getVehicleTowingVehicle ( vehGuincho7[client] ) == veh7[client] ) then triggerServerEvent( "completedFinalMission7", localPlayer ) end end end ) end end end, 200, 0 ) end ) Queria a opinião de vcs sobre, crei dois 2 timer um para verificar o veiculo e o guincho, o outro timer fiz para verifica se o marker foi criado Explicando script * TimerBlip7 Faz as verificações para ver se o veiculo esta guinchado ou não *TimerFinal7 As primeira e a segunda verificação é se os elementos foram criados! A terceira e "getElementData" que vcs me ensinara a fazer para verificar se é o JOGADOR, é o player da missão A Quarta verificação é se o Veiculo esta Guinchado ao outro. esta e a parte que usei para destruir as coisas quando a missão for completa or falhada, tipo se destruir o "veh", ficar muito tempo fora do Veiculo. etc, tds iram ativar esta função function destroyMarker7 () if isTimer ( timerFinal7 ) then killTimer ( timerFinal7 ) end if isTimer ( timerBlip7 ) then killTimer ( timerBlip7 ) end if isElement ( BcarLocal7 ) then destroyElement ( BcarLocal7 ) end if isElement ( Mfim7 ) then destroyElement ( Mfim7 ) end if isElement ( Bfim7 ) then destroyElement ( Bfim7 ) end end addEvent ("destroyMarkerAndBlips7", true) addEventHandler ("destroyMarkerAndBlips7", getRootElement(), destroyMarker7) obs: tudo isso esta no lado Client queria a opnião de vocês sobre o que deve ser mudado ou o que esta errado, atualmente não encontrei nenhum erro já testei com outros jogadores. sobre o erro do "warp" eu não sei como explicar mas so funciona para min, quando outros jogadores tentam usar eles não são teleportados para dentro de veiculo. e um erro esquisito pois ele não aparece no "debugscript 3" ou talvez eu não consiga ver por não acontecer comigo, vcs tem alguma ideia do que seja o script do lado server esta aki a baixo local veh7 = {} local vehGuincho7 = {} local timerVeh7 = {} function inicio7 ( vxGuin7, vyGuin7, vzGuin7, vrotGuin7, vx7, vy7, vz7, vrot7 ) if client ~= source or not (vrot7) then return end -- cheater detected! if isElement (veh7[client]) then destroyElement (veh7[client]) end if client ~= source or not (vrotGuin7) then return end -- cheater detected! if isElement (vehGuincho7[client]) then destroyElement (vehGuincho7[client]) end setElementData( client, "Trabalho7", true, false ) -- seta o jogador no element-data "Trabalho"; sinc com o client desativada veh7[client] = createVehicle ( 525, vx7, vy7, vz7, 0, 0, vrot7 ) setElementData( veh7[client], "Owner7", client ) outputChatBox ("#ffff00Drive the vehicle to the checkpoint. Note: You cannot leave the car during the mission.", client, 0, 0, 0, true) warpPedIntoVehicle (client, veh7[client]) vehGuincho7[client] = createVehicle ( 602, vxGuin7, vyGuin7, vzGuin7, 0, 0, vrotGuin7 ) triggerClientEvent (client, "createMakerFim7", client, vehGuincho7, veh7, client, client ) end addEvent ("iniciaJob7", true) addEventHandler ("iniciaJob7", getRootElement(), inicio7) este script funciona assim, quando no Gui Window e seleciono a missão 7 e aperto Start onde vai iniciar a função "inicioJob7" # onde vair criar os veiculos # vai definir o setElementData # e vai ativar o #WarpPedIntoVehicle# ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- é Possivel criar um marker que seja visivel apenas para o player da missão Marker arrow " que fique em cima do veiculo para o jogador saber qual e o seu" Edited January 14, 2019 by kevincouto6 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