Jump to content

[Duvida/Ajuda] LevelSystem por minutos


Recommended Posts

Estou tentando ativar uma função "nativa" de um LevelSystem que estou usando, seria para cada 10 minutos o player ganhar um de XP, mas isso não acontece, e não consigo imagina o que possa estar acontecendo.

O que entendo da função é que ela fica rodando de segundo em segundo, e dependendo a condição ela faz X coisa, uma das condições é adicionar +1 "minuto" a cada vez que rodar o script, e se o minuto for maior que 600, ele da um XP e reseta os minutos, mas não é isso que acontece

 

  Reveal hidden contents



 

Link to comment

Eu acho que esse é um dos piores códigos que eu já vi,  mas de qualquer maneira, observe a linha 10 onde ele verifica se o jogador possui a data "AirNewSCR_LiberarXP" igual a "Sim", e em seguida seta a data para "Não", e acaba não retornando a data pra "Sim" (não nesse código), então aparentemente o problema está ai.

Link to comment

Tente otimizar um pouco este código (na minha opinião isso tudo poderia ser feito client-side com no máximo 10 linhas).

O uso excessivo de elementData pode ferrar o fluxo de rede do seu servidor, pois cada vez que você o utiliza sem desativar o argumento de sincronização da função ele será enviado e atualizado para todos os outros elementos. Ou seja, quando o servidor possui 10 jogadores online, mesmo que você use setElementData em apenas um, esses dados serão enviados para os outros 9 da mesma maneira pra sincronização.
Agora imagine uma situação escalável, onde você vai setar vários elementData pra cada jogador (que serão enviados pra todos os outros elementos), e o pior; tudo isso a cada 1 segundo.

A melhor maneira de manter dados armazenados em Lua é o uso de tabelas (inclusive no caso do MTA, onde isso continua sendo mais rápido do que usar setElementData com sync off), esse é um dos diferenciais da linguagem, já que em Lua se pode indexar quase tudo em uma tabela (não que seja sempre uma boa ideia).

Segue um breve exemplo de como utilizar tabelas de uma maneira semelhante a elementDatas;

-- iniciamos a tabela, armazenando-a na variável "datas"
local datas = {}

-- criamos uma função pra facilitar o nosso trabalho
function setData(element, key, value)
    -- caso o jogador não possua seu registro na tabela "datas", o registro é criado
    if not datas[element] then
        datas[element] = {}          
    end
    --inserimos o valor ligado ao nome do dado setado
    datas[element][key] = value
end

function getData(element, key)
    return datas[element] and datas[element][key] -- recebemos o valor salvo na tabela a partir do jogador e o nome do dado
end

-- removemos o registro do jogador quando ele sai do servidor.
-- (isso pode ser bastante necessário, faça-o também com onElementDestroy caso vá utilizar com outros tipos de elementos.)
addEventHandler('onPlayerQuit', root, function()
    if datas[source] then
        datas[source] = nil
    end
end)

Com o código acima adicionado ao seu script você pode utilizar os seguintes métodos:

setData(jogador, 'Nome do nosso dado', 'teste123')

getData(jogador, 'Nome do nosso dado')

Onde setData funcionará como um setElementData e getData funcionará como um getElementData, mas obviamente sem a sincronização com os outros clientes e de maneira até mais rápida.

Vale lembrar que o código acima não lhe dará a liberdade de importar os dados salvos na tabela a partir de outros resources, a não ser que você exporte as funções setData e getData, cenário o qual eu não sei dizer se seria vantajoso, apenas testando, pois acho que usar elementData com sync off seria mais rápido.

Link to comment
  On 01/03/2020 at 01:29, Tommy. said:

Não está no gibi a quantidade de problemas que esses mods do AirNew tem.

Expand  

Kkkkkkkk

  On 01/03/2020 at 00:48, iDannz [Breno] said:

Eu acho que esse é um dos piores códigos que eu já vi,  mas de qualquer maneira, observe a linha 10 onde ele verifica se o jogador possui a data "AirNewSCR_LiberarXP" igual a "Sim", e em seguida seta a data para "Não", e acaba não retornando a data pra "Sim" (não nesse código), então aparentemente o problema está ai.

Expand  

O tal de felix_mta também kkkkk se acham os programadores melhores do mundo kkkkkk

Link to comment
  On 01/03/2020 at 00:48, iDannz [Breno] said:

