Jump to content
  • 0
Sign in to follow this  
Guest Ioio

en cours [Quête]-Abort trap (core dumped)

Question

Guest Ioio

Bonjour,

Comme marqué dans le titre, j'ai un problème quand je crée ma quête...

Ma quête fais 273 lignes...

 

Version des files :2012

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

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

débutant

Description du problème : Quand je recompile mes quêtes (sh quest.sh) il m'affiche

.
.
.
QUEST : anneau_ultra_fun
STATE : start
WHEN : 40001.use
assertion failure : nested==0
anneau_ultra_fun.quest:273:Abort trap (core dumped)
PradaT2#

 

Comment reproduire le problème :

Faire une quête extrêmement longue sans commenter...

Recherches et tests effectué :

1.-vérifier que j'ai toujours mis == et pas = apres une condition...

2.-vérifier les "end"...

3.-se taper la tête contre le bureau...

Résultat des recherches et tests :

1.- Aucun problème à ce niveau...

2.- Aucun problème à ce niveau...

3.- Rien ne m'a sauté aux yeux... :P

Message d'erreur, capture d'écran :

Screen: 0320_194148.jpg.d5167b13390c3b4724a8bd18d639b1fc.jpg

Share this post


Link to post

7 answers to this question

Recommended Posts

  • 0

Il est nécessaire de montrer le code de la quête, sans ça personne peut t'aider, désolé. Montre le code ici ou envoie le moi par message privé, je te réglerais le souci.

Share this post


Link to post
  • 0
Guest Ioio

Ok alors ... Bonne chance pour t'y retrouver... ;)

Horrible code...

