antiblock
https://arwen2.global/
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
  • 0
rafaelxte2

Iniciar com Nivel

Question

Olá galera estou com essa quest básica de dar itens ao iniciar, porem queria inserir nela, para que o jogador possa nascer com nivel 65 já.
Alguém poderia me dizer como fazer tal?

Spoiler

quest give_basic_weapon begin
    state start begin
        when login begin
            local item_vnum = 19
            local item_vnum2 = 11209
            local item_vnum3 = 12209
            if pc.get_job() == 1 then
                item_vnum = 1009
                item_vnum2 = 11409
                item_vnum3 = 12349
            elseif pc.get_job() == 2 then                
                item_vnum2 = 11609
                item_vnum3 = 12489
            elseif pc.get_job() == 3 then
                item_vnum = 7009
                item_vnum2 = 11809
                item_vnum3 = 12629
            end
            pc.give_item2(item_vnum)
            pc.give_item2(item_vnum2)
            pc.give_item2(item_vnum3)
            pc.give_item2(27003, 200)
            pc.give_item2(27003, 200)
            pc.give_item2(27003, 200)
            pc.give_item2(27006, 200)
            pc.give_item2(27006, 200)
            pc.give_item2(72702)
            pc.give_item2(71050, 100)
            pc.give_item2(70038, 100)
            pc.give_item2(13009)
            pc.give_item2(14009)
            pc.give_item2(15009)
            pc.give_item2(16009)
            pc.give_item2(17009)
            pc.give_item2(50053)
            horse . unride ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . advance ( )
            horse . ride ( )
            notice_all(pc.get_name().." Seja Bem Vindo ao Metin Tradição.")
            set_state(weiter)
        end
    end    
    state weiter begin
        when letter begin
            send_letter("Bem vindo ao Metin2 Tradição")
        end
        when button or info begin
            say_title("Seja bem vindo(a) "..pc.get_name())
            say("")
            say("As aventuras incríveis de Metin 2 estão prestes")
            say("a começar. Neste início você vai receber as")
            say("informações básicas que são diferentes das tarefas.")
            say("")
            say("Se quiser caçar vai encontrar alguns animais")
            say("selvagens fora da Vila, estão indicados pelo")
            say("mapa por pontos vermelhos. Mas para começar, ")
            say("deve caçar os animais mais fáceis, ")
            say("como os Cães Selvagens.")
            say("Boa Sorte!")
            set_state(ende)
        end
    end
    state ende begin
    end
end

 

Share this post


Link to post
Share on other sites

13 answers to this question

  • 0
while pc.get_level() ~= 65 do
    pc.give_exp2(pc.get_next_exp())
end

 

Não sei se existe outra maneira directa de executar comandos pelas quests sem seres GM com o command("level 65"), se a encontrares usa-a, tem melhor performance que isto.

 

 

Btw, correr coisas iguais utiliza um FOR ou um WHILE, ou simplesmente utiliza a função dada pelo próprio jogo para quests:

 

Opção 1:

horse.unride()

for (level = 1, 30, 1) do 
   horse.advance() 
end

horse.ride()

 

Opção 2 (a mais correta):

horse.unride()
horse.set_level(30)
horse.ride()

 

Share this post


Link to post
Share on other sites
antiblock
https://i.imgur.com/aJ17bf7.gif
  • 0
Em 09/04/2017 at 12:03, Cσяvσ⋆ disse:

while pc.get_level() ~= 65 do
    pc.give_exp2(pc.get_next_exp())
end

 

Não sei se existe outra maneira directa de executar comandos pelas quests sem seres GM com o command("level 65"), se a encontrares usa-a, tem melhor performance que isto.

 

 

Btw, correr coisas iguais utiliza um FOR ou um WHILE, ou simplesmente utiliza a função dada pelo próprio jogo para quests:

 

Opção 1:


horse.unride()

for (level = 1, 30, 1) do 
   horse.advance() 
end

horse.ride()

 

Opção 2 (a mais correta):


horse.unride()
horse.set_level(30)
horse.ride()

 

Corvo bem explicado, mas nao entendo o meter o level eu tentei aqui mas deu erro na quest alguém pode inserir para mim ?

Share this post


Link to post
Share on other sites
  • 0

Eu coloquei à bocado e funcionou

Share this post


Link to post
Share on other sites
  • 0
