【完了】プラグインのレビュー依頼:敵グループのランダム化

トピックの投稿

返信へ
アバター
ムノクラ
記事: 2119
登録日時: 2018年2月23日(金) 11:41
投稿素材
連絡する:

【完了】プラグインのレビュー依頼:敵グループのランダム化

投稿記事 by ムノクラ »

色々な方にTwitterでアドバイスをいただきながら、作成しました。
主に別関数部分はとんび氏にアドバイスをいただき、MV専用の関数(JsonEx.parse)を使用しています。
※JsonEx.parseはどのバージョンから使用できるのかご存知の方は教えて下さい。

それ以外の箇所のレビューは受けていないのと、スイッチ的な処理があり書き換えの余地があるのは理解しています。
コアと重複部分があるのは認識していますが、どう順番を整理すれば上手く処理できるのかが解決できませんでした。

現時点でYEP Swap Enemies相当の機能はあると思います。
http://www.yanfly.moe/wiki/Swap_Enemies_(YEP)


▼余談
理想としては、下記の記事で紹介している「Random Enemies」プラグインを改善したものに仕上げたいです。
https://fungamemake.com/archives/57

https://forums.rpgmakerweb.com/index.php?threads/48224/

課題は出現させない手法が何もつかめていないことです。

--
余談の分はさておき、ご指導よろしくお願いいたします。
添付ファイル
MNKR_RandomEnemies.js
(1.67 KiB) ダウンロード数: 14 回
最後に編集したユーザー ムノクラ [ 2020年3月29日(日) 16:06 ], 累計 1 回
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。

返信 4 / 4ページ

アバター
Plasma Dark
記事: 740
登録日時: 2020年2月08日(土) 02:29
投稿素材
連絡する:

Re: プラグインのレビュー依頼:敵グループのランダム化

投稿記事 by Plasma Dark »

conditionの宣言位置は変更前でも自動勝利しませんでした
おや、確かに、clearされていないので敵自体は出てくるんですね。
必ず1回目の戦闘と同じ構成で出てきそうです。
空配列で初期化していたのは、参考にしていたコードがそう書いていたからそのまま真似しました。
意味がないというのを直ぐに理解できませんでした。
参考にされたのは RandomEnemies.js のコードでしょうか。
https://github.com/RexGit/Random-Enemie ... Enemies.js

これはNoteTagの内容を配列で返すためだと思われますが、コード的に参考にしちゃいけない類です。インデントもロジックも現代アートの領域ですね。忘れてください。

意味がないというのは、初期化の際に代入している [] (空配列)が、直後に selectEnemyId の戻り値で上書きされて捨てられるためです。
82.js では var が消えてしまっているので、エラーで怒られそうな気がします。
凄く短くなりますね…
短くはなるが、可読性的にちょっとだけ微妙な感じになりそうです。
このくらい読めるじゃんという人と、ぱっと見わかりにくいという人に意見が分かれそうなコードだと思います。

以下のようにして Game_Enemy に渡す敵IDと、敵キャラを隠す条件を明示してあげるとやさしいコードになりそうです。

コード: 全て選択

var randomEnemyId = selectEnemyId($dataEnemies[member.enemyId]);
var enemyId = randomEnemyId || member.enemyId;
var enemy = new Game_Enemy(enemyId, member.x, member.y);
var hideEnemy = randomEnemyId === 0 || member.hidden;
if (hideEnemy) {
  enemy.hide();
} else {
  condition = false;
}
this._enemies.push(enemy);
冗長になることは確かなので、どちらを選ぶかは好み次第だとは思いますが。
返信する

“MV:質問”に戻る