quest anneau_ultra_fun begin
state start begin
	when 40001.use begin
		if pc.is_gm() == true then
			say_title("Anneau du staff:")
			say("Que voulez vous faire ?")
			local a=select("Message de connexion", "Message de deconnexion", "Parler en annonce", "Mode invisible", "Fermer")
			if a==1 then
				say_title("Anneau du staff:")
				say("L'annonce de connexion est affiche.")
				command("n "..pc.get_name().." en ligne. Bonjour a toutes et a tous !")
				command("n Je suis disponible pour vos questions.")
				command("n N'hesitez pas a me MP, sans oublier les crochets.")
			elseif a==2 then
				say_title("Anneau du staff:")
				say("L'annonce de deconnexion est affiche.")
				command("n "..pc.get_name().." passe hors ligne.")
				command("n Bon jeu a toutes et a tous !")
			elseif a==3 then
				say_title("Anneau du staff:")
				say("Ecrivez votre annonce:")
				command("n "..pc.get_name().." : "..input()..""..input()..""..input().."")
			elseif a==4 then
				command("inv")
			end
		else
			say_title("Anneau Triple-Fun:")
			say("Que voulez-vous faire ?")

			local b=select("Gerer mon experience", "Me teleporter", "Fermer", "Fermer", "Fermer", "Fermer", "Fermer")
			if b==7 then
				return
			elseif b==1 then
				local map = pc.get_map_index()
				say_title("Anneau Triple-Fun: ")
				if map == 1 then
					say("Vous êtes Map 1 rouge, où voulez-vous aller ?")
				elseif map == 3 then
					say("Vous êtes Map 2 rouge, où voulez-vous aller ?")
				elseif map == 4 then
					say("Vous êtes Map 3 rouge, où voulez-vous aller ?")
				elseif map == 5 or map == 25 or map == 45 then
					say("Vous êtes Donjon facile, où voulez-vous aller ?")
				elseif map == 21 then
					say("Vous êtes Map 1 jaune, où voulez-vous aller ?")
				elseif map == 23 then
					say("Vous êtes Map 2 jaune, où voulez-vous aller ?")
				elseif map == 24 then
					say("Vous êtes Map 3 jaune, où voulez-vous aller ?")
				elseif map == 41 then
					say("Vous êtes Map 1 bleu, où voulez-vous aller ?")
				elseif map == 43 then
					say("Vous êtes Map 2 bleu, où voulez-vous aller ?")
				elseif map == 44 then
					say("Vous êtes Map 3 bleu, où voulez-vous aller ?")
				elseif map == 61 then
					say("Vous êtes à la montagne, où voulez-vous aller ?")
				elseif map == 62 then
					say("Vous êtes Map Papier, où voulez-vous aller ?")
				elseif map == 63 then
					say("Vous êtes au désert, où voulez-vous aller ?")
				elseif map == 64 then
					say("Vous êtes map Orcs, où voulez-vous aller ?")
				elseif map == 65 then
					say("Vous êtes au Temple, où voulez-vous aller ?")
				elseif map == 66 then
					say("Vous êtes à la Tour, où voulez-vous aller ?")
				elseif map == 67 then
					say("Vous êtes à la Foret, où voulez-vous aller ?")
				elseif map == 68 then
					say ("Vous êtes au Bois rouge, où voulez-vous aller ?")
				elseif map == 69 then
					say("Vous êtes au WL, où voulez-vous aller ?")
				elseif map == 70 then
					say("Vous êtes aux géants, où voulez-vous aller ?")
				elseif map == 71 or map == 104 then
					say("Vous êtes à la Cave, où voulez-vous aller ?")
				elseif map == 72 or map == 73 or map == 184 or map == 185 or map == 186 or map == 187 or map == 188 or map == 189 then
					say("Vous êtes à Atlenta, où voulez-vous aller ?")
				elseif map == 107 or map == 108 or map == 109 then
					say("Vous êtes au donjon, où voulez-vous aller ?")
				else
					say("Où voulez-vous vous rendre ?")
				end

				local endroit = select("Dans une Map 1", "Dans une Map 2", "Chez les Orcs", "À la montagne", "Caves", "=>Suivant", "<=Retour")
				if endroit == 7 then
					return
				elseif endroit == 1 then
					say_title("Anneau Triple-Fun: ")
					say("Dans quelle Map1 voulez-vous vous rendre ?")
					local map1 = select("Rouge", "Jaune", "Bleu")
					if map1 == 1 then
						say("Vous allez être téléporté vers")
						say("la Map 1 Rouge tout de suite.")
						wait()
						pc.warp(474300, 954800)
					elseif map1 == 2 then
						say("Vous allez être télépoté vers")
						say("la Map 1 Jaune tout de suite.")
						wait()
						pc.warp(63800 , 166400)
					elseif map1 == 3 then
						say("Vous allez être télépoté vers")
						say("la Map 1 Bleu tout de suite...")
						wait()
						pc.warp(959900 , 269200)
					end
				elseif endroit == 2 then
					say_title("Anneau Triple-Fun: ")
					say("Dans quelle Map2 voulez-vous vous rendre ?")
					local map1 = select("Rouge", "Jaune", "Bleu")
					if map1 == 1 then
						say("Vous allez être téléporté vers")
						say("la Map 2 Rouge tout de suite.")
						wait()
						pc.warp(353100 , 882900)
					elseif map1 == 2 then
						say("Vous allez être télépoté vers")
						say("la Map 2 Jaune tout de suite.")
						wait()
						pc.warp(145500 , 240000)
					elseif map1 == 3 then
						say("Vous allez être télépoté vers")
						say("la Map 2 Bleu tout de suite...")
						wait()
						pc.warp(863900 , 246000)
					end
				elseif endroit == 3 then
					say("Vous allez être télépoté vers")
					say("la Map des Orcs tout de suite...")
					wait()
					if pc.get_empire()  == 1 then
						pc.warp(863900 , 246000)
					elseif pc.get_empire() == 2 then
						pc.warp(270400, 739900)
					elseif c.get_empire() == 3 then
						pc.warp(321300, 808000)
					end
				elseif endroit == 4 then
					say("Vous allez être télépoté vers")
					say("la Montagne tout de suite...")
					wait()
					if pc.get_empire()  == 1 then
						pc.warp(434200, 290600)
					elseif pc.get_empire() == 2 then
						pc.warp(375200, 174900)
					elseif c.get_empire() == 3 then
						pc.warp(491800, 173600)
					end
				elseif endroit == 5 then
					say("Vers quelle cave souhaitez-vous")
					say("vous rendre ?")
					local caves = select("V1", "V2")
					if caves == 1 then
						pc.warp(60000 , 496000)
					elseif caves == 2 then
						pc.warp(704100 , 464200)
					end
				elseif endroit == 6 then
					say("Suite des destinations possibles")
					local endroit = select("Grotte de l'Exil", "Terre de feu" , "Tour du démon" , "Forêt" , "Bois Rouge", "Géants" ,"<=Retour")
					if endroit == 7 then
						return
					elseif endroit == 1 then
						say("Vers quelle grotte voulez-vous aller ?")
						local grottes = select("Première", "Deuxième")
						if grottes == 1 then
							pc.warp(10000 , 1207800)
						elseif grottes == 2 then
							pc.warp(241300,	1275400)
						end
					elseif endroit == 2 then
						say("Vous allez être téléporté vers")
						say("la Terre de feu tout de suite...")
						wait()
						if pc.get_empire()  == 1 then
							pc.warp(599400, 756300)
						elseif pc.get_empire() == 2 then
							pc.warp(597800, 622200)
						elseif c.get_empire() == 3 then
							pc.warp(730700, 689800)
						end
					elseif endroit == 3 then
						say("Vous allez être téléporté vers")
						say("la Tour tout de suite...")
						wait()
						pc.warp(590500, 110500)
					elseif endroit == 4 then
						say("Vous allez être téléporté vers")
						say("la Forêt tout de suite...")
						say("Bonne chasse !")
						wait()
						pc.warp(288700 , 5700)
					elseif endroit == 5 then
						say("Vous allez être téléporté vers")
						say("le Bois rouge tout de suite...")
						say("Faites bien attention à vous !")
						wait()
						pc.warp(1119500 , 701)
					elseif endroit == 6 then
						say("Vous allez être téléporté vers")
						say("la map des géants tout de suite...")
						say("Faites attention à vous !")
						wait()
						pc.warp(828300 , 763500)
					end			
			elseif b==2 then
				say_title("Anneau Triple-Fun: ")
				say("Gerer mon experience.")
				local exp=select("Bloquer mon experience", "Debloquer mon experience", "Vider mon experience", "Fermer")
				if exp==4 then
					return
				elseif exp==1 then
					say_title("Anneau Triple-Fun: ")
					if pc.getqf("lock_exp")==1 then
						say_reward("Votre experience est deja bloquee...")
					else
						say("Si vous le souhaitez cet anneau peut bloquer")
						say("votre experience, pour pouvoir vous")
						say("remplir les poches.")
						say("Voulez-vous bloquer l'experience ?")
						local bloquer=select("Oui" ,"Non")
						say_title("Anneau Triple-Fun: ")
						if bloquer==2 then
							return
						elseif bloquer==1 then
							say("Votre experience a ete bloque avec succes !")
							wait()
							pc.setqf("lock_exp", 1)
							pc.setqf("exp_lock", pc.get_exp())
						end
					end
					elseif exp==2 then
					say_title("Anneau Triple-Fun: ")
					if pc.getqf("lock_exp")==0 then
						say_reward("Votre experience n'est pas bloquee....")
					else
						say("Voulez-vous debloquer votre experience ?")
						local debloquer=select("Oui","Non")
						if debloquer==2 then
							return
						elseif debloquer==1 then
							say("Voila, votre experience a ete bloque avec succes !")
							pc.setqf("lock_exp", 0)
							pc.setqf("exp_lock", 0)
						end    
					end
					elseif exp==3 then
					say_title("Anneau Triple-Fun: ")
					say("Etes vous sur de vouloir vider votre experience ?")
					local vider=select("Oui" ,"Non")
					if vider==2 then
						return
					elseif vider==1 then
						say("Votre experience a ete vide avec succes !")
						pc.give_exp2(-pc.get_exp())
					end
				end
			elseif b==3 then
				return
			elseif b==4 then
				return
			elseif b==5 then
				return
			elseif b==6 then
				return
			end
		end
	end
