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

Drop d'item à n'importe quel lvl


Craven

Question

Version des files : 2010

Domaine (Base de données, Core, etc.) : Putty

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

 

 

Bonjour, je suis en ce moment en train de travailler sur un event qui consiste à aller chercher des items pour ensuite ramener ces items à un PNJ, le premier à ramener ces items est le gagnant. Ma question est "comment faire en sorte de droper, par exemple une peau de patte d'ours même étant lvl 200 ?" Le but étant que n'importe qui avec n'importe quel lvl puisse faire cet event sans devoir passer par une mule. On m'a rapidement parlé qu'une quête pouvait faire ça.

 

Merci d'avance !

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le règlement des demandes d'aides.

Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

Messages recommandés

  • 0

sa m’intéresse également si il y a possibilité bien sur , ensuite j'aurai une question pour qu'un item soit dropable partout et sur tout les mobs il n'y a pas un moyen plus simple que de rajouté la ligne dans le mob_drop_item ? car ajoutés des centaines de ligne pour ensuite l'enlevé à la fin de la période de noël ? Merci d'avance de vos réponse .

Seul nous somme faible mais ensemble nous devenons plus fort!
Tu ne m'aime pas tant mieux mais au moins tu m'aide à avancer...

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Voilà, désolé du retard je devais terminer ma quete métier :

 

quest newevent begin
state start begin
	when 20094.chat."Ouverture" with pc.is_gm() and game.get_event_flag("aries") == 0 begin
		setskin(0)
		game.set_event_flag("aries", 1)
		notice_all("L'event NOM_EVENT est ouvert ... ")
	end

	when 20094.chat."Fermeture" with pc.is_gm() and game.get_event_flag("aries") == 1 begin
		setskin(0)
		game.set_event_flag("aries", 0)
		notice_all("L'event NOM_EVENT est a présent fermé. ")
	end

	when kill with game.get_event_flag("aries") == 1 begin
		game.drop_item("ID_ITEM")
	end
end
end

 

S'il vous faut quelque chose de spécial, écrivez à la suite ^^

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

Bah tout d'abord un grand merci à toi c'est super sympathique de ta part .

 

Serai tu retiré le temps d'attente du coffre de noël s'il te plait ? Ps : Résolu j'ai trouvé merci beaucoup :)

Seul nous somme faible mais ensemble nous devenons plus fort!
Tu ne m'aime pas tant mieux mais au moins tu m'aide à avancer...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Merci beaucoup pour cette quête.

Avant d'implanter une quête j'aime toujours la lire pour essayer de la comprendre mais là je ne la comprends pas vraiment, enfin ce que je ne comprends pas en particulier c'est ça:

 

game.drop_item("ID_ITEM")

 

Il faut mettre l'ID de l'item, j'aurais plutôt pensé que la modification aurait été sur le mob en lui même avec toutes les drops qui vont avec pour qu'il n'y ai aucune limite de lvl. J'aimerai beaucoup que tu m'éclair !

 

En tout cas, encore merci !

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

En faite, cette fonction va simplement te faire drop un item lors d'un évènement précis, ici je l'ai introduit par un " game.set_event_flag("aries") ".

Avec le " when kill begin ", tu pourras drop sur tout ce que tu tuera donc tout les mobs, qu'importe le level.

Tu peux toujours restreindre en mettant l'id du monstre : " when ID_MOB.kill begin ".

 

EDIT : cette fonction lache l'item à terre, tu peux utiliser " pc.give_item2("ID_ITEM") pour donner directement l'item au joueur.

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

Merci, je comprends mieux maintenant. Je devrais vraiment penser à me pencher sur le lua, ça me ferait pas de mal.

 

Donc si j'ai bien compris (je préfère être sûr) si je veux mettre cette quête sur plusieurs items je créé par exemple "newevent.quest" et pour que ça agisse sur plusieurs items je mets la quête dedans en rajoutant à chaque fois la ligne "when kill with ..."

 

Par exemple (selon mon raisonnement) ça donne ça:

 

