忍者ブログ

しいたけサイクロン

主にRPGツクールVXAceを扱うブログです。 ここに公開してあるスクリプトは全部自由に使用してもらってかまいません。 改造なり何なりして好きに使ってください。

敵の視界スクリプト

×

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

コメント

1. 無題

素晴らしいスクリプトですが、何回付けてもエラーが出まして、詳しい付け方お願いできませんか?
付け加える所もエラー出るし、それと
module DataManager
def self.init
@last_savefile_index = 0
load_database
load_database2
create_game_objects
setup_battle_test if $BTEST
end
end
を素材のところに追加。。。素材のところってのは何処でしょうか?

2. 返答

ちょうど昨日メインPCのハードが壊れてしまってサブのPCで書き込んでいまして
現在ツクールが起動できない状態ですので微妙に間違ったことを書き込むかもしれませんが
記憶を頼りに返答してみます。(数日後また詳しく返答すると思います)

付け加え方は2通りの方法があって
別のスクリプトの図ですがhttp://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1463932549のココの部分に
load_normal_databasetako3を挿入するという方法、
もう1つはデフォルトのコードを弄りたくない、追加したスクリプトは別のところに置きたいという人のやり方で
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1463932549の図で横のスクリプトと書いてあるリストの下のほうに▼素材って書いてある部分があってその下にスクリプトを追加できるようになっていると思うのですがそこに上に書いてあるmodule DataManager~というスクリプトを追加する方法です。
直接画像で示せれば楽なのですがちょうど今画像が用意できない状態なのですみません。
それからこのスクリプトは結構以前に作ったものなのでそれからいろいろ調整改造していて
改良版をアップしていない状態なのですが
最新版はPCごと消えましたけど、比較的新しいバージョンがバックアップとして残っているので
たぶんそれも公開しようと思います。
そういうわけでしてPCを新調すると思うので週明けくらいに改良版と同時にもっと丁寧な説明を加えたいと思いますので少しだけ待ってください。

3. 返答追加

すみません、本文をよく見たら書き間違えていました。(訂正しました)
module DataManager
def self.init
@last_savefile_index = 0
load_database
load_database2
create_game_objects
setup_battle_test if $BTEST
end
end
ではなく
module DataManager
def self.init
@last_savefile_index = 0
load_database
load_normal_databasetako3
create_game_objects
setup_battle_test if $BTEST
end
end
でした。

画像を用意しました。
素材のところというのは下のリンク先の画像の赤枠のあたりです。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1464609467
あと
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1464609466のように$data_chase_blind_exceptionを使わない場合でも空の配列にしておいてください。

4. 無題

返信遅れましてすみませんでした、
ご丁寧に長い文章で説明して頂いてありがとうございます、設定成功しました!

ちょっとした疑問がありますが、
それがこのスクリプトで敵の視界範囲を別々に変更する事ができますか?
無理だとしても大丈夫です、ありがとうございました!

実はメタルギアみたいな潜入ゲームを試作してまして、
思わぬ問題や挫折の山を満喫中です(苦笑)。
例えば、主人公がダンボールを被ると敵の視界を免れても、動いたら発見されるになるって所は、
頭が痛いです。

私はスクリプトの編集ができませんので、ネットで本当に助かりました、
後は自力でなんとかやり遂げましょう。

改めてスクリプト編集できるみんな様の凄さが思い知らされました、
ありがとうございました。


5. 返信

すみません、私も返信が遅れました。
この水曜日か木曜日くらいに改訂版をアップしようと思ってます。
今のところ、
・個別に範囲などを指定できるようにしたこと、
・今まで画像で設定していたのをイベントごとに個別に設定することも可能にしたこと、
・通常、壁となるマップチップをデフォルトで視界を遮るようにしたこと、
・イベントのどのページで作動するかを設定できるようにしたこと、
・視界を遮るイベントを画像指定もできるようにしたこと
などがあります。
上のコメントを見て思ったのはスクリプトを起動するか否かのフラグみたいなのを作って
それをon/offできるようにしておいたほうがよさそうなのでそれも追加しておきます。

