Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,981
  • Joined

  • Last visited

  • Days Won

    181

Everything posted by Lord Henry

  1. Ele apenas disse que moveu este tópico para a seção portuguesa. É pra vc tomar cuidado na próxima vez que for criar um tópico em português para colocar na área correta.
  2. @_SAXI_Você precisa escrever em português pois este tópico está na seção Portuguesa. You need to write in portuguese because this thread is in the Portuguese section.
  3. De nada. Não se esqueça de deixar um Thanks no comentário que te ajudou.
  4. Crie um marker (createMarker) invisível ao redor do objeto e maior que ele. Assim o jogador sempre irá colidir no marker independente se o objeto tem colisão ou não. Dai o sistema funciona usando onPlayerMarkerHit em vez de onPlayerTarget.
  5. Isso é bug do próprio GTA SA. Você poderia tentar "atualizar" a rotação do attachElement ao mexer no mouse dentro de um onClientRender, mas seria gambiarra e não tenho certeza se funcionaria.
  6. Coloque isso antes do outputChatBox: if (weapName == "knife") then weapName = "faca" end Se for fazer com várias armas, implemente uma tabela. E indente seu código.
  7. Cara, pode ser erro do MTA, se as vezes funciona e as vezes não. Se fosse erro do script, ele sempre falharia.
  8. @LeonardoSsComece por aqui: addCommandHandler getPlayersInACLGroup (função útil, inclua o código-fonte dela no seu script para funcionar) outputChatBox
  9. A função setElementData sempre retornará um valor booleano. (true se ela funcionou e false se não funcionou) Por esse motivo a variável recebeu sempre será booleana. Se você quer apenas obter o novo valor do elementData do jogador, basta fazer assim: setElementData(thePlayer, "droga", getElementData(thePlayer, "droga") + 1) local recebeu = getElementData(thePlayer, "droga")
  10. A tabela vehHandling não existe fora daquele escopo do for onde ela foi criada, pois ela está numa variável local. Remova o for dela lá em baixo e coloque dentro do for principal, que cria os veículos. Faça assim: for i,v in pairs (vehAutos) do -- Para cada item da tabela vehAutos, faça: local vehInfos = v["Veh"] -- Obtém a tabela "Veh" do item. local vehSirens = v["Sirens"] -- Obtém a tabela "Sirens" do item. local vehHandling = v["Handling"] -- Obtém a tabela "Handling" do item. local ID, posX, posY, posZ, rotX, rotY, rotZ, r1, g1, b1, r2, g2, b2, r3, g3, b3, farolR, farolG, farolB = unpack(vehInfos) -- Obtém os dados da tabela vehInfos, separando em cada variável. vehAutos[i]["Viatura"] = createVehicle(ID, posX, posY, posZ, rotX, rotY, rotZ) -- Cria a viatura e armazena ela na tabela. removeVehicleSirens(vehAutos[i]["Viatura"]) -- Remove a sirene original, caso tenha. setVehicleColor(vehAutos[i]["Viatura"], r1, g1, b1, r2, g2, b2, r3, g3, b3) -- Define as cores da viatura. setVehicleHeadLightColor(vehAutos[i]["Viatura"], farolR, farolG, farolB) -- Define a cor do farol da viatura. setElementData(vehAutos[i]["Viatura"], "Descaracterizada", true) -- Define essa data na viatura. -- setElementFrozen(vehAutos[i]["Viatura"], false) -- Descongela a viatura (desnecessário, mas está aqui caso queira) for ii,vv in ipairs (vehSirens) do -- Para cada item da tabela vehSirens, faça: if (ii == 1) then -- Se é o primeiro item, então: local quantasSirenes, tipoSirenes, flag360, flagCheckLos, piscarAleatorio, semSom = unpack(vv) -- Obtém os dados da tabela que está no primeiro item, separando em cada variável. addVehicleSirens(vehAutos[i]["Viatura"], quantasSirenes, tipoSirenes, flag360, flagCheckLos, piscarAleatorio, semSom) else -- Se não for o primeiro item, então: local sirenePoint, posX, posY, posZ, r, g, b, a, aMinDia = unpack(vv) -- Obtém os dados da tabela do item, separando em cada variável. setVehicleSirens(vehAutos[i]["Viatura"], sirenePoint, posX, posY, posZ, r, g, b, a, aMinDia) end end for handling, value in pairs (vehHandling) do -- Para cada item da tabela vehHandling, faça: setVehicleHandling (vehAutos[i]["Viatura"], handling, value) -- Aplica a handling e seu respectivo valor no veículo. end end
  11. Ali em baixo do ["Viatura"] crie um ["Handling"] para cada veículo. E dentro deste vc coloca a tabela da handling do veículo. Dai no script vc chama essa parte da tabela da mesma maneira que os outros foram. Assim: local vehAutos = { [1] = { -- Infos da viatura 1. ["Veh"] = {587, 1595.05, -1711.64, 5.6, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255, 255, 255, 255, 255, 255}, -- ID, posX, posY, posZ, rotX, rotY, rotZ, r1, g1, b1, r2, g2, b2, r3, g3, b3, farolR, farolG, farolB. (cor 4 da lataria não existe) ["Sirens"] = { -- Cada sirene separada numa sub-tabela. [1] = {6, 2, true, false, true, true}, -- (addVehicleSirens) quantasSirenes, tipoSirenes, flag360, flagCheckLos, piscarAleatorio, semSom. [2] = {1, -0.85, 2.4, 0, 255, 0, 0, 255, 255}, -- (setVehicleSirens) sirenePoint, posX, posY, posZ, r, g, b, a, aMinDia. [3] = {2, 0.85, 2.4, 0, 0, 55, 255, 255, 255}, [4] = {3, -0.7, -2.1, 0, 255, 0, 0, 255, 255}, [5] = {4, 0.7, -2.1, 0, 255, 0, 0, 255, 255}, [6] = {5, -0.5, -0.35, 0.63, 255, 0, 0, 255, 255}, [7] = {6, 0.5, -0.35, 0.63, 0, 0, 255, 255, 255}, }, ["Viatura"] = false, -- Onde o veículo (elemento) ficará armazenado. ["Handling"] = { -- (setVehicleHandling) ["maxVelocity"] = 230, ["engineAcceleration"] = 18, ["engineInertia"] = 60, ["driveType"] = "rwd", ["steeringLock"] = 40, ["collisionDamageMultiplier"] = 0.45, ["mass"] = 1500, ["turnMass"] = 3500, ["dragCoeff"] = 0.8, ["centerOfMass"] = { [1]=0, [2]=-0.3, [3]=-0.15 }, ["suspensionForceLevel"] = 1, ["suspensionDamping"] = 0.2, ["suspensionUpperLimit"] = 0.28, ["suspensionLowerLimit"] = -0.1, ["tractionMultiplier"] = 0.8, ["tractionLoss"] = 1, ["tractionBias"] = 0.5, ["brakeDeceleration"] = 7, ["brakeBias"] = 0.7, }, },
  12. Por shaders eu n sei se é possível fazer isso que vc quer, uma vez que a textura original precisa ter transparência para aceitar uma nova textura também transparente. Posso estar equivocado, mas sempre que tentei colocar textura transparente no lugar de uma opaca, ele preencheu a transparência da nova textura com preto.
  13. Você deve trancar o veículo imediatamente após ele ser criado. Se o jogador vier com uma serra elétrica sem tentar entrar no veículo, ele consegue arrancar a porta do veículo caso ele não esteja trancado. Sempre que o motorista sair do veículo ou alguém sem permissão tentar entrar como motorista, tranque novamente. Sobre a handling, sim é melhor setar pelo server-side e do que no client-side. E você já está fazendo certo em usar tabelas para guardar as informações dos handlings.
  14. @Lima_Nós não oferecemos scripts prontos. Tente programar o seu próprio e assim poderemos lhe ajudar respondendo dúvidas.
  15. Crie o veículo dentro de uma tabela, juntamente com as características dele. Espero ter ajudado. Preencha o resto da tabela você mesmo.
  16. Não precisa passar thePlayer por parâmetro, só se fosse um source. setTimer(function() setPedAnimation(thePlayer, nil) toggleAllControls(thePlayer, true) local pagou = takePlayerMoney(thePlayer, 30000) if pagou then local recebeu = giveWeapon(thePlayer, 30, 300) if recebeu then outputChatBox("Você Fabricou Uma AK47 Com Sucesso!", thePlayer, 0, 255, 0, true) end end end, 4000, 1)
  17. Não utilize o comando para ativar a função igual o nome do evento. E o esquema de clicar não está no código que vc mostrou.
  18. Não seria mais fácil vc apenas mudar o TXD do objeto com a textura nova?
  19. La nos arquivos .map dos seus mods de mapas, defina a dimensão dos objetos como -1, fazendo com que ele apareça em todas as dimensões.
  20. Primeiramente, correção de indentação. Você deve considerar o function do setTimer como um escopo novo, então tudo que estiver depois do setTimer deve ter +1 recuo. Outra coisa, depois da variável (local pagou = ...) não se adiciona +1 recuo, só depois de funções e condições. setTimer(function(thePlayer2) setPedAnimation(thePlayer2, nil) toggleAllControls(thePlayer, true) local pagou = takePlayerMoney(thePlayer2, 30000) if pagou then local recebeu = giveWeapon(thePlayer2, 30, 300) if recebeu then outputChatBox("Você Fabricou Uma AK47 Com Sucesso!", thePlayer2, 0, 255, 0, true) end end end, 4000, 1, thePlayer) Segundamente, respondendo sua dúvida: Adicione um else antes daquele end que pertence ao if getPlayerMoney... Dai dentro desse else, coloque um outputChatBox do erro.
  21. @DaddyMTAÉ obrigatório incluir o IP do servidor na sua divulgação.
  22. Faltou atribuir valor no parâmetro de função do setTimer. Vc atribui o valor depois do tempo do timer. function FabricarAK(thePlayer) if isElementWithinMarker(thePlayer, markerAk47) then if getPlayerMoney(thePlayer) >= 3000 then setElementPosition(thePlayer, 1050.2840039062, -305.37005615234, 72.99308013916) setElementRotation(thePlayer, 0, 0, 270) setPedAnimation(thePlayer, "INT_HOUSE", "wash_up", -1, true, false, false) setTimer(function(thePlayer2) -- Não pode ser igual ao parâmetro da outra função. setPedAnimation(thePlayer2, nil) local retirou = takePlayerMoney(thePlayer2) if retirou then giveWeapon(thePlayer2, 30, 300) end end, 3000, 1, thePlayer) -- Valor do parâmetro de função definido aqui, thePlayer2 recebe o valor que estiver em thePlayer. end end end addCommandHandler("ak47", FabricarAK) E na próxima vez indente seu código adequadamente. Somente noobs não sabem indentar código.
×
×
  • Create New...