quest newevent begin
   state start begin
       when 20094.chat."Ouverture" with pc.is_gm() and game.get_event_flag("aries") == 0 begin
           setskin(0)
           game.set_event_flag("aries", 1)
           notice_all("L'event NOM_EVENT est ouvert ... ")
       end

       when 20094.chat."Fermeture" with pc.is_gm() and game.get_event_flag("aries") == 1 begin
           setskin(0)
           game.set_event_flag("aries", 0)
           notice_all("L'event NOM_EVENT est a présent fermé. ")
       end

       when kill with game.get_event_flag("aries") == 1 begin
           game.drop_item("30041")
       end
       when kill with game.get_event_flag("aries") == 1 begin
           game.drop_item("50704")
       end
       when kill with game.get_event_flag("aries") == 1 begin
           game.drop_item("30005")
       end
   end
end

 

 

Et je répète cette ligne "when kill with ..." pour chaque item que je veux.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Donc, ça serait bon:

 

quest newevent begin
   state start begin
       when 20008.chat."Ouverture" with pc.is_gm() and game.get_event_flag("aries") == 0 begin
           setskin(0)
           game.set_event_flag("aries", 1)
           notice_all("L'event A la recherche des items perdu ")
		notice_all("est maintenant ouvert !")
       end

       when 20008.chat."Fermeture" with pc.is_gm() and game.get_event_flag("aries") == 1 begin
           setskin(0)
           game.set_event_flag("aries", 0)
           notice_all("L'event A la recherche des items perdu ")
		notice_all("est à présent fermé. ")
       end

       when kill with game.get_event_flag("aries") == 1 begin
           game.drop_item("30041")
		game.drop_item("50704")
		game.drop_item("30005")
		game.drop_item("30010")
		game.drop_item("30003")
		game.drop_item("30072")
		game.drop_item("30015")
		game.drop_item("30016")
		game.drop_item("30086")
		game.drop_item("50109")
		game.drop_item("30057")
		game.drop_item("30076")
		game.drop_item("50077")
		game.drop_item("50079")
		game.drop_item("50070")

	end
   end
end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

J'irais faire un petit tour dessus, il m'a déjà servie il n'y a pas si longtemps que ça mais je ne l'ai pas lu en entier.

 

En tout cas merci beaucoup, je vais aller tester !


L'event est peut-être un petit peu trop facile là ! voilà le résultat en jeu avec une cape map 2 par un lvl 215:

 

Hidden Content

    Give reaction to this post to see the hidden content.

Modifié par Funky Emulation
Core X - External 2 Internal
Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Bah à chaque kill tu reçois quelque chose, puisque tu es au barbare ( masse mob ), bah tu dropera 1 item par mob, si tu en met plusieurs, X item par mob.

Tu peux éventuellement diminuer en faisant ceci :

								local luck = number(1, 2)
							if luck == 2 then
								game.drop_item_with_ownership("ID", NB)

 

Dans ce bout de code, ce aura une chance sur deux de droper un item à ton nom.

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

Admettons que je veuilles avoir une chance sur 10 de droper une molaire d'orc map2

 

Le code deviendrait ça ?

 

 local luck = number(1, 10)
                               if luck == 10 then
                                   game.drop_item_with_ownership("30006", 1)

 

 

