Partagez
Aller en bas
avatar
Kingdommangas
Membre

Nombre de messages : 1192
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
https://www.youtube.com/channel/UCqGFuGrzm7jim1o5QJ4lKvg

Résolu [résolu] Plugin estétique

le Mer 5 Juil 2017 - 14:57
Yahallo,

Cette fois ci j'ai un plugin qui fonctionne bien et auquel je n'ai pas vraiment de problème.
Ce plugin me permet d'afficher 4 variables max dans mon menu, je voudrais juste personnaliser l'emplacement de ces variables.

Idéalement:
-Le nom du Label: centré
-La variable: Centré, sous le nom du label
-Sauter 1 ligne

Si il est impossible de séparer la variable et le nom du label de la même ligne, sauter 1 ligne entre 2 variables.
Visuel moche XD:

Oui je sais le montage paint est just magnifique XD

C'est tout, merci d'avance ^^

Code:
//=============================================================================
// TMPlugin - メニューラベル
// バージョン: 1.1.1
// 最終更新日: 2017/02/07
// 配布元    : http://hikimoki.sakura.ne.jp/
//-----------------------------------------------------------------------------
// Copyright (c) 2016 tomoaky
// Released under the MIT license.
// http://opensource.org/licenses/mit-license.php
//=============================================================================

