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

Problème Quête TP


Alan

Question

Version des Files M2 Project

Hello à tous,

 

Je souhaite personnaliser une quête au niveau de l'anneau de TP à partir de mes faibles connaissances actuelles sur le codage (Avoir accès pour tous aux maps 1 et 2 de tous les royaumes, ajout des instances dans le TP...). Seulement, je ne maîtrise pas le langage LUA (pour le moment) et j'ai donc souhaité réalisé une nouvelle quête au format .quest sur un autre item disponible. Seulement, elle n’apparaît pas du tout IG sur l'objet cible comme si ce dernier ne servait à rien. Si quelqu'un voit quelque chose qui bloque. :) 

 

Ce que j'ai fait

  1. Créer une quête au format .quest 
  2. Ajouter ma quête à partir de WinSCP en suivant le chemin suivant : /usr/m2_project/1.0.0/resources/locale/france/quest
  3. Éditer le fichier new_local_list.txt en laissant une ligne supplémentaire à la fin.
  4. Vérifier dans l'item_proto que le Vnum choisi est bien configuré comme ITEM_QUEST 
  5. Fait un update de toutes les quêtes à partir de la VM
  6. Reboot le serveur 

 

Voici la quète que j'essaye d'implanter : 

Citation

quest AnneauTP begin
    state start begin
        when 70058.use."Map 1 Rouge" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(474300, 954800)
            else
                return
            end
        end
        when 70058.use."Map 2 Rouge" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(353100, 882900)
            else
                return
            end         
        end
        when 70058.use."Map 1 Jaune" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(63800, 166400)
            else
                return
            end         
        end
        when 70058.use."Map 2 Jaune" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(145500, 240000)
            else
                return
            end         
        end
         when 70058.use."Map 1 Bleu" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(959900, 269200)
            else
                return
            end         
        end
         when 70058.use."Map 2 Bleu" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(863900, 246000)
            else
                return
            end         
        end
         when 70058.use."Map Orc" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(333000, 746600)
            else
                return
            end         
        end
         when 70058.use."Map Desert" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(217800, 627200)
            else
                return
            end         
        end
         when 70058.use."Mont Sohan" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(434200, 290600)
            else
                return
            end         
        end
         when 70058.use."Terre de feu" begin
            say_reward("Voulez-vous être téléporté ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(599400, 756300)
            else
                return
            end         
        end
         when 70058.use."Tour du démon" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(590500, 110500)
            else
                return
            end         
        end
         when 70058.use."Foret" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(288700, 5700)
            else
                return
            end         
        end
         when 70058.use."Bois Rouge" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(1119500, 701)
            else
                return
            end         
        end
         when 70058.use."Cave 1" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(60000 , 496000)
            else
                return
            end         
        end
         when 70058.use."Cave 2" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(704100 , 464200)
            else
                return
            end         
        end
         when 70058.use."Grotte de l'Exil 1" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(10000, 1207800)
            else
                return
            end         
        end
         when 70058.use."Grotte de l'Exil 2" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(241800, 1275000)
            else
                return
            end         
        end
         when 70058.use."Geant" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(828300, 763500)
            else
                return
            end         
        end
         when 70058.use."Catacombes" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(591600 , 99900)
            else
                return
            end         
        end
         when 70058.use."Beran-Seatou" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(181600, 1220700)
            else
                return
            end         
        end
         when 70058.use."Observatoire de Nemere" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(432000 , 164800)
            else
                return
            end         
        end
         when 70058.use."Meley" begin
            say_reward("Voulez-vous y aller ?")
         
            local s1=select("Oui","Non")
            if s1 == 1 then
                pc.warp(614000 , 707100)
            else
                return
            end         
        end
    end
end

 

 

 

Merci à tous pour votre aide. 

Cordialement,

 

Alan 

 

Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

10 réponses à cette question

Messages recommandés

  • 0
  • Administrateur

Sauf erreur de ma part

when 70058.use."Beran-Seatou" begin

Ne fonctionnera pas car il doit s'utiliser comme cela :

when 70058.chat."Beran-Seatou" begin

70058 n'étant pas un NPC mais un item, ça ne fonctionnera pas, quoi que, je n'ai jamais testé...

 

Dans ton cas, tu dois faire quelques choses de similaire à :

when 70058.use begin
	local choix_des_maps = select("Map 1", "Map 2", "Map 3", "Fermer")

	if choix_des_maps == 4 then
		return
	end

	if choix_des_maps == 1 then
		pc.warp(XXX, XXX)
	end

	if choix_des_maps == 2 then
		pc.warp(XXX, XXX)
	end

	if choix_des_maps == 3 then
		pc.warp(XXX, XXX)
	end
end

Dans ce cas là, ça ne demande aucune confirmation mais si tu veux ajouter une confirmation :

when 70058.use begin
	local choix_des_maps = select("Map 1", "Map 2", "Map 3", "Fermer")

	if choix_des_maps == 4 then
		return
	end

	if choix_des_maps == 1 then
		say("Etes vous sur de... ?")
		local verification = select("Oui", "Non")
		
		if verification == 1 then
			pc.warp(XXX, XXX)
		else
			return
		end
	end

	if choix_des_maps == 2 then
		say("Etes vous sur de... ?")
		local verification = select("Oui", "Non")
		
		if verification == 1 then
			pc.warp(XXX, XXX)
		else
			return
		end
	end

	if choix_des_maps == 3 then
		say("Etes vous sur de... ?")
		local verification = select("Oui", "Non")
		
		if verification == 1 then
			pc.warp(XXX, XXX)
		else
			return
		end
	end
end

C'est clairement optimisable après ;) 

Pour compiler, utilise bien le " 203 PRE QC " :) 

