ページ 11

【解決済】覚えているスキルの中から1つを別アクターへ引き継がせたい

Posted: 2021年1月05日(火) 14:17
by ishitabe
件名通りです。
あるアクターAの現在覚えているスキルの中からランダムに1つ別アクターBへ引き継がせる方法、スクリプトやプラグインなどがあれば教えていただきたいです。

アクターBにスキルを引き継いでもアクターAはスキルを覚えたままで大丈夫です。
アクターAがスキルを1つも覚えていなければ何も引き継がなくて大丈夫です。


また、ランダムに引き継ぐというシステムからランダム性を無くす方法としてポケモンの技忘れじいさんのようなイベントを作り、引き継がせたいスキル以外を忘れさせておくという方法をプレイヤーがとれるようにしたいです。
可能ならば、この技忘れじいさん(選択したアクターの覚えているスキルの中から忘れさせたいスキルを選び、忘れさせる)の作り方も教えていただきたいです。

よろしくお願いします。

Re: 覚えているスキルの中から1つを別アクターへ引き継がせたい

Posted: 2021年1月05日(火) 20:03
by ムノクラ
ishitabe さんが書きました:件名通りです。
あるアクターAの現在覚えているスキルの中からランダムに1つ別アクターBへ引き継がせる方法、スクリプトやプラグインなどがあれば教えていただきたいです。

アクターBにスキルを引き継いでもアクターAはスキルを覚えたままで大丈夫です。
アクターAがスキルを1つも覚えていなければ何も引き継がなくて大丈夫です。


また、ランダムに引き継ぐというシステムからランダム性を無くす方法としてポケモンの技忘れじいさんのようなイベントを作り、引き継がせたいスキル以外を忘れさせておくという方法をプレイヤーがとれるようにしたいです。
可能ならば、この技忘れじいさん(選択したアクターの覚えているスキルの中から忘れさせたいスキルを選び、忘れさせる)の作り方も教えていただきたいです。

よろしくお願いします。
viewtopic.php?f=23&t=10573

前半は下記スクリプトで可能だと思います。

コード: 全て選択

const fromActor = 1; //  技を与えるアクターID
const toActor = 2; //  技を覚えるアクターID
const skillArray = $gameActors.actor(fromActor)._skills; //与えるスキルID配列
let getSkill;
if (skillArray.length) {
  getSkill = skillArray[Math.floor(Math.random() * skillArray.length)];  //与えるスキルIDをランダムに選択
  $gameActors.actor(toActor).learnSkill(getSkill);  //スキルを覚える
}

後半は「ポケモンの技忘れじいさん」を知らないですし、よく分かりません。

下記の記事やプラグインを使えば、可能かと思いますが。

新機能活用講座|RPGツクールMV
https://tkool.jp/mv/course/03.html

▼MPP 選択肢拡張(木星ペンギン様作) - MPP_ChoiceEX.js
https://plugin.fungamemake.com/archives/2202


蛇足

質問は1トピックに1つにしたほうが無難です。
1つが解決しても、未解決部分がある場合、他の人に気づかれにくくなります。

質問に「~みたい」は…まぁ、返信がつきにくくなる定番だと思ってください。
みたい、を具体的に箇条書きで流れが説明できるように質問できれば、自然と回答者が集まりやすくなります。
(誰もがポケモンをやっているわけではないのですから)

Re: 【解決済】覚えているスキルの中から1つを別アクターへ引き継がせたい

Posted: 2021年1月06日(水) 00:05
by ishitabe
ムノクラ様返信ありがとうございます。

教えていただいたスクリプトを試したところ、無事スキルを引き継ぐことができました。
これで理想のイベントが作れそうです。ありがとうございました!

技忘れの件と質問は1トピック1つの件、ツクマテ投稿初だったのもあり至らぬところがあって申し訳ないです。
次回から気を付けます。ありがとうございました!