Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'bdd'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Inscription & Connexion
    • Inscription
    • Connexion
  • Espace Communautaire
    • Funky-Emulation
    • Présentations
    • Discussions Générales
    • Bureau de la Communauté
    • Espace Gaming
    • Espace Premium
  • Emulation & Co
    • Réécrire un Partage / Tutoriel
    • Proposer un Partage / Tutoriel
    • La Boite à Idées
  • Emulation de jeux
    • RaiderZ
    • Aura Kingdom
    • Metin2
    • Dofus
    • Minecraft
    • World of Warcraft
    • Aion
    • Habbo
    • Wakfu
    • GTA San Andreas
    • Jeux .IO
    • Divers
  • Espace Divers
    • Logiciels
    • Programmation
    • Administration de Systèmes
    • Arts
    • Discord
    • Mobile
    • Divers
  • Internationnal Forum
    • Community
    • Games Emulation
    • Others
  • Corbeille & Archives
    • Archives (FR...)
    • Archives (INT...)
  • Forum de PassionDev

Rechercher les résultats dans…

Rechercher les résultats qui contiennent…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


Discord


Skype


Biographie


Nationalité


Sexe

1 résultat trouvé

  1. Bonjour/soir à toutes et à tous. Beaucoup se sont certainement demandés à quoi sert exactement la colonne `skill_level` et même plus encore: comment est-ce qu'elle fonctionne ? Je crée ce sujet pour vous l'expliquer. C'est parti ! Un BLOB ? ¿Ma qué? Commençons par la base: Un BLOB qu'est-ce que c'est ? Ça signifie tout bêtement Binary Large OBject, c'est un type de donnée très maniable qui permet de stocker des données en brut (hexadécimal, pour être précis), et ce, en permettant de changer de taille de manière totalement libre. Il existe 4 types de BLOBs: tinyblob blob mediumblob longblob Contrairement aux données de texte (varchar, text, etc) , les BLOBs sont lus en tant que données binaires, et non de Texte, bien que l'éditeur hexadécimal permette d'afficher le dump (on verra ça plus tard) ASCII de ces données. Ok magique, mais comment on voit ces données ? Vous avez deux solutions: Exporter la donnée sous forme de fichier binaire pour la visualiser avec un éditeur Hexadécimal comme HexEdit Lire la donnée directement depuis l'outil de Navicat (ou autre logiciel de gestion s'il le permet) Dans notre cas, on va utiliser Navicat, c'est plus rapide, et plus pratique que d'exporter les données à chaque fois. Surtout qu'en exportant la donnée, on ne pourra pas Copier-Coller les modifications. Alors comment se fait-ce ? (il a dit fesse lol) Dans votre table `player`.`player`, il vous suffit de cliquer sur votre BLOB, puis sur le menu contextuel (la flèche ▼) à côté du bouton "Mémo" comme suit: Puis sélectionner "Hex" comme sur l'image. Une fois fait, une petite fenêtre va apparaître avec tout un tas de zéros incompréhensibles (alors que vous êtes plein de skills...). Et forcément, vous l'aurez compris, le but du tutoriel c'est que vous sortiez d'ici en sachant expliquer comment ça marche ! Bon maintenant qu'on a notre beau panneau Hex et nos données affichées (enfin, avec plein de zéros, "données" hein...), on va pouvoir comprendre comment ça marche; et pour ça je vous ai facilité la tâche, je me suis mis tous les skills en P. J'ai bien dit TOUS les skills, même ceux qui ne sont pas de ma classe ! (je vous préviens, on pourra pas utiliser aura sur une shaman) Du coup, voici à quoi ça ressemble maintenant: Ooook mais j'ai toujours rien compris. Par contre y'a pas que des zéros là ! Bien vu l'aveugle (dit-il en se parlant à lui-même) ! Bon du coup, si vous ne comprenez rien à l'Hexadécimal, je ne vais pas pouvoir vous aider plus que ça, je ne peux pas vous faire un cours d'Hexa donc si vous ne savez pas compter en Hexa... Vous pouvez prendre la porte, sauf si vous estimez comprendre les choses assez vite, vous pourrez continuer le tutoriel. Bon, du coup c'est bien beau tout ça mais ça ne nous fait pas plus comprendre comment ça marche... Eh bien à moi de vous expliquer ça. Un octet correspond à deux zéros: 00. Car en Hexa, on travaille sur 4 bits (base 16, donc forcément). Avoir deux zéros, ça nous donne un octet car 4 bits collés à 4 bits nous donnent 8 bits (quel génie fais-je), et donc 8 bits équivalent à un octet. Ce qu'il faut savoir, c'est que les 6 premiers octets (6 x 2 zéros = 12 premiers zéros) ne sont pas utilisés. D'ailleurs je n'ai pour l'instant pas encore trouvé à quoi ils peuvent bien servir. Si quelqu'un sait, je le rajouterai dans le tutoriel. Voilà, enfin un peu de lourd, on s'faisait chier avec ta théorie là ! Du calme, du calme, j'y viens ! Maintenant qu'on sait tout ça, on tombe sur notre premier code hexadécimal: 0328 0000 Pourquoi j'ai rajouté les 4 zéros ? Car ils concernent le premier skill. Comme c'est un condensé de données, il faut pouvoir différencier les autres skills donc on les sépare avec 2 octets de données chacun. Et à votre avis, on voit combien de fois ce code hexadécimal en tout sur les premières lignes ? 6 fois, comme pour 6 skills. Assez dingue non ? Je trouve aussi, la nature est bien faite, vous ne trouvez pas ? Du coup, voilà pour la séparation des données: En rouge, les 4 octets de séparation: Maintenant qu'on sait comment les skills sont séparés, il faut savoir les différencier ! Eh bien là encore une fois c'est pas plus compliqué, ils sont inscrits dans un ordre précis que vous connaissez peut-être déjà grâce à la SkillTable.txt: Ils sont dans l'ordre ! Les 03 28 que vous voyez correspondent tous à un skill en P (je viendrai plus tard sur pourquoi 03 et 28). Du coup maintenant on sait où sont nos skills, et là on a 3 lignes de skills, mais à quoi correspondent-ils ? En fait, ils sont comme je le disais, dans l'ordre décimal croissant de votre SkillTable, mais aussi dans l'ordre des classes. On aura donc à chaque ligne les sorts d'une classe différente, dans l'ordre qui suit: Guerrier Corps-à-Corps Guerrier Mental Ninja Assassin Ninja Archer Sura Armes Magiques Sura Magie Noire Shaman Dragon Shaman Soin Là on connaît l'ordre, donc sur notre screenshot suivant, on voit les séparations en rouge, ainsi que la ligne du Guerrier Corps-à-Corps en vert: La deuxième ligne commence à partir de l'offset 0x060 et se termine à l'offset 0x07F, la troisième ligne commence à partir de l'offset 0x0BA et se termine à l'offset 0x0D9. /!\ ATTENTION ! Si vous n'avez que 5 skills en G Mental, l'offset ne se terminera pas à 0x07F mais 0x079 /!\ Vient ensuite la séparation des classes de skills. Elles sont toutes séparées par 58 octets ! Pourquoi ? Je vous avoue que j'en ai aucune idée. Je planche encore dessus, je précise que je fais ce tutoriel à partir d'aucune source, seulement des données hexadécimales ! Notre séparation de "classes de skills" ressemble donc à ça: Du coup bingo, on connaît l'ordre des classes, on sait par combien d'octets ils sont séparés, on peut maintenant passer à la suite ! Yes ! J'attends toujours que tu m'expliques pourquoi 03 28, c'est le nouveau numéro de la sécu ? Qu'est-ce qu'on se marre sur ce topic, j'vous jure ! En fait c'est très simple vous allez vite comprendre. 03 et 28 sont séparés pour une bonne raison en fait. Les deux premiers octets correspondent au rang du skill, c'est à dire son grade. Il y a 4 possibilités: 00 = Niveau 1 à 19 01 = M1 à M10 02 = G1 à G10 03 = P "Ah ouais malynx le lynx ! C'est pour ça que tous tes sorts P possèdent 03 en premier !", me direz-vous. Eh bien oui, c'est tout con. Pour ce qui est du deuxième octet, ça correspond en fait au niveau réel du skill. Le niveau qu'on a quand on tape la fameuse commande /setsk 1 40 pour avoir Triple Lacération en P. Bah en fait, si vous regardez bien, convertissez 40 en Hexadécimal et on obtient... 28 ! D'où le 28, et pas niveau 28 ! Car si je le veux en M8, je convertis 27 en Hexadécimal... 1D ! /!\ ATTENTION ENCORE ! Si vous mettez 03 pour P et niveau 27 (1D en Hexa), le serveur ne comprendra pas les données que vous avez, et vous répondra que vous n'avez pas appris le skill /!\ Du coup, si je veux un skill en M8, je vais devoir faire 01 pour rang M, et 1D pour le niveau 27 (M8). On n'aura donc pas 03 28 Mais 01 1D à la place :). É-NO-RME ! Attends attends... Et pour les autres skills ? Commandement, Combo, etc... ?? Je savais que vous alliez poser la question (évidemment c'est moi qui les écris) ! Eh bien en fait ils se situent tout en bas ! Comme dit plus haut, on a Shaman Soin en dernier. On ajoute notre séparateur de 58 octets et on a notre premier skill à 0x2D7: Le commandement ! Pourquoi commandement ? Parce que c'est le prochain skill après le dernier skill du Shaman Soin ! 111 SHAMAN Attaque renforcée 121 SUPPORT Commandement Faites attention par contre, certains skills comme la pêche ne possèdent pas de niveau, de ce fait il y aura des zéro à la place ! 121 SUPPORT Commandement Aptitude à mener vos partenaires. 122 SUPPORT Combo Augmenter une attaque combo. 123 SUPPORT Pêche Capacité à pêcher du poisson. 124 SUPPORT Extraction Capacité à extraire du minerai. 125 SUPPORT Création d objet Créer un objet. 126 SUPPORT Langue Shinsoo Vous comprenez le Shinsoo. 127 SUPPORT Langue Chunjo Vous comprenez le Chunjo. 128 SUPPORT Langue Jinno Vous comprenez le Jinno. Les skills comme la Pêche ne peuvent pas avoir de niveau. Si on a tout en P, on aura donc: Commandement Combo (ici en P, même si c'est inutile d'avoir plus de 2) (Pêche, pas utilisable donc 0) Extraction Création d'Objet Langue Shinsoo Langue Chunjo Langue Jinno Polymorphie Équitation Appel Cheval (spacer) (spacer) (spacer) (spacer) (spacer) Combat Équestre Charge à Cheval Vague de Pouvoir Grêle de Flèches Et là vous avez tout... Ou presque ! On en fait quoi des skills 7 et 8 ? Eh bien je vais vous laisser mettre ça en pratique, qu'est-ce que vous en dites ? Comme ça si vous avez pigé le tutoriel, vous pouvez modifier vos skills depuis la BDD. Ça peut servir selon certains cas, tout comme ça peut ne pas servir. Mais au moins, vous savez comment ça fonctionne et surtout à quoi ça correspond ! Si vous avez tenu jusqu'ici, c'est déjà un bel effort (je vous en parle pas à quel point c'était long d'écrire tout ça), alors ne gâchez pas cet élan et profitez-en pour commencer le "mini TP". Pour la petite partie TP, je vais juste vous donner l'adresse de départ des skills 7 et 8, et à vous d'essayer ! Les premiers skills 7 et 8 se trouvent à l'offset 0x52F et se terminent à l'offset 0x5B9. Trouvez les skills correspondants et rajoutez vos propres skills 7 et 8 ! Voilà, c'est la fin de ce (très) long tutoriel, j'espère que vous aurez compris tout ça, parce que ça fait beaucoup à avaler, comme dans un Bukkake. Mais l'important, c'est de piger des trucs que les gens ne comprennent pas ! Sur ce... À vous de jouer ! Cordialement, Kameyu
×

Information importante

By using this site, you agree to our Conditions d’utilisation.