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

Quest Biolo


Saw

Question

Bonjour,

 

J'ai télécharger une quest qui donne une multitude de bonus via le biologiste, cependant elle est accessible dès le niveau1. j'aimerais la modifié pour qu'elle se manifeste uniquement au niveau 105.

 

Voici la quest :

 

quest bonus_pvp begin

 state start begin

  when login with pc.getqf("biolofait") == 0 begin

   local v = find_npc_by_vnum(20084)

   if v!= 0 then

    target.vid("__TARGET__", v, "Récompenses biologiste lv105")

   end

  end

  when 20084.chat."Récompenses biologiste lv105" with pc.getqf("biolofait") == 0 begin

   target.delete("__TARGET__")

   set_state(finish)

   ---                                                   l

   say_title("Récompenses biologiste :")

   say("Tu bénéficies de :")

   say_reward("+21% vitesse déplacement.")

   say_reward("+16% vitesse d'attaque.")

   say_reward("+50 valeur attaque.")

   say_reward("+10% valeur attaque.")

   say_reward("+60 défense.")

   say_reward("+10% résistance chaque race.")

   say_reward("+20% attaque chaque race.")

   say_reward("+20% critique.")

   say("")

   affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60)

   affect.add_collect(apply.ATT_SPEED,5,60*60*24*365*60)

   affect.add_collect(apply.DEF_GRADE_BONUS,60,60*60*24*365*60)

   affect.add_collect(apply.ATT_GRADE_BONUS, 50, 60*60*24*365*60)

   affect.add_collect(apply.MOV_SPEED,11,60*60*24*365*60)

   affect.add_collect(apply.DEF_GRADE_BONUS,10,60*60*24*365*60)

   affect.add_collect(apply.ATT_SPEED,6,60*60*24*365*60)

   affect.add_collect(apply.ATT_GRADE_BONUS,10,60*60*24*365*60)

   affect.add_collect(apply.CRITICAL_PCT,20,60*60*24*365*60)

   affect.add_collect_point(POINT_RESIST_WARRIOR,10,60*60*24*365*60)

   affect.add_collect_point(POINT_RESIST_ASSASSIN,10,60*60*24*365*60)

   affect.add_collect_point(POINT_RESIST_SURA,10,60*60*24*365*60)

   affect.add_collect_point(POINT_RESIST_SHAMAN,10,60*60*24*365*60)

   affect.add_collect_point(POINT_ATTBONUS_WARRIOR,20,60*60*24*365*60)

   affect.add_collect_point(POINT_ATTBONUS_ASSASSIN,20,60*60*24*365*60)

   affect.add_collect_point(POINT_ATTBONUS_SURA,20,60*60*24*365*60)

   affect.add_collect_point(POINT_ATTBONUS_SHAMAN,20,60*60*24*365*60)

   wait()

   say_title("Récompenses biologiste lv105")

   say_reward("Choisis un bonus pvp pour ta récompense. :")

   say("")

   choix=select("10000 PV", "30 demi humain", "300 valeur attaque")

   if choix == 1 then

    affect.add_collect(1, 10000, 60*60*24*365*60)

   elseif choix == 2 then

    affect.add_collect(apply.ATTBONUS_HUMAN, 30, 60*60*24*365*60)

   else

    affect.add_collect(apply.ATT_GRADE_BONUS, 300,60*60*24*365*60)

   end

   pc.setqf("biolofait", 1)

   syschat("Tu as bien reçu tous tes bonus.")

  end

 end

 state finish begin

 end

end

J'ai testé de la mettre comme cela :

