変数代入:アクターの●番目のスキルのID

返信する
初心者&質問者
記事: 148
登録日時: 2020年9月03日(木) 09:22

変数代入:アクターの●番目のスキルのID

投稿記事 by 初心者&質問者 »

特定の変数に
「あるアクターが●番目に所持(習得)しているスキルのID」を代入するには
どうすればいいでしょうか?

調べてみて、下記を変数代入のスクリプトに入れてみたのですが

――――――――――――――――

$gameActors.actor(1).skills()

――――――――――――――――

次のエラーが出てしまいます。

[object,object][object,object]


スクリプトに弱いので、正しい書き方がわかる方
お願いします。
アバター
冷やっこ
記事: 132
登録日時: 2020年3月04日(水) 22:47

Re: 変数代入:アクターの●番目のスキルのID

投稿記事 by 冷やっこ »

初心者&質問者 さんが書きました:特定の変数に
「あるアクターが●番目に所持(習得)しているスキルのID」を代入するには
どうすればいいでしょうか?

調べてみて、下記を変数代入のスクリプトに入れてみたのですが

――――――――――――――――

$gameActors.actor(1).skills()

――――――――――――――――

次のエラーが出てしまいます。

[object,object][object,object]


スクリプトに弱いので、正しい書き方がわかる方
お願いします。


こんばんは!

特定のアクターが現在所持しているスキルに対して「●番目のスキルIDを変数に代入する」、と言う解釈で
よろしいでしょうか?(覚えた順番ではありません)
もしそれでよろしければ…

コード: 全て選択

◆スクリプト:var actID = $gameActors.actor(1) //アクターID
:     :var posseNO = 2                  //●番目のスキル
:     :var vID = 11                     //代入する変数
:     :
:     :if (actID.skills().length >= posseNO){
:     :$gameVariables.setValue(vID ,actID.skills()[posseNO - 1].id)
:     :}
上記でアクター1が所持している2番目のスキルIDを変数11に代入します。
上3行の数値はご自分のゲームに合わせて変更して下さい。
ただ、上記のスクリプトですとスキルタイプの魔法、必殺技、また防御や逃げるなどのスキルを
習得している場合、それらも含めて全てのスキルから2番目に所持しているスキルIDを変数に
代入してしまいます。もしそれでもよろしければ良いのですが。

コード: 全て選択

◆スクリプト:var actID = $gameActors.actor(1) //アクターID
:     :var posseNO = 2                  //●番目のスキル
:     :var vID = 11                     //代入する変数
:     :var type = 1                     //スキルタイプ
:     :
:     :if (actID.skills().filter(function(item) {return item.stypeId==type;}).length >= posseNO){
:     :$gameVariables.setValue(vID ,actID.skills().filter(function(item) {
:     :return item.stypeId==type;})[posseNO - 1].id)
:     :}
上記は調べるスキルタイプを選択できます。
ツクールデフォルトですとスキルタイプ1が魔法で2が必殺技です。
上記ですと魔法、必殺技、また防御や逃げるなどのスキルを習得していてもあくまで
スキルタイプ1の魔法で所持している2番目のスキルIDが変数に代入されます。


以上になりますがいかがでしょうか。
初心者&質問者
記事: 148
登録日時: 2020年9月03日(木) 09:22

Re: 変数代入:アクターの●番目のスキルのID

投稿記事 by 初心者&質問者 »

ありがとうございます!

1つ目に教えて頂いたスクリプトで試してみました。
無事、特定の番号のスクリプトIDを変数に代入する事ができました。
返信する

“MV:質問”に戻る