Aller au contenu
  • 0

Quête avec pass et temps d'attente


Naia

Question

Bonjour à tous,

je ne sais pas si c'est ici que je doit poser ma question,

actuellement, je suis à la recherche d'une quête assez spéciale.

Sur mon serveur, j'ai mis une MAP, spéciale Metin, sauf que j'aimerai que lorsqu'un joueurs se téléporte dans cette MAP, un décompte de 1h se mette en route, au bout de 1h, le joueurs est re-téléporter dans sa MAP perspective ou exemple à la vallé des orc.

Ainsi, pour y retourner faire attendre le joueurs 12h, c'est à dire, tout les 12h le joueurs peu y aller pour 1h de farm.

Voilà.

Je suis en files 2012

Si vous voulez d'autre information, dites le moi.

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

 

 

Lien vers le commentaire
  • Réponses 19
  • Created
  • Dernière réponse

Top Posters For This Question

Top Posters For This Question

19 réponses à cette question

Messages recommandés

  • 0

Si c'est comme ça que get_server_timer_arg() s'utilise devrait pas y avoir de soucis sinon désolé ça fait longtemps que j'ai pas codé

 

quest x begin
state start begin
	when ID_PNJ.chat."TITRE" begin -- A MODIFIER
		if pc.getqf("v") !=0 then
			local servertime = get_server_timer_arg()
			say_title("X")
			say("t'veux entrer?")
			if select(locale.yes, locale.no) == 2 then return end
			timer("time_out", 3600, servertime)
			pc.warp(xxx, yyy) -- A MODIFIER
		else
			say_title("X")
			say("Vous ne pouvez pas encore entrer")
		end
	end
	when time_out.timer begin
		local servertime = get_server_timer_arg()
		timer("time_start", 43200, servertime)
		notice("Fin de l'event, vous allez être téléporté dans 10 secondes.")
		notice("Prochaine ouverture dans 12 heures")
		warp_to_village(X, 10) -- A MODIFIER
		pc.setqf("v", 0)
	end
	when time_start.timer begin
		pc.setqf("v", 1)
	end
end
end

 

 

La première modification c'est l'id du pnj (si tu voulais mettre la quête sur un pnj)

 

La deuxième c'est les coordonnées de téléportation vers la map où y'aura l'event

 

La troisième c'est l'id de la map où y'aura l'event

Lien vers le commentaire
  • 0

quest x begin
   state start begin
       when ID_PNJ.chat."TITRE" begin -- A MODIFIER
           if get_time() >= pc.getqf("next_time") then
               say_title("X")
               say("t'veux entrer?")
               if select(locale.yes, locale.no) == 2 then return end
               pc.setqf("next_time", get_time()+12*60*60) -- A modifier
               pc.setqf("end_time", get_time()+60*60) -- A modifier
               pc.warp(xxx00, yyy00) -- A MODIFIER
           else
               say_title("X")
               say("Vous ne pouvez pas encore entrer")
           end
       end
       when login with pc.get_map_index() == X begin -- A modifier
             if get_time() > pc.getqf("end_time") then
                     warp_to_village(X, 10) -- A modifier
             else
                     local remain = pc.getqf("end_time")-get_time()
                     timer("time_out", remain)
             end
       end
       when time_out.timer begin
           notice("Fin de l'event, vous allez être téléporté dans 10 secondes.")
           notice("Prochaine ouverture dans 12 heures")
           warp_to_village(X, 10) -- A MODIFIER
       end

   end
end

 

Essaie plutôt ça. J'ai évidemment pas testé mais ça devrait mieux marcher normalement. Sauf erreur de ma part, les timers liés aux personnages se suppriment lors d'une téléportation ou d'une déconnexion.

Lien vers le commentaire
  • 0

Bonjour,

après un test, le temps qu'on reste sur la map n'est pas fonctionnel.

C'est à dire, je suis rester 1h et 20 minute de + sur la MAP, rien ne se passe, aucun message pour me dire que c'est fini, aucune téléportation.

