Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,972
  • Joined

  • Last visited

  • Days Won

    179

Everything posted by Lord Henry

  1. O problema do seu resource é que ele está usando timer único pra fazer tudo em vez de timers específicos para cada zona. Isso é bom e ruim ao mesmo tempo. Bom pois é mais leve do que usar vários timers. Ruim pois pode justamente causar conflitos entre as zonas, já que todas usam o mesmo.
  2. Sim, é o que deveria ser feito. O timer que dá dinheiro deve começar só depois que a gangue completa a dominação e passa a ser dona daquela zona.
  3. Pra vc ter uma ideia, o meu inicia dessa forma e funciona normalmente. Sobre o "Compacting accounts e database" é porque o meu só faz essa compactação algumas vezes, não é sempre. O que pode estar acontecendo com vc é problema de rede. Verifique se o MTA e o GTA estão liberados no Firewall do Windows. Também verifique nas configurações do modem se existe algum bloqueio.
  4. Essa mensagem é normal. Ele só está avisando qual a versão do servidor que ele está rodando.
  5. Devem existir 2 timers diferentes. 1 timer é o que determina o tempo de dominação. Ele começa quando o jogador dá o /dominar, dura 60 segundos e quando termina, a dominação é concluída (ou falha). Depois que a dominação é concluída e a zona passa a pertencer a essa gangue, o timer da gangue anterior deve ser cancelado (parando de dar grana pra gangue anterior) e deve-se iniciar um novo timer (para ficar dando dinheiro para a nova gangue).
  6. Você precisa definir o e-mail do proprietário do servidor no mtaserver.conf.
  7. Vc precisa especificar o timer que será cancelado no killTimer. E sim, vc deve parar o que estava dando money para a equipe anterior. Pois não faz sentido a equipe anterior continuar recebendo dinheiro se ela não domina mais aquela zona.
  8. Já tentou fazer server-side e especificar o jogador no primeiro parâmetro?
  9. Tópico movido para a seção Ajudas Relacionadas ao MTA:SA (Cliente/Servidor).
  10. Indexe a tabela. posicoes = { [1] = {1938.35266, -1778.71985, 13.38281, 1940.72449, -1778.48633, 13.39060, 1938.35266, -1778.71985, 13.38281, 0, 1941.72046, -1778.48376, 14.39060, 1939.68616, -1780.47058, 13.39060}, -- Bomba 1 [2] = {1938.33154, -1767.38000, 13.38281, 1940.72351, -1767.32568, 13.39060, 1938.33154, -1767.38000, 13.38281, 0, 1941.72351, -1767.32568, 14.39060, 1939.66479, -1769.13367, 13.38281}, -- Bomba 2 [3] = {1944.55579, -1778.50830, 13.39060, 1942.60840, -1778.49207, 13.39060, 1944.55579, -1778.50830, 13.39060, 180, 1941.72046, -1778.48376, 14.39060, 1943.12683, -1777.12988, 13.39060}, -- Bomba 3 [4] = {1944.43140, -1767.24988, 13.38281, 1942.61975, -1767.30859, 13.39060, 1944.43140, -1767.24988, 13.38281, 180, 1941.72351, -1767.32568, 14.39060, 1942.98450, -1765.54785, 13.39060}, -- Bomba 4 [5] = {1007.95508, -939.53308, 42.17969, 1007.63916, -937.28809, 42.17969, 1007.95508, -939.53308, 42.17969, 90, 1007.53247, -936.54156, 43.32813, 1009.70935, -938.19427, 42.17969}, -- Bomba 5 [6] = {1000.30652, -940.79962, 42.17969, 999.94574, -938.33441, 42.17969, 1000.30652, -940.79962, 42.17969, 90, 999.83368, -937.65015, 42.32813, 1001.94476, -939.39429, 42.17969}, -- Bomba 6 [7] = {1006.94489, -933.30310, 42.17969, 1007.25824, -935.42303, 42.17969, 1006.94489, -933.30310, 42.17969, 270, 1007.53247, -936.54156, 43.32813, 1005.21942, -934.65991, 42.17969}, -- Bomba 7 [8] = {999.42529, -934.40009, 42.17969, 999.77362, -936.40533, 42.17969, 999.42529, -934.40009, 42.17969, 270, 999.83368, -937.65015, 42.32813, 997.68323, -935.75867, 42.17969}, -- Bomba 8 -- E assim por diante. }
  11. Dê killTimer somente se a gangue rival conseguir dominar com sucesso. Criando assim o novo timer pra nova gangue.
  12. Acredito que lá, por ser mais limitado, o pessoal precisa se esforçar mais pra fazer algo legal. Aqui é mais fácil, então o pessoal sai fazendo de qualquer jeito.
  13. Tópico movido para Programação em Lua. Da próxima vez, utilize o botão <> do fórum para postar seu código. Não cole direto no texto.
  14. Se não tem equipe, as zonas dela deveriam ser liberadas para evitar o Warning.
  15. O source é uma variável cujo valor depende diretamente do evento ativador da função. Por exemplo: Se sua função estiver sendo ativada por onPlayerLogin, então o source será o jogador que logou. Mas se a função for ativada por um onVehicleEnter, o source será o veículo que o jogador entrou e não o jogador em si. Ao usar a função setTimer, o source que antes tinha o valor do evento ativador da função passa a ter valor nulo. Por isso que não dá pra usar source dentro do setTimer, pois o valor dele será nulo dentro do setTimer. Para resolver isso, passamos o source por parâmetro do setTimer, colocando ele depois da quantidade de repetições do setTimer. setTimer (function (parametro) -- Parametro vai receber o valor que estiver após o 1 lá em baixo, que no caso é o valor de source. -- CODE end, 1000, 1, source) -- Source será o parâmetro 1 da função que será executada pelo timer, se quiser adicionar outros parâmetros, só ir declarando após o source e assim por diante.
  16. Utilize o botão <> do fórum para postar códigos. Não cole direto no texto. Além disso, deixe o código indentado para ficar legível.
  17. Sobre os parâmetros faltando no setTimer. Ele quis dizer que o Warning acontece pois dentro do setTimer o source deixa de existir, então vc precisa passar o source por parâmetro. Ou seja, para resolver os warnings, faça isso: addEventHandler ("onPlayerLogin", root, function (prevAcc, currAcc) -- Parâmetro estava errado, veja na wiki do onPlayerLogin. outputChatBox ("[#FF0000 GFB #000000]#FFFFFF Você logou com sucesso!", source, 0, 0, 0, true) -- Fora do setTimer, source ainda existe. setTimer (function (thePlayer) -- O valor de thePlayer foi definido lá em baixo, após a quantidade de repetições do timer. Ou seja, thePlayer = source. print ("ElementData 'gangue' = "..tostring (getElementData (thePlayer, "gangue"))) -- Mostra no chat o valor do elementData "gangue" do jogador. if getElementData (thePlayer, "gangue") then outputChatBox ("ativo!", thePlayer, 255, 51, 36, true) else -- Não é necessário usar "if not getElementData" pois ele só vai entrar aqui se a condição de cima não for atendida. outputChatBox ("desativado!", thePlayer, 255, 51, 36, true) local theTeam = getPlayerTeam (thePlayer) if theTeam then setPlayerTeam (thePlayer, nil) end end end, 1000, 1, source) -- source será o primeiro parâmetro da função. end)
  18. A equipe não deveria sumir e sim apenas ficar vazia. Talvez exista algum outro script limpando as equipes do servidor quando elas ficam vazias.
  19. Então vc não está com o debugscript ativado. Ative-o com /debugscript 3
  20. Cadê a parte da mensagem que deixei pra aparecer? Mande print do seu debug console.
  21. Vou te mostrar o porquê de não estar funcionando. addEventHandler ("onPlayerLogin", root, function (prevAcc, currAcc) -- Parâmetro estava errado, veja na wiki do onPlayerLogin. outputChatBox ("[#FF0000 GFB #000000]#FFFFFF Você logou com sucesso!", source, 0, 0, 0, true) setTimer (function () print ("ElementData 'gangue' = "..tostring(getElementData(source,"gangue"))) -- Mostra no chat o valor do elementData "gangue" do jogador. if getElementData (source, "gangue") then outputChatBox ("ativo!", source, 255, 51, 36, true) else -- Não é necessário usar "if not getElementData" pois ele só vai entrar aqui se a condição de cima não for atendida. outputChatBox ("desativado!", source, 255, 51, 36, true) local theTeam = getPlayerTeam (source) if theTeam then setPlayerTeam (source, nil) end end end, 1000, 1) end)
  22. Não estou vendo nenhuma data obtida pela conta do jogador no seu código.
  23. Tópico fechado, visto que o problema já foi resolvido pelo próprio autor.
×
×
  • Create New...