忍者ブログ
RPG製作情報など
[1]  [2]  [3]  [4]  [5]  [6]  [7
×

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

RPGにおいて、重要な要素である宝箱。
町や洞窟に置かれていて、開けると中から、お金やアイテムが出てくる奴。

一口に宝箱と言っても様々で、例えば『ツボ』だったり『タンス』、
何も目印は無いけど、『怪しい場所』ってのも宝箱と言えるだろう。

前置きはさておき、今回は『Make_Party_Events 』を公開って話。
※スクリプトは、Interpreter 7より下、Mainより上に挿入してね。
--------------------------------------------------------
■『Make_Party_Events vol.01』特徴
某RPG(ド○クエ)の「このフロアには、あと3個宝箱があるようだ!」って、
教えてくれるアレ。 とうぞくのはな
あとは、宝箱の回収率とか...

①準備・・・↑前置きにも書いた『宝箱』イベントの
イベントページ1(1ページ目)、
実行内容の1行目(1番最初)に、
イベントコマンド『注釈』を挿入して、
内容を 宝箱 と記入する。↓こうなるハズ

◆注釈:宝箱
◆      ※

※の位置が2行目なので、ここから下にイベントを組む

多分、こんな感じかな?↓
◆注釈:宝箱
◆移動ルートの設定:このイベント
:180度回転
◆文章:ポーションを手に入れた!
◆アイテムの増減:ポーション+1
◆セルフスイッチの操作:A=ON

↑何度も開けられるのを禁止するため、スイッチをONにするハズだ。
※この場合は、セルフスイッチA=ON

スイッチをONにする前に、イベントコマンド『スクリプト』に
gain_treasur(MapID,EventID,true) ←を記入して挿入。

◆アイテムの増減:ポーション+1
◆スクリプト:gain_treasur(MapID,EventID,KEY)
◆セルフスイッチの操作:A=ON


MapIDは、宝箱を置いたマップIDを記入。
※Mapの設定-ID:001 ←ならば1
EventIDは、宝箱のイベントIDを記入。
※EV001 ←ならば1
KEYは、trueを記入(true=開けた false=開けていない)

基本的に宝箱イベントは、決定キーで開始するのがセオリーなので、
"このイベント"の場合は、(MapID,EventID,KEY)を省略することが可能!
※内部で、MapID=現在のMapID、EventID=このイベントID、KEY=true、としている為

◆スクリプト:gain_treasur ←コレだけでOK

②値の取得・・・
『Make_Party_Events vol.01』スクリプト内の、
class Game_Partyを参照。

・ゲーム全体の宝箱数を取得
$game_party.game_total_number
・現在のMapで既に開けている宝箱の数を取得
$game_party.map_open_number
etc...

長くなったので続く
PR
ツクールXPのデフォルトスクリプトには、Window_Command というものがある。
これは、タイトルの選択肢や、バトルのコマンドなどに使われているスクリプトで、
縦1列の選択肢を表示するのに特化したスクリプトである。

今回は、コレを改造して、選択中の文字色を変えて、点滅させようってネタ。
※『点滅コマンド』スクリプトを、Window_Commandの真下に挿入してね。

※仕様変更の為↑バージョンは、使用不可。07/09/09記事を参照してね。

Window_Commandが使われている場所は、
タイトル、メニュー、ゲーム終了、バトルコマンドの4箇所だけなので、実用性は低いのだが...
※タイトルならば、『ニューゲーム、コンテニュー、シャットダウン』←の文字
 ←こんな感じ

内部のスクリプトネタは、
↓みたく、横にずらして、文字色を変えたものを描画しているのだ。


ニューゲーム
        コンテニュー
                シャットダウン

これだと、コンテニューとシャットダウンの文字がはみだすのでは?
って思う方は、↓を読もう!

----------------------------------------------------------------------------------------
画面に何か(画像や文字)を描画する場合、Spriteを作成して、
その中にBitmapを作ることで、描画することができる。

文字や画像は、このBitmapに"表示する命令"をする訳だが、
このままでは、コンテニューとシャットダウンの文字も、表示されてしまい困る。

ここで登場するのが、Viewportという奴だ。
これは、表示するBitmapの範囲を指定できるというもので、例えるなら
Sprite箱の中に、Viewport箱を入れて、その中にBitmap箱を入れる。

さらに、Bitmap箱の中に文字や画像を入れると言うこと。

ただしViewport箱には、Bitmap箱がViewport箱より大きな箱の場合でも、
中に入れることができる!という特徴がある。

では、Bitmap箱が、はみ出す部分は? というと、"透明"になるのだ。


↓図で言うならば、黄色の範囲は全て透明になる。
※ちなみにoxは、Bitmapの横移動で、oyは、縦移動。
ox,oyの値を変化させることで、表示/非表示の命令を行なっているのだ。

oxをマイナスして、『abcdef』文字がViewportの外側にでれば、
『abcdef』が消えて(透明)になり、今度は、『hijklmn』文字が、
Viewportの内側に入り、表示されるってこと!

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

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を使用したほうが良いかな。


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

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

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

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

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

興味のある方は、Game_Enemy の真下にスクリプトを挿入してね。
カレンダー
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]