Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...
  • 0

Utiliser cette commande "URGENT SPARKK ! xD"


°OverDose°

Question

Bonsoir à tous,

 

Je poste cette demande pour les codeurs, j'aimerais que ma quête regarde si une autre quête a été fini.

Je m'expliques, imaginons une quête qui s'active level 100, le joueur la fait puis la termine, il continue de jouer et up level 130, une nouvelle quête s'active mais seulement si il a fini celle du level 100.

Je suposes que c'est avec cette commande "get_quest_state" mais je ne sais pas comment l'ajouter à ceci :

"when login or levelup with pc.level >= 130 begin"

 

Je vous remercie de m'aider.

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 20
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans cette question

20 réponses à cette question

Messages recommandés

  • 0

Tu peux utiliser la fonction "pc.setqf"

 

 

Par exemple, à la fin de la quête lvl 100 tu rajoute:

 

pc.setqf("quete100", 1)

 

 

 

 

Puis à la quête lvl 130 tu mets au début:

 

 

 

when login or levelup with pc.level >= 130 and pc.getqf("quete100") == 1 begin

 

 

 

 

Théoriquement ça devrait être bon.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci je teste ça dès que possible encore merci.


Marche pas :x

Voila la fin et le début de la quête :

			say_title(""..mob_name(20019).."")
		say("Bonjour ".. pc.get_name() ..",[ENTER]")
           say("que venez-vous encore faire dans mes pattes?")
local a=select ("J'ai les poissons !")
if a == 1 then
		say_title(""..mob_name(20019).."")
		say("Génial,")
		say("comme promis tu vas être récompensé !")
		pc.remove_item(27803, 10)
		local b=select("Merci !")
pc.setqf("quete100", 1)
end
clear_letter()
           setstate(__complete)
       end          
   end
   state __complete begin
   end
end
quest services_a_lemperador_dragon2 begin
   state start begin
when login or levelup with pc.level >= 130 and pc.getqf("quete100") == 1 begin
set_state("debut2")
       end
   end
   state debut2 begin
       when letter begin
           send_letter("Service De L'Emperador Dragon V2")
           local v = find_npc_by_vnum(20019)
           if 0!=v then target.vid("__TARGET__", v, "Service De L'Emperador Dragon V2") 
end
       end
       when button or info begin
           say_title("Système Emperador")
		say("Bonjour  ".. pc.get_name() .." ![ENTER]")
		say("Allez voir "..mob_name(20019)..",")
		say("une rumeure dit qu'il chercher un aventurier")
		say("pour aider l'Emperador Dragon.")
       end
end
end

Un truc fais que ça ne lance pas la quête 130, une idée ?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

			say_title(""..mob_name(20019).."")
		say("Bonjour ".. pc.get_name() ..",[ENTER]")
           say("que venez-vous encore faire dans mes pattes?")
local a=select ("J'ai les poissons !")
if a == 1 then
		say_title(""..mob_name(20019).."")
		say("Génial,")
		say("comme promis tu vas être récompensé !")
		say("L'Emperador Dragon te donne :")
		pc.remove_item(27803, 10)
		local b=select("Merci !")
set_quest_state("services_a_lemperador_dragon2", "run")
end
clear_letter()
           setstate(__complete)
       end          
   end
   state __complete begin
   end
end
when login or levelup with pc.level >= 130 begin
set_state("run")
       end

   state run begin
       when letter begin
           send_letter("Service De L'Emperador Dragon V2")
           local v = find_npc_by_vnum(20019)
           if 0!=v then target.vid("__TARGET__", v, "Service De L'Emperador Dragon V2") 
end

       when button or info begin
           say_title("Système Emperador")
		say("Bonjour  ".. pc.get_name() .." ![ENTER]")
		say("Allez voir "..mob_name(20019)..",")
		say("une rumeure dit qu'il chercher un aventurier")
		say("pour aider l'Emperador Dragon.")
       end

Putty me dit :

must start with 'quest'

rien.quest:108:Abort trap (core dumped)

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Développeur

Bah c'est simple, soit t'as foiré des conditions plut tôt dans ta quête ce qui fait qu'il croit que la quête n'est pas fermée par un "end" correspondant au "quest",

soit t'as pas mis de "quest nomdetaquête begin", mais je penche plutôt pour la première option.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

    state start begin
       when login or levelup with pc.level >= 100 begin
           set_state("debut")
       end
   end
   state debut begin
       when letter begin
           send_letter("ras")
           local v = find_npc_by_vnum(20019)
           if 0!=v then target.vid("__TARGET__", v, "ras") 