Autrement, quand je sort de la map, je doit bien attendre 12h pour pouvoir y retourner.

Merci.

 

 

Lien vers le commentaire
  • 0

Tu as bien modifié la ligne when login with pc.get_map_index() == X begin -- A modifier ?

 

X doit être l'index de la map d'event.

 

Si c'est déjà fait, rajoute un notice("test") derrière pour vérifier que le timer se déclenche bien. Après, tu peux faire afficher la variable remain aussi, la variable qf end_time pour vérifier que tout est bon.

Lien vers le commentaire
  • 0

J'ai pas vraiment compris ce que tu voulait dire,

en attendant, voici la quête

quest map_turko begin
   state start begin
       when 20014.chat."Map de farmage" begin -- A MODIFIER
           if get_time() >= pc.getqf("next_time") then
               say_title("Map de farmage")
               say("Cette Map renferme la tempête des Metin,")
               say("seul vous peu aller détruire c'est pierre")
			say("qui nous envahissent de jour en jour.")
			say("Le seul désinconvénient, c'est que vous pouvez")
			say("y rester que pendant 1h, ensuite, vous pourrez")
			say("y retourner dans 12h.")
			say("")
			say("Souhaitez-vous y aller ?")
               if select(locale.yes, locale.no) == 2 then return end
               pc.setqf("next_time", get_time()+12*60*60) -- A modifier
               pc.setqf("end_time", get_time()+60*60) -- A modifier
               pc.warp(911100, 911100) -- A MODIFIER
           else
               say_title("Map de farmage")
               say("Vous ne pouvez pas encore y aller,")
			say("Revenez plus tard !")
           end
       end
       when login with pc.get_map_index() == X begin -- A modifier
             if get_time() > pc.getqf("end_time") then
                     warp_to_village(202, 10) -- A modifier
             else
                     local remain = pc.getqf("end_time")-get_time()
                     timer("time_out", remain)
             end
       end
       when time_out.timer begin
           notice("Fin, vous allez être téléporté dans 10 secondes.")
           notice("Prochaine ouverture dans 12 heures")
           warp_to_village(63, 10) -- A MODIFIER
       end

   end
end

 

 

Lien vers le commentaire
  • 0

Si c'est le même code que tu as dans ton fichier, c'est normal. Comme l'a dit Galet, tu as oublié de modifier le X dans la ligne que j'ai mentionnée.

 

quest map_turko begin
   state start begin
       when 20014.chat."Map de farmage" begin -- A MODIFIER
           if get_time() >= pc.getqf("next_time") then
               say_title("Map de farmage")
               say("Cette Map renferme la tempête des Metin,")
               say("seul vous peu aller détruire c'est pierre")
               say("qui nous envahissent de jour en jour.")
               say("Le seul désinconvénient, c'est que vous pouvez")
               say("y rester que pendant 1h, ensuite, vous pourrez")
               say("y retourner dans 12h.")
               say("")
               say("Souhaitez-vous y aller ?")
               if select(locale.yes, locale.no) == 2 then return end
               pc.setqf("next_time", get_time()+12*60*60) -- A modifier
               pc.setqf("end_time", get_time()+60*60) -- A modifier
               pc.warp(911100, 911100) -- A MODIFIER
           else
               say_title("Map de farmage")
               say("Vous ne pouvez pas encore y aller,")
               say("Revenez plus tard !")
           end
       end
       when login with pc.get_map_index() == 202 begin -- A modifier
             if get_time() > pc.getqf("end_time") then
                     warp_to_village(202, 10) -- A modifier
             else
                     local remain = pc.getqf("end_time")-get_time()
                     timer("time_out", remain)
             end
       end
       when time_out.timer begin
           notice("Fin, vous allez être téléporté dans 10 secondes.")
           notice("Prochaine ouverture dans 12 heures")
           warp_to_village(63, 10) -- A MODIFIER
       end

   end
end

Lien vers le commentaire
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.


×
×
  • Créer...

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.