• 0
Zwetsch

[dúvida] script

Pergunta

Opa, e aí galera, tudo certo?

 

Então, estou com duas dúvidas relacionadas a um script que faz a contagem de monstros derrotados para uma quest, será que alguém poderia me ajudar?

 

01 - Como eu teria de fazer para que aparecesse o número de cada monstro derrotado por um dispbottom.

Exemplo: Você derrotou 1/800 Porings
Você derrotou 2/800 Porings

E assim por diante.

 

02 - Fazer que o script pare a contagem assim que o número de monstros derrotados for concluído, pois o script ele continua fazendo a contagem mesmo após ter concluído com êxito a tarefa.

 

O script encontra-se dentro do spoiler.

	-    script    KillMonsters#by_Oliver    -1,{
	OnNPCKillEvent:
if(killedrid == 1702) set killporing,killporing + 1;
end;
	}
	    lucifer:
    mes .@name$;
    mes "Há bastante tempo atrás, Odin deixou-me encarregado da construção de um dos itens mais místicos de todo o servidor";
    mes "este item foi construído por um anjo, seu nome? Lúcifer!";
    mes "Este é, talvez, um dos itens mais intrigantes que já fora descoberto.";
next;
    mes .@name$;
    mes "Vejo que és um guerreiro bastante corajoso ^0000FF"+strcharinfo(0)+"^000000.";
    mes "Sua missão será um pouco extensa, para a confecção deste item, você terá que derrotar 800 Baronesas da Retribuição.";
    mes "Boa sorte em vossa jornada. Que os deuses estejam com você!";
    next;
    mes .@name$;
    mes "Aguarde um momento pois eu terei de verificar se você já concluiu o que foi pedido...";
    next;
    if(killporing < 800){
    mes .@name$;
    mes "De acordo com a minha lista de tarefas concluídas, vosso nome não encontra-se na mesma. Por favor, volte quando você conseguir terminar tudo com êxito!";
    dispbottom "--- Quantidade de monstros restantes ---";
    dispbottom "Falta você matar "+(800 - killporing)+" Baronesas da Retribuição!";
    close;
    }

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

6 respostass a esta questão

  • 0

    -    script    KillMonsters#by_Oliver    -1,{
    
    OnNPCKillEvent:
if(killedrid == 1702){
if(concluiu == 1){ end; }
set killporing,killporing + 1;
if(killporing <= 800){
dispbottom "[Kill] ["+killporing+"/800] Baronesas da Retribuição";
end;
}
        lucifer:
    mes .@name$;
    mes "Há bastante tempo atrás, Odin deixou-me encarregado da construção de um dos itens mais místicos de todo o servidor";
    mes "este item foi construído por um anjo, seu nome? Lúcifer!";
    mes "Este é, talvez, um dos itens mais intrigantes que já fora descoberto.";
next;
    mes .@name$;
    mes "Vejo que és um guerreiro bastante corajoso ^0000FF"+strcharinfo(0)+"^000000.";
    mes "Sua missão será um pouco extensa, para a confecção deste item, você terá que derrotar 800 Baronesas da Retribuição.";
    mes "Boa sorte em vossa jornada. Que os deuses estejam com você!";
    next;
    mes .@name$;
    mes "Aguarde um momento pois eu terei de verificar se você já concluiu o que foi pedido...";
    next;
    if(killporing < 800){
    mes .@name$;
    mes "De acordo com a minha lista de tarefas concluídas, vosso nome não encontra-se na mesma. Por favor, volte quando você conseguir terminar tudo com êxito!";
    dispbottom "--- Quantidade de monstros restantes ---";
    dispbottom "Falta você matar "+(800 - killporing)+" Baronesas da Retribuição!";
    close;
    }
    mes .@name$;
    mes "Você concluiu a missão, parabéns.";
    set concluiu,1;
    close;
    }

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
9 horas atrás, Pixel disse:

    -    script    KillMonsters#by_Oliver    -1,{
    
    OnNPCKillEvent:
