antiblock
Elveron
  • Chatbox

    You don't have permission to chat.
    Load More
  • 0
Karbust

[Duvida]Ps.setqf Mais Get_Time()

Question

boas pessoal

 

estou aqui com uma dúvida acerca de uma quest que estou a fazer

 

eu meto assim: pc.setqf("ban1dia", get_time()+1*60*60*24)

 

e funciona, mas se eu quiser retirar esse time e meter a 0 como faço???

 

eu na opção de desbanir meti assim: pc.setqf("ban1dia", get_time()+1)

 

mas não está a funcionar

 

alguém me pode ajudar nisto sff??

 

obrigado a todos

Share this post


Link to post
Share on other sites

9 answers to this question

  • 0

e funciona, mas se eu quiser retirar esse time e meter a 0 como faço???

Exactamente da mesma maneira:
pc.setqf("ban1dia", 0)
Btw, isto não é um "time", é uma flag associada a cada jogador.Se o objectivo é gerir bans em quest, podes simplesmente verificar se a hora actual é menor do que o valor da flag (supondo um valor não nulo), i.e:
Se (flag < hora_actual)// Desligar conta

Share this post


Link to post
Share on other sites
antiblock
Elveron
  • 0

obrigado vou testar

Share this post


Link to post
Share on other sites
  • 0

Boas Tive aqui a experimentar e dá-me ideia que ainda não funcionou :S 

pc.setqf("ban1dia", 0)pc.setqf("ban2dias", 0)pc.setqf("ban7dias", 0)pc.setqf("ban15dias", 0)pc.setqf("ban30dias", 0)pc.setqf("banperma", 0)mysql_query("INSERT INTO log.log_desban_nickname (id, gm, player, razao, data) VALUES ('', '"..name.."', '".. player_name .."', '".. razao .."', '"..data1.."');")

 eu tenho isto assim, ele introduz na tabela da base de dados, mas o ban ainda continua :S e na parte do login tenho isto:

when login begin			if get_time() < pc.getqf("ban1dia") then				return			elseif get_time() > pc.getqf("ban1dia") then				say("Personagem Banida durante 1 dia")				say("[DELAY value; 1000]. . . . .[/DELAY]")				command("quit")			end

sabes do que poderá ser :S ?

 

Obrigado e :+1: pela tua resposta

 

P.S.: também tentei com o comando "/setqf ban1dia 0 HabiraMt2" e não funcionou

Share this post


Link to post
Share on other sites
  • 0
			if get_time() < pc.getqf("ban1dia") then				return			elseif get_time() > pc.getqf("ban1dia") then				say("Personagem Banida durante 1 dia")				say("[DELAY value; 1000]. . . . .[/DELAY]")				command("quit")			end
A verificação está ao contrário. Deveria ser:
if get_time() > pc.getqf("ban1dia") thenreturn
E:
elseif get_time() < pc.getqf("ban1dia") then-- kick
Reparei que tens várias flags para as diferentes durações do ban, em vez disso faz o seguinte:-> Define uma flag com a hora actual + duração do ban-> No evento "login" verifica se essa flag é maior ou menor do que a hora actual-> Se a hora actual for menor, é porque o ban ainda não expirou (logo, kick); se for maior, não fazer nada.

Share this post


Link to post
Share on other sites
  • 0

boasum amigo meu disse me para usar game.set_event_flag para aplicar o ban, só que tenho 2 problemas, ao executar o comando quit diz que foi interrompido o processo de logout ou uma cena parecida, outras vezes funciona, o outro problema é quando é para cima de 2 dias aparece o ban de 1 dia e o de 2 quando faz o login e todos os outros quanto mais tempo for o banquando voltar ao pc posto aqui essa parteobrigado pela ajuda

Share this post


Link to post
Share on other sites
  • 0

boasum amigo meu disse me para usar game.set_event_flag para aplicar o ban, só que tenho 2 problemas, ao executar o comando quit diz que foi interrompido o processo de logout ou uma cena parecida, outras vezes funciona, o outro problema é quando é para cima de 2 dias aparece o ban de 1 dia e o de 2 quando faz o login e todos os outros quanto mais tempo for o banquando voltar ao pc posto aqui essa parteobrigado pela ajuda

Não percebi qual é a dúvida. Mas não uses game.set_event_flag, isso é para guardar game-wide flags. 
game.set_event_flag = define uma flag acessível e comum a todos os jogadorespc.setqf = define uma flag para cada jogador.

Share this post


Link to post
Share on other sites
  • 0

mas se for:local player_name = pc.get_name() (acho que assim a função de obter o nome >.<)game.set_event_flag("ban1dia"..player_name, get_time()

Share this post


Link to post
Share on other sites
  • 0

mas se for:local player_name = pc.get_name() (acho que assim a função de obter o nome >.<)game.set_event_flag("ban1dia"..player_name, get_time()

Funciona, mas é contra-intuitivo, e se há uma função que faz exactamente o que tu queres, porque não usa-la?

Share this post


Link to post
Share on other sites
  • 0

pois tens razão, amanha volto a tentar outravez >.<

Share this post


Link to post
Share on other sites

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