21 minutos atrás, rafaelxte2 disse:

Corvo bem explicado, mas nao entendo o meter o level eu tentei aqui mas deu erro na quest alguém pode inserir para mim ?

 

Vê que erro é e corrige-o ou pelo menos mete-o aqui, para estares neste ramo deduzo que saibas inglês pelo menos.

 

 

Btw, da próxima vez utiliza a google antes de criares tópicos, eu não percebo nada de funções de metin2 nem de lua e fui lá os buscar à documentação oficial juntamente com a lista de funções do metin2.

 

Lua: https://www.lua.org/pil/contents.html

Metin2 Functions: http://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/1539721-all-quest-functions-over-670-functions.html

Share this post


Link to post
Share on other sites
  • 0
34 minutos atrás, rafaelxte2 disse:

Corvo bem explicado, mas nao entendo o meter o level eu tentei aqui mas deu erro na quest alguém pode inserir para mim ?

Deves estar a fazer algo errado, porque a função é aquela. Deixo aqui a quest que testei aqui e funcionou, vê o que tens de errado a partir dela.

 

quest givelvl begin
	state start begin
		when 20011.chat."give lvl" begin
			local title=mob_name(20011)
			while pc.get_level() < 65 do
			pc.give_exp2(pc.get_next_exp())
			end
			say_title(title)
			say("Free levels")
			say("gg izi")
			say("kappa")
		end
	end
end

Esta quest está metida num npc, apenas adapta-a.

Share this post


Link to post
Share on other sites
  • 0
4 minutos atrás, Lσα∂ιηg disse:

Deves estar a fazer algo errado, porque a função é aquela. Deixo aqui a quest que testei aqui e funcionou, vê o que tens de errado a partir dela.

 


quest givelvl begin
	state start begin
		when 20011.chat."give lvl" begin
			local title=mob_name(20011)
			while pc.get_level() < 65 do
			pc.give_exp2(pc.get_next_exp())
			end
			say_title(title)
			say("Free levels")
			say("gg izi")
			say("kappa")
		end
	end
end

Esta quest está metida num npc, apenas adapta-a.

se não for pedir muito, estive tentando fazer essa quest.
Você poderia por em uma só quest para o player, pegar cavalo nível 30, Brasão do cavalo, Nível 65, mantos, e itens.
No campo itens deixa qualquer numero pois vou por um set para cada.

Share this post


Link to post
Share on other sites
  • 0
24 minutos atrás, rafaelxte2 disse:

se não for pedir muito, estive tentando fazer essa quest.
Você poderia por em uma só quest para o player, pegar cavalo nível 30, Brasão do cavalo, Nível 65, mantos, e itens.
No campo itens deixa qualquer numero pois vou por um set para cada.

 

Não te custa nada procurar no forum pelo que estás a pedir. Não me recordo de nenhuma função, apenas peguei numa quest qualquer, apaguei o que não era necessário e usei o google para fazer o resto. Saber fazer isso é o mínimo que é preciso se realmente quiseres mexer em metin2.

 

Aprendes muito mais se encontrares e descobrires este tipo de coisas sozinho em vez de eu te dar a papa toda feita, por isso, boa sorte. 

Share this post


Link to post
Share on other sites
  • 0

código para o cavalo

 

horse.unride()
horse.set_level(30)
horse.ride()

 

código para dar os itens (mantos e o resto)

 

  pc.give_item2(item_vnum)

 

é só adicionar ao resto da quest

Share this post


Link to post
Share on other sites
  • 0

E então pessoal tentei fazer a quest aqui porem ela só  mete os level, e não da os itens, quais eu coloquei, nem da level ao cavalo.

 

Spoiler