このスクリプトは結構前のスクリプトで私がまだrubyやツクールの仕様をあまり理解していないまま
書き始めたものなのでちょっとコードが汚いので一回書き直そうかなぁと思ってます。

ちょうど今作っているミニゲームでマップ上で敵を吹き飛ばす魔法ってのを作ったのですが
そこで座標変換をするmoduleと直線を通るタイルの配列を得るmoduleを作ったので
それを使って書き直そうかなとも考えているところです。

ただいまコメントを受けつけておりません。

敵の視界スクリプト

(2014/07/05)修正

イベントキャラごとに視界を定義して視界に入ると指定したセルフスイッチが入るスクリプト。
デフォルトでは下の赤く塗った範囲が視界になります。



ただし途中に視界をさえぎるブロックがあるとセルフスイッチは入りません。

そして直線距離が5より離れるとセルフスイッチDが切れてセルフスイッチCが入ります。

(スクリプト)
MIniDataManager.txt
MIni.txt

(テストゲーム)
MIni.zip


(使い方)
DataManagerの以下の部分のload_databaseの下の部分にload_normal_databasetako3を付け加えます。
  #--------------------------------------------------------------------------
  # ● モジュール初期化
  #--------------------------------------------------------------------------
  def self.init
    @last_savefile_index = 0
    load_database
    create_game_objects
    setup_battle_test if $BTEST
  end

付け加えた例
  #--------------------------------------------------------------------------
  # ● モジュール初期化
  #--------------------------------------------------------------------------
  def self.init
    @last_savefile_index = 0
    load_database
    load_normal_databasetako3 
    create_game_objects
    setup_battle_test if $BTEST
  end

または
module DataManager
  def self.init
    @last_savefile_index = 0
    load_database
    load_normal_databasetako3
    create_game_objects
    setup_battle_test if $BTEST
  end
end
を素材のところに追加してください。

$switchCharで視界に入ったときにはいるセルフスイッチを指定します。
ある一定の範囲から離れたときに上のセルフスイッチをoffにして$switchCharAで指定したセルフスイッチを入れます。
$data_check_tile[tile_id]でtile_idに対応するタイルセットに使われているグラフィックA1~A5,B,C,D,Eの9個に関して
存在するなら1、存在しないなら0として配列を作ってください。
デフォルトでデフォルトの場合の配列はすでにセットしています。
たとえばtile_id が1のフィールドだとA1,A2,Bのグラフィックがあるので
$data_check_tile[1] = [1,1,0,0,0,1,0,0,0]
とします。
$data_viewblind で視界をさえぎるタイルを指定します。
[tile_id,p,x,y,]でtile_idに対応するタイルセットでp番目のタブ(ただしp=0からスタートする)の(x,y)の位置にあるタイルが視界をさえぎるタイルに指定されます。

たとえば上の中からを視界をさえぎるタイルに指定したいときは
[4,1,0,13]となります。(ダンジョンなのでタイルセットのIDは4、タブがBなので1,そして位置は左上から(0,13)の位置にある)

イベントキャラについてはデフォルトでプライオリティが通常キャラと同じで固定キャラは全て
視界をさえぎるタイル扱いされます。
それ以外のイベントを視界をさえぎるタイルに指定したいときは
$data_chase_blind_exception
に[マップID , イベントのID]を加えてください。
またデフォルトで視界をさえぎるタイルになっている場合でその指定を解除したいときは
$data_chase_nonblind_exception
に[マップID , イベントのID]を加えてください。
PR

コメント

1. 無題

素晴らしいスクリプトですが、何回付けてもエラーが出まして、詳しい付け方お願いできませんか?
付け加える所もエラー出るし、それと
module DataManager
def self.init
@last_savefile_index = 0
load_database
load_database2
create_game_objects
setup_battle_test if $BTEST
end
end
を素材のところに追加。。。素材のところってのは何処でしょうか?

2. 返答

