Jump to content

androksi

Other Languages Moderators
  • Posts

    542
  • Joined

  • Last visited

  • Days Won

    37

Everything posted by androksi

  1. Olá. Seja bem-vindo ao fórum. Mostre o trecho do código onde contém a ação de roubar. Caso queira tentar sozinho (e deve) use a função isObjectInACLGroup. Veja o exemplo da Wiki.
  2. Olá. Como a tecla F ou ENTER fazem o jogador entrar como motorista, basta fazer uma lógica contrária. Se tentarem entrar pelo G (portas de passageiro), cancela o evento. Código de exemplo: -- Tabela com os IDs de veículos que só poderão ter um motorista. local restrictedVehicles = { [411] = true, [420] = true } addEventHandler("onVehicleStartEnter", root, function(player, _, _, door) local vehModel = getElementModel(source) -- Pega o ID do veículo. if not restrictedVehicles[vehModel] then -- Checa se o ID consta na tabela. Se sim, então retorna false e para a execução. return false end if door ~= 0 then -- Se tentarem entrar como passageiro, então só cancelamos o evento. cancelEvent() outputChatBox("* Este veículo só pode haver um motorista. Passageiros não podem entrar.", player, 255, 0, 0) end end)
  3. Olá. Fiz um código de exemplo (não testei):
  4. Those images are missing in the folder.
  5. Olá. Bem-vindo ao fórum. Sim, o nome da textura do shader dos veículos chama-se shad_car. Caso futuramente você tenha dúvidas sobre o nome de alguma textura, utilize este resource que irá facilitar sua busca.
  6. Olá. É realmente necessário utilizar o client-side para isso? Server-side ficaria melhor. Mas enfim, esse evento do client-side recebe dois argumentos, o primeiro é o player, que você já o usa, e o segundo é o assento em que o jogador entrou. Basta verificá-lo. Aquele FOR ali não faz sentido.
  7. Hello. I don't know what is the problem, maybe something related to your firewall settings, or you are using an older version of MTA Server. But you can use this site as an alternative to check your ports.
  8. O código que o Boechat te mandou parece bom e parece funcionar. Só um adendo: faça uma tabela das skins que irão andar apenas no modo lento, pra evitar fazer 10 condições desnecessárias. Usando o código do Boechat: local nonSprintSkins = { -- [ID DA SKIN] = true [200] = true, [2] = true, [51] = true } function onPlayerModelChange (oldModel, newModel) --Os parâmetros são a antiga e a nova skin if ( nonSprintSkins[newModel] ) then -- Verifica se a nova skin é a de ID 200 toggleControl ( source, "sprint", false ) --Se for: else toggleControl ( source, "sprint", true ) --Se não for: end end addEventHandler ( "onElementModelChange", root, onPlayerModelChange ) -- Aqui também tinha faltado o elemento a qual o evento vai ser anexado, no caso o root.
  9. Você pode usar o evento onElementModelChange. Caso o ID seja 200, use a função toggleControl no jogador, usando a propriedade "sprint" e definindo-o como false. Lembre-se de reverter caso não seja a skin 200. Recomendo criar uma tabela com os IDs.
  10. I have made an example for you. If you aren't able to understand the code below, I'd suggest you to study Lua and MTA: SA Scripting. There are good topics here, on the forums. Here are some of them: (by MTA Staff BOT, on our Discord server) Client-side: Server-side:
  11. De nada. Agradeço a oferta, mas no momento não.
  12. Da forma que você está fazendo, acredito que alterando de: MarkerTable Para: Marker[i] Resolveria o problema.
  13. Hello. What exactly you wanna do? If it's only show someone else's life and armor, you can create a server-side command and use these following functions: getPlayerFromName getElementHealth getPedArmor outputChatBox
  14. Sim, é possível. Fiz para explodir quando bater no chão. Segue o código de testes: Agora, para fazer com que qualquer hit na granada, fizesse a explodir, seria um pouco mais complexo. Fiz alguns testes, mas não funcionou muito bem. Caso se interesse, tentei usando a função isLineOfSightClear.
  15. Olá. "MarkerTable" não é um marker, por isso é impossível obter a posição do elemento.
  16. Mas o que é isso que eu tô vendo na tela do meu computador? Caraca, salvando aquilo tudo de dados numa conta. Imagino que tenha bastante tendas e veículos, não é a melhor forma. ?Mas enfim, tente remover a senha, deixe só o nome da pseudo-conta.
  17. Olá. Seja bem-vindo ao fórum. Ééé, infelizmente isso não é possível ainda, de maneira nativa - mas você pode tentar algo com a função setVehicleHandling.
  18. Olá. Seja bem-vindo ao fórum. - sim, o tópico está na seção correta. Sobre o seu erro, você precisa verificar se a conta é válida. A função getPlayerAccount retorna false caso o jogador não tenha feito o login, esse é o motivo de aparecer aquele erro, dizendo que esperava uma conta, mas obteve um valor boleano (true/false). Use isGuestAccount para checar. Aqui um exemplo do seu erro (não olhei o restante do código): Você deve fazer assim: local account = getPlayerAccount(player) if isGuestAccount(account) then return false end Caso seja uma conta inválida, o código abaixo não seria executado. Apenas os jogadores que tenham feito o login iriam passar pela condição.
  19. Hello. Welcome to the forums. You can just click on "Load defaults" button. The image below explains better (I put my MTA in your native language - Hungarian): EDIT: I brought this topic to a better and located section for your question.
  20. source não pode ser usado como parâmetro de função, uma vez que ele é o elemento dos eventos. Ainda faltam os parâmetros do setTimer.
  21. Olá. Nos parâmetros da função do evento, eu recomendaria usar o seat (terceiro parâmetro) para checar se foi o motorista que entrou/saiu do veículo. Pois, se caso alguém entre no veículo para zoar, iria causar alguns erros no script. É bom sempre evitá-los. Mais uma coisa: o código que o @Boechat mandou está correto, mas só faltou adicionar os parâmetros dentro da função do setTimer.
  22. Olá. Sim, é possível. Fiz até um código de teste. A granada explode 500ms após ser lançada. addEventHandler("onClientProjectileCreation", root, function(creator) iprint(getProjectileType(source)) if getProjectileType(source) == 16 then setProjectileCounter(source, 500) end end) Funções: getProjectileType - para obter o tipo de projétil. setProjectileCounter - o tempo para explodir. Evento: onClientProjectileCreation - o evento é client-side, porém ele sincroniza para todos assim que alguém cria um projétil; seja molotov, granada, basuca.
  23. Olá. Alguma linha do arquivo mtaserver.conf está faltando algo. Baixe novamente e substitua.
  24. Basta começar a aprender. O que você deseja fazer é algo bem simples, só precisa criar uma pasta, um arquivo meta.xml e um arquivo client-side, com o nome client.lua, por exemplo. O nome é apenas exemplo. O meta.xml ficaria desta forma: <meta> <script src="client.lua" type="client" /> </meta> Arquivo client-side: addEventHandler("onClientResourceStart", resourceRoot, function() setPlayerHudComponentVisible("radio", false) setPlayerHudComponentVisible("area_name", false) setPlayerHudComponentVisible("vehicle_name", false) end) -- addEventHandler adiciona um evento -- onClientResourceStart é o nome do evento que, quando o resource é iniciado, executará o bloco de código dentro dele. -- resourceRoot significa que irá executar o bloco de código somente se ESTE resource for iniciado/reiniciado. Infelizmente nós não podemos te ensinar, mas podemos tirar suas dúvidas. Essa é a principal ideia do fórum. Comece a aprender e traga suas dúvidas, iremos responder.
×
×
  • Create New...