/*:
 * @plugindesc メニューシーンに変数の値を表示します。
 * 歩数や戦闘回数などを表示することもできます。
 *
 * @author tomoaky (http://hikimoki.sakura.ne.jp/)
 *
 * @param labelAName
 * @desc ラベルAの名前
 * 初期値: ラベルA
 * @default ラベルA
 *
 * @param labelAId
 * @desc ラベルAのゲーム変数番号
 * 初期値: 10( 0 で非表示 / 1 以上で表示)
 * @default 10
 *
 * @param labelAMax
 * @desc ラベルAの最大値
 * 初期値: 9999
 * @default 9999
 *
 * @param labelAFooter
 * @desc ラベルAのフッターテキスト
 * 初期値:
 * @default
 *
 * @param labelBName
 * @desc ラベルBの名前
 * 初期値: ラベルB
 * @default ラベルB
 *
 * @param labelBId
 * @desc ラベルBのゲーム変数番号
 * 初期値: 0( 0 で非表示 / 1 以上で表示)
 * @default 0
 *
 * @param labelBMax
 * @desc ラベルBの最大値
 * 初期値: 9999
 * @default 9999
 *
 * @param labelBFooter
 * @desc ラベルBのフッターテキスト
 * 初期値:
 * @default
 *
 * @param labelCName
 * @desc ラベルCの名前
 * 初期値: ラベルC
 * @default ラベルC
 *
 * @param labelCId
 * @desc ラベルCのゲーム変数番号
 * 初期値: 0( 0 で非表示 / 1 以上で表示)
 * @default 0
 *
 * @param labelCMax
 * @desc ラベルCの最大値
 * 初期値: 9999
 * @default 9999
 *
 * @param labelCFooter
 * @desc ラベルCのフッターテキスト
 * 初期値:
 * @default
 *
 * @param labelDName
 * @desc ラベルDの名前
 * 初期値: ラベルD
 * @default ラベルD
 *
 * @param labelDId
 * @desc ラベルDのゲーム変数番号
 * 初期値: 0( 0 で非表示 / 1 以上で表示)
 * @default 0
 *
 * @param labelDMax
 * @desc ラベルDの最大値
 * 初期値: 9999
 * @default 9999
 *
 * @param labelDFooter
 * @desc ラベルDのフッターテキスト
 * 初期値:
 * @default
 *
 * @param labelNameWidth
 * @desc ラベル名の表示幅
 * 初期値: 128
 * @default 128
 *
 * @param labelValueWidth
 * @desc ラベル値の表示幅
 * 初期値: 72
 * @default 72
 *
 * @param labelNameColorId
 * @desc ラベル名の文字色番号
 * 初期値: 16
 * @default 16
 *
 * @param labelValueColorId
 * @desc ラベル値の文字色番号
 * 初期値: 0
 * @default 0
 *
 * @param labelMaxColorId
 * @desc ラベル値が最大のときの文字色番号
 * 初期値: 2
 * @default 2
 *
 * @param labelFooterColorId
 * @desc フッターの文字色番号
 * 初期値: 0
 * @default 0
 *
 * @param footerSpace
 * @desc フッターとラベル値の間隔
 * 初期値: 0
 * @default 0
 *
 * @param reverseMenuWindow
 * @desc メニューシーンのウィンドウ配置を左右反転
 * 初期値: 0 ( 0 = 無効 / 1 = 有効)
 * @default 0
 *
 * @param menuTextAlign
 * @desc メニューコマンド項目の描画位置
 * 初期値: left ( left / center / right)
 * @default left
 *
 * @help
 * TMPlugin - メニューラベル ver1.1.1

 * 使い方:
 *
 *   このプラグインを導入するとメインメニューの左下にゲーム変数の
 *   値(以下ラベル)を最大で 4 つまで表示することができるようになります。
 *
 *   このプラグインは RPGツクールMV Version 1.3.4 で動作確認をしています。
 *
 *
 * プラグインコマンド:
 *
 *   stopMenuLabel
 *     メニューラベルを無効にします。この設定はセーブデータにも記録され、
 *     startMenuLabel コマンドが実行されるまでラベルが表示されなくなります。
 *
 *   startMenuLabel
 *     無効になっているメニューラベルを有効にします。
 *     ゲーム開始時の状態ではメニューラベルは有効になっています。
 *
 *
 * プラグインパラメータ補足:
 *
 *   labelAId ~ labelDId
 *     この値が 1 以上のときは変数の値が表示され、それ以外の場合は
 *     以下のようなルールで表示される値が変化します。
 *      0 … ラベルの無効化(何も表示しない)
 *     -1 … 歩数
 *     -2 … セーブ回数
 *     -3 … 戦闘回数
 *     -4 … 勝利回数
 *     -5 … 敗北回数
 *
 *   labelAMax ~ labelDMax
 *     ゲーム変数の値がこれらの値以上だった場合、ラベルに表示される値の
 *     文字色番号が labelValueColorId から labelMaxColorId に変化します。
 *     また、ゲーム変数の値が最大値よりも大きい場合は、最大値を表示します。
 *     0 を設定すると上記機能が無効になります。
 *
 *   labelAFooter ~ labelDFooter
 *     ラベル値の後ろに表示する文字列を設定します。
 *     『1234 点』、『12 日目』のような表示にするための機能です、値との間の
 *     スペースは半角スペースなどで調整してください。
 *
 *   labelNameColorId
 *   labelValueColorId
 *   labelMaxColorId
 *   labelFooterColorId
 *     ラベルの各部分ごとの文字色番号を設定します。
 *     番号はイベントコマンド『文章の表示』などで使う制御文字 \C[n] の
 *     n の部分と同じものになります。
 *
 *   footerSpace
 *     ラベル値とフッターの表示位置を所持金ウィンドウとそろえたいときは
 *     このパラメータを調節してください。フッターと通貨単位がともに
 *     全角 1 文字の場合は 6 を設定するとちょうど同じになります。
 */

var Imported = Imported || {};
Imported.TMMenuLabel = true;

var TMPlugin = TMPlugin || {};
TMPlugin.MenuLabel = {};
TMPlugin.MenuLabel.Parameters = PluginManager.parameters('TMMenuLabel');
TMPlugin.MenuLabel.Labels = [];
TMPlugin.MenuLabel.Labels[0] = {name: TMPlugin.MenuLabel.Parameters['labelAName'],
                                id: +(TMPlugin.MenuLabel.Parameters['labelAId'] || 10),
                                max: +(TMPlugin.MenuLabel.Parameters['labelAMax'] || 9999),
                                footer: TMPlugin.MenuLabel.Parameters['labelAFooter']};