J'ai l'impression que ce n'est pas ça mais à vrai dire, je n'ai pas très bien compris ce morceau.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Encore merci pour tes réponses. Juste pour être sûr car je n'ai pas envie d'activer l'event et que les personnes en train de taper drop les items en question à la pelle comme sur la screen, si je mets ça, ça aura l'effet attendu ?

 

 

 when kill with game.get_event_flag("aries") == 1 begin
	local luck = number(1, 30)
	if luck == 30 then
		game.drop_item_with_ownership("30041")
		game.drop_item("30041")
	local luck = number(1, 40)
	if luck == 40 then
		game.drop_item_with_ownership("50704")
		game.drop_item("50704")
	local luck = number(1, 35)
	if luck == 35 then
		game.drop_item_with_ownership("30005")
		game.drop_item("30005")
	local luck = number(1, 60)
	if luck == 60 then
		game.drop_item_with_ownership("30010")
		game.drop_item("30010")
	local luck = number(1, 60)
	if luck == 60 then
		game.drop_item_with_ownership("30003")
		game.drop_item("30003")
	local luck = number(1, 50)
	if luck == 50 then
		game.drop_item_with_ownership("30072")
		game.drop_item("30072")
	local luck = number(1, 70)
	if luck == 70 then
		game.drop_item_with_ownership("30015")
		game.drop_item("30015")
	local luck = number(1, 20)
	if luck == 20 then
		game.drop_item_with_ownership("30016")
		game.drop_item("30016")
	local luck = number(1, 30)
	if luck == 30 then
		game.drop_item_with_ownership("30086")
		game.drop_item("30086")
	local luck = number(1, 100)
	if luck == 100 then
		game.drop_item_with_ownership("50109")
		game.drop_item("50109")
	local luck = number(1, 99)
	if luck == 99 then
		game.drop_item_with_ownership("30057")
		game.drop_item("30057")
	local luck = number(1, 68)
	if luck == 68 then
		game.drop_item_with_ownership("30076")
		game.drop_item("30076")
	local luck = number(1, 86)
	if luck == 86 then
		game.drop_item_with_ownership("50077")
		game.drop_item("50077")
	local luck = number(1, 63)
	if luck == 63 then
		game.drop_item_with_ownership("50079")
		game.drop_item("50079")
	local luck = number(1, 78)
	if luck == 78 then
		game.drop_item_with_ownership("50070")
		game.drop_item("50070")

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Retraité

Non alors pour en mettre plusieurs, je te conseil plutôt de mettre sur 100, ce qui donne :

 

when kill with game.get_event_flag("aries") == 1 begin
local luck = number(1, 100)
if luck == 30 then
	game.drop_item_with_ownership("30041")
elseif luck == 40 then
	game.drop_item_with_ownership("50704")
elseif luck == 35 then
	game.drop_item_with_ownership("30005")
elseif luck == 60 then
	game.drop_item_with_ownership("30010")
elseif luck == 60 then
	game.drop_item_with_ownership("30003")
elseif luck == 50 then
	game.drop_item_with_ownership("30072")
elseif luck == 70 then
	game.drop_item_with_ownership("30015")
elseif luck == 20 then
	game.drop_item_with_ownership("30016")
elseif luck == 30 then
	game.drop_item_with_ownership("30086")
elseif luck == 100 then
	game.drop_item_with_ownership("50109")
elseif luck == 99 then
	game.drop_item_with_ownership("30057")
elseif luck == 68 then
	game.drop_item_with_ownership("30076")
elseif luck == 86 then
	game.drop_item_with_ownership("50077")
elseif luck == 63 then
	game.drop_item_with_ownership("50079")
elseif luck == 78 then
	game.drop_item_with_ownership("50070")
end
end

Et tu met ensuite les valeurs 63, 58 et compagnie.

Ils ne droperont pas tout, vu le nombre de mob et d'objet, ce sera tout à fait convenable.

Je te conseil également de faire un serveur local pour tester.

Ou alors, tu met un " with pc.is_gm() " à ton kill :

 

when kill with pc.is_gm() begin

 

Toi seul, ou du moins les personnes GM pourront essayer.

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

Je penses que je vais attendre d'avoir mon serveur test, malheureusement je suis sous Windows 8 donc VPC ne fonctionne pas, ça va donc devoir attendre pour que je puisses tester ça. Merci encore, à l'occasion je me mettrais au lua.

Merci de ne pas fermer le topic pour l'instant, je posterai un message lorsque j'aurais testé.

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

      Vitesse d'attaque arme à deux main

    2. 12

      Ecart niveau pour dropper entre le mob et le niveau du joueur

    3. 5

      Probleme quête avec les files 40250

    4. 5

      Probleme quête avec les files 40250

    5. 5

      Probleme quête avec les files 40250

    6. 5

      Probleme quête avec les files 40250

    7. 5

      Probleme quête avec les files 40250

    8. 5

      Probleme quête avec les files 40250

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