Eu acho que esse é um dos piores códigos que eu já vi,  mas de qualquer maneira, observe a linha 10 onde ele verifica se o jogador possui a data "AirNewSCR_LiberarXP" igual a "Sim", e em seguida seta a data para "Não", e acaba não retornando a data pra "Sim" (não nesse código), então aparentemente o problema está ai.

Expand  
  On 01/03/2020 at 01:29, Tommy. said:

Não está no gibi a quantidade de problemas que esses mods do AirNew tem.

Expand  

Realmente, todo mundo diz que esses mods tem muitos problemas e bugs, alem de ser um tanto mal organizado, to aprendendo mais resolvendo os bugs do que lendo o código ?

 

  Reveal hidden contents

Me surgiram algumas duvidas, usar o setElementData pra todos ou varios scripts é um problema que pode comprometer o desempenho do servidor com muitos jogadores online?
Usando essas tabelas, não é possivel eu syncronizar esses valores com outros scripts? tipo o level é um script e outro script precisa verificar esse nivel

Link to comment

A solução que eu dei seria viável apenas para alguns casos, principalmente pelo fato de que se a resource for parada os dados obviamente serão resetados.

Mas se no caso você queira utilizar pra salvar dados como Level, Experiência, ou outros dados que são muito utilizados, você deve setar usando elementData com sync on, para de fato possibilitar as checagens dos outros clientes, o ponto que eu quis chegar é de que existem dados que não precisam ser enviados, mas que as pessoas os enviam (muitas vezes sem querer) só por ser o caminho mais fácil de se obter tal resultado.

De qualquer maneira, caso você queira utilizar o sistema que eu enviei acima, eu recomendo que você o replique nas resources em que você vai usar, principalmente por ser um código pequeno (se você apagar os comentários não irá passar de 15 linhas) e também porque se você utilizar exportações nas funções getData e setData chamando-as para salvar dados de uma resource X, caso a resource em que o código está configurado com exports seja reiniciada você vai acabar tendo resultados inesperados na resource X.

Edited by iDannz [Breno]
Link to comment
  On 01/03/2020 at 01:56, Breevz said:

Realmente, todo mundo diz que esses mods tem muitos problemas e bugs, alem de ser um tanto mal organizado, to aprendendo mais resolvendo os bugs do que lendo o código ?

 

  Reveal hidden contents

Me surgiram algumas duvidas, usar o setElementData pra todos ou varios scripts é um problema que pode comprometer o desempenho do servidor com muitos jogadores online?
Usando essas tabelas, não é possivel eu syncronizar esses valores com outros scripts? tipo o level é um script e outro script precisa verificar esse nivel

Expand  

Eu indicaria usar setElementData só quando realmente necessário, quando você precisar manuseia esse elemento entre outros scripts, server-side e client-side.

Só indago aqui, em minha percepção é :

1. Cada um tem sua maneira de manuseia códigos, fazer um resource, se delimitando ou não.

2. Se existe no wiki suas variedades de opções, é para serem usadas, e o que realmente define realmente um resource mal otimizado? Então para eu fazer um script, terei que inventar maneiras, para se dizer "foi diferente" e é mais "otimizado"? Quem garante? 

Bom, eu já fiz os testes, realmente tem muitas coisas que você consegue otimiza "Não estou polemizando", outras não fará nenhuma diferença, o que será mais indicado a fazer? eu ter que criar um resource que ficará recebendo informação? ou salva-lo diretamente em um elemento? utilizar exportações? triggers? pra mim, ambos é a mesma coisa, claro, cada um tem sua opinião.

3. E em timers, o que pode preocupar, é o tanto de timers sendo acionados, porem, vai depende para que você esta utilizando, você não pode apenas parar de usa-lo por que dizem que dará um resource menos otimizado, vai depende do código de como está sendo feito e para que, o indicado não é deixa um tempo muito rápido, porem, vai depende de cada necessidade.

 

 

Edited by Angelo Pereira
Link to comment

Entendi todos os pontos sobre novos modos de usar e quais problemas são causados, mas ainda não consegui resolver o problema (que acho que possa ser resolvido) dentro desse script

1° Modo de que tentei

  Reveal hidden contents

2° Modo que tentei

  Reveal hidden contents

 

Edited by Breevz
Link to comment
local table_experiencia = { }

