Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,010
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. toggleControl ("next_weapon", false) toggleControl ("previous_weapon", false)
  2. Leia com mais atenção na próxima vez.
  3. Sim, é possível usar setTimer. Mas o setTimer depende do framerate. Ou seja, ele vai ser mais rápido em quem tem FPS maior.
  4. Se você movimentar o objeto encostando nele (sem ser pelo setElementVelocity), a posição obtida também é sempre a inicial?
  5. Se o objeto for criado no lado servidor e for movimentado no lado cliente, só o cliente verá ele na nova posição. Isso dará problema de sincronização cliente/servidor. Você deve mover o objeto pelo lado server se quiser que os outros jogadores também vejam o objeto na nova posição.
  6. Código ilegível. Favor indente seu código.
  7. Já leu a wiki do isObjectInACLGroup?
  8. Não anexe o cilindro em objetos com física dinâmica. Eles irão bugar os markers pois o jogo não atualiza direito a posição da colisão dos markers. Em vez disso use um onClientRender (se o script for client-side) para ficar obtendo a posição do objeto e setando o marker nessa posição. Se for server-side, use setTimer para ficar atualizando a posição do marker de acordo com a posição do objeto.
  9. local chamados = {} addCommandHandler ("samu", function (thePlayer, cmd) -- Comando pro jogador chamar o Samu. local name = getPlayerName (thePlayer) -- Name recebe o nick do jogador que executou o comando. if (chamados[name]) then -- Se já tem um chamado na table com esse nome, então: outputChatBox ("Você já tem um chamado em aberto. Aguarde mais tempo até alguém aceitar.", thePlayer, 255, 0, 0) else -- Se não tem nenhum chamado deste jogador na table, então: chamados[name] = true -- Adiciona ele na table. outputChatBox ("Você chamou um Samu. Aguarde alguém aceitar.", thePlayer, 0, 255, 0) end end) addCommandHandler ("aceitar", function (thePlayer, cmd, name) if (name) then -- Se o jogador que vai aceitar incluiu o nick do jogador, então: if (chamados[name]) then -- Se tem um chamado do jogador mencionado na table, então: chamados[name] = nil -- Fecha o chamado. outputChatBox ("Você aceitou o chamado de "..name, thePlayer, 0, 255, 0) -- Aqui é o código que cria o blip no jogador que chamou o socorro e que aparece somente pra quem aceitou. Essa parte é por sua conta. else -- Se não tem um chamado do jogador mencionado na table, então: outputChatBox ("O jogador "..name.." não tem nenhum chamado de Samu em aberto.", thePlayer, 255, 0, 0) end else -- Se o jogador que vai aceitar não informou o nick para o qual vai aceitar, então: outputChatBox ("Erro de sintaxe: /aceitar <nick>", thePlayer, 255, 255, 0) end end) Exemplo bem simples. Se o jogador trocar de nick ou sair do server já irá bugar o sistema. Mas serve pra vc usar de base.
  10. É necessário criar uma table de chamados. Pois pode ocorrer de vários jogadores pedirem o Samu ao mesmo tempo e dai um pedido iria substituir o outro. Dai para aceitar o chamado, você poderia fazer com um segundo argumento opcional do nome do jogador que chamou. Ex: /aceitar Joaozinho123 "Você aceitou o chamado de socorro de Joaozinho123, a posição dele foi marcada no seu radar." (remove o Joaozinho123 da table de chamados)
  11. Esse script é server-side ou client-side?
  12. This is topic is not in Portuguese. Moved to Spanish section.
  13. Tópico movido para Offtopic por se tratar de recrutamento de Staff para servidor.
  14. Apague-os do script broph.lua que está no gamemode play.
  15. Só trocando o modelo do CJ por outro sem cabeça.
  16. Tem sim. Utilize GetTickCount para obter o momento do início do fade e salve numa variável. Depois durante o onClientRender utilize outro GetTickCount e salve em outra variável. Vc pode obter o tempo exato que se passou diminuindo o primeiro do segundo e assim calculando o alpha igual para todos. Exemplo maroto: local inicio = getTickCount() -- Marca o instante em que este resource iniciou. local screenX, screenY = guiGetScreenSize() -- Resolução do jogador. local duration = 2 -- Quantos segundos o efeito de fade deve demorar. function render () local agora = getTickCount() -- Marca o instante deste frame. local diferenca = agora - inicio -- Calcula quantos milisegundos se passaram desde o instante que este resource iniciou até o momento do frame atual. local alpha = diferenca / (4 * duration) -- Só pra não ficar rápido demais, caso contrário o efeito iria durar apenas 255 milisegundos. if (alpha > 255) then alpha = 255 -- Evita erros de valores acima do permitido no alpha. end dxDrawText ("TESTE", 0, 0, screenX, screenY, tocolor (255, 255, 255, math.abs (alpha)), 2, "default-bold", "center", "center") end addEventHandler ("onClientRender", root, render)
  17. Faça um save-system que salve a posição do jogador ao deslogar e sete essa posição ao logar.
  18. Seus arquivos do MTA estão corrompidos. Isso geralmente é causado por vírus. Escaneie seu sistema com algum anti-vírus e depois reinstale completamente o Multi Theft Auto.
  19. Só ficar correndo em direção ao veículo que o jogador consegue empurrá-lo. Não há necessidade de quebrar a cabeça com isso.
  20. Freeroam cancela as animações ao tentar pular. Desligue-o ou edite o resource dele para não fazer isso.
  21. Tópico movido para a seção de Programação em Lua. Na próxima vez, crie seu tópico na área adequada.
  22. Tópico movido para a seção de Programação em Lua. Na próxima vez, poste na área adequada.
  23. Isso acontece pois vc não pode executar uma coisa no seu cliente (client-side) e esperar que os outros clientes executem também sem passar pelo servidor. Está faltando triggers aí.
  24. Não. Os LODs dos veículos ficam junto do arquivo .DFF dele. Assim como a colisão dele. A malha do LOD chama-se "chassis_vlo" Na imagem, o chassis_vlo do veículo Camper, após ocultar todos os outros componentes.
×
×
  • Create New...