Karbust 1,143 Posted July 21, 2014 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 1 Kɛɛɗ reacted to this Share this post Link to post Share on other sites
0 GunnerMBT 62 Posted July 21, 2014 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 1 Karbust reacted to this Share this post Link to post Share on other sites
0 Karbust 1,143 Posted July 22, 2014 obrigado vou testar Share this post Link to post Share on other sites
0 Karbust 1,143 Posted July 22, 2014 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 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 GunnerMBT 62 Posted July 22, 2014 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") endA verificação está ao contrário. Deveria ser:if get_time() > pc.getqf("ban1dia") thenreturnE:elseif get_time() < pc.getqf("ban1dia") then-- kickReparei 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 Karbust 1,143 Posted July 23, 2014 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 GunnerMBT 62 Posted July 23, 2014 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 ajudaNã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 Karbust 1,143 Posted July 23, 2014 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 GunnerMBT 62 Posted July 23, 2014 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 Karbust 1,143 Posted July 23, 2014 pois tens razão, amanha volto a tentar outravez >.< Share this post Link to post Share on other sites
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