【解決済】敵アクターのa.level

プリークリー
記事: 9
登録日時: 2018年2月26日(月) 19:55

【解決済】敵アクターのa.level

投稿記事by プリークリー » 2018年4月30日(月) 00:38

いつもお世話さまです。
スキルのダメージ計算式にa.levelをいれているのですが、敵アクターにはレベルが無いのでダメージが0になり、困っています。
全て敵専用のスキルを作り足さなければいけないのでしょうか??
最後に編集したユーザー プリークリー on 2018年4月30日(月) 18:53 [ 編集 1 回目 ]

ぼた餅
記事: 144
登録日時: 2016年7月17日(日) 20:22

Re: 敵アクターのa.level

投稿記事by ぼた餅 » 2018年4月30日(月) 08:40

こんにちは、プリークリーさん

下記の方法ではどうでしょうか?

コード: 全て選択

BattleManager._action._subjectActorId != 0 ? (味方の場合の計算式) :(敵の場合の計算式)

使用方法としては、
カッコは残して、その中に計算式を記入してください。
そうすることで、味方が使った場合と敵が使った場合の二つの効果のスキルが作れます。

レベルについては、
私なら属性に「敵レベル」を設け、

コード: 全て選択

a.elementRate(値)

このコードで属性有効度を取得し、擬似的にレベルを再現するかな?って感じです。
※有効度1%(レベル1)なら0.01、80%(レベル80)なら0.8になります。
アバター
フトコロ
記事: 887
登録日時: 2017年2月06日(月) 21:32

Re: 敵アクターのa.level

投稿記事by フトコロ » 2018年4月30日(月) 09:45

こんにちは。

ダメージ計算式での条件分岐は、ぼた餅さんが提示されているように
三項演算子(条件式?真の時の値:偽の時の値) を使うのがいいです。

なお、敵味方の判別の場合は、a.isActor() もあります。
アクターかどうかで判断するスクリプトです。
こんな感じで使います。

a.isActor() ? a.level : 1
a がアクターなら aのレベルを、アクターでなければ 1 を返します。

三項演算子を使ったダメージ計算式の記述方法は、以下の方法があります。

1.三項演算子を()で囲ってその後に計算式をつなげる
例:(a.isActor() ? a.level : 1) * 4 * a.atk - 2 * b.def

2.三項演算子の中の真偽の部分に計算式を記述する
例:a.isActor() ? a.level * a.atk : 4 * a.atk - 2 * b.def

1の方法は、一部分だけ計算式が変わる場合に使えて
2の方法は、計算式全体を変えたい場合に使えると思います。

なお、この方法は敵キャラの場合はすべて、レベル部分は同じ1なので
敵キャラごとに変えたい場合は、ぼた餅さんが書いているように
なんらかの方法でレベル相当のパラメータを敵キャラに設定してあげる必要があります。
プリークリー
記事: 9
登録日時: 2018年2月26日(月) 19:55

Re: 敵アクターのa.level

投稿記事by プリークリー » 2018年4月30日(月) 18:48

丁寧な返信をいただき、ありがとうございました!
某ファンタジーシリーズライクなゲームを目指しているので、level式は外せないなと悩んでいた所でした。
また躓いたらよろしくお願いします!

“MV:質問” へ戻る