quest bonus_pvp begin

 state start begin

  when login or levelup with pc.level >= 105 begin

   local v = find_npc_by_vnum(20084)

   if v!= 0 then

    target.vid("__TARGET__", v, "Récompenses biologiste lv105")

   end

  end

  when __TARGET__.target.click or

   20084.chat."Le biologiste Chaegirab." begin

   target.delete("__TARGET__")

   ---                                                   l

   say_title("Récompenses biologiste :")

   say("Tu bénéficies de :")

   say_reward("+21% vitesse déplacement.")

   say_reward("+16% vitesse d'attaque.")

   say_reward("+50 valeur attaque.")

   say_reward("+10% valeur attaque.")

   say_reward("+60 défense.")

   say_reward("+10% résistance chaque race.")

   say_reward("+20% attaque chaque race.")

   say_reward("+10% critique.")

   say("")

   affect.add_collect(apply.MOV_SPEED, 10, 60*60*24*365*60)

   affect.add_collect(apply.ATT_SPEED,5,60*60*24*365*60)

   affect.add_collect(apply.DEF_GRADE_BONUS,60,60*60*24*365*60)

   affect.add_collect(apply.ATT_GRADE_BONUS, 50, 60*60*24*365*60)

   affect.add_collect(apply.MOV_SPEED,11,60*60*24*365*60)

   affect.add_collect(apply.DEF_GRADE_BONUS,10,60*60*24*365*60)

   affect.add_collect(apply.ATT_SPEED,6,60*60*24*365*60)

   affect.add_collect(apply.ATT_GRADE_BONUS,10,60*60*24*365*60)

   affect.add_collect(apply.CRITICAL_PCT,10,60*60*24*365*60)

   affect.add_collect_point(POINT_RESIST_WARRIOR,10,60*60*24*365*60)

   affect.add_collect_point(POINT_RESIST_ASSASSIN,10,60*60*24*365*60)

   affect.add_collect_point(POINT_RESIST_SURA,10,60*60*24*365*60)

   affect.add_collect_point(POINT_RESIST_SHAMAN,10,60*60*24*365*60)

   affect.add_collect_point(POINT_ATTBONUS_WARRIOR,20,60*60*24*365*60)

   affect.add_collect_point(POINT_ATTBONUS_ASSASSIN,20,60*60*24*365*60)

   affect.add_collect_point(POINT_ATTBONUS_SURA,20,60*60*24*365*60)

   affect.add_collect_point(POINT_ATTBONUS_SHAMAN,20,60*60*24*365*60)

   wait()

   say_title("Récompenses biologiste lv105")

   say_reward("Choisis un bonus pvp pour ta récompense. :")

   say("")

   choix=select("6500 PV", "15 demi humain", "125 valeur attaque")

   if choix == 1 then

    affect.add_collect(1, 6500, 60*60*24*365*60)

   elseif choix == 2 then

    affect.add_collect(apply.ATTBONUS_HUMAN, 15, 60*60*24*365*60)

   else

    affect.add_collect(apply.ATT_GRADE_BONUS, 125,60*60*24*365*60)

   end

   pc.setqf("biolofait", 1)

   syschat("Tu as bien reçu tous tes bonus.")

  end

 end

 state finish begin

 end

end

 

 

 

Cependant, avec cette quest, je peux la prendre une fois et les bonus reste indéterminé, sauf que je peux la prendre plusieur fois (supplémentaire), mais une fois s'être téléporté ou déconnecté, les bonus supplémentaires disparaissent.

Comment pourrais-je faire pour qu'on ne puisse cliqué que 1 fois et qu'elle soit au niveau 105 svp?

 

Merci d'avance pour l'aide que vous m'apporterez.

 

Cordialement,

#Saw

  • Love 1
Lien vers le commentaire
Partager sur d’autres sites

12 réponses à cette question

Messages recommandés

  • 0
  • Administrateur

Pour la limitation j'utilise, qui reste identique à ton code et qui fonctionne (j'utilise juste un state en plus)

state start begin
when login or enter or levelup with pc.level >= 5 begin
set_state(COLLECT_MASTER_1_START)
end 
end

 

Ensuite pour que la quête ne recommence plus j'ai fais un state "__COMPLETE__" cependant, je constate que ta quête possède un state 'finish' qui fais la même chose...

 

state __COMPLETE__
end

 

puis à la fin du state principale de ma quête, pour toi lorsqu'il donne les bonus, tu termines la quête par un (ou par finish)

set_state(__COMPLETE__)

 

Cependant j'ignore totalement si l'emplacement du set_state si il à une incidence si il se trouve en début ou en fin de quête.

N'oubli pas reload les quêtes via Putty, et de reboot ton serveur de préférence ;) Pour moi ça reste cohérent (flemme de copier la quête sur notepadd pour les tabs xD)

 

EDIT : Essaye avec un new personnage qui n'a JAMAIS eu la quête aussi ? :)

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Ouais résolu, j'ai rajouté un "and pc.get_level() >= 105" dans mes when, ce qui donne :

 

when login with pc.getqf("biolofait") == 0 and pc.get_level() >= 105 begin

 

et

 

when 20084.chat."Récompenses biologiste lv105" with pc.getqf("biolofait") == 0 and pc.get_level() >= 105 begin

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Bah je vais te donner mon idée !

 

En gros je compte faire une quête bio 99 ( exemple ), dont la recompense donne plusieurs choses a la fois + un choix entre 5 bonus !

En ramassant des info a droites a gauches j'ai pu me faire une idée de tout !

Demain normalement je le créer et je teste cela !

 

Apres dit moi toujours ce que tu as en tête ?

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

      Demande d'aide

    2. 2

      Demande d'aide

    3. 2

      Demande d'aide

    4. 161

      VDI - Server Files 2016 - Team FE

    5. 1

      Problème de modification du coffre de l'apprenti

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