Jump to content
  • 0
Sign in to follow this  
Alan

Problème Quête TP

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 

 

Share this post


Link to post

10 answers to this question

Recommended Posts

  • 0

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 " :) 

Share this post


Link to post
  • 0

Ça marche je vais réécrire ça je te remercie ! 

 

J'utilisais le 202 Update jusqu'à maintenant. Merci de l'info :) 

 

 

Share this post


Link to post
  • 0

;) 

 

Concernant M2SH, il a été modifié en 1.0.1 (publication prochaine) pour laisser seulement PRE QC et les autres masqués.

  • Like 1

Share this post


Link to post
  • 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

Share this post


Link to post
  • 0

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

Share this post


Link to post
  • 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

Share this post


Link to post
  • 0

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 :) 

Share this post


Link to post
  • 0
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é...

Share this post


Link to post
  • 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 :) 

Share this post


Link to post
  • 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.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
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.