RGSS3備忘録エネミー大量ランダム出現

2011/12/19追記
クラスGame_Troopの @enemiesが初期化されない
バグを修正しました。


どうもSupponです。( ^▽^)
なにかと需要があるスクリプトらしいので、
今回も作ってみました。
恒例のエネミー大量ランダム出現です。( ^ω^)

111217_01_weblog.jpg

こちらがスクリプトです。
じゃじゃじゃーん

module Suppon
  Random_Appearance = true #使用しない場合はfalseにしてください。
end

class Game_Troop
 
  attr_reader :suppon001_random_troop
 
  alias suppon001_clear clear
  def clear
    suppon001_clear
    @suppon001_random_troop = false
  end
 
  alias suppon001_setup setup
  def setup(troop_id)
    unless Suppon::Random_Appearance and use_random_appearance?(troop_id)
      suppon001_setup(troop_id)
      return
    end
    clear
    @suppon001_random_troop = true
    @troop_id = troop_id
    index = 1
    enemy_size = 0
    while $data_troops[@troop_id].pages[0].list[index].parameters[0]
      a = eval($data_troops[@troop_id].pages[0].list[index].parameters[0])
      for i in 1..a[1]
        enemy_id = a[rand(a.size - 2) + 2]
        if (a[0] > rand(100)) or (enemy_size == 0)
          enemy = Game_Enemy.new(enemy_size, enemy_id)
          @enemies.push(enemy)
          enemy_size += 1
        end
      end
      index += 1
    end
    init_screen_tone
    make_unique_names
  end
 
  def use_random_appearance?(troop_id)
    list = $data_troops[troop_id].pages[0].list[0]
    return list.parameters[0] == "<random_appearance>"
  end

end

class Spriteset_Battle
  def lined_up_enemies
    whole_x = 0
    i = 1
    for sprite in @enemy_sprites.reverse
      base_y = (Graphics.height * 0.7).ceil
      depth = (Graphics.height * 0.15).ceil
      sprite.battler.screen_y = base_y
      whole_x += (sprite.width * sprite.zoom_x).ceil
      i += 1
    end
    line = (whole_x / Graphics.width) + 1
    j = 1
    for sprite in @enemy_sprites.reverse
      sprite.battler.screen_x=(Graphics.width/(1+@enemy_sprites.size)) * j
      sprite.battler.screen_y -= depth - (depth * 0.8 ** (j % line)).ceil
      j += 1
    end
  end
end

class Scene_Battle
  alias suppon001_create_spriteset create_spriteset
  def create_spriteset
    suppon001_create_spriteset
    c1 = Suppon::Random_Appearance
    c2 = $game_troop.suppon001_random_troop
    @spriteset.lined_up_enemies if c1 and c2
  end
end



使い方は、VXのときとほとんど同じですが、
イベントリストの1ページ目の1行目に<random_appearance>と入れた
場合に、動作するようにしました。

111217_02_weblog.jpg

括弧の中の意味は
[r, n, ID1, ID2, ID3・・・・]
r : 出現確率0~100の整数
n : 繰り返す回数 1以上の整数
ID1, ID2, ID3・・・ : エネミーのIDです。

括弧以外のことを書いたり、イベントを入れたりすると
エラーが発生するので注意してください。

では長い長いバトルをお楽しみください。( ^ω^)ノシ
スポンサーサイト

テーマ : RPGツクール
ジャンル : ゲーム

コメントの投稿

管理者にだけ表示を許可する

早速使用してみました!

こんばんはー、お邪魔いたします。

スクリプトを導入してみましたところ、エラーが発生する事なく、すぐに使用することができました。
半ば諦めていたスクリプトをすぐに作成していただき、本当に感謝しております!
敵キャラをランダムでずらっと並べられるのは、やっぱり楽しいですね♪

ただすみません、使用してみて2点だけ気になった事がありまして…。

1戦目は良いのですが、2戦目・3戦目とランダム出現戦闘を繰り返すと、なぜか敵キャラの配置が
どんどん右に寄ってしまいまして、5戦目ほどで全ての敵が右端に表示されてしまいました。

もう一つは、「スライムA」と戦った後、次の別の戦闘で遭遇した
1匹しかいない「スライム」が「スライムB」になってしまいました。

後者は良いのですが、前者は見栄え的にかなり残念な感じで改善策を頂けると有り難いのですが…(^^;)
また、こちらの何らかの設定ミスでしたらすみません。どうか宜しくお願いいたします。

ごめんなさい

こんばんはです。ケイシルさん。
きちんとテストしないでアップしてすみませんでした。(つω;`)ウッ
今日はもうおそいので、寝ますが、
スクリプトをパッと見た感じでは、どこが原因なのか
わからないので、修正には数日かかると思います。

いえいえ

こちらこそせっかく作って頂いたのにダメ出ししてしまい申し訳ないです。
いくらでも待てますので、…というか年末の忙しい時期にホントすみません<(_ _)>

修正しました。

ケイシルさーん
直しましたよー。

@suppon001_random_troop = trueと書いてある
行の前にclearっていれるのを
単純にわすれてました(ノ´∀`)テヘ

もし、また不具合がありましたら是非
お知らせください( ^▽^)

さすがですー

すごいすごいバッチリ解決しました~。Supponさん、どうも有り難うございました!

ここまでして頂いたからには、このスクリプトを使用したゲームをまずは何か作らなきゃですね。
正直自分は大したゲームは作れないのですが、これは絶対重宝すると思います。感謝、感謝です。(´∇`)

今後もお邪魔でなければ、また訪問させて頂きますね!
この度はお願いを聞いて頂き、本当に有り難うございました。

ご報告ありがとうございます。m(_ _)m

とりあえず、問題なさそうなので
ホッとしております。(´・ω・)=3

ケイシルさんのゲームが無事
完成されることを寝る間も惜しまず
お祈りしております。
でわ( ^▽^)ノシ

あけましておめでとうございます♪

こんにちは~、昨年お世話になったサイト様に挨拶回りをしております。
先日はありがとうございました。Supponさんには大変感謝いたしております。

応援のお言葉まで有り難うございます!ツクールの作成もようやく開始しました。
Aceは機能が多くて楽しいですが、なかなか使いこなすのが大変ですねー。
慣れる為に小さい作品をバンバン作る感じでいこうかなと思ってます。

何か作品が完成しましたらお伝えしに上がりますので、
また一つ、どうぞ宜しくお願いいたします。m(^-^)m

謹賀新年

あけおめ~( ^▽^)
あっという間に年があけてしまいましたねぇ。
わざわざ新年の挨拶に来ていただきましてありがとうございます。
ケイシルさんのゲームが完成したら
是非、お知らせくださいね。( ^▽^)
当方もそろそろゲーム作成に向け
本腰を入れようかと思っています。
今度こそちゃんとしたゲームができると
いいのですが・・・(´・ω・`)

では、よいお年を( ^▽^)ノシ
プロフィール

Suppon

Author:Suppon
すっぽんでーす。(^▽^)
カルドラ鋭意制作中( ・`ω・´)
Twitter => suppon01
メールはこちらへ
suppon2008@gmail.com

Twitter...

Twitter Reload

最近のコメント
最近のトラックバック
月別アーカイブ
カテゴリー
ブログ内検索
RSSフィード
リンク
ブロとも申請フォーム

この人とブロともになる