function time_level ( )
   for i, player in ipairs(getElementsByType("player")) do
   local acc = getPlayerAccount(player)
      if acc and not isGuestAccount(acc) then
         if not table_experiencia[player] then --/> Caso o Jogador não Estiver na Tabela Então faça :
            table_experiencia[player] = 0 --/> Adiciona-lo com 0
         elseif table_experiencia[player] >= 6 then --/> Caso o Jogador Já Tenha 6 EXP então faça :
            setElementData(player,"Level", tonumber(getElementData(player,"Level") or 0) +1) --/> Jogador Recebeu +1 Level
            outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 Level", player, 255, 255, 255, true )
            table_experiencia[player] = 0 --/> Seta-lo 0 novamente
         elseif table_experiencia[player] then --/> Caso o Jogador Esteja na Tabela Então Faça :
            table_experiencia[player] = tonumber(table_experiencia[player]) + 1 --/> Adicionar +1 a Cada 10min
            outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. ("..tonumber(table_experiencia[player])"/6)", player, 255, 255, 255, true )
         end
      end
   end
end
setTimer ( time_level, 60000*10, 0 ) --/> A Cada 10 min Ganha 1 EXP

Tente isso, caso você não conseguir resolver o seu.

Obs: Não testei.

Edited by Angelo Pereira
Link to comment
  On 01/03/2020 at 03:48, iDannz [Breno] said:

O seu segundo método está quase funcional, você só esqueceu de remover um end (já que você removeu um if)

Expand  

tlg, eu arrumei aqui, mas o problema que citei continua, sempre que  a função é executada pelo timer, a pessoa ganha +1 xp

 

  Reveal hidden contents

Testei e não deu

Modo que adicionei 
 

  Reveal hidden contents

ERRO APRESENTADO NO CONSOLE
 

Link to comment

De tão mal feito que o código estava acabamos nao percebendo que as condições originais não faziam o minimo sentido, 
desta maneira deve funcionar como vc espera;

function timecount ( )
	for i, player in ipairs(getElementsByType("player")) do
		local acc = getPlayerAccount(player)
		if acc then
			if not isGuestAccount(acc) then
                local level = getElementData(player,"Level") or 0 if tonumber(level) == nil then level = 0 end
                local exp = getElementData(player,"LSys:EXP") or 0 if tonumber(exp) == nil then exp = 0 end
                local onlinetime = getElementData(player,"LSys:Online") or 0 if tonumber(onlinetime) == nil then onlinetime = 0 end
                local mins = getElementData(player,"LSys:Mins") or 0 if tonumber(mins) == nil then mins = 0 end
                if tonumber(mins) >= 600 then
                    outputDebugString("resetou minuto")
                    outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. (".. tonumber(exp)+1 .."/20)", player, 255, 255, 255, true )
                    setElementData(player,"LSys:EXP",tonumber(exp)+1)
                    playSoundFrontEnd ( player, 44 )
                    setElementData(player,"LSys:Mins",1)
                end
                if tonumber(exp) >= 19 then
                    setElementData(player,"LSys:EXP",0)
                    setElementData(player,"Level",tonumber(level)+1)
                    outputDebugString ( "Adicionou um nivel" )
                    outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Juntou 20 de Experiência e Ganhou +1 Level ("..tonumber(level)+1 ..")", player, 255, 255, 255, true )
                    playSoundFrontEnd ( player, 45 )
                end
                if tonumber(mins) < 600 then	     
                    setElementData(player,"LSys:Mins",tonumber(mins)+1)
                    setElementData(player,"LSys:Online",tonumber(onlinetime)+1)	
                    outputDebugString("adicionou minuto")
                end
            end
	    end
    end
end
setTimer ( timecount, 1000, 0 )	

 

Edited by Lord Henry
Link to comment
  On 29/02/2020 at 22:32, Breevz said:

Estou tentando ativar uma função "nativa" de um LevelSystem que estou usando, seria para cada 10 minutos o player ganhar um de XP, mas isso não acontece, e não consigo imagina o que possa estar acontecendo.

Expand  

Você está tentando mesclar 2 sistemas ou tentando apenas fazer está função ser executada a cada 10 minutos?

