Jump to content
×
×
  • Create New...
  • 0

Drop d'item à n'importe quel lvl


Craven
 Share

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.

Link to comment
Share on other sites

  • Answers 33
  • Created
  • Last Reply

Top Posters For This Question

Recommended Posts

  • 0

Merci pour ta réponse toujours aussi rapide. Ça m'embête de te solliciter tant que ça mais pourrais-tu me faire un exemple de quête ? le LUA c'est vraiment pas mon truc quand il s'agit de créer quelque chose, même minime.

Link to comment
Share on other sites

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

Link to comment
Share on other 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...

Link to comment
Share on other 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...

Link to comment
Share on other 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 !

Link to comment
Share on other 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...

Link to comment
Share on other 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.

Link to comment
Share on other 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

Link to comment
Share on other 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:

 

omegaonline201212090054.jpg

Link to comment
Share on other 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...

Link to comment
Share on other 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.

Link to comment
Share on other 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")

Link to comment
Share on other 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...

Link to comment
Share on other 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é.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



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.