ページ 2 / 3
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月26日(土) 11:40
by にゃたま
トリアコンタン様
こんにちは。いつもお世話になっております。
またお返事が遅れまして申し訳ございません。
セルフ変数の一括操作コマンド及びセルフ変数を外部から操作するスクリプト
を追加いただきありがとうございます。
おかげさまで想定した動作に近づくことができました。
1点お聞きしたいことがあります。
親のテンプレートから生成した子イベントに「レアキノコ」という名称を付けまして
こちらのセルフ変数を外部イベントから操作したく以下のように記述しました。
$gameSelfSwitches.setVariableValue([this._mapId, "レアキノコ", 10], 1);
親テンプレートのほうでイベント内容に追加した注釈に「\TE{ \sv[10] }」を
記載して表示されるかどうかを試みましたが表示されませんでした。
記述が間違っているのでしょうか?
尚、"レアキノコ"部をイベントIDにしたところ正常に表示されることを確認しています。
イベント名で指定はできないのでしょうか?
お手数おかけして申し訳ありませんがご返信いただけましたら幸いです。
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月26日(土) 13:53
by トリアコンタン
こんにちは。
制御文字「\sv[n]」を実装しているのは文章の表示(および文章のスクロール表示)です。
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月26日(土) 15:18
by にゃたま
トリアコンタン様
トリアコンタン さんが書きました:こんにちは。
制御文字「\sv[n]」を実装しているのは文章の表示(および文章のスクロール表示)です。
私の説明不足であったなら申し訳ございません。
画像②親イベント<ページ2>を見てもらうと注釈に\TE( \sv[10] )とありますが
こちらマニュアルをみたところ正式なTemplateEventの機能のようです。
(制御文字「\sv[n]」はこちらの機能から使用している為使えるはずです)
以下マニュアルより引用
コード: 全て選択
「イベント出現条件」で使用する場合
対象ページのイベントコマンドの先頭を「注釈」にして
以下の書式で条件を指定してください。複数指定も可能です。
\TE{条件}
条件はJavaScriptとしてで記述し、制御文字が使用可能です。
指定例:
\TE{\sv[1] >= 3} # セルフ変数[1]が3以上の場合
\TE{\sv[2] === \v[1]} # セルフ変数[2]が変数[1]と等しい場合
もしセルフ変数10がONなら画像②親イベント<ページ2>が表示されるはずです。
恐らくセルフ変数10がONになってないため画像②親イベント<ページ2>が表示されないものと考えられます。
画像③の親イベント<ページ1>から画像①子イベント<ページ1>の「TEセルフ変数の操作 10 0 0」
を実行して初期状態(表示されるかされないか)を設定して②親イベント<ページ2>への表示は
「\TE( \sv[10] )」で判断させます。セルフ変数10は外部イベントに操作させます。
その外部イベントから$gameSelfSwitches.setVariableValue([this._mapId, "レアキノコ", 10], 1);
のようにイベント名で操作できると思っていました。実際はイベントIDで操作する必要がありました。
イベント名で操作したいと考えておりましたが無理でしたら失礼しました。
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月26日(土) 20:33
by トリアコンタン
すみません。
メモ欄に指定する方のTEタグと勘違いしてました。
セルフ変数に文字列が入っている場合は、プラグインの最新版を適用のうえ、以下の記述例に従って条件を記載してください。
セルフ変数[3]が'AAA'と等しい場合
コード: 全て選択
\TE{\sv[3] === 'AAA'}
セルフ変数に文字列が入っている場合でも出現条件の注釈が正しく動作するよう修正(ver1.6.1)
https://raw.githubusercontent.com/triac ... teEvent.js
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月27日(日) 09:25
by にゃたま
トリアコンタン様
こんにちは。本日もお世話になります。
私の伝え方が下手で本当に申し訳ございません。これには弁解の余地もないです。謝罪するしかございません。
セルフ変数の”ある値”に代入した文字列というわけではなく、そこ自体は普通に数値で判定させます。
(文字列で判定させたいこともあると思うので追加頂いたこの機能自体は非常に良い機能だと思います)
以下マニュアルより引用です
コード: 全て選択
外部のイベントのセルフ変数を操作します。
$gameSelfSwitches.setVariableValue([マップID, イベントID, INDEX], 設定値);
私がしたいことは外部イベントの操作で上記マニュアルでいうと「イベントID」になっている
部分をイベントの名前で指定したかったという話になります。
すみません。初めからマニュアルを引用して説明するべきでした。
イベントの指定方法がしやすくなりますし、簡易的な改修で可能ならと思い
ご連絡しましたが難しければ無視していただいて結構です。
何故イベントのIDでなくイベント名で指定したいのかというと
新規マップを作成したときにそこに前のマップのイベントをコピー&ペースト(以下コピペ)すると
イベントのIDは変わってしまうからです。
子イベントは沢山コピペするのでこの機能があると便利かなと思いました。(TemplateEventがフル活用できます)
イベント名で指定できるとマップ内で一意の名前にしないといけませんが指定がしやすくなるのです。
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月27日(日) 11:20
by トリアコンタン
イベント名を指定して何らかの操作したい場合、まず指定したイベント名と一致するイベントIDを取得してから本来の処理を実行すれば、ご要望の機能が実現できるかと思います。
コード: 全て選択
var eventName = 'test';
var event = DataManager.searchDataItem($dataMap.events, 'name', eventName);
if (event) {
$gameSelfSwitches.setVariableValue([this._mapId, event.id, 1], 3);
}
なお、DataManager.searchDataItemはテンプレートイベントで定義した関数なので、同プラグインがなければ動作しません。
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月27日(日) 13:35
by にゃたま
トリアコンタン さんが書きました:イベント名を指定して何らかの操作したい場合、まず指定したイベント名と一致するイベントIDを取得してから本来の処理を実行すれば、ご要望の機能が実現できるかと思います。
コード: 全て選択
var eventName = 'test';
var event = DataManager.searchDataItem($dataMap.events, 'name', eventName);
if (event) {
$gameSelfSwitches.setVariableValue([this._mapId, event.id, 1], 3);
}
なお、DataManager.searchDataItemはテンプレートイベントで定義した関数なので、同プラグインがなければ動作しません。
おお!!このような方法があったとは!!これなら簡単な方法でevent IDを取得でき使い勝手もいいです。
完全無欠に解決したでございます!!
もう少しセルフ変数を色々弄ってみて何も問題なければこのトピックは解決済みとします。
ありがとうございました!!!
こんな単純なことに私の伝え方が悪いせいで余計なお手数かけてしまい頭が上がりません…
それでは要件のみですが失礼します。
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月28日(月) 12:52
by にゃたま
トリアコンタン様
こんにちは。いつもありがとうございます。
セルフ変数の件でまたお聞きしたいことが出来ました。
画像のようにセルフ変数9に(例として)10が代入されている状態で
セルフ変数1にセルフ変数9の値(即ち10)を代入します。
その状態で文章によりセルフ変数を出力してみると
セルフ変数9には10が代入されていますが、
セルフ変数1に代入したはずのセルフ変数の値(即ち10)が
代入されておらず0になっていました。
セルフ変数にセルフ変数を代入することはできないでしょうか?

- スクリーンショット 2017-08-28 12.53.47.png (129.75 KiB) 閲覧された回数 4489 回
追記
スクリプトthis.controlSelfVariable(1, 0, this.getSelfVariable(9), 1);で代入できることを確認しました。
しかしできたらプラグインで代入できると嬉しいところです。よろしくお願いします。
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月28日(月) 21:53
by トリアコンタン
こんばんは!
現状はプラグインコマンド内での\sv[n]の使用はサポートしていません。
時間の空いたときに機能追加を検討してみます。
Re: TemplateEvent.jsのセルフ変数について
Posted: 2017年8月28日(月) 22:06
by にゃたま
トリアコンタン さんが書きました:こんばんは!
現状はプラグインコマンド内での\sv[n]の使用はサポートしていません。
時間の空いたときに機能追加を検討してみます。
了解しました。時間の空いたときで構いません。
お手数おかけしますがよろしくお願いします。