属性やステートの名称をゲーム中で変更したい

桃色ねこ
記事: 5
登録日時: 2021年5月22日(土) 13:16

属性やステートの名称をゲーム中で変更したい

投稿記事by 桃色ねこ » 2021年5月22日(土) 14:48

例えば、ステータス画面で属性耐性を表示した際に、はじめは「????」表記でも、その攻撃を受けたりイベントが起こったりした後には「火耐性」と表示されると、そういったことをやりたいです。

スクリプトからelementsの名前を変更する方法とか、教えてもらえないでしょうか。

アバター
WTR
記事: 558
登録日時: 2015年12月22日(火) 19:14

Re: 属性やステートの名称をゲーム中で変更したい

投稿記事by WTR » 2021年5月22日(土) 16:42

スクリプトで属性やステートの名称を変更してもセーブされないのでロードすると元に戻ってしまいます。
書き換えるだけなら

コード: 全て選択

//属性
$dataSystem.elements[n] = "ああああ"

//ステート
$dataStates[n].name = "いいいい"

が、書き換えの方法なんかより
桃色ねこ さんが書きました:その攻撃を受けたりイベントが起こったりした後

これをどうやって判定し、記憶しておくつもりなのか そっちのほうが課題じゃないですかね。

個人的にはデータベースの名前を書き換えるんじゃなくて
ステータス画面に描画する際の処理で対応する方がいいんじゃないかと思いますが。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
桃色ねこ
記事: 5
登録日時: 2021年5月22日(土) 13:16

Re: 属性やステートの名称をゲーム中で変更したい

投稿記事by 桃色ねこ » 2021年5月22日(土) 18:39

素早い回答、ありがとうございます。

早速、簡単に試してみましたが、確かにセーブ後の表示が変わったりと悩ましいところです。
とりあえずマップに変数判定を置いて、望んでいたものっぽい挙動はできましたが……。

恐らく、WTRさんが仰るようにステータス画面に描画する際に処理した方がよいのでしょう。
でもなにぶん、こちらは素人でして、またあれこれと試すことになりそうです。

ちなみにステータス画面にはプラグインで、NUUN_StatusScreen.js を使わせてもらっています。
まずはこちらを理解するところから始めるつもりです。
プラグインとか関係なく処理できるのかも知れませんが、細かい手法など教えてくださる方がいるとありがたいです。
アバター
WTR
記事: 558
登録日時: 2015年12月22日(火) 19:14

Re: 属性やステートの名称をゲーム中で変更したい

投稿記事by WTR » 2021年5月22日(土) 20:50

NUUN_StatusScreen.js ちょっとだけ見てみました。
プラグインの ver 2.0.1 だと1528行目に

コード: 全て選択

const name = $dataSystem.elements[elementId];

という記述があります。これがデータベースにある属性の名前を取ってくるところ。
コレを例えば

コード: 全て選択

const name = $gameSwitches.value(100 + elementId) ? $dataSystem.elements[elementId] : "?????";

と書き換えると
スイッチ101番以降 属性の数だけ使って
スイッチ制御で属性名と????? 表記を切り替えることができます。
雑な改修例ですが…
ステート耐性も1570行目に似たような記述がありますね。

アクター毎に表示・非表示を管理したいとなるともう一工夫要りますが
いずれにせよ描画側を弄るならこのあたりかなーと思います。
Twitter、はじめました。
https://twitter.com/wtr_in_reverie/
桃色ねこ
記事: 5
登録日時: 2021年5月22日(土) 13:16

Re: 属性やステートの名称をゲーム中で変更したい

投稿記事by 桃色ねこ » 2021年5月27日(木) 23:25

WTRさん、わざわざありがとうございます。
返信が遅れてしまい申し訳ありません。

おかげで、なんとか目標通りに表現できそうな目途がつきました。
また根気よく続けていこうと思っています。本当にありがとうございました。

“MZ:質問” へ戻る