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

Manque des fonctions LUA


tiitbeet

Question

Version des Files / Type d’Émulateur dédié files 2016

Domaine ( Base de Données, Client, Core, Sources... ) : LUA

Niveau : Intermédiaire ou Avancé ?

 

1. Description du dysfonctionnement / Question :

Bonjour, je suis en train de faire une quête annexe pour passer le temps. Et j'ai un léger problème, je m'explique : 

- J'aimerais dans ma quêtes que le Garde du village m'envoie droper un item sur un monstre en particulier, j'aimerais qu'il y ai 1 chance sur 50 de droper l'objet et dès qu'il le drop, il doit retourner voir le Garde du village. Donc ma quête fonctionne bien jusqu'au moment ou il faut droper l'item. Même si je drops 4 fois l'item ça ne passe pas à la suite. Je peux continuer à drop à l'infinie sans retourner voir ce fameux garde. 

Voici la partie en question! 

 

 

Révélation

Codage fonctionnel : 

    state histoire3 begin
        when letter begin
            send_letter("La Légende du Phénix")
        end
        when button or info begin
            say_title("Salut Aventurier")
            say("")
            ---                                                   l
            say("Le garde du village t'as demandé d'enquêter sur")
            say("la mystérieuse histoire de la légende du phénix.")
            say("")
            say("Vas tuer des chiens errant et essaie de trouver")
            say("des informations supplémentaire.")
            say("")
            wait()
        end
        when 101.kill with game.get_event_flag("botte_dame") == 1 and not npc.is_pc() begin
            v = number(1, 50)
            if v == 50 then
                game.drop_item_with_ownership(18)            
            end
        end

 

A savoir c'est que game.get_event_flag("botte_dame") == 1 s'active bien dans mon histoire2 donc c'est pour ça que je vous ai pas mis le codage d'avant ni d'après! 

 

Révélation

La partie non fonctionnel alors que ... 

 

        when 101.kill with game.get_event_flag("botte_dame") == 1 and not npc.is_pc() begin
            v = number(1, 50)
            if v == 50 then
                game.drop_item_with_ownership(18)            
            end
        end
        when login or levelup with pc.get_item() == 18 begin
            say_title("La Légende du Phénix")
            say("")
            ---                                                   l
            say("Félicitation! Tu as trouvé une XXX,")
            say("Cours vite voir le garde du village pour lui.")
            say("rapporter ce que t'as trouvé.")
            say("")
            wait()
            game.set_event_flag("botte_dame", 0)
            set_state( histoire4 )
        end        
    end

 

Je me dit que : 

        when login or levelup with pc.get_item() == 18 begin

 

Ne doit pas être la bonne fonction... 😢 

 

Merci à vous :)

 

J'affirme avoir lu et accepté le règlement de Funky Émulation

Modifié par tiitbeet
Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

3 réponses à cette question

Messages recommandés

  • 0
  • Retraité

Salut,

Il y a un problème de logique dans ton code.

Au moment où tu tues le mob et que le taux s'active, il ne faut pas seulement faire dropper l'item.

Soit tu fais un changement de state soit tu joues avec les flags pour gérer l'évolution de ton state.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Salut, 

Le taux s'active avant dans l'histoire précédente après avoir parlé avec le garde. 

Or, le problème n'est pas là, le problème est qu'il drop à l'infinie.. Il manque une fonction c'est ce que je disais je la connais pas. 

Merci quand même... 

 

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

Problème résolue, j'ai juste modifié la fonction par une autre. 
Personne ne m'a vraiment aider, juste quelques recherche. 

 

	state histoire3 begin
		when button or info begin
			if pc.count_item("18")==0 then
				say_title("La Legende")
				say("")
				---                                                   l
				say("Le garde du village t'as demande d'enqueter sur")
				say("la mysterieuse histoire de la legende.")
				say("")
				say("Vas tuer des Grizzlys pour et essaie de trouver")
				say("des informations supplementaire.")
				say("")
				wait()
			else
				say_title("La Legende")
				say("")
				---                                                   l
				say("Félicitation aventurier,")
				say("Vous avez trouvez des XXX!")
				say("")
				say("Retournez vite voir le Garde du Village.")
				say("")
				wait()
			end
		end
		when 101.kill begin
			local s = number(1, 100)
			if s <= 1 and pc.count_item("18")==0  then
				pc.give_item2("18", 1)
				send_letter("Vous avez trouvez des XXX!")
				local v=find_npc_by_vnum(20354)
				if 0== v then
				else
					target.vid("__TARGET__",v,"Retourner voir le Garde du Village.")
				end
			end
		end
		when __TARGET__target.click or 20354.chat."Legende." begin
			target.delete("__TARGET__")
			if pc.count_item("18") >= 1 then

 

Modifié par tiitbeet
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.