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

beug bloque exp


mandrilux²
 Share

Question

Bonjour .

j'ai un serveur sous les fichiers 2013 et j'ai un soucis

 

j'ai une quette qui permet de bloquer l'exp , elle fonctionne mais defois un joueur va prendre plein de niveau d'un coup. cela fausse completement le serveur car les joueur en abuse de ce beug pour monté leur niveau

 

je cherche d'ou cela peux venir mais je ne trouve pas .

Link to comment
Share on other sites

  • Answers 4
  • Created
  • Last Reply

Top Posters For This Question

Top Posters For This Question

4 answers to this question

Recommended Posts

  • 0

voila la quest

 

 

uest vide_exp begin
state start begin
	when 50002.use begin			---                                                   l
		say("Gestion de l'expérience.")

		local s=select("Bloquer mon expérience", "Débloquer mon expérience", "Vider mon expérience", "Fermer")

		if s==4 then
			return
		end

		if s==1 then
		---                                                   l

		if pc.getqf("lock_exp") == 1 then
			---                                                   l
			say_reward("Votre expérience est déjà bloqué.")
		else
			---                                                   l
			say("Bonjour, si vous le souhaitez je peux bloquer")
			say("votre expérience, pour pouvoir dropper")
			say("tranquillement.")
			say("Voulez-vous bloquer l'expérience ?")

			local lock=select("Oui" ,"Non")

				say_title(""..mob_name(70025)..":")

				if lock==2 then
					---                                                   l
					say("Revenez plus tard si vous changez d'avis.")
				end

				if lock==1 then
					---                                                   l
					say("Voilà, votre expérience est bloquée !")
					wait()
					pc.setqf("lock_exp", 1)
					pc.setqf("exp_lock", pc.get_exp())
				end
			end
		end

		if s==2 then
		---                                                   l
		say_title(""..mob_name(70025)..":")

		if pc.getqf("lock_exp") == 0 then
			---                                                   l
			say_reward("Votre expérience n'est pas bloqué.")
		else
			---                                                   l
			say("Voulez-vous que je débloque votre expérience ?")

			local unlock=select("Oui","Non")

				if unlock==2 then
					return
				end

				if unlock==1 then
					---                                                   l
					say("Voilà, votre expérience est débloquée.")
					wait()
					pc.setqf("lock_exp", 0)
					pc.setqf("exp_lock", 0)
				end    
			end
		end

		if s==3 then
		---                                                   l
		say_title(""..mob_name(70025)..":")
		say("Etes vous sûr de vouloir vider votre expérience ?")

		local vider=select("Oui" ,"Non")

			if vider==2 then
				return
			end

			if vider==1 then
				pc.give_exp2(-pc.get_exp())
			end
		end
	end

	when kill with pc.getqf("lock_exp") == 1 begin
		pc.give_exp2(-pc.get_exp())
		pc.give_exp2(pc.getqf("exp_lock"))
	end    
end    

Link to comment
Share on other sites

  • 0

Bonsoir,

 

Les joueurs se mettent-ils en groupe pour utiliser le bug ?

 

Celui qui a codé la quête a-t-il réfléchit au fait que le joueur pouvait monter de niveau entre temps ?

when kill with pc.getqf("lock_exp") == 1 begin

      pc.give_exp2(-pc.get_exp())
      pc.give_exp2(pc.getqf("exp_lock"))
end    

 

Ton code marche très bien lorsque les joueurs ne changent pas de niveau :

  • Tu retires l'expérience qu'il possède
  • Tu lui ajoutes celle qu'il avait avant

Sauf que ton code ne sait pas si le joueur monte de niveau. Dans ce cas :

  • Tu enlèves d'abord l'expérience qu'il a (celle qu'il a obtenu après la montée)
  • Tu lui ajoutes celle qu'il avait avant la montée

S'il avait 99% et se retrouve à 0.2%, il y a un problème.. il se retrouvera au niveau suivant avec 99%

 

 

Je vais te proposer une solution.

 

Dans le cas d'une montée de niveau, tu ne peux pas enlever l'expérience du niveau inférieur.

Donc on est coincé..

 

Je te soumet donc cette idée :

  • Si le joueur veut bloquer son expérience, sauvegardes-la dans une variable setqf

Après, soit :

  • Tu vides son expérience à chaque fois qu'il dépasse 80%
  • Quand il débloque, tu lui rends l'expérience sauvegardée

Penses à expliquer le système aux joueurs avant qu'ils acceptent.

 

Soit :

  • Tu fais en sort que l'expérience gagnée soit retirée directement en ajoutant dans le when kill : pc.give_exp2(-pc.get_exp())

Ce qui permet de ne pas montrer que la barre d'expérience se remplit, elle reste toujours à 0.

 

Bonne soirée !

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share



  • Flux d'Activité

    1. 0

      Serveur cheat 2.51

    2. 0

      Partage Atom Protocol Synchronizer 2.65

    3. 5

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    4. 1

      Antares2.to | modern Old-/Middleschool | START 07.10.22 | International Server

    5. 0

      Projet Genesis

    6. 5

      Shiva.international serveur privé metin2 Oldschool Start 16.09.2022

    7. 0

      Metin2 Champions - Accès anticipé

  • Recently Browsing

    • No registered users viewing this page.

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.