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

Affichage d'une colonne dans player dans une quête.


Nightmaree

Question

Bonjour,

 

J'ai un soucis niveau quête, j'aimerais afficher dans une quête les stats d'un joueur (quête statistique),

J'ai voulu afficher une colonne que j'ai crée (kill) dans player.player.

 

Recherches et tests effectué :

 

J'ai rajouté ça dans questlib :

 

- pc_index_table = {

['kill'] = pc.get_kill,

 

Puis ça dans quest_functions:

 

pc.get_kill

 

Et enfin dans la quête :

 

quest statjoueurr begin

state start begin

when letter begin

send_letter("Info Personnage")

end

when button or info begin

say_title("Statistique joueur")

say("Bonjour".." "..pc.get_name().."!")

say("")

say(" Kill : ".." "..pc.get_kill().."")

end

end

end

 

Résultat des recherches et tests :

 

Et voilà j'ai quoi :

Hidden Content

    Give reaction to this post to see the hidden content.

 

 

 

J'ai essayer plusieurs chose (modifié la quête etc...), mais rien ne change.

Si quelqu'un pourrait m'aider ? Merci d'avance. Happy

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

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

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

18 réponses à cette question

Messages recommandés

  • 0
  • Funkiest

Sauf erreur de ma part, la commande "pc.get_kill" n’existe pas dans les sources... De ce fait, je pense que le mieux serait d'utiliser un when kill et d'isoler la condition de l'empire rouge / bleu / jaune afin de ressortir uniquement le notre de mob tués

 

Il y a une quête ici et même un Killgui :)

Lien vers le commentaire
Partager sur d’autres sites

  • 0

KillGui je l'avais oublié. Merci je vais tester ça..

Pour mon test avec les quêtes je voulais pas afficher le nombre de mob tué mais le nombre de kill en PvP :)

Et c'était uniquement un test j'ai vu qu'on pouvait afficher dans le classement guilde les points, victoires etc... Mais si il faut ajouter la commande "pc.get_kill" dans les sources, tu peux me dire où précisément ( dans quel fichier ) ?

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Funkiest

Visiblement la commande existe déjà dans le questlua_pc

 

Sinon, comme je t'ai dit, tu fais un check si la victime est un rouge / bleu / jaune :

 

       when kill begin
           if npc.is_pc() then
               if npc.empire == 1 then
                   pc.setqf("rouge", pc.getqf("rouge") + 1)
               elseif npc.empire == 2 then
                   pc.setqf("jaune", pc.getqf("jaune") + 1)
               else
                   pc.setqf("bleu", pc.getqf("bleu") + 1)
               end
           else
               pc.setqf("mob", pc.getqf("mob") + 1)
           end
        end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Je voulais juste afficher ce qu'il y avait dans une colonne d'une table et ça dans une quête.

Pas seulement les kills mais mais autre chose, comme les points gagnés en fonction des kills, le rang dans le classement, le nombre de tournois gagné, etc... Un peu comme la quête statistique de Impérial mais je sais pas comment ça fonctionne sur Impérial.

La quête statistique du lien de doberman affiche pas les valeurs exacte que celui qu'il y a dans les tables.. Et le soucis avec ce genre de quête est que si le joueur fait des kills et que la quête fonctionne pas, le nombre de kill sera différent dans le classement PvP et dans la quête.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

tu peux le faire avec un select exemple :

 

mysql_query("select nomcolonne from player.nomdetable where nomdujoueur =' "..pc.get_name().."' ")

 

je fais cela de tête, pour te guider, je pense que tu pourrais trouver des exemples de quête avec mysql_query. N'ayant pas réellement une quête avec l'insertion de tes kills dans la base de donnée, je peux pas trop t'aider avec précision, pour créer la fonction.

 

