petit souci
Bonjours,

Je rencontre un petit souci ( je sais pas trop comment formulé sa).

En fait je voudrais plus savoir si quelqu'un sais ou sont sauvegardé la banque dans la TDB.

Je m'explique.

Les item il y a pas de souci je sais ou ils sont. Par contre je rencontre un souci au niveau de l'ajout d'onglet dans la banque d'un perso.

( en gros je suis en train de codé une récup auto a partir du LUA est tout fonctionne a peut pres sauf que les onglet de banque sont verouillé IG "normal" donc je ne peut ajouté les items dedant )

Si quelqu'un a une idée ( sa doit bien etre sauvegardé quelques part) le nombre de slot que possede le perso dans la db trinity.

J'espere que coté explications j'ai pas trop été brouillon.

Merci.
Salut !

Je pense que ce que tu cherches se trouve dans la table guild_bank_tab de ta DB. Une table très facile à comprendre :

[guildid] Simplement l'ID de ta guilde.
[TabId] Le numéro de ton onglet, 8 au total, si j'en crois WoWWiki.
[TabName] Le nom de ton onglet.
[TabIcon] L'icône de ton onglet.
[TabText] Le texte qui va onglet.

Pour ce qui est seulement des personnages c'est dans la table : character_inventory dans [slot]. C'est selon le numéro que tu mets qui indique où l'item est 'rangé' (cf. page jointe). Plus précisément pour l'emplacement principal de la banque ça va de 39 à 66 et pour les sacs supplémentaires de 67 à 73.

J'espère t'avoir aidé.
Salut Belitharian

Merci de me répondre. justement le souci n'est pas les banque de guilde mais de la banque perso.

Comme tu a mis j'ai déja inceré l'item suivant la banque avec les sac spécial ( suivant le guid des sac ect....)

le souci vient que les ongelt de banque perso sont verouillé ( achat des onglet IG)

voila ce que me met le TC quant je co le perso IG :

Player::_LoadInventory: player (GUID: 54, name: 'Escariote') has item (GUID: 6962, entry: 39940) which doesnt have a valid bag (Bag GUID: 6839, slot: 0). Possible cheat?

En gros il me signale bien que le sac est pas valide ( donc onglet verouillé).

Sais tu si il y a possibilité ( je pense dans la table characters ou une autres) de forcé le deverouillage de ces onglet de banque perso. Merci en tout cas de te réponse.
Après quelques recherches le message d'erreur proviendrait de la fonction #Player::_LoadInventory(PreparedQueryResult result, uint32 timeDiff) à la ligne 18057 de Player.cpp. Elle vérifie si l'item est ou non dans le sac, dans ton cas elle trouve bien l'objet, donc elle exécute la seconde issue. Là, on retombe dans une condition qui parcourt les sacs existants sauf que ton sac n'existe pas, je ne suis pas sûr que le verrouillage soit la cause mais j'en vois pas d'autre, et comme il n'existe pas il affiche un message d'erreur.

Si j'en viens au fait, il n'y a aucune mention au verrouillage dans le corps de cette fonction. Peut-être que je l'ai mal analysée. Tout ce que je peux te proposer c'est de te pencher sur cette fonction. Je n'ai jamais fait de LUA, je ne pourrais pas être avec toi à 100%.

J'espère quand même que ça t'aideras, tiens moi au courant. Pour moi et ceux que ça intéressent.
Pas de souci merci je te retiendrais bien au courent si j'arrive a trouvé la solution

en tout cas merci beaucou pde t'etre penché sur le probleme.
En fait je suis juste un gros boulet...

L'erreur donné par mon TC etait justifié. j'ai reverifié la DB est effectivement mon perso n'avais pas un seul sac attaché pour allé a la banque...

Un probleme au niveau de mon script que je vais résoudre sous peut ( apres le TC envoie plus la meme erreur il met juste qu'il envoie les item par mail)

erreur actuelle du TC2 : Player::_LoadInventory: player (GUID: 57, name: 'Escariote') has item (GUID: 5071, entry: 41510) which can't be loaded into inventory (Bag GUID: 4910, slot: 11) by reason 40. Item will be sent by mail.

une foit que j'aurais trouvé a quoi correspond la reason 40 je pourré palier a ce souci définitivement.

Merci encore pour votre aide Smile
J'ai l'impression qu'il veut mettre l'item 41510 [Rouleau de tisse-givre] sur le slot 11 qui est l’emplacement de la bague n°1 ?

EDIT 1: Je t'ai joint tous les codes d'erreur que j'ai trouvées :
Reason 40 [EQUIP_ERR_INT_BAG_ERROR] -> Peut-être un mauvais slot ?

EDIT 2: Après avoir regardé un peu le code, le code d'erreur passe au n°40 ici :
else if (invalidBagMap.find(bagGuid) != invalidBagMap.end())
{
     std::map<uint32, Item*>::iterator itr = invalidBagMap.find(bagGuid);
     if (std::find(problematicItems.begin(), problematicItems.end(), itr->second) != problematicItems.end())
              err = EQUIP_ERR_INT_BAG_ERROR;
}
Selon moi l'item et le bag sont trouvés.
Pièce(s) jointe(s)
.txt  ErrCodes.txt (Taille : 4.85 Ko)
Merci beaucoup de ta pascience est de ton aide.

Grace a toi le sujet et résolu

donc en fait ce qu'il se passait c'est qu'il trouve bien les item est le sac ( comme tu l'a dit) mais le sac n'etant pas dans le slot de la banque ( car verouillé) etait parti en mail ( cf erreur 40) ainsi que tout les autres item.

donc pour remedié a sa ( si sa peut interessé d'autres personnes on sais jamais) il faut modifier le playerbyte2 de la DB characters dans la table characters.

Il faut ajouté 65536 par sac de banque ( ce qui deverouille les ongle de banque). donc pour les 7 onglet il faut ajouté 458752 au playerByte2.

Encore merci pour toutes ces info Belitharian.
Ca fait plaisir de voir de l'entraide comme ça ! Merci à Belitharian pour son aide, et à toi aussi, escariote, pour avoir donné ta solution !

Je déplace en #résolu ! Wink

Retourner en haut WoW-Emu