function timecount ( )
	for i, player in ipairs(getElementsByType("player")) do
		local acc = getPlayerAccount(player)
		if acc then
			if not isGuestAccount(acc) then
			    --if getElementData ( player, "AirNewSCR_LiberarXP" ) == "Sim" then
				   -- setElementData ( player, "AirNewSCR_LiberarXP", "Não" )
				    local level = tonumber(getElementData(player,"Level")) or 0 --if tonumber(level) == nil then level = 0 end
				    local exp = tonumber(getElementData(player,"LSys:EXP")) or 0 --if tonumber(exp) == nil then exp = 0 end
				    --local onlinetime = getElementData(player,"LSys:Online") or 0 if tonumber(onlinetime) == nil then onlinetime = 0 end
				    --local mins = getElementData(player,"LSys:Mins") or 0 if tonumber(mins) == nil then mins = 0 end
					--if tonumber(mins) >= 600 then
						--outputConsole("resetou minuto")
						--outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. (".. tonumber(exp)+1 .."/20)", player, 255, 255, 255, true )
						setElementData(player,"LSys:EXP",tonumber(exp)+1)
					    --playSoundFrontEnd ( player, 44 )
					    --setElementData(player,"LSys:Mins",1)
					--end
					if tonumber(exp) >= 19 then
					    setElementData(player,"LSys:EXP",0)
					    setElementData(player,"Level",tonumber(level)+1)
					    --outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. (".. tonumber(exp)+1 .."/6)", player, 255, 255, 255, true )
					    outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Juntou 20 de Experiência e Ganhou +1 Level ("..tonumber(level)+1 ..")", player, 255, 255, 255, true )
					    playSoundFrontEnd ( player, 45 )
					    --DarSalario (player) -- Efetua os Pagamentos dos Jogadores
					else
					    outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. (".. tonumber(exp)+1 .."/20)", player, 255, 255, 255, true )
					    --setElementData(player,"LSys:EXP",tonumber(exp)+1)
					    playSoundFrontEnd ( player, 44 )
					end
				    --if tonumber(mins) < 600 then	
				        --setElementData(player,"LSys:Mins",tonumber(mins)+1)
						--setElementData(player,"LSys:Online",tonumber(onlinetime)+1)	
					--end
		        end
			--end
	    end
    end
end
setTimer ( timecount, 1000*60*10, 0 )	

 

Link to comment

Fiz umas correções de faltar .. e um outputDebugString (Que eu não tinha visto).

local table_experiencia = { }

function time_level ( )
   for i, player in ipairs(getElementsByType("player")) do
   local acc = getPlayerAccount(player)
      if acc and not isGuestAccount(acc) then
         if not table_experiencia[player] then --/> Caso o Jogador não Estiver na Tabela Então faça :
            table_experiencia[player] = 0 --/> Adiciona-lo com 0
         elseif table_experiencia[player] >= 6 then --/> Caso o Jogador Já Tenha 6 EXP então faça :
            setElementData(player,"Level", tonumber(getElementData(player,"Level") or 0) +1) --/> Jogador Recebeu +1 Level
            outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 Level", player, 255, 255, 255, true )
            table_experiencia[player] = 0 --/> Seta-lo 0 novamente
         elseif table_experiencia[player] then --/> Caso o Jogador Esteja na Tabela Então Faça :
            table_experiencia[player] = tonumber(table_experiencia[player]) + 1 --/> Adicionar +1 a Cada 10min
            outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. ("..tonumber(table_experiencia[player]).."/6)", player, 255, 255, 255, true )
         end
      end
   end
end
setTimer ( time_level, 10000, 0 ) --/> A Cada 10 S / Demostração.

Testado :

RqxUv0O.png

Link to comment
  On 01/03/2020 at 03:56, Angelo Pereira said:

local table_experiencia = { }

function time_level ( )
   for i, player in ipairs(getElementsByType("player")) do
   local acc = getPlayerAccount(player)
      if acc and not isGuestAccount(acc) then
         if not table_experiencia[player] then --/> Caso o Jogador não Estiver na Tabela Então faça :
            table_experiencia[player] = 0 --/> Adiciona-lo com 0
         elseif table_experiencia[player] >= 6 then --/> Caso o Jogador Já Tenha 6 EXP então faça :
            setElementData(player,"Level", tonumber(getElementData(player,"Level") or 0) +1) --/> Jogador Recebeu +1 Level
            outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 Level", player, 255, 255, 255, true )
            table_experiencia[player] = 0 --/> Seta-lo 0 novamente
         elseif table_experiencia[player] then --/> Caso o Jogador Esteja na Tabela Então Faça :
            table_experiencia[player] = tonumber(table_experiencia[player]) + 1 --/> Adicionar +1 a Cada 10min
            outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. ("..tonumber(table_experiencia[player])"/6)", player, 255, 255, 255, true )
         end
      end
   end