if(killedrid == 1702){
if(concluiu == 1){ end; }
set killporing,killporing + 1;
if(killporing <= 800){
dispbottom "[Kill] ["+killporing+"/800] Baronesas da Retribuição";
end;
}
        lucifer:
    mes .@name$;
    mes "Há bastante tempo atrás, Odin deixou-me encarregado da construção de um dos itens mais místicos de todo o servidor";
    mes "este item foi construído por um anjo, seu nome? Lúcifer!";
    mes "Este é, talvez, um dos itens mais intrigantes que já fora descoberto.";
next;
    mes .@name$;
    mes "Vejo que és um guerreiro bastante corajoso ^0000FF"+strcharinfo(0)+"^000000.";
    mes "Sua missão será um pouco extensa, para a confecção deste item, você terá que derrotar 800 Baronesas da Retribuição.";
    mes "Boa sorte em vossa jornada. Que os deuses estejam com você!";
    next;
    mes .@name$;
    mes "Aguarde um momento pois eu terei de verificar se você já concluiu o que foi pedido...";
    next;
    if(killporing < 800){
    mes .@name$;
    mes "De acordo com a minha lista de tarefas concluídas, vosso nome não encontra-se na mesma. Por favor, volte quando você conseguir terminar tudo com êxito!";
    dispbottom "--- Quantidade de monstros restantes ---";
    dispbottom "Falta você matar "+(800 - killporing)+" Baronesas da Retribuição!";
    close;
    }
    mes .@name$;
    mes "Você concluiu a missão, parabéns.";
    set concluiu,1;
    close;
    }

Pixel, obrigado pela sua resposta. Fiz as modificações que você postou, porém apareceu um erro nos logs do emulador.

4ade2e0cb7b44142b641f5537c90d605.png

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Postado (editado)

Poste o npc completo, parece que você está colocando um npc dentro do outro, mais teste assim:

  -    script    KillMonsters#by_Oliver    -1,{
    
    OnNPCKillEvent:
if(killedrid == 1702){
if(concluiu == 1){ end; }
set killporing,killporing + 1;
if(killporing <= 800){
dispbottom "[Kill] ["+killporing+"/800] Baronesas da Retribuição";
end;
}

}

Editado por Pixel
0

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0
4 horas atrás, Pixel disse:

Poste o npc completo, parece que você está colocando um npc dentro do outro, mais teste assim:

  -    script    KillMonsters#by_Oliver    -1,{
    
    OnNPCKillEvent:
if(killedrid == 1702){
if(concluiu == 1){ end; }
set killporing,killporing + 1;
if(killporing <= 800){
dispbottom "[Kill] ["+killporing+"/800] Baronesas da Retribuição";
end;
}

}

Pixel, novamente muito obrigado pela resposta. Enfim, o script que eu estou utilizando encontra-se no spoiler.

	    -    script    KillMonsters#by_Oliver    -1,{
