TemplateEvent.jsのセルフ変数について

アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

TemplateEvent.jsのセルフ変数について

投稿記事by にゃたま » 2017年8月14日(月) 11:15

こんにちは。

イベントの自律移動カスタム移動ルート内に
$gameMap._interpreter.pluginCommand('TEセルフ変数の操作', '100 1 1'.split(' '));
のようにプラグインコマンドを呼び出してセルフ変数100を1加算してそれを
$gameMessage.add("\\sv[100]\\|\\^");
として表示させようとしたら0になってしまい加算されないようです。
代入でも試してみたのですがやはり0のままです。
移動ルートではセルフ変数は使用できないのでしょうか?
最後に編集したユーザー にゃたま on 2017年8月15日(火) 11:18 [ 編集 2 回目 ]

アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by トリアコンタン » 2017年8月14日(月) 23:33

こんばんは!
「$gameMap._interpreter.」で外からスクリプトを実行すると、実行中のイベントIDが正しくとれないので、想定通りの結果にならないと思います。

プラグインを修正し、イベントコマンドのスクリプトおよび移動ルートの設定のスクリプトの双方で実行できるようにしました。

コード: 全て選択

this.controlSelfVariable(index, type, operand);


セルフ変数の操作を「移動ルートの設定」からも行えるよう修正(ver1.5.0)
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/TemplateEvent.js
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by にゃたま » 2017年8月15日(火) 00:47

こんばんは

トリアコンタン さんが書きました:プラグインを修正し、イベントコマンドのスクリプトおよび移動ルートの設定のスクリプトの双方で実行できるようにしました。

コード: 全て選択

this.controlSelfVariable(index, type, operand);



素早い対応ありがとうございます。
画像はテンプレートマップ内にあるイベントですがこのように設定して
移動ルート内にて表示を試みましたがやはり0のまま変わらずでした。
イベント内容のほうでは変わっているのですが
移動ルート内に入ると0にリセットされてしまうようです。
画像ではセルフ変数1に1を代入しています。
私のスクリプトの書き方がどこか間違っているのでしょうか?
大変恐れ入りますがお返事お待ちしております。
添付ファイル
スクリーンショット 2017-08-15 0.46.29.png
スクリーンショット 2017-08-15 0.37.16.png
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by トリアコンタン » 2017年8月15日(火) 01:01

セルフ変数の表示はイベントの「文章の表示」を経由しないと正しく表示されません。
$gameMessage.add("\\sv[1]");で表示したい場合は、事前に以下のスクリプトを実行してください。

コード: 全て選択

$gameMessage.setEventId(this._eventId);
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by にゃたま » 2017年8月15日(火) 09:12

トリアコンタン様

トリアコンタン さんが書きました:セルフ変数の表示はイベントの「文章の表示」を経由しないと正しく表示されません。
$gameMessage.add("\\sv[1]");で表示したい場合は、事前に以下のスクリプトを実行してください。

コード: 全て選択

$gameMessage.setEventId(this._eventId);


ありがとうございます!無事Addによるカウントがされることも確認しました。
助かりました。これでうまく開発がすすみそうです。

これにて解決済みとさせていただきます。
ではでは。要件のみですが失礼します!
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by にゃたま » 2017年8月15日(火) 11:17

トリアコンタン様

セルフ変数の件でお願いしたいことがあるのですが
セルフ変数をリセットするような機能があれば嬉しいと思いました。
宝箱に入っているアイテムという設定でセルフ変数を活用していますが
一定時間経過したら宝箱の中身を変動させたく
セルフ変数が一括でリセットできると都合がいいのです。
マニュアルをひととおり見た限りでそのような機能がなかったので
お願いに参じました。
またお手数おかけして申し訳ないのですがよろしくお願いします。
一旦解決済みは取り下げさせていただきます。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by トリアコンタン » 2017年8月15日(火) 20:41

こんばんは!
ご要望の機能について、具体的なやり方を検討してみます。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by にゃたま » 2017年8月15日(火) 23:30

トリアコンタン さんが書きました:こんばんは!
ご要望の機能について、具体的なやり方を検討してみます。


いつもお手数ばかりおかけして申し訳ないのです。
テンプレートプラグインが非常に使いやすいので個人的な期待値も高く
頼ってしまいがちですm(_ _)m
ちょっとした機能で使いやすさ超絶UPします。
是非よろしくお願いします。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by にゃたま » 2017年8月18日(金) 10:24

トリアコンタン様

こんにちは。いつもお世話になっております。

セルフ変数の件でお聞きしたいことができたのですが、
特定のイベントのセルフ変数を外部のイベント等から取得若しくは変更したいのですが
そういったことは可能でしょうか?
例えばイベントAからイベントBのセルフ変数1を変更するといった具合です。
ほかのイベントから操作したい状態に追い込まれたので出来ると非常に助かります。
ID若しくはイベント名で指定できれば嬉しいです。
方法があればやり方を教えていただけないでしょうか?

お忙しいところ恐れ入りますがよろしくお願いします。


追記
セルフスイッチは$gameSelfSwitches.setValue([this._mapId, this._eventId, "A"], true)
このような感じで他のイベントから操作可能だったので同様に出来るかかな、と思いました。

再追記
セルフスイッチのリセットの件はまっつUP様に教えていただいた$dataItems.length - 1まで
ループさせてセルフ変数を一個一個0にする方法でなんとかできました。
でもあれば便利だと思いますので検討していただけると嬉しいです。(後回しでも構いません)
ところで気になりましたがセルフスイッチの初期値ってundefinedなのでしょうか?

再々追記
今回の件と直接の関係はないかもしれませんが
前回の私のトピックでトリアコンタン様の言われた以下の件についてお聞きします。
トリアコンタン さんが書きました:現在の仕様では、子イベントの出現条件は完全に無視され、テンプレートイベントの条件のみが参照されます。
イベントページのチェック処理は、変数やスイッチが変更されたときにマップの全イベントに対して実行されるので、同機能の実装により(仮に機能を使わなくても)全体のパフォーマンスが低下する怖れがあるため実装していません。

子イベントの出現条件を設定できないということですがそれではかわりに子イベントに対して
イベントページ1などに注釈で「TE初期設定」などのタグではじめに一度だけ実行するページを作って
初期値を設定することはできないでしょうか?

親イベントの先頭ページを並列処理にしてその中に「TE固有イベント呼び出し 1」などのタグで
子イベントのページ1を実行し続けることができますが並列処理はイベントの数が増えるといかんせん
処理速度が遅くなる傾向にあるようで実現が難しいです。(特に今回の宝箱での利用は数が多いので…)
なので前述のやり方が処理速度的にも有利で実現もしやすいと思いました。
こちらも検討いただけたら幸いです。色々無理難題言ってすみません。
追記が増えてしまい失礼致しました。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: TemplateEvent.jsのセルフ変数について

投稿記事by トリアコンタン » 2017年8月19日(土) 09:33

おはようございます。

セルフ変数の一括操作コマンド
セルフ変数を外部から操作するスクリプト
を追加しました。

セルフ変数の一括操作のコマンドおよびセルフ変数を外部から操作するスクリプトを追加(ver1.6.0)
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/TemplateEvent.js

また、ご質問の件につきまして、セルフスイッチの初期値はfalse、セルフ変数の初期値は[0]となります。
(内部で保持している値はundefinedですが、取得メソッド内で変換されます)

セルフ変数の初期値をイベントごとに設定したい場合、並列処理の最後で任意のセルフスイッチをONにすれば
負荷はなくなります。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/

“MV:質問” へ戻る