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

Quête EXP


dragondeau

Question

Version des files : 2012

 

 

Domaine (Base de données, Core, etc.) : Quête

Votre niveau (débutant, intermédiaire, avancé) : Débutant

 

Description du problème :

J'essaye de faire une quête qui donne 2 000 000 000 (ou moins, si c'est trop mais il me semble que ça passe) lorsque le joueur se connecte. Donc, dans la quête qui donne les objets de départ, j'ai rajouté

 

                say_title("Bienvenue "..pc.name.." :")

                say("Voulez-vous être niveau maximum ?")
                local exp = select ("Oui", "Non")
                if exp == 1 then
                    pc.give_exp(200000000)
                else
                    say ("Bon jeu. _Aces")
                end

Le menu pour sélectionner oui ou non est présent. Sauf que, quand je clique sur oui, je n'ai pas l'expérience !

J'ai vu qu'il existait aussi pc.give_exp2(valeur), même résultat. J'ai bien enregistré ma quête et tapé un sh quest.sh dans FreeBSD.

 

Donc si vous voyez le problème,

merci de me l'indiquer ! :angel:

Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

9 réponses à cette question

Messages recommandés

  • 0

Bonjour,

 

C'est un morceau de quête ou la quête entière ?

Car là il n'y a ni queue ni tête ^^

 

Voici le code que je te propose :

quest exp_start begin
state start begin
when login with pc.getqf("exp_start") != 1 begin
pc.setqf("exp_start", 1)
say_title("Bonjour "..pc.get_name().." !")
say("")
say("Voulez-vous commencer l'aventure au niveau maximum ?")
say("")
if select("Oui", "Non") == 1 then
pc.give_exp2(1999999999)
say_title("C'est fait !")
say("")
say("Vous voilà au niveau maximum, bon jeu !")
say("")
else
say_title("Comme vous voulez !")
say("")
say("Vous allez devoir vous surpasser")
say("pour arriver à ce niveau.")
say("")
say("Etes-vous certain de refuser ?")
if select("Bien sûr !", "Plus vraiment..") == 1 then
say_title("C'est parti !")
say("")
say("Vous commencez donc au niveau 1.")
say("Bonne aventure !")
say("")
else
pc.give_exp2(1999999999)
say_title("Sage décision !")
say("")
say("Vous voici maintenant au niveau maximum !")
say("Bonne aventure !")
end
end
end
end
end

 

Le maximum d'expérience donnée est de 2 milliards -1, donc ça ne pouvait pas marcher. Tu as toujours le choix de modifier ton code, ou d'utiliser le mien.

Bonne journée ! :)

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Salut Swice (Swice n'existe pas en dehors de FreeWorld, c'est pas ce que tu disais ? :P ) !

Je viens d'intégrer ta quête et j'ai toujours le même soucis.

 

Voici "ma" quête entière (sans ton intervention):

quest give_basic_weapon begin
    state start begin
        when login begin
            if pc.getqf("basic_weapon") == 0 then
                pc.setqf("basic_weapon", 1)
        --Equipement pour Guerrier
                local arme = 19        --Epée+9
                local arme2 = 3009        --Glaive+9
                local armure = 11209        --Armure du singe+9
                local casque = 12209        --Heaume traditionnel+9
        --Equipement pour Ninja
                
                if pc.job == 1 then
                    arme = 19        --Epée+9
                    arme2 = 1009        --Dague+9
                    armure = 11409    --Costume azur+9
                    casque = 12349    --Capuchon en cuir+9
        --Equipement pour Sura
                elseif pc.job == 2 then
                    arme = 19        --Epée+9
                    arme2 = 0        --Rien
                    armure = 11609    --Armure de réquiem+9
                    casque = 12489    --Heaume sanglant+9
        --Equipement pour Chamane
                elseif pc.job == 3 then
                    arme = 7009        --Eventail+9
                    arme2 = 0        --Rien
                    armure = 11809    --Robe Pourpre+9
                    casque = 12629    --Chapeau de moine+9
                end
                if pc.countitem(arme) == 0 and pc.countitem(arme2) == 0 and pc.countitem(armure) == 0 and pc.countitem(casque) == 0  and pc.weapon != arme then
                    pc.give_gold(1000000000)    --10 000 000 Yangs
                    pc.give_item2(50052, 1)    --Livre cheval de combat
                    pc.give_item2(27003, 200)    --Potion Rouge(G) x200
                    pc.give_item2(27006, 200)    --Potion Bleue(G) x200
                    pc.give_item2(72727,    1)    --Élixir de la lune (P)
                    pc.give_item2(72723,    1)    --Élixir du soleil (P)
                    pc.give_item2(15009, 1)    --Chaussures de cuir+9
                    pc.give_item2(13009, 1)    --Bouclier de bataille+9
                    pc.give_item2(14009, 1)    --Bracelet de bois+9
                    pc.give_item2(16009, 1)    --Collier de bois+9
                    pc.give_item2(17009, 1)    --Boucles oreilles bois+9
                    pc.give_item2(40004, 1)    --Anneau skill P
                    pc.give_item2(arme)        --Arme level 0+9 différente pour chaque race.
                    pc.give_item2(arme2)        --Arme level 0+9 différente pour chaque race.
                    pc.give_item2(armure)    --Armure level 0+9 différente pour chaque race.
                    pc.give_item2(casque)    --Casque level 0+9 différent pour chaque race.
                    pc.set_skill_level(131, 1)
                    repeat
                        horse . advance ()
                    until horse . get_level () >= 11
                    horse.summon()
                    horse.ride()
                end
                local empire={"Shinsoo", "Chunjo", "Jinno"}
                notice_all("Le personnage ".. pc.get_name() .." du royaume "..empire[pc.getempire()].." a été crée.")
                ---                                                   l
                say_title("Bienvenue "..pc.name.." :")
                say("Voulez-vous être niveau maximum ?")
                local exp = select ("Oui", "Non")
                if exp == 1 then
                    pc.give_exp2(1999999999)
                else
                    say ("Bon jeu. _Aces")
                end
            end
        end
    end
