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

Quête


bd59140

Question

Bonjour cher funk's,

 

Je viens vers vous car j'ai un souci avec une quête (Plutôt 2 en fait).

 

Version des fichiers/ Type d'émulateur : 2016 de Seajin

Domaine (Base de données, Client, Core...) : LUA

Votre niveau (Débutant, Intermédiaire, Avancé..) : debutant

 

Description du problème :

Voilà en fait je veux faire en sorte que mon item donne un bonus pour 1h et qu'il soit cumulable.

La fonction mise est la suivante :  affect.add_collect_point(apply.MOV_SPEED, 10, 60*60*1)

 

Comment reproduire le problème ? : ///

Recherches et tests effectués : bonne question.

 

Screenshot du problème concerné :

La quête en question :

 

191150quest.PNG

 

En postant ma demande d'aide, j'affirme avoir lu et accepté le Règlement de Funky-Emulation.

Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

Messages recommandés

  • 0

normal la fonction est faite uniquement pour un update je te change ca de suite

 

quest carte1 begin
	state start begin
		when 30342.use begin
			say_title("Carte Noir")
			say("Bonjour jeune Cannabien, ")
			say("Je vois que tu es en possession d'une")
			say("carte noir !!! ")
			say("Elle te donne 10% de vitesse de déplacement! ")
			say("Veut tu l'utiliser ?")
			local s = select("Oui","Non")
			if s == 1 then
				if pc.getqf("carte_noir") == 0 then
					affect.add_collect(apply.mov, 10, 60*60*1)
					pc.remove_item(30342, 1)
					pc.setqf("carte_noir", 1)
				elseif pc.getqf("carte_noir") == 1 then
					local name = pc.get_name()
					local id = pc.get_player_id()
					local controle = mysql_query("SELECT * FROM player.affect WHERE affect.dwPID='"..id.." AND bType='1000' AND bApplyOn='19' ")
					if controle == nil or controle[1] == nil then
						local insertion = mysql_query("INSERT INTO player.affect (dwPID, bType, bApplyOn, lApplyValue) VALUES ('"..id.."', '1000', '19', '3600');")
      					pc.remove_item(30342, 1)
					else
						local select_table_affect = mysql_query("SELECT * FROM player.affect WHERE player.dwPID='"..id.."'")
						local bonus = select_table_affect[1][6]
						local ajout_temps = 3600
						local cumul_temps = bonus+ajout_temps
						local maj = mysql_query("UPDATE player.affect SET IDuration='"..cumul_temps.."' WHERE bType='1000' AND bApplyOn='19' ")
						pc.remove_item(30342, 1)
					end
					say("La fonction marche si tu vois ceci")
				end
			elseif s == 2 then
				return
			end
		end
	end
end

 

Modifié par Jinzo
Lien vers le commentaire
Partager sur d’autres sites

  • 0

Probleme:

 

1ere erreur: l'item remove bien et l'effet s'ajoute mes se cumule pas.( Donc item utilisable a l'infini sans ajout effet)

2eme erreur: voir screen:

 

194147affect3.PNG

 

3eme erreur: le temps de l'effet se mes dans applyvalue

Modifié par bd59140
modification
Lien vers le commentaire
Partager sur d’autres sites

  • 0
quest carte1 begin
	state start begin
		when 30342.use begin
			say_title("Carte Noir")
			say("Bonjour jeune Cannabien, ")
			say("Je vois que tu es en possession d'une")
			say("carte noir !!! ")
			say("Elle te donne 10% de vitesse de déplacement! ")
			say("Veut tu l'utiliser ?")
			local s = select("Oui","Non")
			if s == 1 then
				if pc.getqf("carte_noir") == 0 then
					affect.add_collect(apply.mov, 10, 60*60*1)
					pc.remove_item(30342, 1)
					pc.setqf("carte_noir", 1)
				elseif pc.getqf("carte_noir") == 1 then
					local name = pc.get_name()
					local id = pc.get_player_id()
					local controle = mysql_query("SELECT * FROM player.affect WHERE affect.dwPID='"..id.." AND affect.bType='1000' AND affect.bApplyOn='19' ")
					if controle == nil or controle[1] == nil then
						local insertion = mysql_query("INSERT INTO player.affect (dwPID, bType, bApplyOn, lApplyValue, lDuration) VALUES ('"..id.."', '1000', '19', '10', '3600');")
      					pc.remove_item(30342, 1)
					else
						local select_table_affect = mysql_query("SELECT * FROM player.affect WHERE affect.dwPID='"..id.."'")
						local bonus = select_table_affect[1][6]
						local ajout_temps = 3600
						local cumul_temps = bonus+ajout_temps
						local maj = mysql_query("UPDATE player.affect SET lDuration='"..cumul_temps.."' WHERE affect.bType='1000' AND affect.bApplyOn='19' ")
						pc.remove_item(30342, 1)
					end
					say("La fonction marche si tu vois ceci")
				end
			elseif s == 2 then
				return
			end
		end
	end
end

EDIT : petite erreur corrigée de dernière minute

 

EDIT

 

Modifié par Jinzo
Lien vers le commentaire
Partager sur d’autres sites

  • 0

La quete au dessus est un EDIT de tes erreurs

 