end
end

 

 

:blush: Peut-être j'exagère un peu en disant que c'est horrible... c'est juste qu'elle n'est pas commentée...

Share this post


Link to post
  • 0

Bah ça va, c'est rien 273 lignes :).

quest anneauultrafun begin
   state start begin
       when 40001.use begin
           if pc.is_gm() == true then
               say_title("Anneau du staff:")
               say("Que voulez vous faire ?")
               local a=select("Message de connexion", "Message de deconnexion", "Parler en annonce", "Mode invisible", "Fermer")
               if a==1 then
                   say_title("Anneau du staff:")
                   say("L'annonce de connexion est affiche.")
                   command("n "..pc.get_name().." en ligne. Bonjour a toutes et a tous !")
                   command("n Je suis disponible pour vos questions.")
                   command("n N'hesitez pas a me MP, sans oublier les crochets.")
               elseif a==2 then
                   say_title("Anneau du staff:")
                   say("L'annonce de deconnexion est affiche.")
                   command("n "..pc.get_name().." passe hors ligne.")
                   command("n Bon jeu a toutes et a tous !")
               elseif a==3 then
                   say_title("Anneau du staff:")
                   say("Ecrivez votre annonce:")
                   command("n "..pc.get_name().." : "..input()..""..input()..""..input().."")
               elseif a==4 then
                   command("inv")
               end
           else
               say_title("Anneau Triple-Fun:")
               say("Que voulez-vous faire ?")

               local b=select("Gerer mon experience", "Me teleporter", "Fermer", "Fermer", "Fermer", "Fermer", "Fermer")
               if b==7 then
                   return
               elseif b==1 then
                   local map = pc.get_map_index()
                   say_title("Anneau Triple-Fun: ")
                   if map == 1 then
                       say("Vous êtes Map 1 rouge, où voulez-vous aller ?")
                   elseif map == 3 then
                       say("Vous êtes Map 2 rouge, où voulez-vous aller ?")
                   elseif map == 4 then
                       say("Vous êtes Map 3 rouge, où voulez-vous aller ?")
                   elseif map == 5 or map == 25 or map == 45 then
                       say("Vous êtes Donjon facile, où voulez-vous aller ?")
                   elseif map == 21 then
                       say("Vous êtes Map 1 jaune, où voulez-vous aller ?")
                   elseif map == 23 then
                       say("Vous êtes Map 2 jaune, où voulez-vous aller ?")
                   elseif map == 24 then
                       say("Vous êtes Map 3 jaune, où voulez-vous aller ?")
                   elseif map == 41 then
                       say("Vous êtes Map 1 bleu, où voulez-vous aller ?")
                   elseif map == 43 then
                       say("Vous êtes Map 2 bleu, où voulez-vous aller ?")
                   elseif map == 44 then
                       say("Vous êtes Map 3 bleu, où voulez-vous aller ?")
                   elseif map == 61 then
                       say("Vous êtes à la montagne, où voulez-vous aller ?")
                   elseif map == 62 then
                       say("Vous êtes Map Papier, où voulez-vous aller ?")
                   elseif map == 63 then
                       say("Vous êtes au désert, où voulez-vous aller ?")
                   elseif map == 64 then
                       say("Vous êtes map Orcs, où voulez-vous aller ?")
                   elseif map == 65 then
                       say("Vous êtes au Temple, où voulez-vous aller ?")
                   elseif map == 66 then
                       say("Vous êtes à la Tour, où voulez-vous aller ?")
                   elseif map == 67 then
                       say("Vous êtes à la Foret, où voulez-vous aller ?")
                   elseif map == 68 then
                       say ("Vous êtes au Bois rouge, où voulez-vous aller ?")
                   elseif map == 69 then
                       say("Vous êtes au WL, où voulez-vous aller ?")
                   elseif map == 70 then
                       say("Vous êtes aux géants, où voulez-vous aller ?")
                   elseif map == 71 or map == 104 then
                       say("Vous êtes à la Cave, où voulez-vous aller ?")
                   elseif map == 72 or map == 73 or map == 184 or map == 185 or map == 186 or map == 187 or map == 188 or map == 189 then
                       say("Vous êtes à Atlenta, où voulez-vous aller ?")
                   elseif map == 107 or map == 108 or map == 109 then
                       say("Vous êtes au donjon, où voulez-vous aller ?")
                   end
				say_title("Anneau Triple-Fun: ")
				say("Où voulez-vous vous rendre ?")
                   local endroit = select("Dans une Map 1", "Dans une Map 2", "Chez les Orcs", "À la montagne", "Caves", "Suivant", "Retour")
                   if endroit == 7 then
                       return
                   elseif endroit == 1 then
                       say_title("Anneau Triple-Fun: ")
                       say("Dans quelle Map1 voulez-vous vous rendre ?")
                       local map1 = select("Rouge", "Jaune", "Bleu")
                       if map1 == 1 then
                           say("Vous allez être téléporté vers")
                           say("la Map 1 Rouge tout de suite.")
                           wait()
                           pc.warp(474300, 954800)
                       elseif map1 == 2 then
                           say("Vous allez être télépoté vers")
                           say("la Map 1 Jaune tout de suite.")
                           wait()
                           pc.warp(63800 , 166400)
                       else
                           say("Vous allez être télépoté vers")
                           say("la Map 1 Bleu tout de suite...")
                           wait()
                           pc.warp(959900 , 269200)
                       end
                   elseif endroit == 2 then
                       say_title("Anneau Triple-Fun: ")
                       say("Dans quelle Map2 voulez-vous vous rendre ?")
                       local map1 = select("Rouge", "Jaune", "Bleu")
                       if map1 == 1 then
                           say("Vous allez être téléporté vers")
                           say("la Map 2 Rouge tout de suite.")
                           wait()
                           pc.warp(353100 , 882900)
                       elseif map1 == 2 then
                           say("Vous allez être télépoté vers")
                           say("la Map 2 Jaune tout de suite.")
                           wait()
                           pc.warp(145500 , 240000)
                       else
                           say("Vous allez être télépoté vers")
                           say("la Map 2 Bleu tout de suite...")
                           wait()
                           pc.warp(863900 , 246000)
                       end
                   elseif endroit == 3 then
                       say("Vous allez être téléporté vers")
                       say("la Map des Orcs tout de suite...")
                       wait()
                       if pc.get_empire() == 1 then
                           pc.warp(863900 , 246000)
                       elseif pc.get_empire() == 2 then
                           pc.warp(270400, 739900)
                       elseif pc.get_empire() == 3 then
                           pc.warp(321300, 808000)
                       end
                   elseif endroit == 4 then
                       say("Vous allez être télépoté vers")
                       say("la Montagne tout de suite...")
                       wait()
                       if pc.get_empire()  == 1 then
                           pc.warp(434200, 290600)
                       elseif pc.get_empire() == 2 then
                           pc.warp(375200, 174900)
                       elseif pc.get_empire() == 3 then
                           pc.warp(491800, 173600)
                       end
                   elseif endroit == 5 then
                       say("Vers quelle cave souhaitez-vous")
                       say("vous rendre ?")
                       local caves = select("V1", "V2")
                       if caves == 1 then
                           pc.warp(60000 , 496000)
                       else
                           pc.warp(704100 , 464200)
                       end
                   elseif endroit == 6 then
                       say("Suite des destinations possibles")
                       local endroit2 = select("Grotte de l'Exil", "Terre de feu", "Tour du démon", "Forêt", "Bois Rouge", "Géants", "Retour")
                       if endroit2 == 7 then
                           return
                       elseif endroit2 == 1 then
                           say("Vers quelle grotte voulez-vous aller ?")
                           local grottes = select("Première", "Deuxième")
                           if grottes == 1 then
                               pc.warp(10000, 1207800)
                           else
                               pc.warp(241300, 1275400)
                           end
                       elseif endroit2 == 2 then
                           say("Vous allez être téléporté vers")
                           say("la Terre de feu tout de suite...")
                           wait()
                           if pc.get_empire()  == 1 then
                               pc.warp(599400, 756300)
                           elseif pc.get_empire() == 2 then
                               pc.warp(597800, 622200)
                           elseif pc.get_empire() == 3 then
                               pc.warp(730700, 689800)
                           end
                       elseif endroit2 == 3 then
                           say("Vous allez être téléporté vers")
                           say("la Tour tout de suite...")
                           wait()
                           pc.warp(590500, 110500)
                       elseif endroit2 == 4 then
                           say("Vous allez être téléporté vers")
                           say("la Forêt tout de suite...")
                           say("Bonne chasse !")
                           wait()
                           pc.warp(288700 , 5700)
                       elseif endroit2 == 5 then
                           say("Vous allez être téléporté vers")
                           say("le Bois rouge tout de suite...")
                           say("Faites bien attention à vous !")
                           wait()
                           pc.warp(1119500 , 701)
                       elseif endroit2 == 6 then
                           say("Vous allez être téléporté vers")
                           say("la map des géants tout de suite...")
                           say("Faites attention à vous !")
                           wait()
                           pc.warp(828300 , 763500)
                       end
				end
               elseif b==2 then
                   say_title("Anneau Triple-Fun: ")
                   say("Gérer mon experience.")
                   local exp=select("Bloquer mon expérience", "Débloquer mon experience", "Vider mon experience", "Fermer")
                   if exp==4 then
                       return
                   elseif exp==1 then
                       say_title("Anneau Triple-Fun: ")
                       if pc.getqf("lock_exp") == 1 then
                           say_reward("Votre experience est deja bloquée...")
                       else
                           say("Si vous le souhaitez cet anneau peut bloquer")
                           say("votre experience, pour pouvoir vous")
                           say("remplir les poches.")
                           say("Voulez-vous bloquer l'experience ?")
                           local bloquer=select("Oui" ,"Non")
                           say_title("Anneau Triple-Fun: ")
                           if bloquer == 2 then
                               return
                           else
                               say("Votre experience a ete bloque avec succès !")
                               pc.setqf("lock_exp", 1)
                               pc.setqf("exp_lock", pc.get_exp())
                           end
                       end
				elseif exp==2 then
                       say_title("Anneau Triple-Fun: ")
                       if pc.getqf("lock_exp")==0 then
                           say_reward("Votre experience n'est pas bloquée....")
                       else
                           say("Voulez-vous débloquer votre experience ?")
                           local debloquer=select("Oui","Non")
                           if debloquer==2 then
                               return
                           else
                               say("Voila, votre expérience a ete bloque avec succes !")
                               pc.setqf("lock_exp", 0)
                               pc.setqf("exp_lock", 0)
                           end
                       end
				elseif exp==3 then
                       say_title("Anneau Triple-Fun: ")
                       say("Etes vous sur de vouloir vider votre expérience ?")
                       local vider = select("Oui", "Non")
                       if vider==2 then
                           return
                       else
                           say("Votre experience a été vidée avec succes !")
                           pc.give_exp2(-pc.get_exp())
                       end
                   end
               elseif b==3 then
                   return
               elseif b==4 then
                   return
               elseif b==5 then
                   return
               else
                   return
               end
           end
       end
   end