end
setTimer ( time_level, 60000*10, 0 ) --/> A Cada 10 min Ganha 1 EXP

Tente isso, caso você não conseguir resolver o seu.

Obs: Não testei.

Expand  

O código que você fez não parece ter o resultado que ele espera pelos seguintes motivos;

  1. O código será executado a cada 10 minutos. Ou seja, se o jogador jogador X jogou por 9 minutos e acabou se desconectando, ao retornar ele terá que ficar online por 10 minutos pra obter a experiência onde no caso o correto seria ele jogar por apenas mais 1 minuto pra obter a experiência.
  2. Pra ganhar level ele terá que ficar conectado por uma 1h:10m, sem sair, já que a experiencia recebida não é salva e a tabela se inicia com 0 de experiência, e não por 1. Ou seja, mesmo que você já tenha jogado por 60 minutos e tenha 5/6 de experiência, caso você saia do jogo, ao voltar sua experiência será 0.
  3. Os dados que são inseridos na tabela table_experiencia nunca são removidos, e isso depois de um tempo vai começar a causar problemas de desempenho.
  • Haha 1
Link to comment
  On 01/03/2020 at 17:16, iDannz [Breno] said:

O código que você fez não parece ter o resultado que ele espera pelos seguintes motivos;

  1. O código será executado a cada 10 minutos. Ou seja, se o jogador jogador X jogou por 9 minutos e acabou se desconectando, ao retornar ele terá que ficar online por 10 minutos pra obter a experiência onde no caso o correto seria ele jogar por apenas mais 1 minuto pra obter a experiência.
  2. Pra ganhar level ele terá que ficar conectado por uma 1h:10m, sem sair, já que a experiencia recebida não é salva e a tabela se inicia com 0 de experiência, e não por 1. Ou seja, mesmo que você já tenha jogado por 60 minutos e tenha 5/6 de experiência, caso você saia do jogo, ao voltar sua experiência será 0.
  3. Os dados que são inseridos na tabela table_experiencia nunca são removidos, e isso depois de um tempo vai começar a causar problemas de desempenho.
Expand  

Hum, então você quer que eu faça um usando elemento? mas, antes era a favor das tabelas? engraçado, comenta isso, mais tudo bem.

E para finalizar, sobre o tempo é de 1:20min, 10 + do tempo de receber a tabela + 10 min de verificar em 6 EXP.

 

Link to comment
  On 01/03/2020 at 17:30, Angelo Pereira said:

Hum, então você quer que eu faça um usando elemento? mas, antes era a favor das tabelas? engraçado, comenta isso, mais tudo bem.

E para finalizar, sobre o tempo é de 1:20min, 10 + do tempo de receber a tabela + 10 min de verificar em 6 EXP.

Expand  

é, parece que você quer polemizar sim. 
Você poderia ao menos salvar os dados na conta a partir da tabela no onPlayerQuit e então remover os dados do player da tabela, mas faça-o como quiser, como você disse; cada um tem seu jeito de codificar e escrever seus resources.

Link to comment
  On 01/03/2020 at 17:35, iDannz [Breno] said:

é, parece que você quer polemizar sim. 
Você poderia ao menos salvar os dados na conta a partir da tabela no onPlayerQuit e então remover os dados do player da tabela, mas faça-o como quiser, como você disse; cada um tem seu jeito de codificar e escrever seus resources.

Expand  

Amigo, eu dei exemplo, não irei introduzir tudo o que é preciso, ou seja, "não que vou fazer tudo", apenas mostrei uma forma e uma estrutura de como pode ser feito. Entende isso? E

Exatamente, cada um teu seu jeito, cada um vai passa uma parte do seu conhecimento, não que dizer que temos que fazer tudo.

Vamos ter mais humildade, não sou eu que fico falando mal de códigos dos outros, mas, eu encerro por aqui.

Link to comment
  On 01/03/2020 at 17:42, Angelo Pereira said:

Amigo, eu dei exemplo

Expand  

Você não deu apenas o exemplo, você está incitando ele a ele introduzir seu código incompleto ao servidor dele;

  On 01/03/2020 at 16:41, Angelo Pereira said:

Obviamente vai da erro, você colocou 2 sistem level, o que eu fiz do 0, e o seu bugado.

Bastava ler o que eu fiz, para ver que a cada 10 minutos iria da 1 EXP, e não disse nenhum momento pra junta os dois LOL

Expand  