quest carte1 begin
	state start begin
		when 30342.use begin
			say_title("Carte Noir")
			say("Bonjour jeune Cannabien, ")
			say("Je vois que tu es en possession d'une")
			say("carte noir !!! ")
			say("Elle te donne 10% de vitesse de déplacement! ")
			say("Veut tu l'utiliser ?")
			local s = select("Oui","Non")
			if s == 1 then
				if pc.getqf("carte_noir") == 0 then
					affect.add_collect(apply.mov, 10, 60*60*1)
					pc.remove_item(30342, 1)
					pc.setqf("carte_noir", 1)
				elseif pc.getqf("carte_noir") == 1 then
					local name = pc.get_name()
					local id = pc.get_player_id()
					local controle = mysql_query("SELECT * FROM player.affect WHERE affect.dwPID='"..id.." AND affect.bType='1000' AND affect.bApplyOn='19' ")
					if controle == nil or controle[1] == nil then
						local insertion = mysql_query("INSERT INTO player.affect (dwPID, bType, bApplyOn, lApplyValue, lDuration) VALUES ('"..id.."', '1000', '19', '10', '3600');")
      					pc.remove_item(30342, 1)
					else
						local select_table_affect = mysql_query("SELECT * FROM player.affect WHERE affect.dwPID='"..id.."'")
						local bonus = select_table_affect[1][6]
						local ajout_temps = 3600
						local cumul_temps = bonus+ajout_temps
						local maj = mysql_query("UPDATE player.affect SET lDuration='"..cumul_temps.."' WHERE affect.bType='1000' AND affect.bApplyOn='19' ")
						pc.remove_item(30342, 1)
					end
					say("La fonction marche si tu vois ceci")
				end
			elseif s == 2 then
				return
			end
		end
	end
end

Avec cette quête tu ne dois pas avoir la durée au mauvais endroit ni l'erreur '1000' .

Modifié par Jinzo
Lien vers le commentaire
Partager sur d’autres sites

  • 0
quest carte1 begin
	state start begin
		when 30342.use begin
			say_title("Carte Noir")
			say("Bonjour jeune Cannabien, ")
			say("Je vois que tu es en possession d'une")
			say("carte noir !!! ")
			say("Elle te donne 10% de vitesse de déplacement! ")
			say("Veut tu l'utiliser ?")
			local s = select("Oui","Non")
			if s == 1 then
				if pc.getqf("carte_noir") == 0 then
					affect.add_collect(apply.mov, 10, 60*60*1)
					pc.remove_item(30342, 1)
					pc.setqf("carte_noir", 1)
				elseif pc.getqf("carte_noir") == 1 then
					local name = pc.get_name()
					local id = pc.get_player_id()
					local controle = mysql_query("SELECT * FROM player.affect WHERE affect.dwPID='"..id.."' AND affect.bType='1000' AND affect.bApplyOn='19' ")
					if controle == nil or controle[1] == nil then
						local insertion = mysql_query("INSERT INTO player.affect (dwPID, bType, bApplyOn, lApplyValue, lDuration) VALUES ('"..id.."', '1000', '19', '10', '3600');")
      					pc.remove_item(30342, 1)
					else
						local select_table_affect = mysql_query("SELECT * FROM player.affect WHERE affect.dwPID='"..id.."'")
						local bonus = select_table_affect[1][6]
						local ajout_temps = 60*60*1
						local cumul_temps = bonus+ajout_temps
						local maj = mysql_query("UPDATE player.affect SET lDuration='"..cumul_temps.."' WHERE affect.bType='1000' AND affect.bApplyOn='19' ")
						pc.remove_item(30342, 1)
					end
					say("La fonction marche si tu vois ceci")
				end
			elseif s == 2 then
				return
			end
		end
	end
end

Fonctionnel a 100% bonne soirée a toi 😃

Quête avec un timer pour n'utiliser l'item qu'une fois par heure .... Non tester mais ca doit fonctionner

quest carte1 begin
	state start begin
		when 30342.use begin
			say_title("Carte Noir")
			say("Bonjour jeune Cannabien, ")
			say("Je vois que tu es en possession d'une")
			say("carte noir !!! ")
			say("Elle te donne 10% de vitesse de déplacement! ")
			say("Veut tu l'utiliser ?")
			local s = select("Oui","Non")
			if s == 1 then
				if pc.getqf("temps_actif") > pc.get_playtime() then
					local temps_actif = pc.getqf("temps_actif") - pc.get_playtime()
					say("Un bonus est déjà activé.")
					say("Merci de patienter un moment. ")
					say("")
					say("Temps restant: "..temps_actif.." minutes.")
					say("")
				else
					pc.setqf("temps_actif", 0)
					affect.add_collect(apply.mov, 10, 60*60*1)
					pc.remove_item(30342, 1)
					pc.setqf("carte_noir", 1)
					pc.setqf("temps_actif", 60 * 1 + pc.get_playtime())
				end
			elseif s == 2 then
				return
			end
		end
	end
end

Vérifie le nom des quetes j'ai modifier sur mon serveur pour pouvoir la tester ... "carte1"

Modifié par Jinzo
Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Développeur
Le 19/11/2018 à 18:38, bd59140 a dit :

J'ai tester de retirer comme tu la dit dans questlua_affect des sources j'ai supprimer les 2 ligne mes test ig et dans la table affect de player toujours non cumulable!!

 

Tu as bien utilisé affect.add plutôt que affect.add_collect ?

Elles ne fonctionnent pas de la même manière. Tu as bien remplacé ton game après avoir sauvegardé et recompilé ?

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.