• Announcements

    • jhxp

      Forums are online again after a maintenance.   18/03/17

      MTA Forums maintenance is completed, although some automatic time-heavy tasks are still in process and will be finished eventually in background. Expect some features such as Forum Search to not display all results until all processes are finished. Please let us know if you spot a forum feature that worked correctly before the maintenance but does not work anymore now. Thanks. --MTA Team

Lord Henry

Members
  • Content count

    160
  • Joined

  • Last visited

  • Days Won

    1

Lord Henry last won the day on May 12

Lord Henry had the most liked content!

Community Reputation

23 Decent

1 Follower

About Lord Henry

  • Rank
    Busta
  • Birthday 16/01/96

Details

  • Gang
    Grove Street
  • Location
    Brazil
  • Occupation
    GamerGame DesignerLevel Designer

Recent Profile Visitors

503 profile views
  1. Agora funcionou perfeitamente.
  2. Eu estou resolvendo ainda o menu para criar eventos...quando eu voltar a mexer nos mapas dai eu aviso. Estou com um problema para converter a string "50%" para número. Usando tonumber não resolve pois ele não sabe que número é o %, então eu teria que dar um jeito de remover o % da string antes de usar o tonumber. Alguém ae sabe alguma função para encontrar e deletar determinado caractere de uma string?
  3. O objetivo é guardar o quê? Itens ou grana?
  4. Eu to pensando em fazer assim...só que não faço ideia de como "spawnar" os markers um por vez a cada vez que o jogador colide em um. Eu sei que os markers são sempre client-side, quando termina o countdown e inicia a corrida, ele cria direto o marker 1 e o 2. Quando o jogador colide no 1, ele deleta o marker 1, cria o 3 e assim por diante, sempre mantendo 2 markers criados. Só que não sei como chamar os markers de cada vez. Eu sei que no arquivo ele classifica por ID e informa qual é o próximo marker, de maneira que ele saiba qual chamar em seguida. <map mod="deathmatch"> <!-->O arquivo original está assim...mas só funciona no Race.</--> <spawnpoint posX="-2389.578125" posY="-2214.670410" posZ="32.949440" rotation="339" vehicle="468" id="spawnpoint0" /> <spawnpoint posX="-2392.252930" posY="-2214.180420" posZ="32.949440" rotation="330" vehicle="468" id="spawnpoint1" /> <spawnpoint posX="-2394.579834" posY="-2212.746582" posZ="32.949440" rotation="320" vehicle="468" id="spawnpoint2" /> <spawnpoint posX="-2396.306396" posY="-2210.714844" posZ="32.949440" rotation="306" vehicle="468" id="spawnpoint3" /> <spawnpoint posX="-2397.809570" posY="-2208.184326" posZ="32.949440" rotation="299" vehicle="468" id="spawnpoint4" /> <spawnpoint posX="-2399.312988" posY="-2205.918945" posZ="32.949440" rotation="294" vehicle="468" id="spawnpoint5" /> <spawnpoint posX="-2399.995117" posY="-2203.309814" posZ="32.949440" rotation="289" vehicle="468" id="spawnpoint6" /> <!-->Mais um monte de spawnpoints</--> <checkpoint posX="-2375.774414" posY="-2196.347656" posZ="32.376450" color="#007fff" id="checkpoint0" nextid="checkpoint1" /> <checkpoint posX="-2264.348389" posY="-2142.104492" posZ="55.736046" color="#007fff" id="checkpoint1" nextid="checkpoint2" /> <checkpoint posX="-2159.435059" posY="-2035.847534" posZ="91.579437" color="#007fff" id="checkpoint2" nextid="checkpoint3" /> <checkpoint posX="-2100.626465" posY="-1895.320435" posZ="108.437828" color="#ff0000" id="checkpoint3" nextid="checkpoint4" /> <checkpoint posX="-2224.203369" posY="-2053.038818" posZ="118.907944" color="#007fff" id="checkpoint4" nextid="checkpoint5" /> <checkpoint posX="-2447.318848" posY="-2078.869141" posZ="125.247055" color="#ff0000" id="checkpoint5" nextid="checkpoint6" /> <!-->Mais um monte de checkpoints</--> <checkpoint posX="-2375.783936" posY="-2196.322510" posZ="32.338516" color="#ffef00" id="checkpoint47" /> <!-->Checkpoint da linha de chegada.</--> <object posX="-2367.477783" posY="-2187.626709" posZ="32.561180" rotX="0" rotY="0" rotZ="0" model="2780" id="object0" /> <object posX="-2362.699219" posY="-2194.435791" posZ="32.645840" rotX="0" rotY="0" rotZ="158.995845444583" model="2780" id="object1" /> <object posX="-2525.923584" posY="-1696.326660" posZ="401.407379" rotX="0" rotY="0" rotZ="3.43774677078494" model="3264" id="object2" /> <object posX="-2319.156982" posY="-1632.014771" posZ="500.054626" rotX="0" rotY="0" rotZ="0" model="3873" id="object3" /> <!-->Alguns objetos de mapa, também classificados por IDs.</--> </map>
  5. Estou criando um script de eventos, nesse script o admin pode criar 1 evento de cada vez e os jogadores podem participar caso queiram. O que estou com dificuldade seria para eventos de corrida, pois como a maioria deve saber, os mapas de corrida simplesmente não funcionam se não estiver no gamemode race. Só que se eu alterar o gamemode do server, vai mudar para todo mundo, inclusive pra quem não está participando do evento. Eu gostaria de saber se é possível alterar o gamemode para somente alguns jogadores ou então algum jeito de ativar um mapa de corrida específico sem alterar o gamemode atual do servidor. O mapa é escolhido no script de evento pelo admin. Eu estava dando uma olhada no resource 'race' e vi que ele ativa uma série de outros resources junto, como por exemplo o votemanager dos mapas, placares, contagem regressiva, tempo de corrida, etc...No meu script a maioria deles não será necessário. No gamemode race, ele carrega outro mapa de corrida automaticamente após terminar a corrida atual, mas no meu script o evento deve terminar e os jogadores voltam para a posição que estavam antes de participar.
  6. Ele criou uma variável local chamada 'spawned' que fica false toda vez que inicia a função. (quando alguém morre) Ele vai entrar ali no For mas se o jogador que morreu for Guest, não vai entrar naquele If, dai a variável não vai se tornar verdadeira, pois o player não vai spawnar naquele instante. Depois ele vai entrar no If da linha 14 (spawned ainda será diferente de true), e vai spawnar o jogador no spawn de Guest.
  7. Funciona. Está ali na linha 15.
  8. A propósito, eu fiz assim e funcionou normal aqui. function spawn( player ) if not isElement( player ) then return end showChat( player, true ) local acc = getPlayerAccount( player ) if isObjectInACLGroup ( "user.".. getAccountName( acc ), aclGetGroup ( "YKZ" ) ) then spawnPlayer ( player, 2340.81323, 553.25513, 18.75537, 90, 120) elseif isObjectInACLGroup ( "user.".. getAccountName( acc ), aclGetGroup ( "EB" ) ) then spawnPlayer ( player, 205.75940, 1866.97839, 13.14063, 90, 287) else spawnPlayer (player, 1177.12634, -1327.09448, 14.05530, 90, 0) end end
  9. Não há problema em desligá-lo. Mas esteja ciente de manter ele desligado nas configurações do server. Senão toda vez que vc for ligar o server, ele vai ligar o Gamemode 'Play' novamente.
  10. Por isso que não entendi, pois já existe isso para fazer a verificação: if not isElement( player ) then return end
  11. Eu não entendi a necessidade dessa condição: if acc then
  12. Use isso: elseif isGuestAccount (getPlayerAccount (player)) then spawnPlayer (player, 1177.12634, -1327.09448, 14.05530, 90, 0) end Seria melhor vc criar outro tópico quando for fazer uma pergunta sem relação com este tópico.
  13. Se você for permitir que os membros fiquem em diferentes facções ao mesmo tempo, você vai precisar de algum sistema onde o jogador decida qual skin deseja pegar. Por exemplo: O jogador está no Exército e na Yakuza ao mesmo tempo. (EB e YKZ). Ele quer ter acesso às duas skins, mas ao executar o comando /skin, ele só recebe do exército mas queria poder receber da Yakuza também. Para resolver esse problema, será necessário que o jogador informe de alguma maneira ao resource, qual das skins ele quer pegar. Existem dois jeitos diferentes, a primeira é a mais simples, onde vc faz um comando diferente para cada skin. function darSkinEB (thePlayer) local nomeAcc = getAccountName (getPlayerAccount (thePlayer)) if isObjectInACLGroup ("user."..nomeAcc, aclGetGroup("EB")) then setElementModel (thePlayer, 287) else outputChatBox ("Você não tem permissão para usar a skin do #00BB00Exército.", thePlayer, 255, 0, 0, true) end end addCommandHandler ("skineb", darSkinEB) function darSkinYKZ (thePlayer) local nomeAcc = getAccountName (getPlayerAccount (thePlayer)) if isObjectInACLGroup ("user."..nomeAcc, aclGetGroup("YKZ")) then setElementModel (thePlayer, 140) else outputChatBox ("Você não tem permissão para usar a skin da #BB0000Yakuza.", thePlayer, 255, 0, 0, true) end end addCommandHandler ("skinykz", darSkinYKZ) Outro jeito, um pouco mais complexo porém mais leve do que criar várias funções, é você criar um parâmetro junto ao comando. Este parâmetro informará ao script qual a skin que o jogador quer pegar. Exemplo: "/skin exercito" ou "/skin yakuza" function darSkin (thePlayer, commandName, faction) -- Função geral, o faction é o que o jogador vai informar após o comando. local nomeAcc = getAccountName (getPlayerAccount (thePlayer)) if faction == "exercito" then -- Se o jogador der o comando "/skin exercito", faz o seguinte: if isObjectInACLGroup ("user."..nomeAcc, aclGetGroup("EB")) then setElementModel (thePlayer, 287) else outputChatBox ("Você não tem permissão para usar a skin do #00BB00Exército.", thePlayer, 255, 0, 0, true) end elseif faction == "yakuza" then -- Se o jogador der o comando "/skin yakuza", faz o seguinte: if isObjectInACLGroup ("user."..nomeAcc, aclGetGroup("YKZ")) then setElementModel (thePlayer, 140) else outputChatBox ("Você não tem permissão para usar a skin da #BB0000Yakuza.", thePlayer, 255, 0, 0, true) end elseif faction == nil then -- Se o jogador der o comando "/skin", faz o seguinte: outputChatBox ("Erro de sintaxe, use /skin <nome da facção>", thePlayer) else -- Se o jogador der o comando "/skin" seguido de qualquer coisa que não esteja programada aqui, faz o seguinte: outputChatBox ("Erro: Não existe skin dessa facção.", thePlayer) end end addCommandHandler ("skin", darSkin, false, false) --Esse penúltimo false indica que o comando não é restrito. O último false indica que o comando não diferencia maiúsculas de minúsculas. Ou seja, se ele usar /SkIN EXerciTO, vai funcionar mesmo assim. Espero ter ajudado. Caso possua mais dúvidas, estamos aqui para ajudar.