quest give_basic_weapon begin
    state start begin
        when login begin
            local item_vnum = 169
            local item_vnum2 = 11289
            local item_vnum3 = 12229
            if pc.get_job() == 1 then
                item_vnum = 1119
                item_vnum2 = 11489
                item_vnum3 = 12369
            elseif pc.get_job() == 2 then
                local item_vnum = 169            
                item_vnum2 = 11689
                item_vnum3 = 12509
            elseif pc.get_job() == 3 then
                item_vnum = 7139
                item_vnum = 5109
                item_vnum2 = 11889
                item_vnum3 = 12649
            end
            pc.give_item2(item_vnum)
            pc.give_item2(item_vnum2)
            pc.give_item2(item_vnum3)
            pc.give_item2(72702)
            pc.give_item2(71050, 100)
            pc.give_item2(70038, 200)
            pc.give_item2(70038, 200)
            pc.give_item2(13049)
            pc.give_item2(14069)
            pc.give_item2(15169)
            pc.give_item2(16049)
            pc.give_item2(17169)
            pc.give_item2(50053)
            horse.unride()
            horse.set_level(30)
            horse.ride()
            pc.get_level() ~= 65 do
            pc.give_exp2(pc.get_next_exp())
            notice_all(pc.get_name().." Seja Bem Vindo ao Metin2 Tradição.")
            set_state(weiter)
        end
    end    
    state weiter begin
        when letter begin
            send_letter("Bem vindo ao Metin2 Tradição")
        end
        when button or info begin
            say_title("Seja bem vindo(a) "..pc.get_name())
            say("")
            say("As aventuras incríveis de Metin 2 estão prestes")
            say("a começar. Neste início você vai receber as")
            say("informações básicas que são diferentes das tarefas.")
            say("")
            say("Se quiser caçar vai encontrar alguns animais")
            say("selvagens fora da Vila, estão indicados pelo")
            say("mapa por pontos vermelhos. Mas para começar, ")
            say("deve caçar os animais mais fáceis, ")
            say("como os Cães Selvagens.")
            say("Boa Sorte!")
            set_state(ende)
        end
    end
    state ende begin
    end
end

 

Share this post


Link to post
Share on other sites
  • 0

What the fuck estás a fazer para ai jovem? Literalmente what the fuck.

 

 

O que raio queres que a quest faça com isto?

(unless LUA deixe-te correr isso dessa maneira, mas seria um bocado impossível visto que o resto não funciona pelo que dizes)

pc.get_level() ~= 65 do
  pc.give_exp2(pc.get_next_exp())

 

 

Aconselho-te a começares por aprender o básico da programação, senão não chegas lá tão cedo.

 

Damos-te o que precisas de fazer e ignoras completamente.

Share this post


Link to post
Share on other sites
  • 0
42 minutos atrás, Cσяvσ⋆ disse:

What the fuck estás a fazer para ai jovem? Literalmente what the fuck.

 

 

O que raio queres que a quest faça com isto?

(unless LUA deixe-te correr isso dessa maneira, mas seria um bocado impossível visto que o resto não funciona pelo que dizes)


pc.get_level() ~= 65 do
  pc.give_exp2(pc.get_next_exp())

 

 

Aconselho-te a começares por aprender o básico da programação, senão não chegas lá tão cedo.

 

Damos-te o que precisas de fazer e ignoras completamente.

Realmente kkkk.
Estive estudando as funções e como as aplicas em outras Quest, e corrigir os erros.
Eu desenvolvia Quest básicas antes, porem fiquei alguns anos se mexer com metin2 dai não lembro de muita coisa.

 

Mesmo assim obrigado pela orientação de todos!

Share this post


Link to post
Share on other sites
  • 0

Fica aqui a quest alterada/corrigida para quem precisar dela.

Por algum motivo tinhas retirado de lá o "while" e alguns outros erros que não faziam sentido algum, sem falar da confusão que lá tinhas. 

 

Spoiler

quest login begin
    state start begin
        when login begin
			if pc.get_job() == 0 then
				local item_vnum = 169
				local item_vnum2 = 11289
				local item_vnum3 = 12229
            elseif pc.get_job() == 1 then
                local item_vnum = 1119
                local item_vnum2 = 11489
                local item_vnum3 = 12369
            elseif pc.get_job() == 2 then
                local item_vnum = 169            
                local item_vnum2 = 11689
                local item_vnum3 = 12509
            elseif pc.get_job() == 3 then
                local item_vnum = 7139
                local item_vnum = 5109
                local item_vnum2 = 11889
                local item_vnum3 = 12649
            end

            pc.give_item2(item_vnum)
            pc.give_item2(item_vnum2)
            pc.give_item2(item_vnum3)
            pc.give_item2(72702)
            pc.give_item2(71050, 100)
            pc.give_item2(70038, 200)
            pc.give_item2(70038, 200)
            pc.give_item2(13049)
            pc.give_item2(14069)
            pc.give_item2(15169)
            pc.give_item2(16049)
            pc.give_item2(17169)
            pc.give_item2(50053)
        
			while pc.get_level() < 65 do
				pc.give_exp2(pc.get_next_exp())
			end

			horse.unride()
            horse.set_level(30)
            horse.ride()
            
			notice_all(pc.get_name().." Seja Bem Vindo ao Metin2 Tradição.")
            set_state(second)
        end
    end    
	
    state second begin
        when letter begin
            send_letter("Bem vindo ao Metin2 Tradição")
        end
        when button or info begin
            say_title("Seja bem vindo(a) "..pc.get_name())
            say("")
            say("As aventuras incríveis de Metin 2 estão prestes")
            say("a começar. Neste início você vai receber as")
            say("informações básicas que são diferentes das tarefas.")
            say("")
            say("Se quiser caçar vai encontrar alguns animais")
            say("selvagens fora da Vila, estão indicados pelo")
            say("mapa por pontos vermelhos. Mas para começar, ")
            say("deve caçar os animais mais fáceis, ")
            say("como os Cães Selvagens.")
            say("Boa Sorte!")
            set_state(third)
        end
    end
	
    state third begin
    end
