Jump to content
×
×
  • Create New...
  • 0

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


XDarkKillerX
 Share

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

Link to comment
Share on other sites

  • Answers 16
  • Created
  • Last Reply

Top Posters For This Question

16 answers to this question

Recommended Posts

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

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

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

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

Link to comment
Share on other 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é :)

Link to comment
Share on other sites

  • 0
  • Retraité

Bonsoir,

 

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

 

Cordialement.

Elea

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.