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

[En Cours] Quête (encore...)


XDarkKillerX

Question

Bonjour :)

 

Comme d'habitude, un problème de quête *-*

 

Ce que je tente de faire :

 

Une quête pour se téléporter dans une map.

 

Conditions :

 

-Ne pas téléporté le joueur SI quelqu'un est dans la map.

-Faire en sorte que le joueur ne puisse plus se téléporter avant un certain temps.(3h).

 

Récapitulatif :

 

Je veux me téléporter :

 

-La map est libre, le pnj m'y envoie mais de ce fait je ne pourrais pas m'y retéléporté d'ici 3h.

 

-La map n'est pas libre, quelqu'un est dedans, le pnj refuse.

Voilà j'espère que j'ai été assez "clair" :/

 

J'ai tenté de la faire avec la quête "annonce" qui a la fonction du temps que je recherche mais finalement c'est pas de mon niveau de faire ça ;(

 

Bonne journée et merci d'avance

Cordialement

Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

16 réponses à cette question

Messages recommandés

  • 0
  • Retraité

Tu te complique la vie et tes joueurs n'aimeront surement pas sa car ils doivent attendre leurs tours.

Fait comme la tour tout simplement.

 

En gros un système de donjon, sauf que grossièrement c'est des " mondes parallèles ".

Enfin dans ce cas il faut utiliser les fonctions d. mais tout les joueurs peuvent entrer, la différence est qu'ils ne se croiseront jamais.

Les 3h se rajoute sans soucis.

You can't be immortal,
But you can make people remember
you for thousands of years...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Tu te complique la vie et tes joueurs n'aimeront surement pas sa car ils doivent attendre leurs tours.

Fait comme la tour tout simplement.

 

En gros un système de donjon, sauf que grossièrement c'est des " mondes parallèles ".

Enfin dans ce cas il faut utiliser les fonctions d. mais tout les joueurs peuvent entrer, la différence est qu'ils ne se croiseront jamais.

Les 3h se rajoute sans soucis.

A condition que celle-ci soit considérée tel une map donjon dans le server_attr il me semble.

 

Essaye comme ça ( je ne l'ai pas testé ) :

quest x begin
state start begin
	when ID_PNJ.chat."Le titre du menu" begin
		if get_time() > pc.getqf("duration") then
			if pc.getqf("pc_is_here") == 0 then
				say(title.."Le titre")
				say(locale.MEDIUM_COLOR.."blablabla")
				say(string.format("Voulez-vous être téléporté ?"))
				choix=select(locale.yes, locale.cancel)
				if choix == 2 then
					return
				else
					pc.setqf("duration",get_time()+3600*300*1)
					pc.warp(XXX, YYY) -- Les coordonnées de téléportation
				end
			else
				say(title.."Le titre")
				setcolor(0,100,100)
				raw_script("Il y a déjà quelqu'un !")
			end
		else
			say(title.."Le titre")
			say(string.format("Veuillez revenir plus tard"))
		end
	end
	when login with pc.get_map_index() == ID_MAP and pc.getqf("pc_is_here") == 0 begin -- L'ID de la map
		pc.setqf("pc_is_here", 1)
	end
	when logout with pc.get_map_index() == ID_MAP and pc.getqf("pc_is_here") == 1 begin -- L'ID de la map
		pc.setqf("pc_is_here", 0)
	end
end
end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci beacoup je test de suite :)

 

Edit

 

J'ai remodeler pour qu'elle d'adapte etc et elle marche niquel sauf un petit détail.Quand quelqu'un est dans la map, un autre joueur peut se tp mais ça le renvoie cité, jusque là ça va, mais du fait qu'il s'est téléporter il devra attendre 3h quand même sans avoir profité de l'arène :/

 

quest Instance begin
   state start begin
       when 20083.chat."Le titre du menu" begin
           if get_time() > pc.getqf("duration") then
               if pc.getqf("pc_is_here") == 0 then
                   say("Le titre")
                   say("blablabla")
                   say("Voulez-vous être téléporté ?")
                   choix=select(locale.yes, locale.cancel)
                   if choix == 2 then
                       return
                   else
                       pc.setqf("duration",get_time()+3600*300*1)
                       pc.warp(854700,11400) -- Les coordonnées de téléportation
                   end
               else
                   say("Le titre")
                   say("Il y a déjà quelqu'un !")
               end
           else
               say("Le titre")
               say("Veuillez revenir plus tard")
           end
       end
       when login with pc.get_map_index() == 112 and pc.getqf("pc_is_here") == 0 begin -- L'ID de la map
           pc.setqf("pc_is_here", 1)
       end
       when logout with pc.get_map_index() == 112 and pc.getqf("pc_is_here") == 1 begin -- L'ID de la map
           pc.setqf("pc_is_here", 0)
       end
   end
end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

quest Instance begin
   state start begin
       when 20083.chat."Le titre du menu" begin
           if get_time() > pc.getqf("duration") then
               if game.get_event_flag("pc_is_here") == 0 then
                   say(title.."Le titre")
                   say("blablabla")
                   say("Voulez-vous être téléporté ?")
                   choix=select(locale.yes, locale.cancel)
                   if choix == 2 then
                       return
                   else
                       pc.setqf("duration",get_time()+3600*300*1)
                       pc.warp(854700,11400) -- Les coordonnées de téléportation
                   end
               else
                   say("Le titre")
                   say("Il y a déjà quelqu'un !")
               end
           else
               say(title.."Le titre")
               say("Veuillez revenir plus tard")
           end
       end
       when login with pc.get_map_index() == 112 and game.get_event_flag("pc_is_here") == 0 begin
		game.set_event_flag("pc_is_here", 1)
       end
       when logout with pc.get_map_index() == 112 and game.get_event_flag("pc_is_here") == 1 begin
           game.set_event_flag("pc_is_here", 0)
       end
   end
end

 

Et comme ça ?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

----------------------------------------------------------------------------------------------------------------------------
-- *** NOTICE IMPORTANTE LIRE AVANT UTILISATION *** --
-- Veillez à bien modifier les informations suivantes pour que la quête fonctionne. --
-- REMPLACEZ COMME SUIS : 
-- "MAPINDEX" Par l'id de la map concernée. --
-- "PNJID" par l'id du PNJ concerné. --
-- "PNJ NAME" par le nom du pnj. --
-- "X" par la coordonnée X de la map. --
-- "Y" par la coordonnée Y de la map. --
----------------------------------------------------------------------------------------------------------------------------
quest teleport_fo begin
state start begin
when PNJID.chat with pc.get_map_index() != MAPINDEX begin
say_title("PNJ NAME")
say("Bonjour,[ENTER]")
if game.get_event_flag("busy")==1 then
say("Il y a actuellement quelqu'un dans la map.")
say("Veuillez patienter. . .")
say("je vous préviendrai quand la map sera libre!")
else
say("Tu veux te téléporter dans la map?")
local a = select("Oui" "Non")
if a == 1 then
pc.warp(x,y)
game.set_event_flag("busy", 1)
else
return
end
end
end
when PNJID.chat with pc.get_map_index() == MAPINDEX begin
say_title("PNJ NAME")
say("Bonjour,[ENTER]")
say("Tu veux rentrer chez toi ?")
local b = select("Oui","Non")
if b == 1 then
pc.warp(x,y)
game.set_event_flag("busy", 0)
notice_all("La map est de nouveau libre d'accès!")
else
return
end
end
end
end

Essaye ça je l'ai codée avec un bloc note à mon taf désolé pour le code hachuré :)

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

      Demande d'aide

    2. 2

      Demande d'aide

    3. 2

      Demande d'aide

    4. 161

      VDI - Server Files 2016 - Team FE

    5. 1

      Problème de modification du coffre de l'apprenti

  • En ligne récemment

    • Aucun utilisateur enregistré regarde cette page.

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.