OnNPCKillEvent:
if(killedrid == 1702){
if(concluiu == 1){ end; }
set killporing,killporing + 1;
if(killporing <= 800){
dispbottom "[Kill] ["+killporing+"/800] Baronesas da Retribuição";
end;
}
}
	cave,109,35,4    script    General Halley    952,{
	set .@name$, "[^FF0000 General Halley ^000000]";
	    mes .@name$;
    mes "Olá ^0000FF"+strcharinfo(0)+"^000000!";
    mes "Sou um dos moradores mais antigos de toda Rune-Midgard. Meu trabalho é fabricar alguns dos itens bastante utilizados para a confecção de";
    mes "algumas quests bastante raras do servidor.";
    mes "Você está afim de fazer algum desses itens?";
next;
menu "Sim",-,"Não",proxima;
mes .@name$;
mes "Bom, qual item você deseja fazer a confecção?";
next;
menu "^FF0000-^000000 Lamento de Lúcifer",lucifer,"^FF0000-^000000 Angels Feather",feat,"^FF0000-^000000 Pena de Asas Angelicais",ange,"^FF0000-^000000 Bandeira Nacional",band,"^FF0000-^000000 Não, talvez mais tarde",nao;
	lucifer:
    mes .@name$;
    mes "Há bastante tempo atrás, Odin deixou-me encarregado da construção de um dos itens mais místicos de todo o servidor";
    mes "este item foi construído por um anjo, seu nome? Lúcifer!";
    mes "Este é, talvez, um dos itens mais intrigantes que já fora descoberto.";
next;
    mes .@name$;
    mes "Vejo que és um guerreiro bastante corajoso ^0000FF"+strcharinfo(0)+"^000000.";
    mes "Sua missão será um pouco extensa, para a confecção deste item, você terá que derrotar 800 Baronesas da Retribuição.";
    mes "Boa sorte em vossa jornada. Que os deuses estejam com você!";
    next;
    mes .@name$;
    mes "Aguarde um momento pois eu terei de verificar se você já concluiu o que foi pedido...";
    next;
    if(killporing < 800){
    mes .@name$;
    mes "De acordo com a minha lista de tarefas concluídas, vosso nome não encontra-se na mesma. Por favor, volte quando você conseguir terminar tudo com êxito!";
    dispbottom "--- Quantidade de monstros restantes ---";
    dispbottom "Falta você matar "+(800 - killporing)+" Baronesas da Retribuição!";
    close;
    }
	    next;
    mes .@name$;
    mes "Uau! Você conseguiu completar a tarefa que lhe foi designada, meus parabéns!";
    next;
    mes .@name$;
    mes "Jamais imaginei que presenciaria um guerreiro concluir tal tarefa.";
    mes "Ok, sei que passei um pouco dos limites, mas enfim, onde estava-mos? Ah sim...";
    next;
    mes .@name$;
    mes "Você concluiu a missão, parabéns.";
    set concluiu,1;
    next;
    announce "[General Halley]: O jogador "+strcharinfo(0)+" acaba de ganhar 1x Lamento de Lúcifer!",0;
    getitem 7025,1;
    set killporing,killporing - 800;
    close;
	feat:
mes .@name$;
mes "Para fazer a quest de 1x do item ^0000FF"+getitemname(20886)+"^000000 é necessário:";
mes "^FF000030x^000000 "+getitemname(7063);
mes "^FF000030x^000000 "+getitemname(916);
mes "^FF000030x^000000 "+getitemname(949);
mes " ";
mes "Quantas vezes deseja fazer essa quest?";
next;
input @valor;
if (@valor < 1) goto valorvalido;
if (@valor > 100)goto ate100;
	set @garrafa,30*@valor;
set @erva,30*@valor;
set @gema,30*@valor;
mes .@name$;
mes "Recompensa:";
mes "^0000FF"+@valor+"x^000000 Angels Feather";
mes " ";
mes "Traga-me:";
mes "^FF0000"+@garrafa+"^000000 Pena Macia";
mes "^FF0000"+@erva+"^000000 Plumas de Ave";
mes "^FF0000"+@gema+"^000000 Pluma";
next;
mes .@name$;
mes "Vejo que você já está de volta, trouxe tudo?";
next;
menu "Sim",-,"Não",nao;
	mes .@name$;
mes "Deixe-me verificar se você realmente possui os itens...";
next;
if(countitem(7063)<@garrafa)goto l_semitem;
if(countitem(916)<@erva)goto l_semitem;
if(countitem(949)<@gena)goto l_semitem;
	mes .@name$;
mes "Muito bem, os itens estão certinhos.";
mes "Me dê os ingredientes e leve as tinturas.";
delitem 7063,@garrafa;
delitem 916,@erva;
delitem 949,@gema;
getitem 20886,@valor;
announce "[General Halley]: O jogador "+strcharinfo(0)+" acabou completar a quests de "+@valor+"x Angels Feather.",0;
close;
	ange:
mes .@name$;
mes "Para fazer a quest de 1x do item ^0000FF"+getitemname(7079)+"^000000 é necessário:";
mes "^FF000030x^000000 "+getitemname(7063);
mes "^FF000030x^000000 "+getitemname(916);
mes "^FF000030x^000000 "+getitemname(949);
mes " ";
mes "Quantas vezes deseja fazer essa quest?";
next;
input @valor;
if (@valor < 1) goto valorvalido;
if (@valor > 100)goto ate100;
	set @garrafa,30*@valor;
set @erva,30*@valor;
set @gema,30*@valor;
mes .@name$;
mes "Recompensa:";
mes "^0000FF"+@valor+"x^000000 Pena de Asas Angelicais";
mes " ";
mes "Traga-me:";
mes "^FF0000"+@garrafa+"^000000 Pena Macia";
mes "^FF0000"+@erva+"^000000 Plumas de Ave";
mes "^FF0000"+@gema+"^000000 Pluma";
next;
mes .@name$;
mes "Vejo que você já está de volta, trouxe tudo?";
next;
menu "Sim",-,"Não",nao;
	mes .@name$;
mes "Deixe-me verificar se você realmente possui os itens...";
next;
if(countitem(7063)<@garrafa)goto l_semitem;
if(countitem(916)<@erva)goto l_semitem;
if(countitem(949)<@gena)goto l_semitem;
	mes .@name$;
mes "Muito bem, os itens estão certinhos.";
mes "Me dê os ingredientes e leve as tinturas.";
delitem 7063,@garrafa;
delitem 916,@erva;
delitem 949,@gema;
getitem 7079,@valor;
announce "[General Halley]: O jogador "+strcharinfo(0)+" acabou completar a quests de "+@valor+"x Pena de Asas Angelicais.",0;
close;
	band:
mes .@name$;
mes "Para fazer a quest de 1x do item ^0000FF"+getitemname(7549)+"^000000 é necessário:";
mes "^FF00003x^000000 "+getitemname(1059);
mes "^FF00003x^000000 "+getitemname(979);
mes "^FF00003x^000000 "+getitemname(976);
mes "^FF00003x^000000 "+getitemname(978);
mes "^FF00003x^000000 "+getitemname(982);
mes "^FF00003x^000000 "+getitemname(7151);
mes " ";
mes "Quantas vezes deseja fazer essa quest?";
next;
input @valor;
if (@valor < 1) goto valorvalido;
if (@valor > 100)goto ate100;
	set @tecido,3*@valor;
set @verde,3*@valor;
set @amarela,3*@valor;
set @azul,3*@valor;
set @branca,3*@valor;
set @papel,3*@valor;
mes .@name$;
mes "Recompensa:";
mes "^0000FF"+@valor+"x^000000 Bandeira Nacional";
mes " ";
mes "Traga-me:";
mes "^FF0000"+@tecido+"^000000 Tecido";
mes "^FF0000"+@verde+"^000000 Tintura Verde";
mes "^FF0000"+@amarela+"^000000 Tintura Amarela";
mes "^FF0000"+@azul+"^000000 Tintura Azul";
mes "^FF0000"+@branca+"^000000 Tintura Branca";
mes "^FF0000"+@papel+"^000000 Papel Amarelado";
next;
mes .@name$;
mes "Vejo que você já está de volta, trouxe tudo?";
next;
menu "Sim",-,"Não",nao;
	mes .@name$;
mes "Deixe-me verificar se você realmente possui os itens...";
next;
if(countitem(1059)<@tecido)goto l_semitem;
if(countitem(979)<@verde)goto l_semitem;
if(countitem(976)<@amarela)goto l_semitem;
if(countitem(978)<@azul)goto l_semitem;
if(countitem(982)<@branca)goto l_semitem;
if(countitem(7151)<@papel)goto l_semitem;
	mes .@name$;
mes "Muito bem, os itens estão certinhos.";
mes "Me dê os ingredientes e leve suas tinturas.";
delitem 1059,@tecido;
delitem 979,@verde;
delitem 976,@amarela;
delitem 978,@azul;
delitem 982,@branca;
delitem 7151,@papel;
getitem 7549,@valor;
announce "[General Halley]: O jogador "+strcharinfo(0)+" acabou completar a quests de "+@valor+"x Bandeira Nacional.",0;
close;
	nao:
mes .@name$;
mes "Ok, te espero aqui quando precisar!";
close;
	proxima:
close;
	l_semitem:
mes .@name$;
mes "Ei, você não tem os itens!";
mes "Volte quando tiver ...";
close;
	
valorvalido:
mes "Digite um valor valído";
close;
	ate100:
mes .@name$;
mes "Só faço até 100x de unidades.";
close;
}

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Se fosse eu usaria uma quest para isso.

Spoiler

{
    Id: ????
    Name: "Mate 100 Porings"
    Targets: (
    {
        MobId: 1002 // Id do mob
        Count: 1000 // Quantidade
    },
    )
},

 

Spoiler

MAP,X,Y    script    Nome    SPRITE,{
    if (!questmataporing) {
        mes "Mate 100 porings";
        questmataporing = 1;
        setquest ????; // ID da quest
        close;
    }
    else {
        // ???? o id da quest seta com HUNTING(Caçando) com atributo 2 "completado"
        if (questprogress(????,HUNTING) == 2) {
            mes "Certo! Você matou os 100 porings.";
            mes "Pegue sua recompensa.";
            questmataporing = 0;
            Zeny += 100;
            close;
        }
        else {
            mes "Você ainda não matou os 100 porings.";
            mes "Cada poring que você mata você é informado.";
            close;
        }
    }
}

 

1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • 0

Aviso automático:

Esse tópico foi fechado por um moderador.

Motivo: Inativo

Se você não concorda com esta ação, vá até o Tribunal de Pequenas Causas.

Equipe Cronus Emulator.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.