end

 

 

Mais uma vez, não estou a par das funções actuais de metin2, mas acredito que esta quest agora esteja funcional.
Cumprimentos.

Share this post


Link to post
Share on other sites
  • 0
Em 09/04/2017 at 12:03, Cσяvσ⋆ disse:

while pc.get_level() ~= 65 do
    pc.give_exp2(pc.get_next_exp())
end

 

Não sei se existe outra maneira directa de executar comandos pelas quests sem seres GM com o command("level 65"), se a encontrares usa-a, tem melhor performance que isto.

 

 

Btw, correr coisas iguais utiliza um FOR ou um WHILE, ou simplesmente utiliza a função dada pelo próprio jogo para quests:

 

Opção 1:


horse.unride()

for (level = 1, 30, 1) do 
   horse.advance() 
end

horse.ride()

 

Opção 2 (a mais correta):


horse.unride()
horse.set_level(30)
horse.ride()

 

Saberia me dizer porque todos personagem começam com set de Guerreiro nessa quest!

 

Spoiler

quest login begin
    state start begin
        when login begin
			if pc.get_job() == 0 then
				local item_vnum = 169
				local item_vnum2 = 11289
				local item_vnum3 = 12229
            elseif pc.get_job() == 1 then
                local item_vnum = 1119
                local item_vnum2 = 11489
                local item_vnum3 = 12369
            elseif pc.get_job() == 2 then
                local item_vnum = 169            
                local item_vnum2 = 11689
                local item_vnum3 = 12509
            elseif pc.get_job() == 3 then
                local item_vnum = 7139
                local item_vnum = 5109
                local item_vnum2 = 11889
                local item_vnum3 = 12649
            end

            pc.give_item2(item_vnum)
            pc.give_item2(item_vnum2)
            pc.give_item2(item_vnum3)
            pc.give_item2(72702)
            pc.give_item2(71050, 100)
            pc.give_item2(70038, 200)
            pc.give_item2(70038, 200)
            pc.give_item2(13049)
            pc.give_item2(14069)
            pc.give_item2(15169)
            pc.give_item2(16049)
            pc.give_item2(17169)
            pc.give_item2(50053)
        
			while pc.get_level() < 65 do
			pc.give_exp2(pc.get_next_exp())
			end

			horse.unride()
            horse.set_level(30)
            horse.ride()
            
			notice_all(pc.get_name().." Seja Bem Vindo ao Metin2 Tradição.")
            set_state(second)
        end
    end    
	
    state second begin
        when letter begin
            send_letter("Bem vindo ao Metin2 Tradição")
        end
        when button or info begin
            say_title("Seja bem vindo(a) "..pc.get_name())
            say("")
            say("As aventuras incríveis de Metin 2 estão prestes")
            say("a começar. Neste início você vai receber as")
            say("informações básicas que são diferentes das tarefas.")
            say("")
            say("Se quiser caçar vai encontrar alguns animais")
            say("selvagens fora da Vila, estão indicados pelo")
            say("mapa por pontos vermelhos. Mas para começar, ")
            say("deve caçar os animais mais fáceis, ")
            say("como os Cães Selvagens.")
            say("Boa Sorte!")
            set_state(third)
        end
    end
	
    state third begin
    end
end

 

 

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