【解決済み】スクリプトをいくつか教えてください。

アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

【解決済み】スクリプトをいくつか教えてください。

投稿記事by ビービー » 2017年5月28日(日) 16:08

【追記】赤い文字は解決済み
◆イベントコマンド条件分岐のスクリプト
【解決済み】①指定座標に何らかのイベントがあるかどうかの判定

  調べたところ
  $gameMap.events()[id]_pos(x, y)
  というスクリプトで特定のIDのイベントがあるかは調べられるのですが
  イベントIDを指定しない方法があれば教えていただきたいです。

【解決済み】②イベントのメモ欄に特定の記述があるかどうかの判定
  イベントのメモ欄にfireと書かれていたら分岐するという
  条件分岐を作成することは可能でしょうか?

◆スクリプト
【解決済み】③上記①②の条件分岐のスクリプトをif文でも教えていただきたいです


【解決済み】④クリック(タップ)したイベントのセルフスイッチの切り替え
  もしくはそのイベントの実行でも助かります。

【解決済み】⑤指定座標にあるイベントのセルフスイッチの切り替え

【解決済み】⑥アクター1の最大MPを変数nに置き換え

  イベントコマンドの能力値の増減で
   ◆変数の操作:#0010 最大MP += 5
   ◆能力値の増減:ハロルド, 最大MP - 9999
   ◆能力値の増減:ハロルド, 最大MP + {最大MP}
   ◆MPの増減:ハロルド, + 9999
  このようにすればできると思ったんですが
  なぜか一度最大MPが0になると能力値の増減ができなくなるみたいなので
  スクリプトを教えていただけるか、イベントコマンドでの実行方法を教えていただきたいです。

以上6っつのスクリプトを一つでもわかると言う方、教えていただけると助かります。
よろしくお願いします。
最後に編集したユーザー ビービー on 2017年6月05日(月) 21:02 [ 編集 3 回目 ]

------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: スクリプトをいくつか教えてください。

投稿記事by まっつUP » 2017年5月28日(日) 16:34

ビービー様
お世話になります。
まず
⑥アクター1の最大MPを変数nに置き換え
なのですが
これは能力値の増減によりアクターに対する値の加算が
能力の上下限界値に関わらず行われるためです。
したがって、+5ではマイナスの過剰分を埋めるのには到底足りません。