end

J'ai introduit ta quête comme ceci :

quest give_basic_weapon begin
    state start begin
        when login begin
            if pc.getqf("basic_weapon") == 0 then
                pc.setqf("basic_weapon", 1)
        --Equipement pour Guerrier
                local arme = 19        --Epée+9
                local arme2 = 3009        --Glaive+9
                local armure = 11209        --Armure du singe+9
                local casque = 12209        --Heaume traditionnel+9
        --Equipement pour Ninja
                
                if pc.job == 1 then
                    arme = 19        --Epée+9
                    arme2 = 1009        --Dague+9
                    armure = 11409    --Costume azur+9
                    casque = 12349    --Capuchon en cuir+9
        --Equipement pour Sura
                elseif pc.job == 2 then
                    arme = 19        --Epée+9
                    arme2 = 0        --Rien
                    armure = 11609    --Armure de réquiem+9
                    casque = 12489    --Heaume sanglant+9
        --Equipement pour Chamane
                elseif pc.job == 3 then
                    arme = 7009        --Eventail+9
                    arme2 = 0        --Rien
                    armure = 11809    --Robe Pourpre+9
                    casque = 12629    --Chapeau de moine+9
                end
                if pc.countitem(arme) == 0 and pc.countitem(arme2) == 0 and pc.countitem(armure) == 0 and pc.countitem(casque) == 0  and pc.weapon != arme then
                    pc.give_gold(1000000000)    --10 000 000 Yangs
                    pc.give_item2(50052, 1)    --Livre cheval de combat
                    pc.give_item2(27003, 200)    --Potion Rouge(G) x200
                    pc.give_item2(27006, 200)    --Potion Bleue(G) x200
                    pc.give_item2(72727,    1)    --Élixir de la lune (P)
                    pc.give_item2(72723,    1)    --Élixir du soleil (P)
                    pc.give_item2(15009, 1)    --Chaussures de cuir+9
                    pc.give_item2(13009, 1)    --Bouclier de bataille+9
                    pc.give_item2(14009, 1)    --Bracelet de bois+9
                    pc.give_item2(16009, 1)    --Collier de bois+9
                    pc.give_item2(17009, 1)    --Boucles oreilles bois+9
                    pc.give_item2(40004, 1)    --Anneau skill P
                    pc.give_item2(arme)        --Arme level 0+9 différente pour chaque race.
                    pc.give_item2(arme2)        --Arme level 0+9 différente pour chaque race.
                    pc.give_item2(armure)    --Armure level 0+9 différente pour chaque race.
                    pc.give_item2(casque)    --Casque level 0+9 différent pour chaque race.
                    pc.set_skill_level(131, 1)
                    repeat 
                        horse . advance () 
                    until horse . get_level () >= 11
                    horse.summon()
                    horse.ride()
                end

                local empire={"Shinsoo", "Chunjo", "Jinno"}
                notice_all("Le personnage ".. pc.get_name() .." du royaume "..empire[pc.getempire()].." a été crée.")
                ---                                                   l
say_title("Bonjour "..pc.get_name().." !")
say("")
say("Voulez-vous commencer l'aventure au niveau maximum ?")
say("")
if select("Oui", "Non") == 1 then
pc.give_exp2(1999999999)
say_title("C'est fait !")
say("")
say("Vous voilà au niveau maximum, bon jeu !")
say("")
else
say_title("Comme vous voulez !")
say("")
say("Vous allez devoir vous surpasser")
say("pour arriver à ce niveau.")
say("")
say("Etes-vous certain de refuser ?")
if select("Bien sûr !", "Plus vraiment..") == 1 then
say_title("C'est parti !")
say("")
say("Vous commencez donc au niveau 1.")
say("Bonne aventure !")
say("")
else
pc.give_exp2(1999999999)
say_title("Sage décision !")
say("")
say("Vous voici maintenant au niveau maximum !")
say("Bonne aventure !")
end
end
            end
        end
    end
end

 

Toujours le même problème ! L'exp ne veut pas être attribué ;( .

 

Cdt,

Dragondeau (AceS)

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

J'ai survolé ton code et avant même de te donner une solution, j'ai vu que tu demandais le choix du level max.