TMPlugin.MenuLabel.Labels[1] = {name: TMPlugin.MenuLabel.Parameters['labelBName'],
                                id: +(TMPlugin.MenuLabel.Parameters['labelBId'] || 10),
                                max: +(TMPlugin.MenuLabel.Parameters['labelBMax'] || 9999),
                                footer: TMPlugin.MenuLabel.Parameters['labelBFooter']};
TMPlugin.MenuLabel.Labels[2] = {name: TMPlugin.MenuLabel.Parameters['labelCName'],
                                id: +(TMPlugin.MenuLabel.Parameters['labelCId'] || 10),
                                max: +(TMPlugin.MenuLabel.Parameters['labelCMax'] || 9999),
                                footer: TMPlugin.MenuLabel.Parameters['labelCFooter']};
TMPlugin.MenuLabel.Labels[3] = {name: TMPlugin.MenuLabel.Parameters['labelDName'],
                                id: +(TMPlugin.MenuLabel.Parameters['labelDId'] || 10),
                                max: +(TMPlugin.MenuLabel.Parameters['labelDMax'] || 9999),
                                footer: TMPlugin.MenuLabel.Parameters['labelDFooter']};
TMPlugin.MenuLabel.NameWidth     = +(TMPlugin.MenuLabel.Parameters['labelNameWidth'] || 160);
TMPlugin.MenuLabel.ValueWidth    = +(TMPlugin.MenuLabel.Parameters['labelValueWidth'] || 96);
TMPlugin.MenuLabel.NameColorId   = +(TMPlugin.MenuLabel.Parameters['labelNameColorId'] || 16);
TMPlugin.MenuLabel.ValueColorId  = +(TMPlugin.MenuLabel.Parameters['labelValueColorId'] || 0);
TMPlugin.MenuLabel.MaxColorId    = +(TMPlugin.MenuLabel.Parameters['labelMaxColorId'] || 2);
TMPlugin.MenuLabel.FooterColorId = +(TMPlugin.MenuLabel.Parameters['labelFooterColorId'] || 0);
TMPlugin.MenuLabel.FooterSpace   = +(TMPlugin.MenuLabel.Parameters['footerSpace'] || 0);
TMPlugin.MenuLabel.ReverseMenuWindow = TMPlugin.MenuLabel.Parameters['reverseMenuWindow'] === '1';
TMPlugin.MenuLabel.MenuTextAlign = TMPlugin.MenuLabel.Parameters['menuTextAlign'] || 'left';

