Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

[TUTORIEL] [TP2] Le bâton du moddeur - cas pratique n°2 : Patcher un cre, la théorie

Répondre
Avatar du membre
Armand
Adepte de Grondemarteau
Ours des cavernes
Messages : 1141
Enregistré le : lun. 03 déc. 2007, 22:04
Localisation : Dordogne
Statut : Hors ligne

[TUTORIEL] [TP2] Le bâton du moddeur - cas pratique n°2 : Patcher un cre, la théorie

.

Message par Armand »

CAS PRATIQUE N°2 : Patcher un cre, on commence par un peu de théorie



Introduction


On a commencé par une commande facile mais là les choses sérieuses vont démarrer... Pas de panique cependant, je vais tout vous détailler. Les commandes de patch de cre si elles peuvent sembler terriblement absconses ne sont en fait pas beaucoup plus compliquées qu'un script basique quand on prend bien le temps de les expliquer. En fait la manipulation est simple : on va chercher un fichier existant comme on l'a fait dans le tuto sur ADD_CRE_ITEM et on va lui dire "je veux que tu me remplaces telle donnée par une valeur que je t'indiquerai". Pour faire cela, on va déjà reprendre ensemble quelques commandes de tp2.


Les WRITE/OFFSETS et FILES ACTIONS


Comme leur nom l'indique, les WRITE vont "écrire" une nouvelle valeur dans un champ de votre cre (CA, Jet de sauvegarde, force, race, etc...), remplaçant par la même occasion la valeur qui s'y trouve. Évidemment comme toujours avec WeiDU, lors de la désinstallation du mod, votre cre retrouvera sa valeur initiale. En fait il existe 4 types de WRITE :
  • WRITE_BYTE
  • WRITE_SHORT
  • WRITE_LONG
  • WRITE_ASCII
Lors de vos séquences de patchs, il va falloir choisir l'une de ces commandes en fonction de la taille des données que vous voulez patcher. Sachant que toutes les infos dont vous pourrez avoir besoin sont disponibles dans IESDP. C'est pas pour rien qu'on appelle ça "La bible des moddeurs"...


Image
Image

On va aller farfouiller dans un onglet que vous connaissez probablement peu, à savoir ‘Files Formats". Véritable mine d’informations sur les différents types de fichiers que peut contenir le jeu : les sorts, zones, dialogues, effets, objets, etc…
En l’occurrence ce qui nous intéresse ça va être la version 1 car c’est la version qu’utilise Baldur’s gate II.


Image
Image

Voila on y est ! Un petit descriptif de l’en tête serait pas de trop je crois :

Applies to:
BG1, BG1: TotS, BG2, BG2: ToB


Tout simplement les jeux auxquels s’appliquent ces données. Ici il s’agit de toute la saga BG mais attention, ça ne sera pas forcément toujours le cas.


Detailed Description
Overall Structure
  • Header (Les données principales de votre cre, dans 99 % des cas les modifs que vous ferez se passeront dans le « header ».)
  • Known spells section (Les sorts connus par votre cre. Pour cette partie je déconseille les WRITE. Je vous montrerai une manip beaucoup plus simple plus tard au cours de ce tutoriel.)
  • Spell memorization info (Cette section rassemble les infos liées au nombre de sorts que peut mémoriser votre cre et le nombre de sorts déjà mémorisés.)
  • Memorized spells section (Les sorts mémorisés par votre cre. Idem que pour « know spells section », inutile de vous embêter avec les WRITE, j’ai beaucoup mieux.)
  • Effects (Pour modifier les effets liés à votre cre, la manip étant assez longue je vous suggère plutôt de passer par DLTCEP si vous le pouvez.)
  • Items section (Les données liées aux objets. Pour ça on a déjà ADD_CRE_ITEM alors inutile de se prendre la tête.)

Si vous avez un tant soit peu le sens de l’observation vous vous apercevrez qu’il y a trois colonnes qu’on va détailler de suite histoire de préparer le terrain :


Image
Image

Offset : Ah les offsets, ces fameux offsets ! En fait, chaque fichier - ou plutôt chaque type fichier - a une adresse où des données sont ou ne sont pas inscrites. Si vous voulez, les offsets sont des valeurs en hexadécimal dans lesquelles vous pourrez « écrire » ce que vous voulez. Car si les WRITE permettent d’écrire une valeur (qu’elle soit numérique ou pas) les offsets permettent de spécifier où.


Size (data type) : La taille, le type de données. C’est ce qui va nous permettre de déterminer quel type de WRITE il faudra utiliser. J’ai entouré en rouge les trois exemples qui vont nous intéresser.


Description : Des informations sur ce que l’offset peut patcher. Avec les valeurs possibles à inscrire, les éventuelles restrictions, voire impossibilités… L’offset faisant référence à l’animation par exemple est codé en dur et est impatchable.


On va passer à la pratique, mais avant ça reprenons un peu ces WRITE, si on résume ça donne ça (voir screen au dessus) :
  • WRITE_BYTE : Quand la data type est égale à 1.
  • WRITE_SHORT : Quand la data type est égale ou inférieure à 2
  • WRITE_LONG : Quand la data type est égale ou inférieure à 4
  • WRITE_ASCII : Pour tout autre data type, notamment pour tout ce qui est chaîne de caractères, c’est un classique

Maintenant qu'on a vu la théorie passons à la [THREAD=26192]pratique[/THREAD].
http://toutlemondesontrolistes.blogspot ... ation.html
Ancien moddeur pour bg2, critique sur la sphère roliste et gamedesigner en herbe
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Pour les ceusses qui se désolaient, j'ai actualisé les liens des images. ^^

Bonne lecture. ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Répondre

Retourner vers « Guides, tutoriels »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité