Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    3,980
  • Joined

  • Last visited

  • Days Won

    181

Everything posted by Lord Henry

  1. 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.
  2. 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)
  3. 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.
  4. Então vc não está com o debugscript ativado. Ative-o com /debugscript 3
  5. Cadê a parte da mensagem que deixei pra aparecer? Mande print do seu debug console.
  6. 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)
  7. Não estou vendo nenhuma data obtida pela conta do jogador no seu código.
  8. Tópico fechado, visto que o problema já foi resolvido pelo próprio autor.
  9. ElementDatas são temporárias e se perdem ao desconectar do servidor. Você deve salvar na conta do jogador se quiser que os dados sejam recuperados após o jogador se conectar novamente. setAccountData getAccountData
  10. Utilize isso somente na hora que o jogador domina a zona. Depois no timer, vc usa a variável em vez de ficar atribuindo valor a ela. local Team = getPlayerTeam(element)
  11. Coloque a equipe numa variável pra não ficar usando getPlayerTeam toda hora. Dai quando outra equipe dominar a zona, muda a equipe que fica nessa variável para a nova equipe.
  12. Sim usa. Ainda mais por usar setTimer.
  13. Sim, seria mais leve do que ElementDatas. Mas saiba que torna o sistema burlável e jogadores que não estão realmente na arena podem ser considerados apenas por estarem na dimensão 10. Você também pode adicionar o getElementInterior para considerar apenas jogadores que estão no interior 0 (exterior).
  14. Depende do seu script. O valor que ele está setando nas elementDatas.
  15. Se a elementData for verificada pelos outros jogadores (como policiais por exemplo), se não for sincronizado eles não vão saber a data do jogador que eles estão verificando a ficha. Então nem sempre é uma boa ideia desativar a sincronização. Mas em casos onde é usado somente pelo próprio jogador, basta você inserir um parâmetro false depois do valor do setElementData, desativando a sincronização. setElementData (thePlayer, "NomeData", valor, false) Utilizando tabelas, se for feita em um script server-side, já vai estar sincronizado com todos os jogadores pois todos tem acesso a mesma tabela. Além de poupar processamento.
  16. ElementDatas consomem processamento para manter sincronizado com os outros jogadores. A não ser que você deixe configurado para não sincronizar.
  17. Exemplo maroto de como seria construída a tabela: local tableMarota = {} -- Tabela vazia que será preenchida pelos jogadores e suas respectivas datas. Você pode fazer uma tabela separada por cada tipo ou então utilizar sub-tabelas dentro de uma tabela geral como esta. addCommandHandler ("preso", function (thePlayer, cmd) if (tableMarota[thePlayer]) then -- Se já existe este item na tabela, então: tableMarota[thePlayer] = nil -- Apaga este item da tabela. outputChatBox ("Você não está mais sendo considerado preso.", thePlayer) else -- Se não existe o item tableMarota[thePlayer] na tabela, então: tableMarota[thePlayer] = true -- Adiciona o item na tabela com valor true (poderia ser qualquer um exceto false e nil) outputChatBox ("Você agora está sendo considerado preso.", thePlayer) end end) Obs: Isso deve ser feito dentro do resource que usa essa data.
  18. Daria pra fazer com tabelas usando o jogador como índice. Seria bem mais leve. A única coisa é que se reiniciar o resource, perde a data. E tem que ter certeza de remover a data se o jogador sair do servidor.
  19. Essas elementDatas são temporárias? Ou vc salva elas quando os jogadores deslogam?
  20. Jogadores tomam dano por fogo nativamente. Se não estiverem, é por algum resource blindando eles.
  21. Sim, pesa. Evite-o. Prefira tabelas.
  22. Solicite suporte a Staff do BGO. Não nos responsabilizamos pelos servidores.
  23. Experimente usar setGameSpeed em um script client-side.
×
×
  • Create New...