Je te conseille au passage, de créer une table indépendante de player.player, où tu pourras remplir correctement tes champs via ta quête ( ex: id, nom du joueur, etc, en fonction de l'information que tu souhaites avoir). La table player.player est fragile à modifier comme tu l'as fait. C'est un conseil pas une obligation ^^"

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Enfin c'est pas très dérangeant, les joueurs sont beaucoup plus intéressés par leur image publique que privée

 

J'ai pas compris, tu cherches à créer une colonne dans la table player.player et noter les kills de chaque personnage pour pouvoir les utiliser sur un site ?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Plus simple, sur le site mon classement PvP affiche les kills de chaque personnage, à partir d'une colonne crée (kills) dans la table player.player, je cherche à faire la même chose IG dans une quête si possible.

 

Exemple dans la quête :

Votre rang : 1

Nombre total de Kill : 500

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Plus simple, sur le site mon classement PvP affiche les kills de chaque personnage, à partir d'une colonne crée (kills) dans la table player.player, je cherche à faire la même chose IG dans une quête si possible.

 

Exemple dans la quête :

Votre rang : 1

Nombre total de Kill : 500

 

Ah, ok, j'avais un peu mal compris ce que tu souhaitais. Pour récupérer l'information qu'il y a dans ta colonne, tu peux utiliser mysql_query comme je te l'ai dit avant.

 

Tu réalises ta requête mysql dans une fonction, exemple "function point_kill", et lors de ton affichage de texte, tu vas récupérer l'information de ta colonne, grâce au nom de la fonction.

 

Et aussi je me pose la question, dans ton exemple tu donnes

 

Votre rang : 1 ( c'est la place du joueur dans ton classement?)

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Habituellement, les classements pvp avec rang se font avec des qf pour ne pas surcharger le dédié.

 

Envoie-moi un message privé, je te donnerai ma quête (qui gère aussi 'vous avez fait X kills d'affilée' à partir de 4) + la partie website pour que tu vois à quoi ça ressemble

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Plus simple, sur le site mon classement PvP affiche les kills de chaque personnage, à partir d'une colonne crée (kills) dans la table player.player, je cherche à faire la même chose IG dans une quête si possible.

 

Exemple dans la quête :

Votre rang : 1

Nombre total de Kill : 500

 

Ah, ok, j'avais un peu mal compris ce que tu souhaitais. Pour récupérer l'information qu'il y a dans ta colonne, tu peux utiliser mysql_query comme je te l'ai dit avant.

 

Tu réalises ta requête mysql dans une fonction, exemple "function point_kill", et lors de ton affichage de texte, tu vas récupérer l'information de ta colonne, grâce au nom de la fonction.

 

Et aussi je me pose la question, dans ton exemple tu donnes

 

Votre rang : 1 ( c'est la place du joueur dans ton classement?)

 

J'ai mis rang 1 comme exemple en gros ce que je veux faire comme tu l'as dis plus haut c'est récupérer l'information qu'il y a dans une des colonnes que j'ai crée, puis l'afficher dans une quête tout simplement.

 

Habituellement, les classements pvp avec rang se font avec des qf pour ne pas  surcharger le dédié.

 

Envoie-moi un message privé, je te donnerai ma quête (qui gère aussi 'vous avez fait X kills d'affilée' à partir de 4) + la partie website pour que tu vois à quoi ça ressemble

 

Oui j'ai fais une quête du genre aussi qui compte les kills et gères d'affilée. Et la partie web aussi.

Pour faire simple, comme je l'ai dis à Sanya, je veux récuprer l'information qu'il y a dans une des colonnes que j'ai crée puis l'afficher.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

D'accord, je reste de l'avis de tout le monde en te disant, que cela va faire tu travailles les requêtes, et l'idéal et d'utiliser les setqf et getqf, tu sais donner le bout de ta quête, pour adapter ta demande?

 

Aussi, si tu veux afficher le rang, en fonction du classement de ton site web, cela sera encore plus lourd, car tu aurais deux, voir 3 requêtes sql, ce que je te déconseille encore plus :P

Lien vers le commentaire
Partager sur d’autres sites

  • 0

D'accord, je reste de l'avis de tout le monde en te disant, que cela va faire tu travailles les requêtes, et l'idéal et d'utiliser les setqf et getqf, tu sais donner le bout de ta quête, pour adapter ta demande?

 

Aussi, si tu veux afficher le rang, en fonction du classement de ton site web, cela sera encore plus lourd, car tu aurais deux, voir 3 requêtes sql, ce que je te déconseille encore plus :P

 

 

 

Oui le rang j'allais pas le faire c'est simplement pour vous montrez ce que je voulais.

Enfin bref, je vais essayer une autre méthode et voir si ça fonctionne.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Et bah tu la récupère avec mysql_query :

local recuperer = mysql_query("SELECT etc.")
say(recuperer)

 

Si c'est pas ça je comprends pas du tout ta demande

 

Si c'est ce que je voulais, mais quand j'ai tester ça, rien s'afficher.

Lien vers le commentaire
Partager sur d’autres sites

  • 0

quest test begin

state start begin

when letter begin

send_letter("testmessage")

end

when button or info begin

local s = select ("test", "Retour")

if s == 1 then

say_title("test:")

local recup = mysql_query("SELECT kills from player.player where name='"..pc.get_name().."'")

say("")

say(recup)

say("")

end

end

end

end

 

 

 

 

résultat :

 

Hidden Content

    Give reaction to this post to see the hidden content.

 

 

La quête fonctionne si je met que du texte

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

  • 0
quest test begin
state start begin
	when letter begin
		send_letter("testmessage")
	end
	when button or info begin
		if select("test", "Retour") == 2 then return end
		say_title("test:")
		local recup = mysql_query("SELECT player.kills from player.player where player.name = '"..pc.get_name().."'")
		say(""..recup.."")
	end
end
end

Lien vers le commentaire
Partager sur d’autres sites

  • 0

tu as bien la fonction mysql_query déclaré dans ton questlib, si non, une recherche te donnera directement la fonction

 

Oui la fonction est déclaré, par contre je viens de remarquer un petit soucis sur putty :

 

mysql: ambiguous option '--e=SELECT ...

Lien vers le commentaire
Partager sur d’autres sites

  • 0

           local recup = mysql_query("SELECT player.kills from player.player where player.name = '"..pc.get_name().."'")
           say(""..recup.."")

 

=>

 

           local recup = mysql_query("SELECT player.kills from player.player where player.name = '"..pc.get_name().."'")
           say(recup[1][1])

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

      Demande d'aide

    2. 2

      Demande d'aide

    3. 2

      Demande d'aide

    4. 161

      VDI - Server Files 2016 - Team FE

    5. 1

      Problème de modification du coffre de l'apprenti

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