-
Posts
3,980 -
Joined
-
Last visited
-
Days Won
181
Everything posted by Lord Henry
-
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.
-
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)
-
Como dar dinheiro para todos os membros de uma equipe?
Lord Henry replied to Maaster's topic in Programação em Lua
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. -
Então vc não está com o debugscript ativado. Ative-o com /debugscript 3
-
Cadê a parte da mensagem que deixei pra aparecer? Mande print do seu debug console.
-
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)
-
Não estou vendo nenhuma data obtida pela conta do jogador no seu código.
-
Tópico fechado, visto que o problema já foi resolvido pelo próprio autor.
-
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
-
Como dar dinheiro para todos os membros de uma equipe?
Lord Henry replied to Maaster's topic in Programação em Lua
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) -
Como dar dinheiro para todos os membros de uma equipe?
Lord Henry replied to Maaster's topic in Programação em Lua
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. -
Sim usa. Ainda mais por usar setTimer.
-
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).
-
Depende do seu script. O valor que ele está setando nas elementDatas.
-
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.
-
ElementDatas consomem processamento para manter sincronizado com os outros jogadores. A não ser que você deixe configurado para não sincronizar.
-
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.
-
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.
-
Essas elementDatas são temporárias? Ou vc salva elas quando os jogadores deslogam?
-
Jogadores tomam dano por fogo nativamente. Se não estiverem, é por algum resource blindando eles.
-
setPedAimTarget
-
Sim, pesa. Evite-o. Prefira tabelas.
-
SOCRRO NO BGO
Lord Henry replied to r4ndoom_'s topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Solicite suporte a Staff do BGO. Não nos responsabilizamos pelos servidores. -
Qual a funcao pra mudar a velocidade de um player?
Lord Henry replied to Maaster's topic in Programação em Lua
Experimente usar setGameSpeed em um script client-side.