× Dαяkαтн 19 Posted December 15, 2015 Olá/Boas Cyber! Fiz uma quest que faz o seguinte: [*] 1 hora online = Player ganha um cofre/tesouro do Chefe Orc [*] 2 horas online = Player ganha um cofre/tesouro da Aranha Rainha/Rainha Aranha [*] 3 horas online = Player ganha um cofre/tesouro do Nove Caudas [*] 5 horas online = Player ganha um cofre/tesouro do Ceifador/Morte Estou fazendo/estou a fazer um servidor PT-PT e um PT-BR, fiz uma quest para tempo online no servidor, e vou disponibilizar a open source para usarem e avaliarem. [AINDA NÃO TESTADO] - [ASSIM QUE TESTAR ATUALIZO NO POST] Versão PT-PT e PT-BR: × Download × × Scan × Agora segue o código: quest tempo_online begin state start begin when name.server_timer("uma_hora" , 3600 ) begin say_item_vnum(50070) pc.give_item2("50070", 1) end when name.server_timer("duas_hora" , 7200 ) begin say_item_vnum(50073) pc.give_item2("50073", 1) end when name.server_timer("tres_hora" , 10800 ) begin say_item_vnum(50077) pc.give_item2("50077", 1) end when name.server_timer("quatro_hora" , 18000 ) begin say_item_vnum(50082) pc.give_item2("50082", 1) end endend Código no Pastebin: Versão PT-PT Versão PT-BR Cordialmente, Darkath. Share this post Link to post Share on other sites
'PACI 2,317 Posted December 28, 2015 Onde é que estão os timers "uma_hora", "duas_hora", "tres_hora" e "quatro_hora"? E de que forma os inicias? Só vejo server_timers com o nome "name", e que nem são iniciados por nenhum event (nem login, logout, chat, click, letter, button, info, nada mesmo). Se é uma avaliação, dá próxima vez coloca isso em criatividade, pois não é conteúdo que ajude ninguém a fazer nada, uma vez que não funcionará de maneira nenhuma da forma como tens isso escrito. Não é uma crítica destrutiva, atenção! Esta foi a minha avaliação. Abraço :) Share this post Link to post Share on other sites
PennyDreadful 335 Posted December 28, 2015 Onde é que estão os timers "uma_hora", "duas_hora", "tres_hora" e "quatro_hora"? E de que forma os inicias? Só vejo server_timers com o nome "name", e que nem são iniciados por nenhum event (nem login, logout, chat, click, letter, button, info, nada mesmo). Se é uma avaliação, dá próxima vez coloca isso em criatividade, pois não é conteúdo que ajude ninguém a fazer nada, uma vez que não funcionará de maneira nenhuma da forma como tens isso escrito. Não é uma crítica destrutiva, atenção! Esta foi a minha avaliação. Abraço :) Está-me a parecer que aquilo até faz qualquer coisa, mas como sou uma nódoa a programação só vou mandar aqui um bitaite a ver se dou um tiro no pé ou no escuro. Acho que aquilo de facto dá o item, mas só quando o servidor liga. Imagina, os players que estiverem online nas 4 horas seguintes em que o servidor liga, vão receber aquilo. Os que entrarem depois da 4ª hora, não recebem mais nada até que o servidor volte a ser reiniciado. O que achas Paci? o.o Share this post Link to post Share on other sites
'PACI 2,317 Posted December 28, 2015 Não vai fazer nada, pois um server_timer deve ser iniciado da seguinte maneira: server_timer("nome", t(sem segundos) [, index do mapa]).E aí não consta nada disso. Para além do mais, os when-statements estão mal feitos, portanto o compilador nem sequer irá compilar a quest. 1 PennyDreadful reacted to this Share this post Link to post Share on other sites
PennyDreadful 335 Posted December 28, 2015 Não vai fazer nada, pois um server_timer deve ser iniciado da seguinte maneira: server_timer("nome", t(sem segundos) [, index do mapa]). E aí não consta nada disso. Para além do mais, os when-statements estão mal feitos, portanto o compilador nem sequer irá compilar a quest. Certo, obrigado :P Share this post Link to post Share on other sites
× Dαяkαтн 19 Posted December 28, 2015 Então como você faria essa quest Paci? Share this post Link to post Share on other sites
NewWars 875 Posted December 28, 2015 Esta mal codado sinceramente, falta pontos criticos para o funcionamento, vêsse que não foi testado sequer. Estrutura mais correta when login begin--registar tempo de login numa QF --registar 0 items dados numa QF --iniciar timer que verifica: verifierend when verifier.timer.begin --obter lista de items a dar --verificar se tempo de login na QF + item na list por index do QF que regista o numero de itens dados é <= tempo passado --dar item e incrementar index por 1 na QF end when logout begin --limpar timer --meter qf de index de items dados a 0 end Share this post Link to post Share on other sites
× Dαяkαтн 19 Posted January 4, 2016 Que tal isso? quest tempo_online begin state start begin when login begin timer("tempo_online", 3600) end when tempo_online.begin begin local lista = { {1, 50070}, {2, 50073}, {3, 50077}, {4, 50082}} pc.setqf("timeon", pc.getqf("timeon") + 1) say_title("Ola "..pc.get_name()) say ("Você passou uma hora no servidor!") say ("Ganhou como recompensa:") say_item_vnum(..lista[pc.getqf("timeon")][1]..) pc.give_item2("..lista[pc.getqf("timeon")][1]..", 1) end end end Share this post Link to post Share on other sites
NewWars 875 Posted January 4, 2016 Vê alguns erros de syntax que ai têm , não te esqueças de quando fazem logout têns que meter o QF a 0, se não ele continua da mesma posição e tambem limpar o timer no logout, e fazer loop_timer, porque isso so é executado 1x. Share this post Link to post Share on other sites
☆♕ CabrinhaSexy ♕☆ 738 Posted January 4, 2016 Boas tardes, No meu entender a quest ainda se encontra em desenvolvimento. Posto isto o tópico será movido para Metin2 - Criatividade. Em Metin2 - Quests apenas são permitidas quest já acabadas. Cumprimentos Share this post Link to post Share on other sites