end

 

Essaie comme ça. Quand tu as un choix à deux propositions, pense à déclarer la deuxième proposition par "else".

Share this post


Link to post
  • 0
Guest Ioio

Parfait ça marche !

Merci de ton aide ;)

et ok, je mettrais toujours un else pour la deuxième ;)

Share this post


Link to post
  • 0

Je me suis mal exprimé, pas forcément pour le deuxième choix. En fait, "else" c'est sinon (je pense que tu l'as compris) et peut se déclarer comme tel

Exemple :

if pc.get_level() == 32 then
(code)
else
(code)
end

 

Si le personnage est exactement niveau 32, alors... Sinon, alors...

En clair, "else" correspond à la toute dernière proposition, que ce soit un choix avec 5 propositions ou 7.

 

P.S. : pense à ajouter la balise "Résolu" si ce n'est pas déjà fait.

Share this post


Link to post
  • 0
Guest Ioio

La balise est dejà mise...

Ben je sais bien et normalement en python on met elif et pas elseif mais comme j'ai des habitudes....

Bref... je sais bien que les conditions sont:

 

si joueur.son_niveau() == 50 alors

donnes_lui(unpack)

sinonsi joueur.son_niveau == 96 alors

teleportes_le(lune, espace)

sinon

donnez-lui(chaussette_rouge)

_FIN_

 

xD

Share this post


Link to post
  • 0

Une erreur "nested == 0" signifie toujours qu'il manque un end, dans quel cas il faut vérifier

si tu a bien fermé correctement toutes les conditions, les states et les when.

 

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.

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.