忍者ブログ
RPG製作情報など
[10]  [11]  [12]  [13]  [14]  [15]  [16]  [17]  [18]  [19]  [20
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

スクリプトを詰め込みすぎた...

06/11/05記事で、『カウンター攻撃』スクリプトを公開したのだが、
今回は、これの拡張版?の公開って話し。

※ブログでは→半角の『¥』(『\』←バックスラッシュになってしまう)
を表示できないので、便宜上『¥』を使用している。

Counter_Action vol.01』特徴
※仕様変更の為↑ vol.1.00はサポート外!08/10/11記事を参照してね!
ステートに例えば、『反撃¥A』みたいなのを作る。
¥←は必須の記述で、ABCみたくアルファベットの組み合わせで、
カウンター行動を指定する。(大文字、小文字どちらでも可)
反撃←の部分は適当でOK (※アルファベットのステート名だと不具合が...)

一応、カウンターの発生は、ダメージを受けた場合のみで、
『防御』行動中や全体攻撃、行動できない場合は、発生しない。
----------------------------------------------------------------------
ダメージを受ける→カウンター発生→カウンター発動(実際に行動)

①カウンター発生条件
P50 = 発生確率(数値はカウンター成功率)
※指定しない場合は100%成功

J0 = ダメージの種類による発生条件(数値0~2)
0=全てのダメージ 1=物理ダメージ(攻撃力F>魔力F) 2=(スキルダメージ攻撃力F<魔力F)
※指定しない場合は0 = 全てのダメージ

H25 = 残りHP条件(数値は残りHP%)
一応、残りHP25%以下になると、HPが紫色になる(瀕死?)ので、
瀕死カウンターとか?
H0 = 死亡カウンター(ファイナルアタック?)
H0の場合、HPが0になるダメージを受けた場合、カウンターを発動後に戦闘不能になる。
※H0D と指定する必要がある。Dの解説はのちほど...

H0DG = 戦闘不能の回避(某RPGの『ガッツ』←知ってる?)
HPが0になるダメージを受けた場合、残りHP1で耐える。(HP1以外の場合で固定)
※指定しない場合は、残りHPの条件は無効。

Z = 属性条件を許可するフラグ
例えば、ステート名が、反撃¥AZ ならば、同じ名前の属性攻撃(武器、スキル、アイテム)
の場合のみ、カウンターが発生する。
※上記の場合、反撃¥AZ ステートと、反撃¥AZ 属性をデータベースで作る必要がある。

②カウンター発動行動の種類
A = 通常攻撃 S1 = スキル(数値はID) I1 = アイテム(数値はID) 
G = 行動無し(回避) R = 受けた行動と同じ
※ASIGRの5つの内どれか1つだけ指定する。

③カウンターが発動した場合の相手
E1 = エネミー(数値はトループで追加した順番1~8)
U1 = アクター(数値はトループで追加した順番1~4)
※E0 U0 の場合、自分自身を指定
EX = Xの場合、自分を含むランダムなエネミー
EY = Yの場合、自分以外のランダムなエネミー
UX = Xの場合、自分を含むランダムなアクター
UY = Yの場合、自分以外のランダムなアクター

T1 = ターゲットを使用者側に変更(数値は順番)
※カウンター行動を行なうバトラーがアクターならば、アクターに、
エネミーならば、エネミーに変更
O1 = ターゲットを逆転(数値は順番)
※カウンター行動を行なうバトラーがアクターならば、エネミーに、
エネミーならば、アクターに変更

※EUTOの4つの内どれか1つだけ指定する。
指定しない場合は、攻撃してきたバトラーに固定される。
※EUの場合、ターゲットを固定するので、通常は、TOを使用したほうが良いかな。


・・・長くなったので続く
PR
以前、フラットなトループは気に入らない!ってネタを公開したのだが、
今回は、どうせなら直接、XY座標を指定してしまおう!ってことで、
Troop_Ex』スクリプトを公開してみた。
07/02/05のOpen_text を導入しているので、設定は簡単かな?

バトルで戦うことになるエネミー達(トループ)は、データベースの
トループで設定できるのだが、手動でXY位置を設定すると、
どうしても、キッチリ揃わない。(怒)  ※コレとか手動じゃキツイし...

デフォルトの整頓は、X座標が画面中心(320)位置を基点にして、
均等割り?配置がなされているため、中央に寄り気味の配置となっている。
トループ数が2~3の場合(幅の小さい奴ね)、縮こまった感じで気に入らない。

そこで、X座標(位置)は、エネミーとエネミーの間が均等になるように改造してみた。↓ 

 ↑デフォルトのX座標  ↑改造後のX座標

興味のある方は、Game_Enemy の真下にスクリプトを挿入してね。
07/01/31記事の 『仲間をたくさん呼びつつABCvol.03』で、
変な記述をしていたので、修正してみた。

スクリプト内の↓部分なのだが、
# □戦闘中、隠れフラグがONの場合、戦闘不能を付加

self.add_state(0)

そもそも、xxx.exist?ってのは、存在判定で、! xxx.exist?(not xxx.exist? )は、
戦闘不能もしくは、隠れ状態の場合と同意なので、
隠れ状態の場合に、わざわざ、戦闘不能を付加する必要はなかったのだ...

しかも、xxx.add_state(ID)ってのは、ステートを付加する命令なのだが、
IDの部分が、0なので、全く意味のない命令になっていたのだ!

とりあえず、今回は↑部分の削除と、呼び出し(仲間を呼ぶ)が成功した場合に、
何かしらの、処理を追加できるように、call_end(user,target)を追記してみた。

例えば、『分裂』するエネミーを再現する場合、
処理的には、『仲間を呼ぶ』なのだが、使用者と対象のHP/SPを50%にする処理を
追加すれば、それっぽく見える? ってことで追加してみた。
前回、『Enemy_Ex01』を公開したのだが、その中に
class Open_text ~ の記述があるはずだ。

これは、RGSSスクリプトをWindowsのテキスト(Notepad(.text))に、
出力するネタなのだ。

hideの作った『Enemy_Ex01』の設定(記述)は、けっこうメンドウなので、
その雛形をテキストで出力して、コピー&ペーストで済ませようってネタ。

使い方は、
①イベントの作成で、てきとうなイベントを作る。 ※ツボとかにすれば解り安いかな
②トリガーは、決定ボタン...
③イベントコマンドのスクリプトに、↓2行を貼り付ける。
a = Open_text.new
a.create_enemy_text

④テストプレーでそのイベントを実行(※ツボに決定キー)
⑤ゲームフォルダ(Project)の中に、enemy.textって名前のテキストが出力される。
⑥enemy.textを開いて、内容をコピー
⑦『Enemy_Ex01』内の↓に貼り付け(ペースト)

# ■ここから下に、Open_textで出力されたデータ(enemy.text)を貼り付ける
-------------------------------------------------------------------
ツクールスクリプトの世界では、既出なので、詳しく解説しないけど...
テキスト出力のスクリプトをチョットだけ解説

①クラスを作る→ class Open_text ※Open_textは適当な感じで...
②def メソッドを作る→ def create_enemy_text ※create_enemy_textは適当な感じで...
③テキストを開く命令→ f = File.open("enemy.text", "w")

f ←適当で "enemy.text" のenemy ←適当で .text ←テキストの拡張子なので必須!
"w" ← 書き込みの種類!(必須) 

④テキストに出力する内容を設定→ text = ""

text = "" ←ここに記述した物をテキストに出力!
"  もしくは ' で囲むと文字として認識される! ※ text = "こんな感じ!"
"\n" (※¥n) ← は改行命令!  .to_s ←数値を文字化する命令!(※123 = "123")

⑤text の内容を書き込む命令!→ f.write(text)
⑥テキストを閉じる命令→ f.close
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[08/04 Faust]
[05/26 takku]
[11/12 ぱんだ]
[06/28 AntwerpBlue]
[06/28 AntwerpBlue]
[02/07 ジャリン]
[02/07 ジャリン]
[02/05 白豆]
[11/28 I・S]
[11/26 I・S]
プロフィール
管理人
hide
ホームページ
ブログ内検索
カウンター
忍者アナライズ
忍者ブログ [PR]