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

[PVE] Chasse


herostar34

Messages recommandés

  • Retraité

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

Hey, bonjour à tous.

 

Ce matin je viens de retrouver une quête dans mes fichiers que j'avais faite pour une personne, je ne sais plus qui enfin bref.

C'est une quête mission de chasse, avec compteur de monstres tués, et récompenses à la fin.

Rien de bien impressionnant, mais si vous le souhaitez , prenez la quête, et modifiez à votre guise :

 

----------------------------------------------
Quete modifiée et corrigée par herostar34
----------------------------------------------
quest herostar begin
   state start begin
       when login or levelup or enter with pc.get_level() >=100  and pc.get_level() <= 100 begin
            set_state( information )
       end
   end

   state information begin
       when letter begin
                   
           local v = find_npc_by_vnum(ID PNJ)

           if v != 0 then
               target.vid("__TARGET__", v, "§äĵ³Æ¶¤ªø")
           
           
           end
           send_letter("Nom de la mission")
       end
       when button begin
           say("")
           say("Le pnj veut vous voir.")
           say("Allez à sa rencontre, il a une bonne")
           say("nouvelle pour vous.")
           say("A tout de suite.")
           say("")
       end
       when info begin
           say("")
           say("Le pnj veut vous voir.")
           say("Allez à sa rencontre, il a une bonne")
           say("nouvelle pour vous.")
           say("A tout de suite.")
           say("")
       
       end        
       when __TARGET__.target.click or
           idPNJ.chat."Les Neuf Queues" with pc.level >= 100 begin
           target.delete("__TARGET__")
           --                                                  |
           say("NomDuPnj :")
           say("")
           say("Hey Aventurier,")
           say("J'ai une quete à vous confier")
           say("pour prouver votre bravoure.")
           say("Il faut tuer 20 nomDuMob")
           say("Te sens-tu capable ?")
           say("Tu seras bien evidemment")
           say("récompensé si tu y arrives")    
           say("")
           local s=select("J'accepte","Je refuse")
           if 2==s then
               say("nomDuPnj :")
               say("")
               say("Tu refuses ?")
               local a=select("Oui","Non")
               if  2==a then
                   say("nomDuPnj :")
                   say("")
                   say("Ah, tu as du courage")
                   say("Reviens quand tu seras prêt")
                   say("")
                   return
               end
               say("nomDuPnj :")
               say("")
               say("Tu lâches l'affaire..")
               say("Tu ne gagneras rien du tout")
               say("")
               set_state(__GIVEUP__)
               return
           end
           say("nomDuPnj :")
           say("")
           say("Je compte sur toi")
           say("Tue 20 nomDuMob")
           say("Reconnecte toi pour que le compteur se lance")    
           say("")
           pc.setqf("kill_count", 0)
           q.set_counter("Il te reste "..mob_name(idDuMob).." à tuer",0)
           set_state(goto_blackwinder)
       end
   end
   state goto_blackwinder begin
       when letter begin
           setskin(NOWINDOW)
           makequestbutton("Tuer nomDuMob")
           q.set_title("Tuer nomDuMob")
           q.start()
       end

       when info or button begin
           say(locale.NOTICE_COLOR.."Tuer 20 nomDuMob"..locale.NORMAL_COLOR)
       --                                                    |                
           say("")
           say("Pour gagner")
           say("et recevoir une recompense")
           say("Tu dois tuer nomDuMob")
           say("Au plus vite")
           say("")
           say("Ta perseverance sera recompensée")
           say("Bonne Chance")
           say("")
           say_reward("Vous en avez tué "..pc.getqf("kill_count").." "..mob_name(idDuMob).."")
       end
       
       when idDuMob.kill  begin
           local count=pc.getqf("kill_count")+1
           if count<=20  then    
               pc.setqf("kill_count",count)
               q.set_counter("Reste "..mob_name(idDuMob).."",20-count)
               if count== 20 then
                   set_state(go_back_to_bosser)
               end
           end    
       end
   end

   state go_back_to_bosser begin
       when letter begin
           setskin(NOWINDOW)
           makequestbutton("Mission Accomplie")
           q.set_title("Mission Accomplie")
           q.start()
           local v = find_npc_by_vnum(idDuPnj)

           if v != 0 then
               target.vid("__TARGET__", v, "¥hĵ³Æ¶¤ªø¨º¸Ì")
           end

       end

       when info or button begin
           say(locale.NOTICE_COLOR.."Mission Accomplie"..locale.NORMAL_COLOR)
           say("")
           say("Tu as tué les 20 nomDuMob") 
           say("Retourne voir le nomDuPnj")
           say("")
       end
       
       when __TARGET__.target.click or
           idDuPnj.chat."Mission Terminee" begin
           target.delete("__TARGET__")
           say("Forgeron :")
           say("")
           say("Felicitation")
           say("Tu as accomplie ta quête avec succès.")
           say("Voici comme promis")
           say("une récompense.")
           say("")
           
           say_reward("Vous recevez :")
           say_reward("25 000 000 Yangs.")
		say_reward("nomdel'item")
           pc.change_money(25000000)
		pc.give_item2(idDeLitem, nbre)

           set_state(COMPLETE)
           clear_letter()
       end

       end
   state __GIVEUP__ begin
   end
   state COMPLETE begin
   end
end
 

Si vous ne savez pas implanter une quête, suivez ce tutoriel : ici

Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans ce sujet

Meilleurs contributeurs dans ce sujet

  • Développeur

Tu aurais pu éviter de te compliquer la vie avec ça:

