Aller au contenu
  • 0

Quêtes


domino2410

Question

Version des files : 2013

Domaine (Base de données, Core, etc.) : Quêtes

Votre niveau (débutant, intermédiaire, avancé) : intermédiaire mais débutant en lua

 

Bonjour je me lance dans la création de quêtes pour mon serveur j'ai fait que le début et j'ai voulu essayer si sa marcher mais j'ai une erreur quand je compile mes quêtes :

 

QUEST : event1_manage
STATE : start
WHEN  : 11000.chat
event1_manage.quest:3:when doesn't have begin-end clause. ("Lancer l'event dorée")

 

Je pense qu'il manque un end ou autres mais je ne vois pas ou ( ces ma première quêtes ^^, ne faite pas attention aux fautes ces juste un brouillon pour test :P )

 

quest event1_manage begin
   state start begin
           when 11000.chat "Lancer l'event dorée" with pc.is_gm() or
               11002.chat "Lancer l'event dorée" with pc.is_gm() or
               11004.chat "Lancer l'event dorée" with pc.is_gm() begin
               say_title("L'event dorée")
               say("Bonjour ! veux tu vraiment lancer l'évent dorée ?")
               local choix=select("oui", "non")
               if choix == 1 then
                   say_title("L'event dorée")
                   say("Lancement de l'event...")
                   notice_all("L'event dorée à était lancer par "..pc.name..",)
                   notice_all("L'empire qui réussira à détruire la grenouille dorée")
                   notice_all("d'un empire adverse, tout en protégeant la sienne")
                   notice_all("remportera un event personnalisé ou un bonus d'empire!")
                   notice_all("Parler au Maître d'armes pour venir à l'event.)
                   set_state(event1)
                       pc.warp(832,0)
                   else
                       return
                   end
               end

               state event1 begin
                   when 11001.chat "Event dorée" if pc.get_empire() == 1 then or
                       11003.chat "Event dorée" if pc.get_empire () == 2 then or
                       11005.chat "Event dorée" if pc.get_empire () == 3 then begin
                   say_title("L'event dorée")
                   say("Bonjour ! je suis le Maître d'armes, je peut")
                   say("te téléporté à l'évent, pour que tu aide ton")
                   say("empire à défendre sa grenouille dorée et à")
                   say("détruire la grenouille énnemi, pour remporter")
                   say("un event personnalisé ou un bonus d'empire.")
                   wait()
                   say_title ("L'event dorée")
                   say("Veux tu être téléporté ?")
                   local tp=select("oui","non")
                   if tp == 1 then
                       pc.warp(832,0) if pc.get_empire() == 1 then or
                       pc.warp(882,70) if pc.get_empire() == 2 then or
                       pc.warp(887,70) if pc.get_empire() == 3 then begin
                   else
                       return
                   end
               end
           end
       end
   end
end

 

 

 

 

 

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 16
  • Created
  • Dernière réponse

Top Posters For This Question

16 réponses à cette question

Messages recommandés

  • 0

Tu dois fermer ton state "start" avec un end avant d'en entammer un autre ("event1") donc supprime 2 ends vers la fin et rajoute les avant "state event1 begin". Je n'ai pas trop regardé la quête sinon j'ai juste survolé, à part :

 

                   if tp == 1 then
                       pc.warp(832,0) if pc.get_empire() == 1 then or
                       pc.warp(882,70) if pc.get_empire() == 2 then or
                       pc.warp(887,70) if pc.get_empire() == 3 then begin
                   else
                       return
                   end

 

 

Essaye ça à la place :

 

 

                   if tp == 1 then
                       if pc.get_empire() == 1 then pc.warp(832,0) end
                       if pc.get_empire() == 2 then pc.warp(882,70) end
                       if pc.get_empire() == 3 then pc.warp(887,70) end
                   else
                       return
                   end

Lien vers le commentaire
  • 0

J'ai essayer comme ceci :

 

quest event1_manage begin
state start begin
		when 11000.chat "Lancer l'event dorée" with pc.is_gm() or
			11002.chat "Lancer l'event dorée" with pc.is_gm() or
			11004.chat "Lancer l'event dorée" with pc.is_gm() begin
			say_title("L'event dorée")
			say("Bonjour ! veux tu vraiment lancer l'évent dorée ?")
			local choix=select("oui", "non")
			if choix == 1 then
				say_title("L'event dorée")
				say("Lancement de l'event...")
				notice_all("L'event dorée à était lancer par "..pc.name..",)
				notice_all("L'empire qui réussira à détruire la grenouille dorée")
				notice_all("d'un empire adverse, tout en protégeant la sienne")
				notice_all("remportera un event personnalisé ou un bonus d'empire!")
				notice_all("Parler au Maître d'armes pour venir à l'event.)
				set_state(event1)
					pc.warp(832,0)
				else
					return
				end
			end
		end
	end
end
			state event1 begin
				when 11001.chat "Event dorée" if pc.get_empire() == 1 then or
					11003.chat "Event dorée" if pc.get_empire () == 2 then or
					11005.chat "Event dorée" if pc.get_empire () == 3 then begin 
				say_title("L'event dorée")
				say("Bonjour ! je suis le Maître d'armes, je peut")
				say("te téléporté à l'évent, pour que tu aide ton")
				say("empire à défendre sa grenouille dorée et à")
				say("détruire la grenouille énnemi, pour remporter")
				say("un event personnalisé ou un bonus d'empire.")
				wait()
				say_title ("L'event dorée")
				say("Veux tu être téléporté ?")
				local tp=select("oui","non")
				if tp == 1 then
					if pc.get_empire() == 1 then pc.warp(832,0) end
					if pc.get_empire() == 2 then pc.warp(882,70) end
					if pc.get_empire() == 3 then pc.warp(887,70) end
				else
					return
				end
			end
		end
	end
end
end

 

J'ai toujours la même erreur ( j'ai aussi enlever des end à la fin mais sa ne change rien alors je montre avec cette exemple )

Lien vers le commentaire
  • 0

Tiens ça devrait être bon :

 

quest event1_manage begin
   state start begin
       when 11000.chat."Lancer l'event dorée" with pc.is_gm() or
	11002.chat."Lancer l'event dorée" with pc.is_gm() or
	11004.chat."Lancer l'event dorée" with pc.is_gm() begin
		say_title("L'event dorée")
		say("Bonjour ! veux tu vraiment lancer l'évent dorée ?")
		local choix=select("oui", "non")
		if choix == 1 then
			say_title("L'event dorée")
			say("Lancement de l'event...")
			notice_all("L'event dorée à était lancer par "..pc.name..",)
			notice_all("L'empire qui réussira à détruire la grenouille dorée")
			notice_all("d'un empire adverse, tout en protégeant la sienne")
			notice_all("remportera un event personnalisé ou un bonus d'empire!")
			notice_all("Parler au Maître d'armes pour venir à l'event.)
			set_state(event1)
				pc.warp(832,0)
		else
			return
		end
	end
   end
state event1 begin
	when 11001.chat."Event dorée" with pc.get_empire() == 1 or
	11003.chat."Event dorée" with pc.get_empire () == 2 or
	11005.chat."Event dorée" with pc.get_empire () == 3 begin
		say_title("L'event dorée")
		say("Bonjour ! je suis le Maître d'armes, je peut")
		say("te téléporté à l'évent, pour que tu aide ton")
		say("empire à défendre sa grenouille dorée et à")
		say("détruire la grenouille énnemi, pour remporter")
		say("un event personnalisé ou un bonus d'empire.")
		wait()
		say_title ("L'event dorée")
		say("Veux tu être téléporté ?")
		local tp=select("oui","non")
		if tp == 1 then
			if pc.get_empire() == 1 then pc.warp(832,0) end
			if pc.get_empire() == 2 then pc.warp(882,70) end
			if pc.get_empire() == 3 then pc.warp(887,70) end
		else
			return
		end
	end
   end
end

Lien vers le commentaire
  • 0

Toblerone j'ai essayer ce que tu ma donner il y avait un autre erreur j'ai donc essayer autrement, je n'ai plus aucune erreur mais quand je parle au pnj rien ne se passe :

 

quest event1_manage begin
state start begin
	when 20041.chat."Lancer l'event dorée" with pc.is_gm() begin
		say_title("L'event dorée")
		say("Bonjour ! veux tu vraiment lancer l'évent dorée ?")
		local choix=select("oui", "non")
		if choix == 1 then
			say_title("L'event dorée")
			say("Lancement de l'event...")
			notice_all("L'event dorée à était lancer par "..pc.name..",)
			notice_all("L'empire qui réussira à détruire la grenouille dorée")
			notice_all("d'un empire adverse, tout en protégeant la sienne")
			notice_all("remportera un event personnalisé ou un bonus d'empire!")
			notice_all("Parler au Passant ivre pour venir à l'event.)
			set_state(event1)
				pc.warp(832,0)
		else
			return
		end
	end
end
state event1 begin
	when 20041.chat."Event dorée" with pc.get_empire() begin
		say_title("L'event dorée")
		say("Bonjour ! je suis le Maître d'armes, je peut")
		say("te téléporté à l'évent, pour que tu aide ton")
		say("empire à défendre sa grenouille dorée et à")
		say("détruire la grenouille énnemi, pour remporter")
		say("un event personnalisé ou un bonus d'empire.")
		wait()
		say_title ("L'event dorée")
		say("Veux tu être téléporté ?")
		local tp=select("oui","non")
		if tp == 1 then
			if pc.get_empire() == 1 then pc.warp(832,0) end
			if pc.get_empire() == 2 then pc.warp(882,70) end
			if pc.get_empire() == 3 then pc.warp(832,0) end
		else
			return
		end
	end
end
end

Lien vers le commentaire
  • 0
  • Développeur

set_state(event1)

pc.warp(832,0)

 

Ceci ne marchera (en principe) jamais. Tu ne seras jamais téléporté. Petite explication, lorsque tu fais un set_state() il saute directement au state indiqué, il ne lira pas

le code qui est situé en-dessous du set_state(). Tu as aussi oublié un guillemet à la ligne 14: notice_all("Parler au Passant ivre pour venir à l'event.)

Tu dois fermer ton state "start" avec un end avant d'en entammer un autre ("event1") donc supprime 2 ends vers la fin et rajoute les avant "state event1 begin". Je n'ai pas trop regardé la quête sinon j'ai juste survolé, à part :

 

                   if tp == 1 then
                       pc.warp(832,0) if pc.get_empire() == 1 then or
                       pc.warp(882,70) if pc.get_empire() == 2 then or
                       pc.warp(887,70) if pc.get_empire() == 3 then begin
                   else
                       return
                   end

 

 

Essaye ça à la place :

 

 

                   if tp == 1 then
                       if pc.get_empire() == 1 then pc.warp(832,0) end
                       if pc.get_empire() == 2 then pc.warp(882,70) end
                       if pc.get_empire() == 3 then pc.warp(887,70) end
                   else
                       return
                   end

 

Si le "elseif" existe c'est pas pour faire beau :). Le problème ne venait pas de son if, mais du state qu'il a oublié

de clore par un "end".

 

Enfin bref, voilà ta quête corrigée:

quest event1_manage begin
state start begin
	when 20041.chat."Lancer l'event dorée" with pc.is_gm() begin
		say_title("L'event dorée")
		say("Bonjour ! veux tu vraiment lancer l'évent dorée ?")
		local choix=select("oui", "non")
		if choix == 1 then
			say_title("L'event dorée")
			say("Lancement de l'event...")
			notice_all("L'event dorée à était lancer par "..pc.name..",)
			notice_all("L'empire qui réussira à détruire la grenouille dorée")
			notice_all("d'un empire adverse, tout en protégeant la sienne")
			notice_all("remportera un event personnalisé ou un bonus d'empire!")
			notice_all("Parler au Passant ivre pour venir à l'event.")
			pc.warp(832,0)
			set_state(event1)
		else
			return
		end
	end
end

state event1 begin
	when 20041.chat."Event dorée" with pc.get_empire() begin
		say_title("L'event dorée")
		say("Bonjour ! je suis le Maître d'armes, je peut")
		say("te téléporté à l'évent, pour que tu aide ton")
		say("empire à défendre sa grenouille dorée et à")
		say("détruire la grenouille énnemi, pour remporter")
		say("un event personnalisé ou un bonus d'empire.")
		wait()
		say_title ("L'event dorée")
		say("Veux tu être téléporté ?")
		local tp=select("oui","non")
		if tp == 1 then
			if pc.get_empire() == 1 then
				pc.warp(832,0)
			elseif pc.get_empire() == 2 then
				pc.warp(882,70)
			else
				pc.warp(832,0)
			end
		else
			return
		end
	end
end
end

 

Si j'ai rien zappé, ça devrait marcher.

Lien vers le commentaire
  • 0

La quête ne marche toujours pas faut croire que je suis pas doué pour le codage mdr x)

 

La quête :

 

quest event1_manage begin
   state start begin
       when 20041.chat."Lancer l'event dorée" with pc.is_gm() begin
           say_title("L'event dorée")
           say("Bonjour ! veux tu vraiment lancer l'évent dorée ?")
           local choix=select("oui", "non")
           if choix == 1 then
               say_title("L'event dorée")
               say("Lancement de l'event...")
               notice_all("L'event dorée à était lancer par "..pc.name..",)
               notice_all("L'empire qui réussira à détruire la grenouille dorée")
               notice_all("d'un empire adverse, tout en protégeant la sienne")
               notice_all("remportera un event personnalisé ou un bonus d'empire!")
               notice_all("Parler au Passant ivre pour venir à l'event.")
               pc.warp(832,0)
               set_state(event1)
           else
               return
           end
       end
   end

   state event1 begin
       when 20041.chat."Event dorée" with pc.get_empire() begin
           say_title("L'event dorée")
           say("Bonjour ! je suis le Maître d'armes, je peut")
           say("te téléporté à l'évent, pour que tu aide ton")
           say("empire à défendre sa grenouille dorée et à")
           say("détruire la grenouille énnemi, pour remporter")
           say("un event personnalisé ou un bonus d'empire.")
           wait()
           say_title ("L'event dorée")
           say("Veux tu être téléporté ?")
           local tp=select("oui","non")
           if tp == 1 then
               if pc.get_empire() == 1 then
                   pc.warp(832,0)
               elseif pc.get_empire() == 2 then
                   pc.warp(882,70)
               else
                   pc.warp(832,0)
               end
           else
               return
           end
       end
   end
end

 

Une erreur dans le sysser quand je clic sur le pnj :

 

SYSERR: Oct 31 15:49:39 :: GetServerLocation: location error name  mapindex 0 0 x 0 empire 3
SYSERR: Oct 31 15:49:39 :: GetServerLocation: location error name  mapindex 0 0 x 0 empire 3
SYSERR: Oct 31 15:49:39 :: GetServerLocation: location error name  mapindex 0 0 x 0 empire 3

Lien vers le commentaire
  • 0

Je ne vois pas ou je me suis tromper dans les coordonnés.

 

Regardez :

 

IG :

 

http://prntscr.com/210tgc

 

Sysser :

 

SYSERR: Oct 31 18:04:21 :: GetServerLocation: location error name  mapindex 0 0 x 0 empire 3
SYSERR: Oct 31 18:04:21 :: GetServerLocation: location error name  mapindex 0 0 x 0 empire 3
SYSERR: Oct 31 18:04:21 :: GetServerLocation: location error name  mapindex 0 0 x 0 empire 3

 

La quêtes j'ai essayer coordonnés avec 83200,0 / 832,0 / 832 , 0 / 83200, 0. Rien ne marche mais je ne pense pas que sa soit du au coordonné car logiquement sa ne devrait pas me TP mais la quête de lancement devrait au moins s'afficher au PNJ.

 

quest event1_manage begin
   state start begin
       when 20041.chat."Lancer l'event dorée" with pc.is_gm() begin
           say_title("L'event dorée")
           say("Bonjour ! veux tu vraiment lancer l'évent dorée ?")
           local choix=select("oui", "non")
           if choix == 1 then
               say_title("L'event dorée")
               say("Lancement de l'event...")
               notice_all("L'event dorée à était lancer par "..pc.name..",)
               notice_all("L'empire qui réussira à détruire la grenouille dorée")
               notice_all("d'un empire adverse, tout en protégeant la sienne")
               notice_all("remportera un event personnalisé ou un bonus d'empire!")
               notice_all("Parler au Passant ivre pour venir à l'event.")
               pc.warp(83200, 0)
               set_state(event1)
           else
               return
           end
       end
   end

   state event1 begin
       when 20041.chat."Event dorée" with pc.get_empire() begin
           say_title("L'event dorée")
           say("Bonjour ! je suis le Maître d'armes, je peut")
           say("te téléporté à l'évent, pour que tu aide ton")
           say("empire à défendre sa grenouille dorée et à")
           say("détruire la grenouille énnemi, pour remporter")
           say("un event personnalisé ou un bonus d'empire.")
           wait()
           say_title ("L'event dorée")
           say("Veux tu être téléporté ?")
           local tp=select("oui","non")
           if tp == 1 then
               if pc.get_empire() == 1 then
                   pc.warp(83200, 0)
               elseif pc.get_empire() == 2 then
                   pc.warp(83200, 0)
               else
                   pc.warp(83200, 0)
               end
           else
               return
           end
       end
   end
end

 

Fichier de la map : ( troll )

 

ScriptType	MapSetting

CellScale	200
HeightScale	0.500000

ViewRadius	128

MapSize	1	1
BasePosition	83200	0
TextureSet	textureset\metin2_A3.txt
Environment	A1.msenv

Lien vers le commentaire
  • 0

quest event1_manage begin
   state start begin
       when 20041.chat."Lancer l'event dorée" with pc.is_gm() begin
           say_title("L'event dorée")
           say("Bonjour ! veux tu vraiment lancer l'évent dorée ?")
           local choix=select("oui", "non")
           if choix == 1 then
               say_title("L'event dorée")
               say("Lancement de l'event...")
               notice_all("L'event dorée à était lancer par "..pc.name..",)
               notice_all("L'empire qui réussira à détruire la grenouille dorée")
               notice_all("d'un empire adverse, tout en protégeant la sienne")
               notice_all("remportera un event personnalisé ou un bonus d'empire!")
               notice_all("Parler au Passant ivre pour venir à l'event.")
               pc.warp(83200, 0)

           elseif choix == 2 then
               return
           end
       end

       when 20041.chat."Event dorée" begin
           say_title("L'event dorée")
           say("Bonjour ! je suis le Maître d'armes, je peut")
           say("te téléporté à l'évent, pour que tu aide ton")
           say("empire à défendre sa grenouille dorée et a")
           say("détruire la grenouille énnemi, pour remporter")
           say("un event personnalisé ou un bonus d'empire.")
           wait()
           say_title ("L'event dorée")
           say("Veux tu être téléporté ?")
           local tp=select("oui","non")
           if tp == 1 then
			pc.warp(83200, 0)

           elseif tp == 2 then
               return
           end
       end
   end
end

 

 

Essaye voir comme ceci ;)

 

Cordialement chaos.

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.