【解決済み】使用したスキルのIDを取得する方法

yukkukomei
記事: 9
登録日時: 2019年3月31日(日) 03:16

【解決済み】使用したスキルのIDを取得する方法

投稿記事by yukkukomei » 2019年3月31日(日) 03:49

こんばんは。
前から、プレイヤーや敵が使用したスキルのIDを取得しようと模索していたのですが
どうも私の力だけでは解決できそうになく質問させていただきました。

viewtopic.php?t=1687
こちらのトピックにプラグインによる解決法、スプリクトによる解決法の2つが提示されていましたが
プラグインを使用し、敵が使用したスキルIDを取得しようとすると
window.isDevToolsOpen is not a function
というエラーが起きてしまいます。

そのため、同トピックに投稿されていたスプリクトの
var skill = $gameParty.inBattle() ? BattleManager._subject.lastBattleSkill() : $gameParty.menuActor().lastMenuSkill();
if (skill) {
$gameVariables.setValue(20,skill.mpCost); //変数20番にセット
}
3行目の.mpcostを.idに変えて試してみましたが今度は
BattleManager._subjectlastBattleSkill is not a function
というエラーになってしまいました。

新規プロジェクトでも発生した現象ですのでプラグインの競合ではないと思います。
プラグイン、スプリクトを使用した際に発生したエラーのコンソール画面を添付いたします。
1つ目の画像がスプリクト使用時、2つ目の画像がプラグイン使用時です。

javaスプリクトについては全くの素人なので、私には何が原因なのか特定することができませんでした。
どうかご存知の方がいらっしゃいましたらご助力いただけると幸いです。

よろしくおねがいいたします。
添付ファイル
Developer.png
Developer.png (31.43 KiB) 閲覧数: 8309 回
Dev.png
Dev.png (31.34 KiB) 閲覧数: 8309 回
最後に編集したユーザー yukkukomei on 2019年4月06日(土) 22:53 [ 編集 1 回目 ]

アバター
マンカインド
記事: 123
登録日時: 2016年6月01日(水) 23:58
お住まい: 電子の海
連絡を取る:

Re: 使用したスキルのIDを取得する方法

投稿記事by マンカインド » 2019年3月31日(日) 09:06

こんにちわ。

とりあえずプラグインの該当エラーのみ修正してみました。
TkoolMV_PluginCommandBook.js
(74.68 KiB) ダウンロード数: 105 回


しかし、ここでエラーがでるということはプラグインコマンド実行でのエラーが発端となっています。
またエラーになりましたらお知らせください。
--------------------------------------------------------------------------------------------------------------
[Twitter] https://twitter.com/mankind_games/
[GitHub] https://github.com/mankindGames/
[Blog] http://mankind-games.blogspot.jp/

--ゲーム作るよりシステム作って満足しちゃう人--
yukkukomei
記事: 9
登録日時: 2019年3月31日(日) 03:16

Re: 使用したスキルのIDを取得する方法

投稿記事by yukkukomei » 2019年3月31日(日) 10:56

返信ありがとうございます。
プラグインを修正していただいた結果エラーで止まることはなくなりましたが
敵の行動、味方の行動1回づつエラーが発生しておりスキルIDは反映されませんでした。

またコンソール画面を添付いたします。
よろしくお願いいたします。
添付ファイル
DeveloperTools.png
アバター
マンカインド
記事: 123
登録日時: 2016年6月01日(水) 23:58
お住まい: 電子の海
連絡を取る:

Re: 使用したスキルのIDを取得する方法

投稿記事by マンカインド » 2019年4月01日(月) 23:44

こんばんわ、コンソール画像の添付ありがとうございます。

こちらの環境だと以下のようにスキルとコモンの設定をして、
バトル中にスキルを使用すると指定した変数にスキルIDが代入されています。
sk_02439.jpg

sk_02438.jpg


そちらではどのようにプラグインコマンドの呼び出しを行っていますでしょうか?
--------------------------------------------------------------------------------------------------------------
[Twitter] https://twitter.com/mankind_games/
[GitHub] https://github.com/mankindGames/
[Blog] http://mankind-games.blogspot.jp/

--ゲーム作るよりシステム作って満足しちゃう人--
yukkukomei
記事: 9
登録日時: 2019年3月31日(日) 03:16

Re: 使用したスキルのIDを取得する方法

投稿記事by yukkukomei » 2019年4月02日(火) 03:17

こんばんは。返信ありがとうございます。
私も同じ方法でプラグインコマンドを呼び出していました。
なのでいくつか検証してみたところ、おそらくですがエラーが出る2つの原因を特定しました。

