Jump to content
×
×
  • Create New...
  • 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

  • J'adore 1
Link to comment

12 answers to this question

Recommended Posts

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

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

Link to comment
  • 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 ?

520163BrolyKaiio.jpg

 

Link to comment
Guest
This topic is now closed to further replies.


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.