Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,948
  • Joined

  • Last visited

  • Days Won

    177

Everything posted by Lord Henry

  1. Ele está apenas reclamando que falta uma informação no seu arquivo meta.xml. Seu script só funciona a partir da versão 1.5.4-9.11413 do MTA. Então você precisa adicionar isso no meta.xml: <min_mta_version server="1.5.4-9.11413" client="1.5.4-9.11413" />
  2. local comandos = {"login", "logout", "testando"} -- Lista de comandos que não podem ser bindados. function playerPressedKey(button, press) if (press) then -- Se o jogador apertou a tecla, então: local bindados = getCommandsBoundToKey(button, "down") -- Obtém uma lista de comandos bindados a essa tecla que o jogador acabou de apertar. O comando é o índice e o argumento é o valor. if table.size(bindados) == 0 then return end -- Se não há nada bindado nesta tecla (a função acima retornou uma tabela vazia), então nada acontece. for cmd,v in pairs(bindados) do -- Para cada comando bindado nesta tecla, faça: for _,cmds in pairs(comandos) do -- Para cada comando que não pode ser bindado, faça: if cmd == cmds then -- Se o comando bindado nesta tecla está na lista de comandos proibidos, então: outputChatBox("O comando '"..cmd.."' não pode ser bindado.") cancelEvent() return end end end end end addEventHandler("onClientKey", root, playerPressedKey) addCommandHandler("testando", function(cmd) -- Comando genérico só para saber se ele está sendo executado ou não. outputChatBox("Você está testando.") end) function table.size(theTable) -- Função útil que conta quantos elementos tem uma tabela. Quando usar #tabela não funcionaria. local size = 0 for _, v in pairs(theTable) do size = size + 1 end return size end Os comandos continuam funcionando fora da bind (digitados manualmente).
  3. Por padrão, o gamemode Play já faz isso. A não ser que você use outro gamemode ou edite o gamemode Play para ele não fazer mais esse efeito. No seu script isso não acontece pois você está respawnando o jogador no mesmo instante em que ele morre. Então a tela não faz isso pois o jogador já renasceu antes do efeito começar. O efeito só acontece enquanto jogador está morto.
  4. Sim, você consegue. Pois o SetVehicleHandling só funciona no veículo específico e não em todos daquele modelo.
  5. Troque todos os getLocalPlayer() pela variável predefinida localPlayer. Troque todos os getRootElement() pela variável predefinida root. Imagino que seu primeiro script seja client-side e o segundo script seja server-side. Verificar ACL só funciona em scripts server-side, ou seja, tem que ser no seu segundo script. Adicione uma nova linha antes do attachElementToElement e nela coloque isso: if not isObjectInACLGroup ("user."..getAccountName(getPlayerAccount(source)), aclGetGroup ("Staff")) then return end -- Se o jogador não estiver na ACL Group "Staff", cancela essa função e nada acontece. Obs: Limitar permissões de acesso para staffs e não staffs é mais inteligente fazer via permissão em vez de ACL Group. Dessa forma você não precisa ficar criando uma ACL Group genérica de Staff para colocar todos os seus staffs dentro. Você pode simplesmente verificar se o jogador tem permissão de mutar jogadores, se ele tiver essa permissão então ele é staff (moderador ou superior). Para verificar essa permissão, você pode fazer assim: if not hasObjectPermissionTo (source, "command.mute", false) then return end -- Se o jogador não tem permissão para mutar jogadores (não é staff), então cancela essa função e nada acontece.
  6. Não entendi o que você deseja fazer. Seria interessante mostrar uma print de exemplo do que você quer fazer.
  7. Não é permitido solicitar/enviar drops de mods aqui no fórum.
  8. Não existe nenhum evento que ative ao fazer isso. A não ser que você atribua uma elementData específica no jogador quando mexer nas ACLs dele, dai você poderia usar o onElementDataChange
  9. Código #4 se refere a isso: Violação de segurança geral. Este é o código AC mais comum para tentativa de cheat, ferramentas proibidas, trainers GTA ou execução inadvertida de um cheat para outro jogo enquanto o MTA está aberto.
  10. GG, top demais. 1% é tranquilo.
  11. Animação as vezes não funciona em Ped no mesmo instante em que ele é criado. Dai precisa adicionar um timer para setar essa animação só depois que o ped foi criado. O exemplo que eu fiz seta a animação somente quando o Ped toma dano, pois eu pensei que era isso que você queria fazer, setar a animação somente ao dar dano no ped. Vou refazer o exemplo para setar a animação em todos os Peds após eles serem criados. local infos = { -- Tabela onde as infos de cada bot serão declaradas. [1] = {id, x, y, z, r, "CRACK", "crckidle1", -1, true, true, true}, [2] = {id, x, y, z, r, "CRACK", "crckidle1", -1, true, true, true}, [3] = {id, x, y, z, r, "CRACK", "crckidle1", -1, true, true, true}, } local bots = {} -- Tabela onde cada bot criado vai ficar. for i, v in ipairs(infos) do -- Para cada info, cria um bot na lista de bots. bots[i] = createPed(v[1], v[2], v[3], v[4], v[5]) end setTimer(function () for i, v in pairs (bots) do -- Para cada bot, faça: setPedAnimation(v, infos[i][6], infos[i][7], infos[i][8], infos[i][9], infos[i][10], infos[i][11]) -- Seta essa animação que está nas infos. end end, 100, 1) Se estiver se referindo a uma tabela com animações para setar aleatoriamente no ped, é possível sim. local animations = { [id] = { -- Animações que vão estar disponíveis para os Peds deste ID. {"CRACK", "crckidle1", -1, true, true, true}, {"CRACK", "crckidle1", -1, true, true, true}, {"CRACK", "crckidle1", -1, true, true, true}, }, [id] = { -- Outras animações disponíveis para este outro ID. {"CRACK", "crckidle1", -1, true, true, true}, {"CRACK", "crckidle1", -1, true, true, true}, {"CRACK", "crckidle1", -1, true, true, true}, }, } addEventHandler("onClientPedDamage", resourceRoot, function() -- Seta uma animação aleatória no Ped quando ele tomar dano. local id = getElementModel(source) if animations[id] then -- Se existe a tabela de animações para este ID, então: local random = math.random(#animations[id]) -- Gera um número aleatório entre 1 e a quantidade de animações disponível para este ID (neste exemplo é entre 1 e 3) setPedAnimation(source, animations[id][random][1], animations[id][random][2], animations[id][random][3], animations[id][random][4], animations[id][random][5], animations[id][random][6]) end end)
  12. É sim. Sozinho este resource está consumindo 45% de processamento no seu client.
  13. Olá. Infelizmente não há apelação para banimentos temporários. Aguarde o banimento acabar. Mesmo que o banimento fosse permanente, você acabou de admitir que seu irmão baixou cheats no seu computador. No momento em que você permite que alguém mexa na sua máquina e essa pessoa faz coisas ilegais, a responsabilidade também é sua. Recomendo que não permita que mais ninguém utilize o seu computador, ou então fique monitorando para garantir que ele não mexa com o que não deve.
  14. Já verificou se os mods de veículos que você está colocando são pesados demais? Teste com algum veículo bem leve.
  15. Eu lhe dei uma solução simples, mas você prefere continuar reclamando e achando que estou debochando, dai não há o que fazer. O mundo não gira ao seu redor. Se pra você é tão incômodo fazer uma atualização, parece que você não leva a sério o seu próprio servidor. Existem as pessoas que já estão correndo atrás e atualizando seus resources, e existem as pessoas que preferem reclamar achando que o sistema vai mudar para atender às suas reclamações como se você fosse o todo-poderoso. É o clássico "estou pagando, então estou na razão." Mesmo que eu concordasse com suas reclamações e lhe dissesse que o sistema deveria manter na top list os servidores desatualizados, o MTA não iria mudar o sistema de qualquer forma, pois seria apenas a minha opinião, que não interfere em nada no desenvolvimento do MTA em si. Enfim, espero que entenda que existem coisas que não estão sob nosso controle, cabe a nós nos adaptar, melhorar e seguir em frente.
  16. local infos = { -- Tabela onde as infos de cada bot serão declaradas. [1] = {id, x, y, z, r, "CRACK", "crckidle1", -1, true, true, true}, [2] = {id, x, y, z, r, "CRACK", "crckidle1", -1, true, true, true}, [3] = {id, x, y, z, r, "CRACK", "crckidle1", -1, true, true, true}, } local bots = {} -- Tabela onde cada bot criado vai ficar. for i, v in ipairs(infos) do -- Para cada info, cria um bot na lista de bots. bots[i] = createPed(v[1], v[2], v[3], v[4], v[5]) end function restartPedAnimation() for i, v in pairs (bots) do -- Para cada bot, faça: if source == v then -- Se o bot que tomou dano é um da lista, então: setPedAnimation(source, infos[i][6], infos[i][7], infos[i][8], infos[i][9], infos[i][10], infos[i][11]) -- Seta essa animação que está nas infos. break -- Cancela o loop pois já encontrou o bot correto. end end end addEventHandler("onClientPedDamage", resourceRoot, restartPedAnimation) -- Ativa essa função quando qualquer NPC deste resource tomar dano. Tente isso. (não testado)
  17. Se estiver se referindo a dxDraw, só é possível fazer isso com imagem.
  18. Se vcs não tem capacidade de se manterem atualizados, a culpa não é do MTA. Quem não se atualiza, fica para trás. Isso serve em qualquer área.
  19. Não seria mais fácil vcs simplesmente atualizarem seus servidores para a versão 1.6 também?
  20. É bug do seu servidor. Não há nenhum problema com essas skins.
  21. triggerCleintEvent não existe. Vc escreveu errado. O certo é triggerClientEvent Ali no destroyElement, vechile não deveria ser vehicle?
  22. Use isso: createMarker onMarkerHit setPedAnimation
  23. Não é uma boa ideia usar markers tão grandes. Prefira usar colshapes. Por exemplo createColCuboid. Você pode usar o mesmo tamanho que usou no createRadarArea. Também não faz sentido o script forçar um comando sendo que ele poderia simplesmente chamar direto a função que é chamada pelo comando. Aqui tem uma página secreta com todos os colshapes das zonas de San Andreas. Basta escolher qual território você quer. Utilize este mapa para saber os nomes.
  24. Sem print. Upe a imagem no imgur.com e cole aqui o link.
×
×
  • Create New...