(function() {

  //-----------------------------------------------------------------------------
  // Game_System
  //

  Game_System.prototype.isMenuLabelEnabled = function() {
    if (this._menuLabelEnabled === undefined) this._menuLabelEnabled = true;
    return this._menuLabelEnabled;
  };

  Game_System.prototype.setMenuLabel = function(flag) {
    this._menuLabelEnabled = flag;
  };

  //-----------------------------------------------------------------------------
  // Game_Interpreter
  //

  var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  Game_Interpreter.prototype.pluginCommand = function(command, args) {
    _Game_Interpreter_pluginCommand.call(this, command, args);
    if (command === 'startMenuLabel') {
      $gameSystem.setMenuLabel(true);
    } else if (command === 'stopMenuLabel') {
      $gameSystem.setMenuLabel(false);
    }
  };
  
  //-----------------------------------------------------------------------------
  // Window_MenuCommand
  //

  Window_MenuCommand.prototype.itemTextAlign = function() {
    return TMPlugin.MenuLabel.MenuTextAlign;
  };

  //-----------------------------------------------------------------------------
  // Window_MenuLabel
  //

  function Window_MenuLabel() {
    this.initialize.apply(this, arguments);
  }

  Window_MenuLabel.prototype = Object.create(Window_Base.prototype);
  Window_MenuLabel.prototype.constructor = Window_MenuLabel;

  Window_MenuLabel.prototype.initialize = function(x, y) {
    var width = this.windowWidth();
    var height = this.windowHeight();
    Window_Base.prototype.initialize.call(this, x, y, width, height);
    this.refresh();
  };

  Window_MenuLabel.prototype.maxItems = function() {
    var n = 0;
    for (var i = 0; i < 4; i++) {
      if (TMPlugin.MenuLabel.Labels[i].id !== 0) n++;
    }
    return n;
  };

  Window_MenuLabel.prototype.windowWidth = function() {
    return 240;
  };

  Window_MenuLabel.prototype.windowHeight = function() {
    return this.fittingHeight(this.maxItems());
  };

  Window_MenuLabel.prototype.refresh = function() {
    var x = this.textPadding();
    var width = this.contents.width - this.textPadding() * 2;
    var lineHeight = this.lineHeight();
    this.contents.clear();
    var x = this.contents.width - this.textPadding();
    var y = 0;
    for (var i = 0; i < 4; i++) {
      var label = TMPlugin.MenuLabel.Labels[i];
      var value = this.labelValue(label.id);
      if (value != null) {
        this.drawMenuLabel(x, y, label, value);
        y += lineHeight;
      }
    }
  };

  Window_MenuLabel.prototype.labelValue = function(id) {
    if (id > 0) {
      return $gameVariables.value(id);
    } else if (id === -1) {
      return $gameParty.steps();
    } else if (id === -2) {
      return $gameSystem.saveCount();
    } else if (id === -3) {
      return $gameSystem.battleCount();
    } else if (id === -4) {
      return $gameSystem.winCount();
    } else if (id === -5) {
      return $gameSystem.escapeCount();
    }
    return null;
  };

  Window_MenuLabel.prototype.drawMenuLabel = function(x, y, label, value) {
    if (label.footer) {
      var footerWidth = this.textWidth(label.footer);
      x -= footerWidth;
      this.changeTextColor(this.textColor(TMPlugin.MenuLabel.FooterColorId));
      this.drawText(label.footer, x, y, footerWidth);
      x -= TMPlugin.MenuLabel.FooterSpace;
    }
    x -= TMPlugin.MenuLabel.ValueWidth;
    this.changeTextColor(this.textColor(TMPlugin.MenuLabel.ValueColorId));
    if (label.max && value >= label.max) {
      value = label.max;
      this.changeTextColor(this.textColor(TMPlugin.MenuLabel.MaxColorId));
    }
    this.drawText(value, x, y, TMPlugin.MenuLabel.ValueWidth, 'right');
    if (label.name) {
      this.changeTextColor(this.textColor(TMPlugin.MenuLabel.NameColorId));
      this.drawText(label.name, this.textPadding(), y, TMPlugin.MenuLabel.NameWidth);
    }
  };

  //-----------------------------------------------------------------------------
  // Scene_Menu
  //

  var _Scene_Menu_create = Scene_Menu.prototype.create;
  Scene_Menu.prototype.create = function() {
    _Scene_Menu_create.call(this);
    if ($gameSystem.isMenuLabelEnabled()) this.createMenuLabelWindow();
    if (TMPlugin.MenuLabel.ReverseMenuWindow) {
      this._statusWindow.x = 0;
      this._commandWindow.x = this._statusWindow.width;
      this._goldWindow.x = this._commandWindow.x
      if (this._menuLabelWindow) this._menuLabelWindow.x = this._commandWindow.x
    }
  };

  Scene_Menu.prototype.createMenuLabelWindow = function() {
    this._menuLabelWindow = new Window_MenuLabel(0, 0);
    this._menuLabelWindow.y = this._goldWindow.y - this._menuLabelWindow.height;
    this.addWindow(this._menuLabelWindow);
  };

})();


Dernière édition par Kingdommangas le Mer 5 Juil 2017 - 19:40, édité 1 fois
avatar
dricc
Membre

