Menu

Connexion



Retenir ?

Mot de passe oublié ?

Inscription

Fille Garçon
Gravatar ? (basé sur votre mail)
Eclipso logo
Merry Christmas !
19/11/2018 10:09:58

[RGSS2] Lecture des notes de la base de donées

Hermoni

Entraîneur
Hermoni
  • Messages : 400

[RGSS2] Lecture des notes de la base de donées


mar. 02 sept. 2014 - 20h09

Oy,
J'aurais besoin d'un coup de main pour comprendre quelque chose dans les scripts, en RGSS2 (VX 1er du nom donc).

En fait j'aimerais comprendre comment lire exactement les notes de spell/item/etc via les scripts.
Pas évident à expliquer, mais avec un exemple dans un script qui s'en sert...

http://www.eclipso.fr/bibliotheque.php?page=view&id=21&element=386

Genre dans ce script, ça se sert des notes pour gérer l'ajout de stat sous conditions.
En fait j'aimerais piger comment il lit exactement ça car j'ai absolument rien pigé quand il est écrit des trucs du style :

when /<(?:CRITICAL|crit)[ ](.*):[ ]([\+\-]\d+)>/i
case $1.upcase


Car besoin de me servir de ça pour un script personnel pour que ce soit bien plus simple à gérer.
(c'est juste la lecture (puis écriture) qui me gêne, je n'y pige presque rien)

Donc si quelqu'un peut m'éclairer, car j'ai pas réussi à trouver moi même d'la doc claire pour expliquer (et j'espère avoir réussi à faire comprendre mon soucis^^).
Thanks d'avance.

Joke

Amateur
Joke
  • Messages : 77

[RGSS2] Lecture des notes de la base de donées


jeu. 04 sept. 2014 - 11h20

Ces trucs bizarres sont des expressions régulières (regexp)
C'est avec ça que tu reconnais dans une chaîne de caractère (la note) des motifs comme par exemple ici les balises. (<critical truc: + ou - machin>)

Doc :
http://www.ruby-doc.org/core-2.1.1/Regexp.html


Tu as un script complet qui propose une syntaxe balistique générique (calquée sur XML) pour ajouter les informations que tu veux avec le nom que tu veux dans les notes que tu veux, et les récupérer :

https://github.com/nukiFW/RPGMaker/tree/master/ExtensionNotes

Avec ça tu peux créer des tags avec n'importe quel nom comme :

<agi>90</agi>
<str>8</int>
<int>50</int>
(exemple 1)

Ou encore :

<bonus agi="90" str="8" int="50" />
(exemple 2)

Dans le premier exemple, si tu veux récupérer la valeur "agi", tu fais "lanoteenquestion.tags[:agi].value"
Dans le deuxième exemple, si tu veux récupérer la valeur "agi", tu fais "lanoteenquestion.tags[:bonus].agi"

Avec "lanoteenquestion", l'instance qui possède l'attribut "note", eeeeeeeeeeeet je ne sais pas où tu la trouve, dans l'immédiat.


EDIT: Désolé, c'est pour RMVXAce... J'avais pas vu... ^^" 'Faut voir si on peut le rendre compatible avec VX.


Hermoni

Entraîneur
Hermoni
  • Messages : 400

[RGSS2] Lecture des notes de la base de donées


lun. 08 sept. 2014 - 17h48

Merci quand même, j'ai tenté de piger le truc mais j'avoue ne pas avoir tout pigé.
En fait pour être plus précis, j'arrive pas à piger les moindres "codes" comme dans l'exemple donné qui fait qu'après via un "$1" "$2" ça arrive à extraire les 2 infos (dans l'exemple, la stat et le montant).

Car genre si j'voulais pouvoir traduire un truc comme , ça se traduirait commment en concret ?
C'est ça que j'aimerais piger sur l'écriture (vu que le principe, bah il est facile).

Joke

Amateur
Joke
  • Messages : 77

[RGSS2] Lecture des notes de la base de donées


sam. 04 oct. 2014 - 14h53

Avec le script "ExtensionNotes" que je t'ai donné, tu peux déjà écrire et récupérer ce que tu veux dans les notes, sans scripter tes RegeXP toi-même.

Pour ce qui est de t'expliquer comment écrire tes RegeXP toi-même, je n'ai pas le niveau... mais pour les lire, c'est simple, ça correspond aux parenthèses qui capturent les portions de l'expression.

Si tu prends cet exemple :

/<(.+):\s*(.*)>/


Tu as :

. = tous les caractères (sauf sauts de ligne)
\s = caractère "espace"
+ = rencontrés une fois ou plus
* = rencontrés une fois ou pas du tout

"<" et ">" cherchera les caractères... "<" et ">".
":" cherchera le caractère... ":"

Pour les parenthèses, je t'explique tout de suite après.

Donc typiquement, ça chechera les expressions sous la forme :

<bidule: truc>

Sauf que les parenthèses capturantes vont justement capturer "bidule" (.+) et "truc" (.*). Et les mettre dans les variables $1 et $2.


Au lieu de $1 et $2, tu peux donner un nom à tes captures, en rajoutant "?<lenomquetuveux>" dans les parenthèses, par exemple :

/<(?<bidule>.+):\s*(?<truc>.*)>/

La première capture sera dans la variable "bidule", la seconde sera dans la variable "truc".


Hermoni

Entraîneur
Hermoni
  • Messages : 400

[RGSS2] Lecture des notes de la base de donées


dim. 05 oct. 2014 - 16h36

J'comprends un peu mieux^^ Thanks.

Du coup entre tes infos et l'inspiration d'un autre script j'ai pu faire ce que je voulais avec ces notes^^