ちょうど昨日メインPCのハードが壊れてしまってサブのPCで書き込んでいまして
現在ツクールが起動できない状態ですので微妙に間違ったことを書き込むかもしれませんが
記憶を頼りに返答してみます。(数日後また詳しく返答すると思います)

付け加え方は2通りの方法があって
別のスクリプトの図ですがhttp://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1463932549のココの部分に
load_normal_databasetako3を挿入するという方法、
もう1つはデフォルトのコードを弄りたくない、追加したスクリプトは別のところに置きたいという人のやり方で
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1463932549の図で横のスクリプトと書いてあるリストの下のほうに▼素材って書いてある部分があってその下にスクリプトを追加できるようになっていると思うのですがそこに上に書いてあるmodule DataManager~というスクリプトを追加する方法です。
直接画像で示せれば楽なのですがちょうど今画像が用意できない状態なのですみません。
それからこのスクリプトは結構以前に作ったものなのでそれからいろいろ調整改造していて
改良版をアップしていない状態なのですが
最新版はPCごと消えましたけど、比較的新しいバージョンがバックアップとして残っているので
たぶんそれも公開しようと思います。
そういうわけでしてPCを新調すると思うので週明けくらいに改良版と同時にもっと丁寧な説明を加えたいと思いますので少しだけ待ってください。

3. 返答追加

すみません、本文をよく見たら書き間違えていました。(訂正しました)
module DataManager
def self.init
@last_savefile_index = 0
load_database
load_database2
create_game_objects
setup_battle_test if $BTEST
end
end
ではなく
module DataManager
def self.init
@last_savefile_index = 0
load_database
load_normal_databasetako3
create_game_objects
setup_battle_test if $BTEST
end
end
でした。

画像を用意しました。
素材のところというのは下のリンク先の画像の赤枠のあたりです。
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1464609467
あと
http://blog.cnobi.jp/v1/blog/user/3d98d60619f35633a8bcdbe904a90e7c/1464609466のように$data_chase_blind_exceptionを使わない場合でも空の配列にしておいてください。

4. 無題

返信遅れましてすみませんでした、
ご丁寧に長い文章で説明して頂いてありがとうございます、設定成功しました!

ちょっとした疑問がありますが、
それがこのスクリプトで敵の視界範囲を別々に変更する事ができますか?
無理だとしても大丈夫です、ありがとうございました!

実はメタルギアみたいな潜入ゲームを試作してまして、
思わぬ問題や挫折の山を満喫中です(苦笑)。
例えば、主人公がダンボールを被ると敵の視界を免れても、動いたら発見されるになるって所は、
頭が痛いです。

私はスクリプトの編集ができませんので、ネットで本当に助かりました、
後は自力でなんとかやり遂げましょう。

改めてスクリプト編集できるみんな様の凄さが思い知らされました、
ありがとうございました。


5. 返信

すみません、私も返信が遅れました。
この水曜日か木曜日くらいに改訂版をアップしようと思ってます。
今のところ、
・個別に範囲などを指定できるようにしたこと、
・今まで画像で設定していたのをイベントごとに個別に設定することも可能にしたこと、
・通常、壁となるマップチップをデフォルトで視界を遮るようにしたこと、
・イベントのどのページで作動するかを設定できるようにしたこと、
・視界を遮るイベントを画像指定もできるようにしたこと
などがあります。
上のコメントを見て思ったのはスクリプトを起動するか否かのフラグみたいなのを作って
それをon/offできるようにしておいたほうがよさそうなのでそれも追加しておきます。

このスクリプトは結構前のスクリプトで私がまだrubyやツクールの仕様をあまり理解していないまま
書き始めたものなのでちょっとコードが汚いので一回書き直そうかなぁと思ってます。

ちょうど今作っているミニゲームでマップ上で敵を吹き飛ばす魔法ってのを作ったのですが
そこで座標変換をするmoduleと直線を通るタイルの配列を得るmoduleを作ったので
それを使って書き直そうかなとも考えているところです。

プロフィール

HN:
tentako
性別:
非公開

P R

フリーエリア