e "falar mal" do código dos outros nem sempre é ruim, tendo vista que se o código está mal feito e pode melhorar, só sendo tolo pra querer lutar tanto pra não melhora-lo, só estou dando dicas de como podem obter melhores resultados, boa tarde pra você também, humildão.

  • Like 1
Link to comment
  On 01/03/2020 at 17:56, iDannz [Breno] said:

Você não deu apenas o exemplo, você está incitando ele a ele introduzir seu código incompleto ao servidor dele;

e "falar mal" do código dos outros nem sempre é ruim, tendo vista que se o código está mal feito e pode melhorar, só sendo tolo pra querer lutar tanto pra não melhora-lo, só estou dando dicas de como podem obter melhores resultados, boa tarde pra você também, humildão.

Expand  

Eu entendo, e concordo sobre dar dicas para melhorar, é algo valioso, mas, não estamos aqui pra causar discussão.

Fiz de uma maneira funcional.

 
-- Script only Server-Side--


function timecount ( )
   for i, player in ipairs(getElementsByType("player")) do
   local acc = getPlayerAccount(player)
      if acc and not isGuestAccount(acc) then
      local level = getElementData(player,"Level") or 0 if tonumber(level) == nil then level = 0 end
      local exp = getElementData(player,"LSys:EXP") or 0 if tonumber(exp) == nil then exp = 0 end
      local onlinetime = getElementData(player,"LSys:Online") or 0 if tonumber(onlinetime) == nil then onlinetime = 0 end
      local mins = getElementData(player,"LSys:Mins") or 0 if tonumber(mins) == nil then mins = 0 end
	  
         if tonumber(mins) >= 600 then --/> Se o Player Tiver 600 Segundos Então Faça :
            outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Ganhou +1 de Experiência. (".. tonumber(exp)+1 .."/20)", player, 255, 255, 255, true )
            setElementData(player,"LSys:EXP", tonumber(exp) + 1 )
            setElementData(player,"LSys:Mins", 0)
            playSoundFrontEnd ( player, 44 )
         end
         
         if tonumber(exp) >= 20 then --/> Se o Player Tiver 20 EXP Então faça :
            setElementData(player,"LSys:EXP",0)
            setElementData(player,"Level",tonumber(level)+1)
            outputChatBox ( "#ffffff[ #82FA58UP #ffffff] - Você Juntou 20 de Experiência e Ganhou +1 Level ("..tonumber(level)+1 ..")", player, 255, 255, 255, true )
            playSoundFrontEnd ( player, 45 )
            --DarSalario (player) -- Efetua os Pagamentos dos Jogadores
         end
 
         if tonumber(mins) < 600 then --/> Se o Player Tiver Abaixo de 600 Segundos, Então Faça :
            setElementData(player,"LSys:Mins", tonumber(mins) + 10 ) --/>A Cada 10 Segundos Receberá + 10 s em seu Elemento Mins.
            setElementData(player,"LSys:Online",tonumber(onlinetime) + 10 )
         end
		 
      end
   end
end
setTimer ( timecount, 10000, 0 ) --/> 10 Segundos

-- Calculo :
-- 10000 s --> Adiciona +10s / em 60 Segundos Terá 1 Minuto = total de 60000 segundos / em 10 min atingirá 600000 onde receberá +1 EXP

Aumentei o tempo como mencionei, para não fica disparando em 1 em 1s.

Edited by Angelo Pereira
  • Thanks 1
Link to comment

calma gente. sem extress..
esse codes da net estão tudo zuado. não vale apena dar continuidade com isso ( Pelo Amor de Deus )

e ainda pra ajudar o pessoal vem pedir/suporte com esse tipo de coisa que não vale a pena..

estou vendo que todos querem ajudar, mais infelizmente não vamos ter progresso com esse code.
minha ideia é que...
já que todos querem ajudar vamos criar um LevelSystem descente. se precisar pode conta com minha ajuda. vamos nos juntar e fazer um e POSTAR NA NET

  • Like 1
Link to comment
  On 29/02/2020 at 22:32, Breevz said:

Estou tentando ativar uma função "nativa" de um LevelSystem que estou usando, seria para cada 10 minutos o player ganhar um de XP, mas isso não acontece, e não consigo imagina o que possa estar acontecendo.

Expand  

@Angelo Pereira por mais que pareça que o código que você criou está certo, ele ainda não está executando corretamente oque ele solicitou, tente interpretar o texto corretamente desta vez.

  • Like 1
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...