Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Sim, o veículo vai ficar sempre com o fogo no capô. Eu deixaria a HP em 250, fica muito esquisito o carro com o fogo, e também nos scripts de mecânico, o criador sempre deixa a hp em 250. Mas de qualquer forma, o @danblemes1 é quem vai escolher o que for do gosto dele.
  2. Estude a lógica da programação. Ter zero de conhecimento vai dificultar muito as coisas no começo. Saiba primeiro o básico, depois de estar mais familiarizado com a programação você vai estudar e entender a wiki do MTA melhor. E principalmente, aprenda sobre a linguagem Lua, aqui alguns links úteis pra você: https://www.lua.org/lua-br.html http://lua-users.org/wiki/ https://www.tutorialspoint.com/lua/
  3. Eu faria só a marker de entrar no trabalho no lado server, as markers da missão te recomendo deixar no lado client. Eu editei o script e deixei da forma que eu faria, espero que você entenda a lógica do código e aprenda a fazer nesse mesmo padrão (que você pode utilizar para outros tipos trabalhos). Server: local StartEmprego02 = createMarker (775.66833496094, -2138.0109863281, 36.464061737061 -1, "cylinder", 1.2, 0 ,26 ,255, 95) -- Local Onde Pega O Emprego ------------------------------------------------------------------------------------------------------------------------------------------------------------ local LetraTEmprego02 = createBlipAttachedTo ( StartEmprego02, 23 ) -- Letra T setBlipVisibleDistance( LetraTEmprego02 , 700) -- Distancia Letra T "200" = 200 Metros Pra Ficar Visivel ------------------------------------------------------------------------------------------------------------------------------------------------------------ function HitarMarkerJobEmprego02 ( ThePlayer, d ) if getElementType(ThePlayer) == "player" and d and isPedInVehicle(ThePlayer) ~= true then outputChatBox("#ffffff[ #001AFFTrabalho De Traficante #ffffff] - #FFFFFFDigite#001AFF/trafico #ffffff- Para pegar as drogas!", ThePlayer, 255, 255, 255, true) end end addEventHandler("onMarkerHit", StartEmprego02, HitarMarkerJobEmprego02) ------------------------------------------------------------------------------------------------------------------------------------------------------------ local vehEmprego02 = {} function ComecoDeTudoEmprego02 (source) if isElementWithinMarker(source, StartEmprego02) and isPedInVehicle(source) ~= true and getElementDimension(source) == getElementDimension(StartEmprego02) then if vehEmprego02[source] and isElement( vehEmprego02[source] ) then destroyElement ( vehEmprego02[source] ) end local x,y,z = getElementPosition(source) setElementData( source, "Trabalho", "traficante de drogas" ) vehEmprego02[source] = createVehicle(482, 818.57098388672, -2143.6784667969, 35.606742858887) setVehicleLocked(vehEmprego02[source],true) warpPedIntoVehicle ( source, vehEmprego02[source] ) setPlayerWantedLevel( source, 1 ) triggerClientEvent( player, "traficante:onRequestDoAction", player, "create" ) outputChatBox("#ffffff[ #001AFFTrabalho #ffffff] - #FFFFFFAgora Você É Um Traficante", source, 255, 255, 255, true) -- Mensagem Apos Pegar O Emprego outputChatBox("#ffffff[ #001AFFTrabalho #ffffff] - #FFFFFFLeve a Van até o Local Indicado no Mapa", source, 255, 255, 255, true) outputChatBox("#ffffff[ #001AFFTrabalho #ffffff] - #FFFFFFSe você for pego pela policia será preso! Então tome cuidado.", source, 255, 255, 255, true) -- Mensagem Apos Pegar O Emprego local vehOwner = source addEventHandler( "onVehicleExplode", vehEmprego02[source], function() removePlayerFromJob( vehOwner, source, true ) outputChatBox( "#ffffff[ #001AFFTrabalho #ffffff] - O seu veículo explodiu e você perdeu o emprego!", vehOwner, 230, 0, 0 ) end ) end end addCommandHandler ( "trafico", ComecoDeTudoEmprego02 ) -- Comando Pra Pegar O Emprego addEvent( "traficante:onPlayerFinishMission", true ) addEventHandler("traficante:onPlayerFinishMission", root, function() givePlayerMoney(client, 200) outputChatBox("#ffffff[ #001AFFTrabalho #ffffff] - #FFFFFFEntrega Finalizada, Você recebeu R$200.",client,0,0,0,true) -- Mensagem Apos Finalizar O Emprego removePlayerFromJob( client, vehEmprego02[client] ) end ) ------------------------------------------------------------------------------------------------------------------------------------------------------------ function SaiuDoEmprego02 (player) if (vehEmprego02[player]) and isElement(vehEmprego02[player]) then removePlayerFromJob( player, vehEmprego02[player], true ) outputChatBox ("#ffffff[#001AFFTrabalho #ffffff] - #FFFFFFVocê Saiu Da Van E A Droga Foi Presa.", player ,0,0,0,true) -- Perder O Emprego Apos Sair Do Veiculo end end addEventHandler ( "onVehicleExit", resourceRoot, SaiuDoEmprego02 ) ------------------------------------------------------------------------------------------------------------------------------------------------------------ function MorreuNoEmprego02 ( ammo, attacker, weapon, bodypart ) if isElement(vehEmprego02[source]) then removePlayerFromJob( source, vehEmprego02[source], true ) outputChatBox ("#ffffff[ #001AFFTrabalho #ffffff] - #FFFFFFVoce Morreu e Perdeu o Emprego", source ,0,0,0,true) -- Perder O Emprego Apos Morrer end end addEventHandler ( "onPlayerWasted", getRootElement(), MorreuNoEmprego02 ) ------------------------------------------------------------------------------------------------------------------------------------------------------------ function SaiuDoServerEmprego02 ( quitType ) if isElement(vehEmprego02[source]) then destroyElement (vehEmprego02[source]) -- Destruir Veiculo Apos Jogador Sair Do Servidor No Emprego end end addEventHandler ( "onPlayerQuit", getRootElement(), SaiuDoServerEmprego02 ) function removePlayerFromJob( player, pVeh, removeFromClient ) if isElement(player) and isElement(pVeh) then setElementData( player, "Trabalho", nil ) destroyElement( pVeh ) if removeFromClient then triggerClientEvent( player, "traficante:onRequestDoAction", player, "destroy" ) end end end local _destroyElement = destroyElement function destroyElement(elem) if isElement(elem) then return _destroyElement(elem) end return false end ------------------------------------------------------------------------------------------------------------------------------------------------------------ Client local traficante_locations = { { 1135.3686523438, -2004.0344238281, 69.0078125 }, { 1130, -2010, 69 } --{ x, y, z }, --{ x, y, z }, --{ x, y, z } } local traficante = {} function onRequestDoActionFunc ( actionstr ) if actionstr == "create" then createLocation( 1 ) elseif actionstr == "destroy" then destroyElement( traficante.StopEmprego02 ) destroyElement( traficante.BlipFinalEmprego02 ) traficante.StopEmprego02, traficante.BlipFinalEmprego02 = nil, nil end end addEvent( "traficante:onRequestDoAction", true ) addEventHandler( "traficante:onRequestDoAction", root, onRequestDoActionFunc ) function FimDeTudoEmprego02 () if traficante.StopEmprego02 and isElementWithinMarker(localPlayer, traficante.StopEmprego02) and getElementData( localPlayer, "trabalho" ) == "traficante de drogas" then if indexID == #traficante_locations then indexID = nil destroyElement( traficante.StopEmprego02 ) destroyElement( traficante.BlipFinalEmprego02 ) traficante.StopEmprego02, traficante.BlipFinalEmprego02 = nil, nil return triggerServerEvent( "traficante:onPlayerFinishMission", localPlayer ) end outputChatBox( "#ffffff[ #001AFFTrabalho #ffffff] - Outra entrega disponível, leve a van até o local", 0,0,0,true ) createLocation( indexID + 1 ) end end addCommandHandler ( "entregar", FimDeTudoEmprego02 ) function AvisoEntregaFimEmprego02 (hitElement, dim) if isPedInVehicle(hitElement) and hitElement == localPlayer and dim and source == traficante.StopEmprego02 then outputChatBox("#ffffff[ #001AFFTrabalho #ffffff] - #FFFFFFDigite #001AFF/entregar #FFFFFFPara Concluir o Trabalho",0,0,0,true) end end addEventHandler( "onClientMarkerHit", resourceRoot, AvisoEntregaFimEmprego02 ) function createLocation( id ) indexID = tonumber(id) or 1 destroyElement( traficante.StopEmprego02 ) destroyElement( traficante.BlipFinalEmprego02 ) local x,y,z = unpack( markerTruck[indexID] ) traficante.StopEmprego02 = createMarker( x, y, z, "cylinder", 7, 0 ,26 ,255, 95 ) traficante.BlipFinalEmprego02 = createBlipAttachedTo( traficante.StopEmprego02, 0 ) return indexID end local _destroyElement = destroyElement function destroyElement(elem) if isElement(elem) then return _destroyElement(elem) end -- return false end As coordenadas basta você adicionar na tabela traficante_locations. Não testei o código em nenhum momento, então pode haver erros.
  4. E para evitar que o veículo exploda, que é o que ocorre quando a hp é inferior a 250, use: setElementHealth( vehicle, 250 ).
  5. Se você logou na conta e não mostrou nenhuma mensagem no chat só posso concluir que esse resource não tá ligado no server. E no script não há nenhum erro, então ao menos a saída no chat deveria sair.
  6. Esse setElementData já é outra coisa. O que eu mostrei é só colar depois do createVehicle: function inicio6 ( vx, vy, vz, vrot ) if client ~= source or not (vrot) then return end -- cheater detected! if isElement (veh6[client]) then destroyElement (veh6[client]) end setElementData( client, "Trabalho", true, false ) -- seta o jogador no element-data "Trabalho"; sinc com o client desativada veh6[client] = createVehicle ( 401, vx, vy, vz, 0, 0, vrot ) setElementData( veh6[client], "Owner", client ) outputChatBox ("#ffff00Drive the vehicle to the checkpoint. Note: You cannot leave the car during the mission.", client, 0, 0, 0, true) timerVeh6[client] = setTimer( addEndMissionTimer, 60000, 1, client ) local Bfim6 = createBlipAttachedTo ( veh6[client], 15 ) local player = client addEventHandler ( "onVehicleExplode", veh6[player], function () destroyElement (source) veh6[player] = nil takePlayerMoney ( player, 5000 ) setElementData( player, "Trabalho", nil, false ) outputChatBox("Mission failed, your veh6icle blew up.", player , 255, 0, 0) end) function entrar6 (thePlayer) if isTimer (timerVeh6[thePlayer]) then killTimer (timerVeh6[thePlayer]) outputChatBox("Você entrou no veiculo", player , 255, 0, 0) destroyElement( Bfim6 ) triggerClientEvent (thePlayer, "final6car", thePlayer, veh6[client]) end end addEventHandler ("onVehicleEnter", veh6[client], entrar6) end addEvent ("iniciaJob6", true) addEventHandler ("iniciaJob6", getRootElement(), inicio6) Eu esperava por um código do client maior sinceramente, até porque já tem mais de 5 meses que você criou esse post e esses nomes: "finalCarMission6", "final6car", "Mfim6" me levou a pensar que o script funciona com a criação de várias rotas. Mas enfim, o triggerClientEvent na linha 33 tem o veículo sendo passado desnecessariamente, remova veh6[client] do último argumento.
  7. Uma parte do código deve ser no lado client, esta aqui: veh = {} function playTheSound() soundinside = playSound3D("natal.mp3", source, 255, 255, 255,true) setElementInterior(soundinside, 2) setElementDimension(soundinside, 5) setSoundVolume(soundinside, 1) setSoundMinDistance(soundinside, 17) setSoundMaxDistance(soundinside, 100) soundout = playSound3D("natal.mp3", source, 255, 255, 255,true) setSoundVolume(soundout, 1) setSoundMinDistance(soundout, 17) setSoundMaxDistance(soundout, 100) end
  8. Difícil entender o seu código no client já que não vimos o seu código completo. Você pode detectar que o veículo é o mesmo da missão setando um element-data quando o veículo é criado. Exemplo: setElementData( veh6[client], "Owner", client ) Client: function finalmission6 (hitElement, md) if getElementType(hitElement) == "vehicle" and getElementData(hitElement, "Owner") == localPlayer and md then --O veículo da missão atingiu a marker end end addEventHandler("onClientMarkerHit", Mfim6, finalmission6)
  9. Dá pra deixar a arma invisível usando a função engineSetModelLODDistance. A AK-47 por exemplo: engineSetModelLODDistance ( 355, 0.001 ) Sobre esse script de usar armas personalizadas eu nunca fiz, então não tenho certeza se é assim que eles fazem.
  10. Melhor solução é usando shader.
  11. Você pode fazer um teste usando o resource runcode. Ligue ele e execute o comando: /crun setPlayerHudComponentVisible ("crosshair", true)
  12. Isso é verdade, ajudaria em muita coisa, não entendo por que ainda não fizeram, talvez não seja fácil como pensamos ou outra coisa... Poderiam também, adicionar um novo parâmetro no evento onVehicleEnter que seria warped, se o jogador entrou via warpPedIntoVehicle. E/ou também um novo parâmetro para o evento onVehicleRespawn, informando se o veículo "spawnou" usando a função respawnVehicle ou porque estava inativo (que é por conta da função setVehicleIdleRespawnDelay).
  13. É só 1 código, e no meta.xml você deixou ambos no lado server. Tente isto: Client: addEventHandler( "onClientResourceStart",resourceRoot, function() toggleControl("radar", false) setTimer( toggleControl, 1200000, 0, "radar", false ) end )
  14. Tô meio sem entender do que é essa marker e o blip. Se for de uma execução relacionada ao jogador local deixe no lado client. E sobre o veículo, depende de qual forma ele vai precisar ser "detectado", mas isso é usando um trigger no lado server.
  15. Se você usasse o Ctrl+f veria que a bind fica na linha 309. Edit: Na verdade você já deve saber disso, já que falou da função showInventory no post principal. Mas o que você quer na verdade? Você quer deixar os 2 inventários rodando no server? Se não quiser é simples, tire esse inventário padrão, mas tenha em mente que ele pode ter funções sendo utilizadas em outros scripts do gamemode. Se for só a bind, tá na linha 309 como eu já disse.
  16. Se o jogador entrar com a função warpPedIntoVehicle o timer não será removido, o mesmo vale pra função removePedFromVehicle (pelo que lembro, também não será chamada a função "onVehicleExit"). E também, o timer só é adicionado nos veículos que algum jogador saí; nos que permanecerem "inativos" sem nenhum jogador entrar, nada vai acontecer.
  17. Não tem nenhum argumento especificado na função, por isso não vai funcionar. O correto seria "getPlayerName(player). Remova esse client.lua e passe esse código para o lc.lua: function disableChat (message, messageType) cancelEvent () end addEventHandler ("onPlayerChat", getRootElement(), disableChat)
  18. Você deveria ter postado neste tópico que você fez: Lá mesmo eu já respondi.
  19. toggleControl( "radar", false ) Edit: Eu tenho um mapa F11 substituído e parece que depois de um tempo ou em certas ocasiões o mapa volta a mostrar. Você pode deixar em um timer pra resolver: setTimer( toggleControl, 1200000, 0, "radar", false ) -- 20 minutos
  20. São estas funções: setPedArmor( ThePlayer, 100 ) setElementModel( ThePlayer, skinID ) giveWeapon( ThePlayer, weaponID, true ) Coloque depois de "else" na linha 7. Deixe seu código mais legível e organizado, indente o seu código.
  21. Fiz o código mostrando os erros e outro com a correção, leia as linhas comentadas por favor: Markertrab = createMarker(2275.962890625, -1766.6162109375, 13.546875 -1, "cylinder",2.0 ,1, 255, 0, 255) -- use variáveis localmente sempre que puder veh[ThePlayer] = () -- "ThePlayer" será nulo e depois de "=" deve ser {} function Trab(ThePlayer) -- faltou verificar se o elemento que colidiu com a marker é mesmo um jogador if isElementWithinMarker(ThePlayer, Markertrab) then -- função inútil, a função já será chamada no evento "onMarkerHit" if veh[ThePlayer] and isElement( veh[ThePlayer] ) then destroyElement ( veh[ThePlayer] ) veh(ThePlayer) = nil -- forma errada de indexar a tabela; deve ser veh[ThePlayer] como está na linha acima -- além disso, você não vai precisar setar nil aqui já que será definido logo abaixo um valor nesse endereço end x,y,z = getElementPosition(ThePlayer) Trabalho = true -- troque com um: setElementData(ThePlayer, "Trabalho", true, false) veh[ThePlayer] = createVehicle(431,2266.1005859375, -1751.3544921875, 13.3828125) setPedSkin ( ThePlayer, 431 ) -- você está setando o mesmo ID do veículo como skin, esse id de skin não existe -- além disso, setPedSkin é uma função obsoleta, deve ser setElementModel outputChatBox("#00ff00=========================================",ThePlayer,0,0,0,true ) outputChatBox("#ff00ffLeve O Véiculo Até o Blip Em Seu Radar!!!",ThePlayer,0,0,0,true ) outputChatBox("#00ff00=========================================",ThePlayer,0,0,0,true ) end end addEventHandler( "onMarkerHit", Markertrab, Trab ) Corrigido: local Markertrab = createMarker(2275.962890625, -1766.6162109375, 13.546875 -1, "cylinder",2.0 ,1, 255, 0, 255) local veh = {} function Trab(ThePlayer, md) if getElementType(ThePlayer) == "player" and isPedInVehicle(ThePlayer) ~= true and md then if veh[ThePlayer] and isElement( veh[ThePlayer] ) then destroyElement ( veh[ThePlayer] ) end local x,y,z = getElementPosition(ThePlayer) setElementData(ThePlayer, "Trabalho", true, false) veh[ThePlayer] = createVehicle(431, x, y, z + 1) --setElementModel ( ThePlayer, um_id_de_skin_valido_aqui ) outputChatBox("#00ff00=========================================",ThePlayer,0,0,0,true ) outputChatBox("#ff00ffLeve O Véiculo Até o Blip Em Seu Radar!!!",ThePlayer,0,0,0,true ) outputChatBox("#00ff00=========================================",ThePlayer,0,0,0,true ) end end addEventHandler( "onMarkerHit", Markertrab, Trab ) Lembre-se antes de testar, ative o debug mode: /debugscript 3 Se não funcionar e não mostrar erros no debug, mostre aqui o seu arquivo meta.xml.
  22. Da forma que o código está você não vai conseguir especificar alguém, esse timer seria pra quê? Acho que isso deveria estar no comando /uber.
  23. Lembre-se de ocultar antes as markers (Ex: setElementVisibleTo( MarkerPM, root, false ) ). E também a variável "Trabalho" deve ser configurada para funcionar individualmente, pra quem digitou o comando. Use uma tabela no lugar (ou setElementData). Também não se esqueça de adicionar o resource na ACL.
  24. A função destruir não tá recebendo o jogador, então não vai funcionar.
×
×
  • Create New...