Nombre de messages : 2756
Localisation : Lille
Distinction : Altruiste - Incarnation de la Patience [Mist']
Date d'inscription : 10/08/2009

Résolu Re: [résolu] Plugin estétique

le Mer 5 Juil 2017 - 17:24
Encore un script japonais ? Smile pfouh , ça ne facilite pas la compréhension . Et rpgmaker n'aime pas beaucoup les caracteres bizarres visiblement . Chez moi , il refuse prendre les parametres , je suis obligé de mettre en dur dans le code .
Mais bon , il est bien écris . C'est propre et clair .

Alors voyons voir :
1 - Tripler la taille de la fenetre . facile ,il suffit de multiplier par 3 là :

Code:

  Window_MenuLabel.prototype.windowHeight = function() {
    return this.fittingHeight(this.maxItems() * 3);
  };

2 - on passe 3 lignes à chaque variable
Là encore , j'ajoute un * 3 :

Code:

  Window_MenuLabel.prototype.refresh = function() {
    var x = this.textPadding();
    var width = this.contents.width - this.textPadding() * 2;
    var lineHeight = this.lineHeight();
    this.contents.clear();
    var x = this.contents.width - this.textPadding();
    var y = 0;
    for (var i = 0; i < 4; i++) {
      var label = TMPlugin.MenuLabel.Labels[i];
      var value = this.labelValue(label.id);
      console.log(value);
      if (value != null) {
        this.drawMenuLabel(x, y, label, value);
        y += lineHeight * 3;
      }
    }
  };

3 : Enfin , je modifie la methode qui affiche :

Code:

  Window_MenuLabel.prototype.drawMenuLabel = function(x, y, label, value) {
    if (label.footer) {
      var footerWidth = this.textWidth(label.footer);
      x -= footerWidth;
      this.changeTextColor(this.textColor(TMPlugin.MenuLabel.FooterColorId));
      this.drawText(label.footer, x, y, footerWidth);
      x -= TMPlugin.MenuLabel.FooterSpace;
    }
    x -= TMPlugin.MenuLabel.ValueWidth;
    this.changeTextColor(this.textColor(TMPlugin.MenuLabel.ValueColorId));
    if (label.max && value >= label.max) {
      value = label.max;
      this.changeTextColor(this.textColor(TMPlugin.MenuLabel.MaxColorId));
    }
    this.drawText(value, this.textPadding(), y + this.lineHeight(), TMPlugin.MenuLabel.NameWidth, 'center');
    if (label.name) {
      this.changeTextColor(this.textColor(TMPlugin.MenuLabel.NameColorId));
      this.drawText(label.name, this.textPadding(), y, TMPlugin.MenuLabel.NameWidth, 'center');
    }
  };

Dans le menu standard , ça donne franchement laid ... mais bon , j'ai bien 3 lignes par variables , le label est centré et la valeur aussi .

Note qu'il faut jouer sur la variable "labelNameWidth" pour que ce soit bien centré comme il faut .
avatar
Kingdommangas
Membre

Nombre de messages : 1192
Localisation : Ma tête
Distinction : Débrouillarde notoire é_è [Mist']
Ou celle qui partageait plus vite que son ombre [Gel']
Poisson 2017 [Amal]
Grâce à elle, tout le forum appelle Yamashi "Mamashi" [Yama]
Entraide d'Or
Règne dans l'ombre de la commu'
Youtubeuse beauté reconvertie dans le gaming [Amal']
Date d'inscription : 05/05/2015
https://www.youtube.com/channel/UCqGFuGrzm7jim1o5QJ4lKvg

Résolu Re: [résolu] Plugin estétique

le Mer 5 Juil 2017 - 19:39
Yeah, c'est exactement ce qu'il faut merci bc DRICC.

@DRICC a écrit:Dans le menu standard , ça donne franchement laid ... mais bon
Sans doute mais pas sur le mien de menu.
Menu:
Contenu sponsorisé

Résolu Re: [résolu] Plugin estétique

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum