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

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

07/07/04記事で『スロットマシーン』を公開したのだが、
コインで遊べるゲームが、スロットだけなのは寂しい。

そこで、コインゲームを他にも作る為、『スロットマシーン』を更新したよ!って話し。

とりあえず『スロットマシーン』のコイン追加(Game_Party)部分と、
回転する数値(コイン数)部分を、独立したスクリプトにしてみた。

①ゲームパーティにコインを追加・・・『Game_Party_Coin vol.1.00
②回転数値機構・・・『Window_digits_number
③スロットマシーン実行・・・『Slot_Machinevol.2.00

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

なぜ独立させたかと言うと、①コイン追加と②回転数値は、
使いまわしの利くスクリプトなので、新しいコインゲームを作った場合にも、
使用するスクリプトなのだ。

ちなみに、現在『ポーカー』を製作中♪近日公開予定
-------------------------------------------------------------------------

■↓スクリプトの改造に興味のある方は、読んでね♪

回転数値機構『Window_digits_number』は、
他の目的にも使用できるよう、機能を拡張している。
特徴、回転数値描画。高速数値描画。

例えば、ショップ(お店)の所持金を、回転しながら増減するものに変更可能。
※↓の改造方法では、メニューの所持金表示が消えるので注意!

■改造方法
Ⅰ・・・Scene_Shopの@gold_window = Window_Gold.newの真下に↓を挿入!
@digits_window = Window_digits_number.new(33+480,64,100,$game_party.gold,8)

(X座標,Y座標,Z座標,描画する数値,最大桁数)

Ⅱ・・・# ウィンドウを解放 の真下に↓を挿入!
@digits_window.dispose

Ⅲ・・・def update の真下に↓を挿入!
@digits_window.update($game_party.gold,$data_system.cancel_se)

※$data_system.cancel_se ←は回転するときのSEを指定。
省略すると、SE無し → @digits_window.update($game_party.gold)  

Ⅳ・・・Window_Goldのゴールド表示部分をコメントアウト(↓#を頭に付ける)
#self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
-------------------------------------------------------------------------
一応、開発者向けのスクリプトなので設定はメンドウ...
@digits_window.refresh(num) ←で更新(回転無し)
詳細は、スクリプトを見てね♪
PR
hideの公開している『RGSSスクリプト』は、
基本的に、hideが製作しているRPGの為に作成しているものだ。
ゆえに、バグを見つける(報告する)のもhideだし、修正するのもhideなのだ。

これは、利用者が居ないって事で、けっこう悲しい...
スクリプト公開も、このブログも、全て自己満足なで、別に良いのだが...マケオシミ

戯言は、これくらいにして、
今回は07/02/03記事『Original_Act01』、07/03/31記事『点滅コマンド』を修正したよ!って話し。

■『Original_Act01 vol.1.02』1の修正内容
・・・変化スキルが成功した場合にエラーを吐く・・・致命的!を修正。
■『Blink_Window_Command vol.1.20』の修正内容
・・・ウィンドウがアクティブではない場合(self.active=false)
カーソル点滅文字色を透明度250に固定。
・・・無駄記述の削除
-------------------------------------------------------------------------------------------
 ←前回、公開した画像の、高さを間違えていた...(修正済み)
前回、『Make_Party_Events』を公開したのだが、
その続きを…
--------------------------------------------------------

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

↓特に解説することないか…
・ゲーム全体にある、宝箱の回収率(%)を返す(全Map)
$game_party.game_percent
・ゲーム全体にある、宝箱の数を返す(全Map)
$game_party.game_total_number
・ゲーム全体で、既に開けている宝箱の数を返す(全Map)
$game_party.game_open_number
・Mapの宝箱数を返す(現在のMap)
$game_party.map_total_number
・Mapで、既に開けている宝箱の数を返す(現在のMap)
$game_party.map_open_number
・Mapで、開けていない宝箱の数を返す(現在のMap)
$game_party.map_closes_number

↑の値を『文章』に表示したい場合は、チョット面倒。

ヘルプにも有るが、\V[1] ←は文章に『変数』を表示する命令だ。
コレを利用して、表示することになる。

適当な『変数』を用意する…とりあえず、0001:番(1番)
イベントのスクリプトに↓を記入

a = $game_party.game_percent
$game_variables[1] = a
※$game_variablesってのが、変数で[1]は、0001:番(1番)ってこと。

・使用例…
◆スクリプト:a = $game_party.game_percent
      :$game_variables[1] = a
◆文章:宝箱の回収率は\V[1]%だ!
--------------------------------------------------------
↓コレだけ、チョット特別なので…
・Mapデータを変更した場合、再構築(MapInfos.rxdataの追加に対応)
$game_party.make_events

宝箱のデータ(ON=開けている/OFF=開けていない)は、ゲーム開始時に格納される。
その為、一度セーブして、そのセーブデータから開始する場合に問題がある。
それは、セーブ後に追加した宝箱のデータは、セーブデータに反映されないってこと。

ゲームを作成している段階では、関係ないのだが、
例えば、完成したゲームを公開したとする。
その後、追加シナリオで、新Map(宝箱イベント)を含むファイルを配布した場合、
新Mapの宝箱データはセーブデータに反映されない。
その為、追加以前のセーブデータでは、回収率や全Mapのデータが正しい値にならない。

そこで、$game_party.make_eventsを実行させれば、
既に開けた宝箱はONのままで、新たに追加した宝箱をOFFで追加できるのだ。

・改造とかに興味のある方は読んでね↓
--------------------------------------------------------
そもそも、改造次第では、宝箱の数だけでなく、
特定のイベントカテゴリーも格納できるので、↓を参考に…

class Make_Party_Eventsに、attr_accessor:tekitou みたいに追加して、
if (/宝箱/.match(text))~end の下に、

if (/適当/.match(text))
@tekitou[map_id][event.id] = "適当" って具合に追加。
end
$game_party.events.tekitou ←で参照する。
※event.pages[0].list[0].code == 108では無く、event.nameとかでも良いかな?

・ネタ…
@treasur_map[map_id][event.id] = [map_id,event.x,event.y]格納して、
宝の地図…「南に3歩、西に6歩に宝が眠っているようだ!」とか。
イベントの配置は、ランダムだろうな…
--------------------------------------------------------
PS.
今回のスクリプトも『Open_text』を作成しているので、
興味のある方は、07/01/05記事を参照してね。
07/05/21記事で、『吹きだしメッセージ』スクリプト『MESSAGE vol.03β版』を公開したので、
今回は、その更新(β1.03)と使用例を踏まえた解説を少々…
※仕様の変更の為↑バージョンは使用不可。07/10/07を参照してね。

イベントコマンドの追加例①~

①ゴールドを獲得(宝箱など)・・・所持金の数値が回転しながら増減
◆スクリプト
a = message_window?(0)
a.copy = true
a.visible = false
a.break_count = 7
◆文章の表示
1000G\word[0]\g ←※もしくは、 1000G手に入れた!\g(¥word[ID]を使わない)
◆ゴールドの増減 + 1000

①の演出
メッセージ、『1000G手に入れた!』を表示すると同時に、
ゴールドウィンドウを表示する。(※画面端に現在の所持金を現すウィンドウが出現)
決定キー待ち状態(▽マークが出ている)でメッセージを閉じると、
ゴールドウィンドウは表示されたまま、所持金の数値が回転しながら増加する。
そして、7カウント後にゴールドウィンドウが閉じる(消える)

a.copy = trueの部分で、メッセージをコピーしているのだが、
それを描画するフラグvisibleがOFFの為(a.visible = false)、
コピー描画しているのだが、表示されない状態になる。

a.break_count = 7は、コピー描画したウィンドウを、数値後に削除する命令の為、
7カウント後にゴールドウィンドウが閉じる。
-------------------------------------------------------------------------------------
②歩いているイベントにメッセージを表示
◆スクリプト
a = message_window?(1)
a.copy = true
a.skip = true
##a.break_count = 7
◆文章の表示
---表示したい文章---
②の演出
歩き回っている状態のイベントID001に、メッセージを表示。
そのままイベントID001の動きに合わせて、メッセージも動く。(イベント追従)

イベントID001のイベント実行内容に追加するのではなく、
他のイベントから↑を実行しないと意味がない。

※イベントID001にプレイヤーが話しかけると(決定キーを押すと)、
ふつうに、イベントの移動は止まるし・・・
-------------------------------------------------------------------------------------
③同時に複数のメッセージを表示
◆スクリプト
a = message_window?(1)
a.top = true
a.copy = true
a.skip = true
a.visible = false
◆文章の表示
---表示したい文章---
◆スクリプト
a = message_window?(1)
a.under = true
a.copy = true
a.skip = true
a.visible = false
◆文章の表示
---表示したい文章---
◆スクリプト
one_copy_visible?(1)
-------------------------------------------------------------------
サンプルデータをUPした方が早いかな?
でも、全く反響ないしなぁ・・・(苦笑)
カレンダー
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]