ページ 1 / 2
マップ表示名に制御文字\n[n]を使いたい(解決済)
Posted: 2016年7月13日(水) 06:32
by U-D
おはようございます。
マップの表示名に「\n[1]の部屋」と入力したらゲーム上で「ハロルドの部屋」と表示されるようにしたいのですが
そのような方法があれば教えていただけないでしょうか?
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 10:02
by 平井銀二
自分の環境だと問題なくできたんですが、
プラグインとかの問題とかではないですかね?
あとは、「表示名」とかではなく「名前」に記入しているとか……。
一度その辺を確認してみると良いかと思います。
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 18:39
by U-D
>平井銀二様
プラグインをすべてOFFにした上で試しましたが、画像のような結果になりました。
私はとあるプラグインAを入れていたのですが、別のプラグインBと一部競合するため
そのプラグインAを外したら今まで「○○の部屋」とアクター名で表示されていたのがおかしくなった、といった感じです。
プラグインAを導入すればプラグインBの有無に関わらずきちんと表示されるのですが
プラグインAとB両方を導入した場合、今度は別の不具合が発生するという状態で、現状手詰まりです…。
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 19:20
by ホノルメイド
横からですが、そのプラグインAとBの名前が分かれば調べてみたいのですが、どんなの入れていますか?
もしかしたら何か分かる人がでてくるかもしれません。
あとデフォルトの状態ですと\n[1]の部屋とまんま出るようですね・・・。
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 19:39
by yamachan
こんばんは!
もともとマップの表示名には制御文字は使えなかった… とおもいます。
何かのプラグインで機能が実現されていたのかもしれませんね。
「マップの表示名に制御文字を使えるようにする」 プラグインを作成したので、もし良かったら使ってみてください。
たった1行のシンプルな記述なので、他との競合も少ないとおもいます
コードはこちら
コード: 全て選択
Window_MapName.prototype.drawText = Window_MapName.prototype.drawTextEx;
テスト用に作成したプラグインファイルはこちら
ではでは。
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 20:14
by U-D
>荒野ほのる様
たしかにその通りですね、プラグインの情報を載せておきます。
プラグインA
ガラス細工の夢幻様 ルビ振り
http://garasuzaikunomugen.web.fc2.com/
プラグインB
Amuseum様
SaveFileEXtras
http://forums.rpgmakerweb.com/index.php ... le-extras/
両プラグインを同時に導入した場合、画像のようにセーブ/ロードで
未使用のファイルの表示がおかしくなってしまいます。
ごく軽微な不具合ですが、プレイヤー目線になった時の違和感が大きいのでなんとかしたいところです。
逆に言えばこの表示さえなんとかできれば全て丸く収まるのですが……。
プラグインAをOFFにすると「○○の部屋」と表示されなくなる代わりにこの部分が正常に描画されます。
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 20:35
by U-D
>yamachan様
ゲーム上では表示されました!ありがとうございます!
ただ上述のプラグインBが「セーブ/ロード画面に先頭アクターのLvや"マップ表示名"を表示する」というプラグインでして、
そちらでは\n[1]の部屋、と表示されたままでした。
完全に私の説明不足でしたね、お手を煩わせてしまい申し訳ありません……。
drawTextをdrawTextExにする事が重要なのは分かりましたので
知識として別の形で有効利用させていただきます。
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 22:23
by やなつき
特定しました。
Rubi_riruをメモ帳か何かで開いてもらって、122行目辺り、
コード: 全て選択
Window_Base.prototype.drawText = function(text, x, y, maxWidth, align) {//再定義
if (text&&typeof text == "string") {
この部分を、
コード: 全て選択
Window_Base.prototype.drawText = function(text, x, y, maxWidth, align) {//再定義
maxWidth = maxWidth || 180;
if (text&&typeof text == "string") {
こう変更してもらえば直ります。
これは、本来Window_BaseのdrawTextはwidthの引数が無くても正常に描画を行ってくれるのですが、
Rubi_riruの方で再定義されているWindow_BaseのdrawTextが、渡されたwidthに依存する処理を行っているからですね。
そういう意味では、Rubi_riruのバグといえるかもしれません。
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 22:27
by yamachan
こんばんは!
マップ移動時に表示されるマップ名ではなかったのですね。
ただプラグインBは Window_SavefileList ベースのようなので、それを対象に変更するか、プラグイン中の drawText を変更してあげると良いかもしれませんね。
プラグインAに関しては、ざっと拝見しただけなので話半分に聞いていただきたいのですが…
他プラグインとの競合をあまり考慮していないコードで、他のプラグインとの組み合わせは今後も苦労されるとおもいます。
個人的には利用はお勧めできないです…
いろいろ大変だとおもいますが頑張ってください。
Re: マップ表示名に制御文字\n[n]を使いたい
Posted: 2016年7月13日(水) 22:40
by ホノルメイド
プラグインBで320行目付近をこうすると出るようです。
コード: 全て選択
// Amuseum new functions start
Window_SavefileList.prototype.drawLocation = function(info, x, y, width) {
if (info.location) {
this.drawTextEx(info.location, x, y, width);
}
};
※改行しています。
drawTextをdrawTextExにするとセーブの所も使えるようです。