追記:非常に単純に考えた場合の処理はこうでしょうか。
◆変数の操作:#0001 = $gameActors.actor(1).param(1)
◆能力値の増減:ハロルド, 最大MP - {#0001}
◆能力値の増減:ハロルド, 最大MP + 5
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: スクリプトをいくつか教えてください。

投稿記事by まっつUP » 2017年5月28日(日) 16:44

①指定座標に何らかのイベントがあるかどうかの判定
に関してはイベントコマンド「指定位置の情報取得」で可能なのですが
③上記①②の条件分岐のスクリプトをif文でも教えていただきたいです。
ということなのでスクリプトで同じ処理
$gameMap.eventIdXy(x, y) を
比較演算子等使って評価してください。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: スクリプトをいくつか教えてください。

投稿記事by まっつUP » 2017年5月28日(日) 16:56

②イベントのメモ欄に特定の記述があるかどうかの判定
は以下を評価してください。
③は本質的に同じ質問なので同解答です。
$dataMap.events[1].note.match(/<fire>/i)

追記:あくまで例なので実際には正しいイベントIDを入れる必要があります。
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: スクリプトをいくつか教えてください。

投稿記事by まっつUP » 2017年5月28日(日) 17:08

④クリック(タップ)したイベントのセルフスイッチの切り替え と
⑤指定座標にあるイベントのセルフスイッチの切り替え は
以下の参考にしてください。

(ツクマテ内トピック、奏ねこま様のよく分かる解説)
viewtopic.php?f=23&t=3545&p=12033&hilit=%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF#p12033

公式プラグイン「OuterSelfSwitch.js」
RPGで笑顔を・・・

ツイッター(ツクラーの巣窟)(閲覧は自己責任でお願いします)
https://twitter.com/mattuup

github
https://github.com/mattuup/RPGMakerMZ
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

Re: スクリプトをいくつか教えてください。

投稿記事by ビービー » 2017年5月28日(日) 17:56

まっつUPさん

さっそくの回答ありがとうございます。

⑥アクター1の最大MPを変数nに置き換え
なのですが
これは能力値の増減によりアクターに対する値の加算が
能力の上下限界値に関わらず行われるためです。
したがって、+5ではマイナスの過剰分を埋めるのには到底足りません。

追記:非常に単純に考えた場合の処理はこうでしょうか。
◆変数の操作:#0001 = $gameActors.actor(1).param(1)
◆能力値の増減:ハロルド, 最大MP - {#0001}
◆能力値の増減:ハロルド, 最大MP + 5

なるほど現在の最大値を事前に変数に代入しておいてから
最大値分ちょうど減らせば、可能だったんですね。

①指定座標に何らかのイベントがあるかどうかの判定
に関してはイベントコマンド「指定位置の情報取得」で可能なのですが
③上記①②の条件分岐のスクリプトをif文でも教えていただきたいです。
ということなのでスクリプトで同じ処理
$gameMap.eventIdXy(x, y) を
比較演算子等使って評価してください。

指定座標のイベントIDを取得して
”イベントIDが0以上だったらイベントが有る”
という風にすればよかったんですね。

②イベントのメモ欄に特定の記述があるかどうかの判定
は以下を評価してください。
③は本質的に同じ質問なので同解答です。
$dataMap.events[1].note.match(/<fire>/i)

コード: 全て選択

◆指定位置の情報取得:指定座標のイベントID, イベントID, (8,2)
◆条件分岐:指定座標のイベントID ≠ 0
  ◆条件分岐:スクリプト:$dataMap.events[$gameVariables.value(2)].note.match(/<fire>/i)
    ◆文章:なし, ウィンドウ, 下
    :  :fire\V[2]
    ◆
  :それ以外のとき
    ◆文章:なし, ウィンドウ, 下
    :  :non fire\V[2]
    ◆
  :分岐終了
  ◆
:分岐終了
としてみたらうまく動作してくれました。

④クリック(タップ)したイベントのセルフスイッチの切り替え と
⑤指定座標にあるイベントのセルフスイッチの切り替え は
以下の参考にしてください。

(ツクマテ内トピック、奏ねこま様のよく分かる解説)
viewtopic.php?f=23&t=3545&p=12033&hilit=%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF#p12033

公式プラグイン「OuterSelfSwitch.js」

⑤は教えていただいた「指定位置の情報取得」でイベントIDを取得する方法で可能でした。

コード: 全て選択

◆指定位置の情報取得:指定座標のイベントID, イベントID, (8,2)
◆条件分岐:指定座標のイベントID ≠ 0
  ◆スクリプト:key = [2, $gameVariables.value(2), "A"]
  :     :$gameSelfSwitches.setValue(key, true)
  ◆
:分岐終了

④ですがイベントが動いている場合
動き始めた瞬間に移動先のタイルがイベントのいる位置になってしまうため
座標ではなく直接イベントをクリックできないものかと考えたんですが
難しいのでしょうか?
無理であれば⑤で対応します。

①②③⑤⑥は解決済みとさせていただきます。
回答ありがとうございました。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: スクリプトをいくつか教えてください。

投稿記事by トリアコンタン » 2017年6月01日(木) 21:48

こんばんは!

④についてですが、まだ解決されていない場合、以前に作成した「タッチでイベント起動プラグイン」で
対応できるかもしれません。よろしければご検討くださいー!

タッチでイベント起動プラグイン
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/EventStartupTouch.js
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
ビービー
記事: 308
登録日時: 2016年1月12日(火) 18:40

Re: スクリプトをいくつか教えてください。

投稿記事by ビービー » 2017年6月05日(月) 21:00

こんばんは。

「タッチでイベント起動プラグイン」
試させてい頂いたところ、いい感じに動作してくれました!

ありがとうございます。
解決済みとさせていただきます。
------------------------------------------------------
Twitterやってます。
https://twitter.com/BB_ENTER
ブログもやってます。
http://bb-entertainment-blog.blogspot.jp/

“MV:質問” へ戻る