when login or levelup or enter with pc.get_level() >=100 and pc.get_level() <= 100

 

Tu peux aussi faire plus simple:

when login or levelup or enter with not pc.level != 100

 

C'est pas évident directement mais avec l'habitude on s'y habitue

J'attends de voir si elle est fonctionnelle et je valide ! Merci pour le partage.

Lien vers le commentaire
Partager sur d’autres sites

when login or levelup or enter with pc.get_level() >=100 and pc.get_level() <= 100 begin

 

 

Je traduis :o

Quand on se connecte ou qu'on change de niveau ou qu'on change de map avec le niveau plus grand ou égal à 100 (donc de 100 compris à + l'infini) et le niveau plus petit ou égal à 100 (donc de 0 à 100 compris).

 

J'ai pas compris le truc là xD Le seul niveau qui réunira les 2 conditions, c'est 100. Je pense qu'un simple pc.get_level() == 100 aurait suffi, non ?

 

PS : Sparkk, l'art de tourner les choses en bourriques xD "pas avec le niveau de différent de 100"

Lien vers le commentaire
Partager sur d’autres sites

  • Développeur

Ce qu'il a voulu faire c'est que si le niveau est supérieur ou égal a 100 ET inférieur ou égal à 100, on commence

autrement dit, il faut qu'il soit level 100 pile poil car 100 respecte les deux conditions (100 <= 100 et 100 >= 100)

Ne pas confondre avec "<" qui signifie strictement inférieur à. En gros, ce que moi j'ai fait pour simplifier ça:

 

NOT fait partie de la logique binaire (and, or, nor, xor, etc) voir ici

En gros si je mets "not" avant la fonction, ça fera tout le contraire de ce qui suit. Si je fais:

"if pc.level == 100 then" il cherchera si le level est égal à 100 alors que si je fais ça:

"if not pc.level == 100 then" il cherchera si le level est différent de 100. Je ne complique rien, je facilite :).

Et comme tu l'as dit oui c'est la même chose avec un pc.level == 100.

Lien vers le commentaire
Partager sur d’autres sites

Ce qu'il a voulu faire c'est que si le niveau est supérieur ou égal a 100 ET inférieur ou égal à 100, on commence

autrement dit, il faut qu'il soit level 100 pile poil car 100 respecte les deux conditions (100 <= 100 et 100 >= 100)

Ne pas confondre avec "<" qui signifie strictement inférieur à. En gros, ce que moi j'ai fait pour simplifier ça:

 

NOT fait partie de la logique binaire (and, or, nor, xor, etc) voir ici

En gros si je mets "not" avant la fonction, ça fera tout le contraire de ce qui suit. Si je fais:

"if pc.level == 100 then" il cherchera si le level est égal à 100 alors que si je fais ça:

"if not pc.level == 100 then" il cherchera si le level est différent de 100. Je ne complique rien, je facilite Smiling.

Et comme tu l'as dit oui c'est la même chose avec un pc.level == 100.

 

On s'est parfaitement compris t'inquiète pas :) Relis bien mon message :) C'est juste que c'est comme si tu écrivais en mathématiques

5 - (-5) = 10

à la place de

5 + 5 = 10

ce qui pour moi est du tournage en bourrique vu que tu utilises 2 négations pour dire une chose que tu peux dire en une affirmation, ainsi plus facilement et plus logiquement (c'est tout de même plus logique de dire qu'un niveau doit être égal à 100 plutôt que de dire qu'un niveau ne doit pas être différent de 100 :o ).

 

Bref, trêve de flood :angel:

Lien vers le commentaire
Partager sur d’autres sites

  • Développeur

Ce qu'il a voulu faire c'est que si le niveau est supérieur ou égal a 100 ET inférieur ou égal à 100, on commence

autrement dit, il faut qu'il soit level 100 pile poil car 100 respecte les deux conditions (100 <= 100 et 100 >= 100)

Ne pas confondre avec "<" qui signifie strictement inférieur à. En gros, ce que moi j'ai fait pour simplifier ça:

 

NOT fait partie de la logique binaire (and, or, nor, xor, etc) voir ici

En gros si je mets "not" avant la fonction, ça fera tout le contraire de ce qui suit. Si je fais:

"if pc.level == 100 then" il cherchera si le level est égal à 100 alors que si je fais ça:

"if not pc.level == 100 then" il cherchera si le level est différent de 100. Je ne complique rien, je facilite Smiling.

Et comme tu l'as dit oui c'est la même chose avec un pc.level == 100.

 

On s'est parfaitement compris t'inquiète pas :) Relis bien mon message :) C'est juste que c'est comme si tu écrivais en mathématiques

5 - (-5) = 10

à la place de

5 + 5 = 10

ce qui pour moi est du tournage en bourrique vu que tu utilises 2 négations pour dire une chose que tu peux dire en une affirmation, ainsi plus facilement et plus logiquement (c'est tout de même plus logique de dire qu'un niveau doit être égal à 100 plutôt que de dire qu'un niveau ne doit pas être différent de 100 :o ).

 

Bref, trêve de flood :angel:

 

Parce que je pensais à autre chose :angel:

Lien vers le commentaire
Partager sur d’autres sites



  • brilliantdiscord_widget
  • Flux d'Activité

    1. 37
    2. 21

      Metin2 en 2020 peut-on en parler?

    3. 0

      METIN2Project

    4. 3

      Ressources - UnPack - Metin2 Client - Officiel

    5. 0

      Barre des tâches d'argent étendue

    6. 16

      Redémarrage automatique des channels

    7. 16

      Multi Logo GM / SGM / GA

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