Jump to content

SherlocK

Members
  • Posts

    41
  • Joined

  • Last visited

Everything posted by SherlocK

  1. Show de bola, deu tudo certo. Mas achei um outro probleminha que não sei se é um bug do mta ou do scritp. Diversas vezes ao mexer no script o giroflex simplesmente não funciona, aperta H e ele não liga, ou ele dá apenas uma piscada e não funciona mais. Já aconteceu ao trocar o carro, e até mesmo sem trocar ele, apenas fazendo modificação na hand ou outra coisa sem mexer no giroflex. Não ocorre nenhum erro no debug nem nada. Sabe o que pode ser? Ou tem como eu colocar um sistema de giroflex que costuma ser usado nas viaturas normais nesse script?
  2. Fiz as alterações porém está dando o seguinte erro - linha175: bad argument #1 to 'pairs' (table expected, got nil). Tentei resolver mas não consegui, mudei o "i" e "v" entre a linha 175 e 190 em alguns partes do código mas continuou o mesmo erro. Segue o código atualizado
  3. ok, perfeito! Sabe dizer se é possível fazer essa adição onde a hand dessas viaturas são diferentes das predefinições do outro script? Antes dessas alterações que você conseguiu fazer eu usava o setVehicleHandling quando criava o veiculo, porém agora com essa tabela individual não faço a menor ideia de como ajustar essa configuração...
  4. Outra coisa que faltou a questão das handlings, por ser uma viatura gostaria de ajustar para ser um pouco melhor do que a do carro original. Eu mexo com handling e costumo usar um script onde qualquer carro criado no servidor seta a hand predefinida. Neste script poderia ser de duas formas, ele pode ter uma configuração X definida, como "maxVelocity" = 240, "engineAcceleration" = 19, e etc... Ou ele adicionar um valor mediante a hand que o carro já vem, "maxVelocity" + 10, "engineAcceleration" + 1, e etc... Não sei se é possível fazer isso com o script desta forma setando a hand no servidor, mas eu prefiro desta forma pois outros scripts que seta a hand no player acontece de mexer na suspensão ou qualquer outra coisa, ao sair e retornar ao carro, ela seta a hand novamente e tira qualquer alteração. Segue abaixo o script de hand que uso com uma hand de exemplo para ajudar.
  5. Show de bola, vou testar aqui e logo digo se deu certo, desde já muito obrigado!! Perfeito!! Funcionou, porém ficou aquele outro detalhe referente ao player conseguir entrar no carro caso esteja com a porta aberta. Quando está com as portas fechadas ele dá como trancado, se está aberta a porta ou até mesmo caso não tenha ele entra.
  6. Gostaria de saber se é possível configurar um "grupo" de veículos criado através de um script onde tenha limitação por ACL. Vou ser mais específico, estou criando um script onde spawna um carro qualquer que possui na cidade com algumas configurações através do spawn, como Sirens, handling, cor e etc. Porém só consigo criar a limitação do veículo todo, mesmo fora desse spawn há a limitação até mesmo sem por o id do carro na função. Tem como eu criar um grupo por exemplo, vtr1, vtr2, vtr3... e ajustar a limitação de acl para apenas essas vtr's específicas, deixando os demais spawns do mesmo carro de forma livre? Ex. Conce, painel e etc. Outra coisa, a limitação está de uma forma que o veículo pareça trancado para quem não está na ACL, porém se alguém tentar entrar no carro estando com a porta aberta o player consegue entrar no veículo. Como faço para que quando o player que não esteja na ACL não tente nem mesmo entrar no carro, ele aperta F e não acontece nada somente acusa a mensagem? local auto1 = createVehicle ( 587, 1595.05359, -1711.63843, 5.6, 0, 0.0, 0 ) --- setElementRotation ( auto1, 0, 0, 0) removeVehicleSirens(auto1) addVehicleSirens(auto1, 6, 2, true, false, true, true ) setVehicleSirens(auto1, 1, -0.850, 2.400, 0.000, 255, 0, 0, 255, 255 ) setVehicleSirens(auto1, 2, 0.850, 2.400, 0.000, 0, 55, 255, 255, 255 ) setVehicleSirens(auto1, 3, -0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto1, 4, 0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto1, 5, -0.500, -0.350, 0.630, 255, 0, 0, 255, 255 ) setVehicleSirens(auto1, 6, 0.500, -0.350, 0.630, 0, 0, 255, 255, 255 ) setVehicleColor( auto1, 0, 0, 0, 255,255,255, 255,255,255 ,255,255,255 ) setElementData(auto1,"Descaracterizada",true) setElementFrozen (auto1, false ) local auto2 = createVehicle ( 587, 1590.96777, -1711.61438, 5.6, 0, 0, 0 ) --- setElementRotation ( auto2, 0, 0, 0) removeVehicleSirens(auto2) addVehicleSirens(auto2, 6, 2, true, false, true, true ) setVehicleSirens(auto2, 1, -0.850, 2.400, 0.000, 255, 0, 0, 255, 255 ) setVehicleSirens(auto2, 2, 0.850, 2.400, 0.000, 0, 55, 255, 255, 255 ) setVehicleSirens(auto2, 3, -0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto2, 4, 0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto2, 5, -0.500, -0.350, 0.630, 255, 0, 0, 255, 255 ) setVehicleSirens(auto2, 6, 0.500, -0.350, 0.630, 0, 0, 255, 255, 255 ) setVehicleColor( auto2, 0, 0, 0, 255,255,255, 255,255,255 ,255,255,255 ) setElementData(auto2,"Descaracterizada",true) setElementFrozen (auto2, false ) local auto3 = createVehicle ( 587, 1587.30481, -1712.10596, 5.6,0,0.0,0 ) --- removeVehicleSirens(auto3) addVehicleSirens(auto3, 6, 2, true, false, true, true ) setVehicleSirens(auto3, 1, -0.850, 2.400, 0.000, 255, 0, 0, 255, 255 ) setVehicleSirens(auto3, 2, 0.850, 2.400, 0.000, 0, 55, 255, 255, 255 ) setVehicleSirens(auto3, 3, -0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto3, 4, 0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto3, 5, -0.500, -0.350, 0.630, 255, 0, 0, 255, 255 ) setVehicleSirens(auto3, 6, 0.500, -0.350, 0.630, 0, 0, 255, 255, 255 ) setVehicleColor( auto3, 0, 0, 0, 0,0,0, 255,255,255 ,255,255,255 ) setElementData(auto3,"Descaracterizada",true) setElementFrozen (auto3, false ) local auto4 = createVehicle ( 587, 1583.30481, -1712.10596, 5.6,0,0.0,0 ) --- setElementRotation ( auto4, 0, 0, 0) removeVehicleSirens(auto4) addVehicleSirens(auto4, 6, 2, true, false, true, true ) setVehicleSirens(auto4, 1, -0.850, 2.400, 0.000, 255, 0, 0, 255, 255 ) setVehicleSirens(auto4, 2, 0.850, 2.400, 0.000, 0, 55, 255, 255, 255 ) setVehicleSirens(auto4, 3, -0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto4, 4, 0.700, -2.100, 0.100, 255, 0, 0, 255, 255 ) setVehicleSirens(auto4, 5, -0.500, -0.350, 0.630, 255, 0, 0, 255, 255 ) setVehicleSirens(auto4, 6, 0.500, -0.350, 0.630, 0, 0, 255, 255, 255 ) setVehicleColor( auto4, 0, 0, 0, 0,0,0, 255,255,255 ,255,255,255 ) setElementData(auto4,"Descaracterizada",true) setElementFrozen (auto4, false ) function enterVehicle(thePlayer, seat, jacked) local account = getPlayerAccount(thePlayer) if (not account or isGuestAccount(account)) then return end local accountName = getAccountName(account) if (not isObjectInACLGroup("user.".. accountName,aclGetGroup("PF"))) then setVehicleLocked(source, true) outputChatBox("#ffff00Você não é da polícia", thePlayer) else setVehicleLocked(source, false) end end addEventHandler("onVehicleStartEnter",root,enterVehicle) ---- Reparo VTR local marker = createMarker(1585.41992, -1677.68030, 5.89699-0.9,"cylinder", 2, 20, 20, 20, 255) function reparar(el,md) if getElementType(el)=="vehicle" then if getElementModel(el)==587 then p=getVehicleController(el) local money = getPlayerMoney(p) if (money >= 0) then takePlayerMoney(p, 0) outputChatBox("Reparando veículo! Aguarde 5 segundos",p,255,0,0) setElementFrozen (el, true ) setTimer(function() setElementFrozen(el, false) fixVehicle(el) end, 5000, 1) else outputChatBox("Não podemos reparar sua viatura, você está com saldo negativo!",p,255,255,255) return end end end end addEventHandler("onMarkerHit", marker, reparar)
  7. Estou tentando fazer um script de recuo que funcione de forma mais realista mexendo o eixo Z também, porém da forma que tentei fazer não funcionou, se alguém puder me dar uma ajuda fico grato. local weap = {shot=false,timer=false} addEventHandler("onClientPlayerWeaponFire", localPlayer, function() local rot = getPedCameraRotation(localPlayer) if (isTimer(weap.timer)) then killTimer(weap.timer); end if (not weap.shot) then setCameraMatrix (x, y-0.2, z+0.3, lx, ly, lz) setCameraTarget ( localPlayer ) weap.shot = true weap.timer = setTimer(setPedCameraRotation, 50, 1, localPlayer, -(rot+0.28)) else setCameraMatrix (x, y+0.2, z+0.3, lx, ly, lz) setCameraTarget ( localPlayer ) weap.shot = false weap.timer = setTimer(setPedCameraRotation, 50, 1, localPlayer, -(rot-0.28)) end end)
  8. Estou tentando fazer um script de recuo que funcione de forma mais realista mexendo o eixo Z também, porém da forma que tentei fazer não funcionou, se alguém puder me dar uma ajuda fico grato. local weap = {shot=false,timer=false} addEventHandler("onClientPlayerWeaponFire", localPlayer, function() local rot = getPedCameraRotation(localPlayer) if (isTimer(weap.timer)) then killTimer(weap.timer); end if (not weap.shot) then setCameraMatrix (x, y-0.2, z+0.3, lx, ly, lz) setCameraTarget ( localPlayer ) weap.shot = true weap.timer = setTimer(setPedCameraRotation, 50, 1, localPlayer, -(rot+0.28)) else setCameraMatrix (x, y+0.2, z+0.3, lx, ly, lz) setCameraTarget ( localPlayer ) weap.shot = false weap.timer = setTimer(setPedCameraRotation, 50, 1, localPlayer, -(rot-0.28)) end end)
  9. function pegarTag ( Jogador ) outputChatBox ("1") if isElementWithinMarker (Jogador, marker ) then outputChatBox ("2") if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(Jogador)), aclGetGroup("AclPolicial")) then outputChatBox ("3") aclGroupAddObject (aclGetGroup("ComandosPolicia"), "user."..getAccountName(getPlayerAccount(Jogador))) outputChatBox ("4") setPedSkin ( Jogador, 255 ) outputChatBox ("5") outputChatBox ("|#FFFF00Policia Federal#FFFFFF|-Agora você está em seviço na PF", Jogador, 255, 255, 255, true) else outputChatBox ('|#FF0000Aviso#FFFFFF|- Você não tem permissão! Saia deste local', Jogador, 255, 255, 255, true) end end end addCommandHandler ( "trabalhar", pegarTag ) ta lendo tudo certinho, do 1 - 5 acabei de ver aqui, o nome na acl admin estava incorreto, por isso n ia, dscp ae o transtorno, ta funcionando 100% vlw
  10. Como vc disse qlqr um podia ter acesso eu tinha deixado livre pois o local fica dentro da base que é restrita por acl, entao apenas quem está no grupo conseguiria chegar lá, mas obg por limitar por acl, segurança nunca é demais, vou testar aqui não deu, continua n adicionando na ACL, coloquei pra pegar uma skin tbm, ele pega a skin, reconhece q precisa estar em um grupo para pegar a tag, mas ele n pega, funciona td perfeitamente mas ele n adiciona o player na tag
  11. OK, eh que tinha outra msg que tirei e acabei esquecendo de tirar o "se não" tbm não deu certo, continua sem adicionar na acl
  12. ja adicionei como resouce na acl de admin e n mudou n, nenhum erro
  13. Fiz o script onde o player vai até o marker digita o comando /trabalhar para iniciar seu trabalho e pegar o acesso do painel e etc, mas ele não está funcionando corretamente, ele diz q o jogador bateu o ponto mas não recebe a tag com as permissões do painel, no caso ele n adiciona na acl programada. marker = createMarker(1559.9,-1605.8,22.25 ,"cylinder", 1.1, 255 ,0 ,0 ,0) function pegarTag ( source ) if isElementWithinMarker (source, marker ) then aclGroupAddObject (aclGetGroup("ComandosPolicia"), "user."..getAccountName(getPlayerAccount(source))) outputChatBox ("|#FFFF00Policia Federal#FFFFFF|-Agora você está em seviço na PF",source,255,255,255,true) else end end addCommandHandler ( "trabalhar", pegarTag ) function tirarTag ( source ) if isElementWithinMarker (source, marker ) then aclGroupRemoveObject (aclGetGroup("ComandosPolicia"), "user."..getAccountName(getPlayerAccount(source))) setPedSkin ( source, 0 ) outputChatBox ('|#FFFF00Policia Feredal#FFFFFF|-Você está fora de serviço da PF.',source,255,255,255,true) else end end addCommandHandler ( "sair", tirarTag )
  14. ah ok, vc eh foda, vou testar ele aqui entao ja pronto daí vou assistir o vídeo entender bem toda a linha de raciocínio e comandos, daí eu vou tentar escrever o código pra entender melhor cada função funcionou perfeitamente, e muito melhor doq eu queria, parabéns man, muito obg pela sua ajuda, desculpa ocupar seu tempo, desculpa ae qlqr coisa sou muito leigo com essas paradas de programação e vc tirou um tempo para me ajudar. Obrigado pela força man, se eh foda
  15. ok, vc n me passou o código então vou assistindo e fazendo aqui
  16. no caso o parâmetro ownerAccount eu n vou precisar fazer correto?
  17. fiz isso juntamente com a rotação, mas ele n reconheceu q a vaga ficou livre novamente, esta certo? ou eu fiz errado? detran = { -- x, y, z, ocupado [1] = {746.4, -1334.81, 13.54, false}, -- Esta coordenada está no seu script. [2] = {751.4, -1334.81, 13.54, false}, [3] = {756.4, -1334.81, 13.54, false}, -- Esta coordenada eu inventei. } addEvent("WarpMyVehicle", true) addEventHandler("WarpMyVehicle", root, function(id) if not isPedInVehicle (source) then if getElementInterior(source) == 0 then if getPlayerMoney(source) >= tonumber(1000) then local vehicle = getVehicleByID(id) if isElement(vehicle) then for i, vaga in ipairs (detran) do -- Para cada vaga, faça: local x, y, z, status = unpack (vaga) -- x, y, z são as coordenadas pra onde teleportar o veículo. if not status then -- Se a vaga está desocupada, então: vaga[4] = vehicle vaga[5] = createColSphere (vaga[1], vaga[2], vaga[3], 5) -- Adiciona um quinto elemento na vaga, depois do false. Que é uma colShape esférica de 5 metros de raio. takePlayerMoney (source, 1000) setElementPosition (vehicle, x, y, z) setElementRotation(vehicle,0,0,180) outputChatBox ("O seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." foi entregue ao Detran.", source, 193, 193, 193, true) return end end outputChatBox ("Não há vagas disponíveis no Detran.", source, 193, 193, 193, true) else outputChatBox ("O seu veiculo não está spawnado.", source, 193, 193, 193, true) end else outputChatBox ("Você não tem os meios de se teletransportar para o veiculo.", source, 193, 193, 193, true) end else outputChatBox ("Você só poderá mudar de veiculo se sair do atual.", source, 193, 193, 193, true) end else outputChatBox ("Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 193, 193, 193, true) end end) ----- assim tbm n deu addEvent("WarpMyVehicle", true) addEventHandler("WarpMyVehicle", root, function(id) if not isPedInVehicle (source) then if getElementInterior(source) == 0 then if getPlayerMoney(source) >= tonumber(1000) then local vehicle = getVehicleByID(id) if isElement(vehicle) then for i, vaga in ipairs (detran) do -- Para cada vaga, faça: vaga[5] = createColSphere (vaga[1], vaga[2], vaga[3], 5) -- Adiciona um quinto elemento na vaga, depois do false. Que é uma colShape esférica de 5 metros de raio. local x, y, z, status = unpack (vaga) -- x, y, z são as coordenadas pra onde teleportar o veículo. if not status then -- Se a vaga está desocupada, então: vaga[4] = vehicle takePlayerMoney (source, 1000) setElementPosition (vehicle, x, y, z) setElementRotation(vehicle,0,0,180) outputChatBox ("O seu veiculo #00FF66"..(customCarNames[getElementModel(vehicle)] or getVehicleNameFromModel(getElementModel(vehicle))).." #c1c1c1foi entregue ao Detran.", source, 193, 193, 193, true) return end end outputChatBox ("Não há vagas disponíveis no Detran.", source, 193, 193, 193, true) else outputChatBox ("O seu veiculo não está spawnado.", source, 193, 193, 193, true) end else outputChatBox ("Você não tem os meios de se teletransportar para o veiculo.", source, 193, 193, 193, true) end else outputChatBox ("Você só poderá mudar de veiculo se sair do atual.", source, 193, 193, 193, true) end else outputChatBox ("Nós não podemos dirigir seu veiculo. Por favor, sair do outro veiculo.", source, 193, 193, 193, true) end end)
  18. certo e como faria isso? nunca mexi com colShape, olhei a sintaxe e os exemplos mas ainda n entendi em como encaixar essa função no script q tenho. No caso isso tiraria a função recover do script certo? pois no próprio warp reconheceria q a vaga está livre
  19. oq estou tentando pedir é, tem como fazer com que ou fazer um shape nas vagas para reconhecer se há um veículo la ou não para acusar se a vaga está livre ou ocupada, ou fazer com que o comando para recuperar o carro do detran ( tirar da vaga ) seja restrito para o local do detran, onde ninguem q estiver fora do pátio consiga dar este comando, ou recuperar pelo painel e tals
  20. sim, mas pelo oq entendi o comando seria substituído por uma função do painel de veículos. que teria o msm princípio
  21. sim, mas o carro só vai para o detran, caso não esteja com ele dentro, entao ele terá q ir apé até o detran para retirar o carro. Se ele teleportar pra la vai quebrar o RP da seguinte forma, exemplo: ele está em LV e o carro quebrou, pra n chamar mec q vai demorar um monte para ir até la, ele vai manda o carro para o detran e vai e teleporta pra la logo após usando o "recv" para voltar pra cidade. ou se o carro teleportar até ele pode acontecer o seguinte, ele esta dando fuga, o carro dele quebrou, ele spawna outro e clica em recuperar, o carro eh teleportado até ele e ele continua a fuga usando outro carro.
  22. Eu retirei essa função, quando recuperava o carro, ele ia direto para o jogador. Agr ele vai para o pátio do detran, onde ele tem q ir la e pegar o carro. O servidor eh de RP, se colocar pra teleportar vai quebrar esse RP
  23. e n ficaria mais simples de colocar um shape para reconhecer se o veículo está no local da vaga ou não? pois pelo painel o cara poderia clicar em sla "Pegar Carro", e ser teleportado pra la de onde estivesse, quebrando o RP. pq tipo teria o Recuperar q o carro é teleportado para lá, e o "Pegar Carro" q seria pra retirar ele do pátio. Ou sla, tem como definir uma zona onde o comando só vai funcionar se ele tiver naquele local do detran?
  24. sim, eu digo a parte do recv entendeu, q tem q dar o comando para q o script entenda q a vaga ficou livre
  25. ok, entendi como funciona e agradeço as alterações a mais q você fez, mas eu não gostaria q para recuperar fosse por comando, pois o cara la na casa do chapéu vai dar o comando e vai ser teleportado ali, teria como fazer algo juntamente neste meu script que é de concessionária onde o cara chega no detran e mostra os carros dele que estão ali para ele recuperar, ou então como vc msm citou que seria bem mais simples acredito eu, que seria criar um shape onde identifica se tem um carro ali ou n para aplicar se a vaga esta livre ou ocupada ainda
×
×
  • Create New...