Lien vers le commentaire
Partager sur d’autres sites

  • 0

J'ai complété la base que tu m'as apporté. Tout semble ok quand je fais 203 PRE QC (ci-joint la capture d'écran). Mais IG rien ne se passe... :/ 

 

Capture d'écran de la VM : 

https://goopics.net/i/0YgXw

La quête : (c'est mieux ranger dans SublimeText) 

Citation

quest AnneauTP begin
    state start begin
        when 70058.use begin
            local choix_des_maps = select("Map 1 Bleu", "Map 2 Bleu", "Map 1 Rouge", "Map 2 Rouge", "Map 1 Jaune", "Map 2 Jaune", "Map Orc", "Desert", "Terre de feu", "Tour du demon", "Cave 1", "Cave 2", "Grotte de l'Exil 1", "Grotte de l'Exil 2", "Foret", "Bois Rouge", "Geant", "Beran-Seatou", "Catacombes", "Observatoire de Nemere", "Meley", "Fermer")

            if choix_des_maps == 22 then
                return
            end

            if choix_des_maps == 1 then
                pc.warp(959900, 269200)
            end

            if choix_des_maps == 2 then
                pc.warp(863900, 246000)
            end

            if choix_des_maps == 3 then
                pc.warp(474300, 954800)
            end

            if choix_des_maps == 4 then
                pc.warp(353100, 882900)
            end

            if choix_des_maps == 5 then
                pc.warp(63800, 166400)
            end

            if choix_des_maps == 6 then
                pc.warp(145500, 240000)
            end

            if choix_des_maps == 7 then
                pc.warp(333000, 746600)
            end

            if choix_des_maps == 8 then
                pc.warp(217800, 627200)
            end

            if choix_des_maps == 9 then
                pc.warp(599400, 756300)
            end

            if choix_des_maps == 10 then
                pc.warp(590500, 110500)
            end

            if choix_des_maps == 11 then
                pc.warp(60000 , 496000)
            end

            if choix_des_maps == 12 then
                pc.warp(704100 , 464200)
            end

            if choix_des_maps == 13 then
                pc.warp(10000, 1207800)
            end

            if choix_des_maps == 14 then
                pc.warp(241800, 1275000)
            end

            if choix_des_maps == 15 then
                pc.warp(288700, 5700)
            end

            if choix_des_maps == 16 then
                pc.warp(1119500, 701)
            end

            if choix_des_maps == 17 then
                pc.warp(828300, 763500)
            end

            if choix_des_maps == 18 then
                pc.warp(181600, 1220700)
            end

            if choix_des_maps == 19 then
                pc.warp(591600 , 99900)
            end

            if choix_des_maps == 20 then
                pc.warp(432000 , 164800)
            end
            
            if choix_des_maps == 21 then
                pc.warp(614000 , 707100)
            end
        end
    end
end

 

L'item_proto de l'item

Citation

70058    XXX    ITEM_QUEST    0    1    NONE    NONE    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0    12    7

Lien vers le commentaire
Partager sur d’autres sites

  • 0
Il y a 17 heures, ASIKOO a dit :

Peut être l'encodage, duplique une quête existante depuis WinSCP pour avoir le bon encodage dès le début.

Fait mais ça ne fonctionne pas. Je vais essayer d'éditer ta quête en LUA (j'en transpire déjà :D

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Administrateur
Il y a 2 heures, Alan a dit :

Problème résolu (ou plutôt esquivé). 

Le problème vient de l'objet en lui-même. Le mystère reste entier sur le pourquoi du comment. 

 

Merci de ton aide :) 

 

C'est étrange, dans la mise à jour 1.0.1 de mes files, le 70058 a été configuré sans problème et c'est un anneau qui aura X utilisations et le 40008 sera lui illimité...

Lien vers le commentaire
Partager sur d’autres sites

  • 0
il y a 1 minute, ASIKOO a dit :

 

C'est étrange, dans la mise à jour 1.0.1 de mes files, le 70058 a été configuré sans problème et c'est un anneau qui aura X utilisations et le 40008 sera lui illimité...

Oui je trouve ça étrange également. J'ai donc prit l'item 40002 (anneau de levi) et ça fonctionne parfaitement :) 

Lien vers le commentaire
Partager sur d’autres sites

  • 0
Il y a 5 heures, Alan a dit :

Oui je trouve ça étrange également. J'ai donc prit l'item 40002 (anneau de levi) et ça fonctionne parfaitement :) 

 

C'est tout à fait normal que ça ne marche pas avec l'item 70058 car elle est configurée pour être un anneau de TP de base mais il manque du code côté LUA si je ne dis pas de bêtise ainsi que C++, l'anneau 40002 ou 40008 ou bien 40001 peu importe marche car elles sont "useless" donc tu peux configurer une quête via c'est item pour les faire fonctionner.

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

      Metin2 en 2020 peut-on en parler?

    2. 0

      METIN2Project

    3. 3

      Ressources - UnPack - Metin2 Client - Officiel

    4. 0

      Barre des tâches d'argent étendue

    5. 16

      Redémarrage automatique des channels

    6. 16

      Multi Logo GM / SGM / GA

    7. 0

      comment extraire les fichiers locale.epk locale.eix sur le serveur officiel ?

    8. 2

      Funky-emu.net -> fr.metin2.dev

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