Or je vois mal un joueur refuser cette offre donc à la limite tu rajoutes le give_exp avec tes give_item & co.

 

Ensuite, je te déconseille fortement de donner autant d'exp d'un coup.

Un "end" en trop à la fin.

You can't be immortal,
But you can make people remember
you for thousands of years...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Pour mettre dans le contexte :

C'est un serveur pour une LAN, certains veulent PvP et d'autres découvrir la partie PvE d'où la question :) !

Donc, si je comprends bien,

pc.give_exp2(une valeur plus petite)

pc.give_exp2(une valeur plus petite)

pc.give_exp2(une valeur plus petite)

...

Serait plus approprié ?

Merci pour le END.

Je vais regarder pour faire deux quêtes séparés du coup..

 

PS : J'te pique ta quête Swice!

Lien vers le commentaire
Partager sur d’autres sites

  • 0

C'est pas à cause de ça qu'il reçoit rien ?

 

if pc.countitem(arme) == 0 and pc.countitem(arme2) == 0 and pc.countitem(armure) == 0 and pc.countitem(casque) == 0  and pc.weapon != arme then

 

Sinon :

 

quest give_basic_weapon begin
   state start begin
       when login begin
           if pc.getqf("basic_weapon") == 0 then
               pc.setqf("basic_weapon", 1)
		--Equipement pour Guerrier
               local arme = 19        --Epée+9
               local arme2 = 3009        --Glaive+9
               local armure = 11209        --Armure du singe+9
               local casque = 12209        --Heaume traditionnel+9
		--Equipement pour Ninja  
               if pc.job == 1 then
                   arme = 19        --Epée+9
                   arme2 = 1009        --Dague+9
                   armure = 11409    --Costume azur+9
                   casque = 12349    --Capuchon en cuir+9
		--Equipement pour Sura
               elseif pc.job == 2 then
                   arme = 19        --Epée+9
                   arme2 = 0        --Rien
                   armure = 11609    --Armure de réquiem+9
                   casque = 12489    --Heaume sanglant+9
		--Equipement pour Chamane
               elseif pc.job == 3 then
                   arme = 7009        --Eventail+9
                   arme2 = 0        --Rien
                   armure = 11809    --Robe Pourpre+9
                   casque = 12629    --Chapeau de moine+9
               end
               if pc.countitem(arme) == 0 and pc.countitem(arme2) == 0 and pc.countitem(armure) == 0 and pc.countitem(casque) == 0  and pc.weapon != arme then
                   pc.give_gold(1000000000)    --10 000 000 Yangs
                   pc.give_item2(50052, 1)    --Livre cheval de combat
                   pc.give_item2(27003, 200)    --Potion Rouge(G) x200
                   pc.give_item2(27006, 200)    --Potion Bleue(G) x200
                   pc.give_item2(72727,    1)    --Élixir de la lune (P)
                   pc.give_item2(72723,    1)    --Élixir du soleil (P)
                   pc.give_item2(15009, 1)    --Chaussures de cuir+9
                   pc.give_item2(13009, 1)    --Bouclier de bataille+9
                   pc.give_item2(14009, 1)    --Bracelet de bois+9
                   pc.give_item2(16009, 1)    --Collier de bois+9
                   pc.give_item2(17009, 1)    --Boucles oreilles bois+9
                   pc.give_item2(40004, 1)    --Anneau skill P
                   pc.give_item2(arme)        --Arme level 0+9 différente pour chaque race.
                   pc.give_item2(arme2)        --Arme level 0+9 différente pour chaque race.
                   pc.give_item2(armure)    --Armure level 0+9 différente pour chaque race.
                   pc.give_item2(casque)    --Casque level 0+9 différent pour chaque race.
                   pc.set_skill_level(131, 1)
                   repeat
                       horse . advance ()
                   until horse . get_level () >= 11
                   horse.summon()
                   horse.ride()
               end
               local empire={"Shinsoo", "Chunjo", "Jinno"}
               notice_all("Le personnage ".. pc.get_name() .." du royaume "..empire[pc.getempire()].." a été crée.")
               ---                                                   l
               say_title("Bienvenue "..pc.name.." :")
               say("Voulez-vous être niveau maximum ?")
               local exp = select ("Oui", "Non")
               if exp == 1 then
				repeat
					pc.give_exp2(500000000)
				until pc.get_level() == X -- MODIFIER
               else
                   say ("Bon jeu. _Aces")
               end
		end
       end
   end
end

 

Modifie la ligne tout en bas "A MODIFIER" X = le level max de ton serveur. Si ça donne pas assez vite l'exp, augmente la valeur (j'ai mis 500 000 000)

Lien vers le commentaire
Partager sur d’autres sites

  • 0

J'ai mis la quête de Swice et j'ai 2 soucis :

  1. Il me donne toujours pas mon EXP --' (pc.give_exp2(500000000))
  2. Quand je fais non, et bien, il ne me redonne pas si je suis sur de mon choix.

Le nom de la quest : exp_start.quest, dans le local_list, c'est le même nom.

 

Je ne comprends pas :huh:

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