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

[SOURCE][DB] Suppression Personnage


ASIKOO

Question

  • Administrateur

Bien le bonjour,

 

Compilation OK, Game OK, DB OK, cependant un bug sur les FILES FE 2016 que j'avais remarqué : la suppression de personnage ne se fait pas ! La faute à une requête SQL ! J'ai corrigé l'erreur de syntax du début (un espace en trop)

 

Puis maintenant c'est une autre requête qui viens m'enquiquiner, toujours dans le cadre de la suppression d'un personnage via le client.

 

J'ai donc éditer "ClientManagerPlayer.cpp" des sources DB.

 

"SYSERR: Jan 29 15:23:03 :: ChildLoop: AsyncSQL: query failed: Column 'pid679592668' in 'where clause' (query: SELECT p.id, p.level, p.name FROM player_index AS i, player AS p WHERE pid679592668=679592668 errno: 1054)"

 

SQL : SELECT p.id, p.level, p.name FROM player_index AS i, player AS p WHERE pid%d=%d

 

SI JE FAIS : SELECT p.id, p.level, p.name FROM player_index AS i, player AS p WHERE pid%d=%d AND pid%d=%d

 

ça me donne :

 

SYSERR: Jan 29 15:28:33 :: ChildLoop: AsyncSQL: query failed: Unknown column 'pid679592668' in 'where clause' (query: SELECT p.id, p.account_id, p.level, p.name FROM player_index, player AS p WHERE pid679592668=679592668 AND pid2=6 errno: 1054)

 

J'ai du mal à comprendre le pourquoi du comment :o Pourquoi pid679592668 alors que la même chose après le AND donne pid2=6 qui correspond bien à ce que je souhaite !

 

Merci à vous les pro's des sources :D

Lien vers le commentaire
Partager sur d’autres sites

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

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

9 réponses à cette question

Messages recommandés

  • 0
  • Administrateur

Duplication player OK...

Renommage player_deleted OK...

------------

La première partie que j'avais modifié était celle-ci : LIGNE ~1051 : INSERT INTO player%s_deleted SELECT * FROM player%s WHERE id=%d

que j'ai modifié en : INSERT INTO player_deleted%s SELECT * FROM player%s WHERE id=%d

 

Après ça plus d'erreur, mais une autre requête posait soucis : LIGNE ~1002 : SELECT p.id, p.level, p.name FROM player_index%s AS i, player%s AS p WHERE pid%u=%u AND pid%u=p.id

 

que j'ai re-re-re-re-modifié en : "SELECT p.id, p.level, p.name FROM player_index%s AS i, player%s AS p WHERE pid%u=%u AND pid%d=%d"

 

(Modification de la fin de la requête) et là AUCUNE ERREUR dans le syserr DB mais SYSLOG indique :

 

Jan 29 16:24:00 :: PLAYER_DELETE TRY: asikoo 8 pid3

Jan 29 16:24:00 :: PLAYER_DELETE FAIL NO ROW

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Administrateur

Ok je vais remettre par defaut alors et re-testé je me suis peux être pris la tête pour pas grand chose...

 

EDIT : on est d'accord qu'après avoir dupliqué on vide la table player_deleted ? xD

Lien vers le commentaire
Partager sur d’autres sites

  • 0
  • Administrateur

Ayaaaaaaaah réussi ça venait bien du db:

 

J'ai édité : ClientManagerPlayer.cpp

Ligne 1051

 

Chercher : INSERT INTO player%s_deleted SELECT * FROM player%s WHERE id=%d

Remplacer : INSERT INTO player_deleted%s SELECT * FROM player%s WHERE id=%d

 

DB effectuant une erreur de syntax. player _deleted au lieu de player_deleted et ça FONCTIONNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNE !

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

      problème de connexion à mon serveur local (je suis débutant dans ce genre d'entreprise )

    2. 2

      problème de lancement serveur

    3. 9
    4. 0

      [PVM/PVP] ATLAX2 - EASY PLAY

    5. 2

      problème de lancement serveur

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.