• 0
Sign in to follow this  
°OverDose°

en cours Utiliser cette commande "URGENT SPARKK ! xD"

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.

Share this post


Link to post
Share on other sites

20 answers to this question

Recommended Posts

  • 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.

Share this post


Link to post
Share on other 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 ?

Share this post


Link to post
Share on other sites
  • 0

A la fin de ta quête lv 100 tu met un :

set_quest_state("services_a_lemperador_dragon2", "run")

 

et au début de ta quête "services_a_lemperador_dragon2" tu crée un premier state nommé "run" qui renvoie directement au state suivant où ta quête débute.

Share this post


Link to post
Share on other 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)

Share this post


Link to post
Share on other sites
  • 0

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.

Share this post


Link to post
Share on other 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é.

Share this post


Link to post
Share on other sites
  • 0

Ligne 5 t'as un "end" de trop, ta seconde partie de la quest n'est pas introduite par un "quest nom2 begin" d'ailleurs la partie 1 non plus.Et du coup il manque des "end" aussi qui vont avec les quest nom begin. Sinon je te conseille de séparer ta quête en deux fichiers distincts.

Share this post


Link to post
Share on other sites
  • 0

Hein ? Je te comprends pas serieskills.

Ligne 5, le end n'est pas de trop et il n'y a pas "des" quest...begin dans une quête.

Share this post


Link to post
Share on other sites
  • 0

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://funky-emu.net/showthread.php?tid=34914 Bonne lecture.

  • Like 1

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
  • 0

Merci seri, j'ai pas eu le temps de tester ça mais sparkk ma réglé le problème, je te remercie quand même de ton aide et je remercie aussi sparkk !

Share this post


Link to post
Share on other sites
  • 0

Bonjour,

 

Le sujet contient la balise [glow=#800000][Résolu][/glow] ou reste sans réponse depuis deux semaines ou plus, de ce fait il a été déplacé dans la section "Résolu ou sans réponse".

 

Cordialement.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this