end
       end
       when button or info begin
           say_title("ras")
		say("ras" ![ENTER]")
		say("ras",")
		say("ras")
		say("ras")
       end
       when __TARGET__.target.click or 20019.chat."ras" begin
           target.delete("__TARGET__")
		say_title(""ras"")
		say("ras",[ENTER]")
           say("ras?")
           local a = select("ras", "ras")
           if(a == 2) then return end
		say_title(""ras"")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		say("ras")
		local a = select("ras", "ras")
		if(a == 2) then return end
		say_title(""ras"")
		say("ras")
		say("ras")
		say("ras")
		local a = select("ras")
		set_state("info1")
end
end
state info1 begin
	when letter begin
		send_letter("ras")
	end
	when button or info begin
		say_title("ras")
		say_reward(""ras"ras")
		say_item_vnum(ras)
		say("ras"ras"")
		say("ras")
		set_state("suite1")
end
end
state suite1 begin
       when letter begin
           send_letter("ras")
       end
       when button or info begin
	if pc.count_item(ras) < 10 then
           say_title("ras")
		say(""ras",[ENTER]")
		say("ras"ras" ras")
		say("ras")
	elseif pc.count_item(ras) >= 10 then
	say_title("ras")
		say(""ras",[ENTER]")
		say("ras"ras" ras")
		say("ras"ras".")
	local v = find_npc_by_vnum(ras)
           	if 0!=v then target.vid("__TARGET__", v, "ras") 
end
end
end
when __TARGET__.target.click or 20019.chat."ras" begin
         target.delete("__TARGET__")
		say_title(""..mob_name(ras).."")
		say("ras"ras",[ENTER]")
           say("ras")
local a=select ("ras")
if a == 1 then
		say_title(""ras"")
		say("ras")
		say("ras")
		say("ras")
		say_reward("ras")
		affect.add(ras)
		pc.remove_item(ras)
		local b=select("ras"
end
clear_letter()
           setstate(__complete)
       end          
   end
   state __complete begin
   end
end
set_quest_state("services_a_lemperador_dragon2", "run")

when login or levelup with pc.level >= 130 begin
set_state("run")
       end

   state run begin
       when letter begin
           send_letter("Service De L'Emperador Dragon V2")
           local v = find_npc_by_vnum(20019)
           if 0!=v then target.vid("__TARGET__", v, "Service De L'Emperador Dragon V2") 
end

       when button or info begin
           say_title("Système Emperador")
		say("Bonjour  ".. pc.get_name() .." ![ENTER]")
		say("Allez voir "..mob_name(20019)..",")
		say("une rumeure dit qu'il chercher un aventurier")
		say("pour aider l'Emperador Dragon.")
       end

 

 

Voila j'ai tout remplacé par RAS ^^ mais sinon rien n'a été changé.

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Développeur

Ce serait bien d'éviter de vouloir aider les gens quand on ne sait coder qu'avec ses pieds... Ça remonte les sujets

pour au final n'aider personne.

 

Je dois dire que c'est horriblement mal codé, il manque énormément de choses et c'est très mal ordonné tout ça.

Je t'invite à visiter ce sujet: https://fr.metin2.dev/topic/9657-debug-déboguer-sa-quête/ Bonne lecture.

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

  • 0

1st :

 

quest services_a_lemperador_dragon1 begin
state start begin
       when login or levelup with pc.level >= 100 begin
           set_state("debut")
       end
   end
   state debut begin
       when letter begin
           send_letter("ras")
           local v = find_npc_by_vnum(20019)
           if 0!=v then target.vid("__TARGET__", v, "ras") 
		end
       end
       when button or info begin
           say_title("ras")
           say("ras" ![ENTER]")
           say("ras",")
           say("ras")
           say("ras")
       end
       when __TARGET__.target.click or 20019.chat."ras" begin
           target.delete("__TARGET__")
           say_title(""ras"")
           say("ras",[ENTER]")
           say("ras?")
           local a = select("ras", "ras")
           if(a == 2) then return end
           say_title(""ras"")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           say("ras")
           local a = select("ras", "ras")
           if(a == 2) then return end
           say_title(""ras"")
           say("ras")
           say("ras")
           say("ras")
           local a = select("ras")
           set_state("info1")
	end
end
   state info1 begin
       when letter begin
           send_letter("ras")
       end
       when button or info begin
           say_title("ras")
           say_reward(""ras"ras")
           say_item_vnum(ras)
           say("ras"ras"")
           say("ras")
           set_state("suite1")
	end
end
   state suite1 begin
       when letter begin
           send_letter("ras")
       end
       when button or info begin
       if pc.count_item(ras) < 10 then
           say_title("ras")
           say(""ras",[ENTER]")
           say("ras"ras" ras")
           say("ras")
       elseif pc.count_item(ras) >= 10 then
       say_title("ras")
           say(""ras",[ENTER]")
           say("ras"ras" ras")
           say("ras"ras".")
       local v = find_npc_by_vnum(ras)
               if 0!=v then target.vid("__TARGET__", v, "ras") 
			end
		end
	end

	when __TARGET__.target.click or 20019.chat."ras" begin
         target.delete("__TARGET__")
           say_title(""..mob_name(ras).."")
           say("ras"ras",[ENTER]")
           say("ras")
		local a=select ("ras")
		if a == 1 then
		say_title(""ras"")
		say("ras")
           say("ras")
           say("ras")
           say_reward("ras")
           affect.add(ras)
           pc.remove_item(ras)
           local b=select("ras"
		end
		clear_letter()
		setstate(__complete)
		set_quest_state("services_a_lemperador_dragon2", "run")
	end          
   end
   state __complete begin
   end
end

 

2nd

 

quest services_a_lemperador_dragon2 begin

state run begin
	when login or levelup with pc.level >= 130 begin
		set_state(state1)
	end
end

   state state1 begin
       when letter begin
           send_letter("Service De L'Emperador Dragon V2")
           local v = find_npc_by_vnum(20019)
           if 0!=v then target.vid("__TARGET__", v, "Service De L'Emperador Dragon V2") 
		end
	end

       when button or info begin
           say_title("Système Emperador")
           say("Bonjour  ".. pc.get_name() .." ![ENTER]")
           say("Allez voir "..mob_name(20019)..",")
           say("une rumeure dit qu'il cherche un aventurier")
           say("pour aider l'Emperador Dragon.")
       end
end
end

 

En deux fichiers... distincts

Lien vers le commentaire
Partager sur d’autres sites

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 6

      problème de connexion à mon serveur local (je suis débutant dans ce genre d'entreprise )

    2. 2

      problème de lancement serveur

    3. 9
    4. 0

      [PVM/PVP] ATLAX2 - EASY PLAY

    5. 2

      problème de lancement serveur

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.