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

[WeiDU] STRING_EQUAL_CASE. Ca sert à quoi ?

Regroupe tous les sujets sur les commandes, les fonctions, les routines, les modifications des fichiers systèmes (ids, 2da...)...
Répondre
Avatar du membre
DrAzTiK
Ours des cavernes
Messages : 1109
Enregistré le : ven. 19 sept. 2003, 03:20
Localisation : Bordeaux
Contact :
Statut : Hors ligne

[WeiDU] STRING_EQUAL_CASE. Ca sert à quoi ?

.

Message par DrAzTiK »

Salut :)


J'ai un ancien mod sous la main qui modifie les portraits des pnj. Il utilise toujours ce même bloc pour chaque cre :

Code : Tout sélectionner

//AATAQAH=Aataqah
COPY ~BG2CPM/portraits/creatures/BKgeni1.bmp~  ~portraits~

COPY_EXISTING ~AATAQAH.cre~ ~Override~

  READ_ASCII 0x34 ~smp~ //Small portrait

  PATCH_IF ((~%smp%~ STRING_EQUAL ~~) OR (~%smp%~ STRING_EQUAL_CASE ~none~)) BEGIN
    WRITE_ASCII 0x34 ~BKgeni1~ #8
  END

BUT_ONLY_IF_IT_CHANGES
Je ne comprends pas trop le fonctionnement des 3 lignes suivantes :

1- READ_ASCII 0x34 ~smp~ //Small portrait
2- PATCH_IF ((~%smp%~ STRING_EQUAL ~~) OR (~%smp%~ STRING_EQUAL_CASE ~none~)) BEGIN
3- WRITE_ASCII 0x34 ~BKgeni1~ #8

Je pense que weidu cherche à vérifier s'il n'y a pas déjà un portrait en place mais je vois pas trop comment. Quelle est la différence entre STRING_EQUAL et STRING_EQUAL_CASE ?
La documentation de weidu , c'est du chinois pour moi :gign:
Faites comme moi, jouez FP :cool:

Mon Mod : BuTcHeRY

Ma châine Youtube
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

DrAzTiK a écrit :La documentation de weidu , c'est du chinois pour moi :gign:
C'est dommage de la considérer en bloc comme compliquée parce que dans ce cas précis, elle est plutôt explicite : ;)
String STRING_EQUAL_CASE String : As STRING_EQUAL, but the comparison ignores case. That is, "ANOMEN" and "aNoMeN" are considered equal.
STRING_EQUAL_CASE fait une comparaison de chaines de caractères en ignorant les différences entre minuscules et majuscules, contrairement à STRING_EQUAL, de sorte qu'elle considère que "ANOMEN" et "aNoMeN" sont identiques.

Quant à savoir pourquoi le mod considère que le nom NONE ou none indiqué comme portrait signifie qu'il n'y en a pas, mystère.

Autrement le mod lit le nom de fichier actuellement indiqué pour le portrait du personnage (l'offset 0x34 correspond au portrait de petite taille dans la structure CRE, cf IESDP), le compare à une chaine vide ou à none/NONE/None/etc. et si l'une des deux comparaisons indique qu'il n'y a pas de portrait, elle écrit le nom de fichier que, je suppose, le mod prévoit d'attribuer à la créature. Le #8 à la fin du write précise à WeiDU d'écrire exactement 8 caractères, soit en comblant par des valeurs 0 (valeur de BYTE et non pas le caractère 0) si le nom indiqué en comporte moins, soit en tronquant à 8 si le nom indiqué s'avérait trop long. C'est une précaution pour s'assurer de ne pas déborder sur la suite de la structure à cause d'un mauvais nom. Ce n'est peut-être pas indispensable ici puisque le nom est indiqué directement mais ça peut servir pour de la manipulation via une variable où on ne peut pas présumer qu'elle ne débordera pas.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
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 »

Isaya a écrit :Quant à savoir pourquoi le mod considère que le nom NONE ou none indiqué comme portrait signifie qu'il n'y en a pas, mystère.
J'imagine que c'est un test pour éviter les erreurs de codage dans les créatures vanilla (ce mod est assez vieux). Par exemple, certains champs des variables de dialogue et de scripts dans les créatures ont la valeur "NONE". Peut-être l'auteur a-t-il voulu rajouter ce contrôle pour être certain de pouvoir rajouter son portrait...
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
DrAzTiK
Ours des cavernes
Messages : 1109
Enregistré le : ven. 19 sept. 2003, 03:20
Localisation : Bordeaux
Contact :
Statut : Hors ligne
.

Message par DrAzTiK »

ha merçi, je comprends mieux, c'est ce mot "case" qui me bloquait..

Je vais surement me pencher un peu sur cette documentation weidu quand même car j'ai quelques trucs à modder. @bientôt donc ^^
Faites comme moi, jouez FP :cool:

Mon Mod : BuTcHeRY

Ma châine Youtube
Répondre

Retourner vers « Programmation WeiDU »

Qui est en ligne

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