FC2ブログ

RGSS2備忘録その10 エネミー大量・ランダム出現

こんばんわ( ^ω^)
RGSSシリーズは、もうやらないとルーカン様に誓いましたが、
やり方を教えてほしいという要望がありましたので、再開
することにしました。

今日やりまするのは、エネミー大量・ランダム出現というものです。
簡単にたくさんのエネミーの組み合わせを作り出せるというスクリプトです。
とにかく、はやくやりたいんだよ!(`・д・´)
という方は、とりあえず以下のスクリプトを、(ここに追加)という部分に
コピーしてください。
今回のは結構長いので、他のスクリプトを導入しているとエラーが起こる可能性があります。
必ずバックアップを取っておいてくださいね。

class Game_Troop
  def setup(troop_id)
    clear
    @troop_id = troop_id
    @enemies = []
    #★
    if $data_troops[troop_id].pages[0].list[0].code == 108
      setup2
      return
    end
    for member in troop.members
      next if $data_enemies[member.enemy_id] == nil
      enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
      enemy.hidden = member.hidden
      enemy.immortal = member.immortal
      enemy.screen_x = member.x
      enemy.screen_y = member.y
      @enemies.push(enemy)
    end
    make_unique_names
  end
 
  def setup2
    index = 0
    enemy_size = 0
    while $data_troops[@troop_id].pages[0].list[index].parameters[0] != nil
      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)
          enemy.hidden = false
          enemy.immortal = false
          @enemies.push(enemy)
          enemy_size += 1
        end
      end
      index += 1
    end
    make_unique_names
  end
end

class Spriteset_Battle
  def lined_up_enemies
    whole_x = 0
    i = 1
    for sprite in @enemy_sprites.reverse
      sprite.battler.screen_y = 285
      whole_x += (sprite.width * sprite.zoom_x).ceil
      i += 1
    end
    line = (whole_x / 544) + 1
    j = 1
    for sprite in @enemy_sprites.reverse
      sprite.battler.screen_x = (544 / (1 + @enemy_sprites.size)) * j
      sprite.battler.screen_y -= (j % line) * 15
      j += 1
    end
  end
end
 
class Scene_Battle
  def start
    super
    $game_temp.in_battle = true
    @spriteset = Spriteset_Battle.new
    @message_window = Window_BattleMessage.new
    @action_battlers = []
    create_info_viewport
    @spriteset.lined_up_enemies #★
  end
end

class Window_TargetEnemy
  def initialize
    commands = []
    @enemies = []
    for enemy in $game_troop.members
      next unless enemy.exist?
      commands.push(enemy.name)
      @enemies.push(enemy)
    end
    row = (@enemies.size / 2) + 1
    super(416, commands, 2, row)
    self.height = 4 * WLH + 32
  end
end



スクリプトの説明は省略します。
どうしても訊きたいことがある方はコメントの方にお願いいたします。

エネミーの指定は、バトルイベントの1ページ目の1行目から注釈で次のように
入力してください。
[r, n, ID1, ID2, ID3・・・・]
r = 出現確率 1~100までの数字
n = 繰り返し数 1以上の数字
ID1, ID2・・・ = ランダムに出現させるエネミーのID


IDが、1、2、3のエネミーを80%の出現確率で、最大10匹登場させたい場合は、

[80, 10, 1, 2, 3]

という風になります。
また、括弧おきに改行して、複数の指定もできます。
080417_01.jpg

という風に。


バトルイベントの1ページ目の1行目を注釈にすることによって、今回のスクリプトが
実行されます。注釈で括弧以外のことを書くと、エラーが起こりますので
注意してください。
出現確率をかなり低い値にしても、1匹目は必ず出現します。
戦闘画面に切り替わったが、エネミーが全く登場しなかった、ということは起こりません。

説明は以上ですが、
あまりエネミーを出しすぎると夢にも出てきますので、注意してくださいね( ^ω^)
ではまた(^▽^)ノシ
スポンサーサイト

RPGツクールVX  エネミーランダム・大量出現

(^▽^)ノ やぁ
今日からQuest Mania 開発日記というシリーズをはじめます。
Quest Maniaというのは今SupponがRPGツクールVXで開発中のRPGです。
一応公式ホームページもあります。→こちら

ふと、おもたのですが、
敵グループをひとつひとつ作っていくのはめんどくさいです。(´・ω・`)
いろんな敵の組み合わせを考えると大変です。
何種類か選んだ中からランダムで、出現させるって言う方法があれば
らくなのになー。なんでないんだろ?

ということで、ここはスクリプトで解決することにしました。

やりかたは簡単、$game_troop.memberにGame_Enemyクラスの
インスタンスをpushしていけばいいだけです。
あと、スプライトを表示させるために、そっちのほうもちょっといじりますが。

エネミーの指定の仕方は、バトルイベントの中に
[出現確率, n, ID1, ID2, ID3・・・]という風に注釈として入れます。
出現確率には0~100の数字を、nには繰り返す数を、そのあとに選ぶエネミーのIDを
入れてやります。
注釈は文字列として読み取ることができるので、evalを使ってスクリプトとして適用できます。

あとは、テキトウに並ばせるようにして、
ハイ!完成!(^▽^)ノ
080413_01.jpg


これで、一個の敵グループでたくさんのエネミーの組み合わせを作ることができました。

怒涛のキングスライム12匹分のスライム登場(´・ω・)つ
080413_02.jpg


戦闘が長くなるので、ゲーム中ではこんなにたくさんはでません。( ^ω^)
(・・・たぶんね)

Quest Mania 作成再開

また久々に更新いたします。( ^ω^)
FCブログは、更新してないと広告がついちゃうからね。
ま、別にちっちゃな広告なら別にどおってこと無いんだけどね。

それと、休んでたQuest Maniaの開発を再開しようと思います。

無双おろちも飽きちゃったしな。

正確に言うと飽きちゃったわけじゃないんだけど、
やっているうちにコントローラの反応が鈍くなってきて
技が思うように出なくなってきたので
やってるとイライラ感じるようになりましたので。

もういいやってなっちゃいました。( ^ω^)

RGSSは、もうやらないと思います。
てごろで、使えそうなスクリプトはもう無いと思いますので。
期待していた人ごめんなさい(´;ω;`)ウッ

って、誰もいないか( ^ω^)

でわ ノシ
プロフィール

Suppon

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

Twitter...

Twitter Reload

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

この人とブロともになる