1つ目はスキルID1や2の攻撃や防御など、コマンドから発動するスキルからコモンイベントを呼び出そうとすると発生しました。
エラーの種類はすべて TypeError: Cannot read property 'id' of null でした。

2つ目はコモンイベントを設定したスキルを敵が使用するとスキルIDに関わらず発生しました。
エラーの種類はすべて TypeError: BattleManaer._subject.lastBattleSkill is not a function でした。

私はスキルID1の攻撃スキルにコモンイベントを設定していた為2つのエラーが同時に表示されたようです。

そちらの環境でも再現できますでしょうか?
改めてよろしくお願いいたします。
添付ファイル
Error2.png
Error1.png
アバター
マンカインド
記事: 123
登録日時: 2016年6月01日(水) 23:58
お住まい: 電子の海
連絡を取る:

Re: 使用したスキルのIDを取得する方法

投稿記事by マンカインド » 2019年4月05日(金) 22:27

こんばんわ。
こちらでも同様の現象が発生するか確認してみました。

1つ目については確認できませんでしたが、2つ目については確認できました。
プラグインの仕様として、このプラグインコマンドは味方が使用したスキルでのみ正しく取得することができます。
(元のスレッドに「プレイヤーが使ったスキルID」という前提がありましたね)

なので、取り急ぎエネミーがスキルを使用した際にも変数にスキルIDが代入されるよう修正してみました。
TkoolMV_PluginCommandBook.js
(75.45 KiB) ダウンロード数: 43 回
--------------------------------------------------------------------------------------------------------------
[Twitter] https://twitter.com/mankind_games/
[GitHub] https://github.com/mankindGames/
[Blog] http://mankind-games.blogspot.jp/

--ゲーム作るよりシステム作って満足しちゃう人--
yukkukomei
記事: 9
登録日時: 2019年3月31日(日) 03:16

Re: 使用したスキルのIDを取得する方法

投稿記事by yukkukomei » 2019年4月06日(土) 13:46

こんにちは。修正ありがとうございます。
敵が使用したスキルは正しく変数に格納されました。

ただ、変わらずコマンドからスキルを使用すると Cannot read property 'id' of null が起きます。
これはスキルID1を"攻撃"から"ファイア"に変えても変わらず起こりました。
ツクールはSteam版、バージョンは最新です。

データベースの設定とコンソール画面を添付いたします。
新規プロジェクトを作成し、デフォルトのこうもり×2を相手に戦闘テストを行いました。
この通りに設定していただいても再現できないでしょうか?
何度も申し訳ありませんが、改めてよろしくおねがいいたします。
添付ファイル
Skill.png
CommonIvent.png
DeveloperTools.png
アバター
まっつUP
記事: 1155
登録日時: 2016年8月11日(木) 15:38
お住まい: タケノコ王国

Re: 使用したスキルのIDを取得する方法

投稿記事by まっつUP » 2019年4月06日(土) 19:12

yukkukomei様

TkoolMV_PluginCommandBook.jsと
以下のトピックに貼ってあるプラグインを同時に導入することで
一部条件で選択したスキルを取得できないというトピック中の不具合がなくなると思います。
追記:プラグインの機能自体は単体でも動きますが変数代入のため。
viewtopic.php?f=5&p=27776#p27776

setLastBattleSkillはデフォルトでは戦闘中のスキルウインドウのスキル選択の際のみに
呼び出される使用のため、それ以外でのスキル選択に対応させる必要があるためです。
RPGで笑顔を・・・

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

github
https://github.com/mattuup/RPGMakerMZ
yukkukomei
記事: 9
登録日時: 2019年3月31日(日) 03:16

Re: 使用したスキルのIDを取得する方法

投稿記事by yukkukomei » 2019年4月06日(土) 22:51

返信ありがとうございます。
そちらのプラグインを一緒に導入し、希望通りの動作ができました!

お二方ともありがとうございます!
アバター
マンカインド
記事: 123
登録日時: 2016年6月01日(水) 23:58
お住まい: 電子の海
連絡を取る:

Re: 【解決済み】使用したスキルのIDを取得する方法

投稿記事by マンカインド » 2019年4月06日(土) 23:01

まっつUP さん >
フォローありがとうございます。助かりました。


yukkukomei さん >
無事に解決されたようでなによりです。
コンソール画面を見ると余計なログが出ていましたので一応修正しました。

TkoolMV_PluginCommandBook.js
(75.46 KiB) ダウンロード数: 201 回
--------------------------------------------------------------------------------------------------------------
[Twitter] https://twitter.com/mankind_games/
[GitHub] https://github.com/mankindGames/
[Blog] http://mankind-games.blogspot.jp/

--ゲーム作るよりシステム作って満足しちゃう人--

“MV:質問” へ戻る