RMEx / RME

Extension tool for RPGMaker VXAce
http://rmex.github.io/
MIT License
41 stars 10 forks source link

[Problème inhérent à VX Ace] Manque de flexibilité de la base de données RPG Maker #366

Closed Zer0xxxxx closed 6 years ago

Zer0xxxxx commented 6 years ago

Bonjour ! Cette issue part d'une bonne idée, mais je pense déjà savoir quelle sera la réponse de par le travail qu'elle doit impliquer.

Je trouve regrettable que les noms des objets ainsi que les descriptions d'objets, d'armes, d'armures, etc. manquent tant de flexibilité.

En effet, on ne peut pas y utiliser \V[x] ; \N[x] ; \C[x]... etc. Pour ce qui est de "Commandes" comme les attentes \. et \|, il est compréhensible qu'elles ne soient pas présentes dans la description d'un objet. De même pour \$, par exemple. Pour le reste, c'est très embêtant.

image

Un problème d'héritage dans le RGSS ? :/

Parfois fâcheux... Par exemple, tout bêtement dans le cas où l'on voudrait qu'un objet puisse se renommer (comme c'est le cas dans certains jeux-vidéo où l'on passe de : "?????????" à "Téléphone de Léo" directement ingame, par exemple, après avoir parlé aux bons PNJ. Je pense notamment à Pokémon.)

Ou bien dans le cas où l'on veut faire un jeu en plusieurs langues sans avoir à release une version différente pour chaque.

Je constate que des tentatives de palier ces manques ont déjà été réalisées par la communauté RPG Maker, mais d'une façon plutôt surfacique...

(Du genre : on peut rajouter des couleurs sur les objets et c'est tout) https://www.rpgmakercentral.com/topic/654-see-item-menu-ace/

Je vais continuer de chercher, et ce de manière plus approfondie, pour voir si un script n'existerait pas. Il est vraiment dommage de ne pas pouvoir utiliser ne serait-ce que \V[x] dans ces messages...

Vraiment désolé de vous embêter avec ça : nous avions déjà dit qu'il ne valait mieux pas toucher à ce qui est défini dans l'éditeur RPG Maker VX Ace, et j'en ai bien pris note...

Donc, par exemple, les commandes pourraient se présenter comme : change_item_name(id, String) change_item_description(id, String)

Où la String prendrait en considération \C[], \V[], \N[], voire même \G (ceci dit, il est toujours possible de passer le nom de la monnaie du jeu dans une variable et d'utiliser \V[])...

PS : pour notre plus grand bonheur, il reste possible d'utiliser \V[x] avec la commande de base d'RPG Maker "Proposer un choix". Il est donc éventuellement envisageable de faire un CMS en se basant sur les window comme "Ultime recours utilisant les features de RME"... (C'est une supposition, je n'ai pas encore testé.)

BastienDuplessier commented 6 years ago

En fait c'est plutôt simple. La partie qui change ces caractères ce n'est pas la base de données mais la window directement. Donc, RME ne pourra jamais rien changer par rapport à ça : si tu changes de script de menu, ben la modification de RME partirait avec. La méthode utilisée pour faire cette conversion est dans Window_Base et se nomme convert_escape_characters(text) elle prend un texte en entrée et renvoie le même texte avec les valeurs insérées dedans en retour. Je pense que tu devrais utiliser cette méthode pour faire des modifications dans tes scripts de base. Exemple pour les objets : Dans Window_Base

  #--------------------------------------------------------------------------
  # * Draw Item Name
  #     enabled : Enabled flag. When false, draw semi-transparently.
  #--------------------------------------------------------------------------
  def draw_item_name(item, x, y, enabled = true, width = 172)
    return unless item
    draw_icon(item.icon_index, x, y, enabled)
    change_color(normal_color, enabled)
    # Ici on affiche le nom. Du coup, on place la conversion ici
    text = convert_escape_characters(item.name)
    draw_text(x + 24, y, width, line_height, text)
  end
Zer0xxxxx commented 6 years ago

Oh, donc il existe une méthode pour "échapper" les \V[] \C[] etc. puis faire le nécessaire... Ca a l'air super !

Merci beaucoup. :)