ランダムエンカウントをスクリプトでやる!!

投稿者:            mini ネコム 投稿日:2013/01/19 18:14

このコードで、ランダムエンカウント的な物を作れます。
誰でも考えられるでしょうが………
case (rand(5))
  when 1

  when 2

playBGM(XXX)
startTurnBattle(XXX)
playBGM(XXX)
if getTurnBattleResult() == 
    getTurnBattleWin()
  #勝ったとき
addMoney(120)
speak("120Gを手に入れた!")


  

elsif getTurnBattleResult() ==
    getTurnBattleLose()
  #負けたとき
speak("主人公は死んでしまった。")

  

elsif getTurnBattleResult() ==
    getTurnBattleRunAway()
  #逃げたとき
  

end

end

これを道全部に配置したら、それっぽくなるでしょう。(エンカウント率は確率を変えたりで調整して下さい。)
これの問題は敵が現れなかった場合、主人公がカクっと動いてしまいます…
なので、初代ドラ○エの用に、山などはこれを配置し、わざとカクっとさせるのも良いかもです。
それでは〜!

コメントする

コメントするには、ログインする必要があります。

コメント一覧

Material 154390 2 mini  創 (投稿日:2013/01/19 23:22, 履歴)
道全部はヤバイよ。
どんなにハイスペなパソでも重くなるぞw
            mini ネコム(投稿日:2013/01/20 12:08, 履歴)
道全部じゃなくていいってw
Material 154390 2 mini  創 (投稿日:2013/01/20 17:14, 履歴)
www
Cdv30200 aoi icon mini aoihikawa(投稿日:2013/01/19 18:55, 履歴)
最初の判定で
case文を使用しなてくも良いかと

中途半端に1があり、
2以外使用していない点も
ちょっとおかしなコードになってます
            mini ネコム(投稿日:2013/01/19 19:59, 履歴)
これでいいんですか?
case (rand(3))

  when 1
playBGM(XXX)
startTurnBattle(XXX)
playBGM(XXX)
if getTurnBattleResult() == 
    getTurnBattleWin()
  #勝ったとき
addMoney(120)
speak("120Gを手に入れた!")


  

elsif getTurnBattleResult() ==
    getTurnBattleLose()
  #負けたとき
speak("主人公は死んでしまった。")

  

elsif getTurnBattleResult() ==
    getTurnBattleRunAway()
  #逃げたとき
  

end

end
            mini ネコム(投稿日:2013/01/19 20:00, 履歴)
case文を使用しないとどういうコードになりますか?
User icon mini 退会したユーザー(投稿日:2013/01/19 20:26, 履歴)
rad = rand(10)
if rad < 1
  playBGM()
  startTurnBattle()
  playBGM()
  if getTurnBattleResult() ==
    getTurnBattleWin()
    #勝ったとき
  elsif getTurnBattleResult() ==
    getTurnBattleLose()
    #負けたとき
  elsif getTurnBattleResult() ==
    getTurnBattleRunAway()
    #逃げたとき
  end
end

かな?
            mini ネコム(投稿日:2013/01/19 20:58, 履歴)
ほうほう、ありがとうございます!
Cdv30200 aoi icon mini aoihikawa(投稿日:2013/01/19 23:35, 履歴)
ファイターさま>
基本形はそういった形ですね


ただい、これを
毎回イベントに書のは大変なので
ユーザ関数にしておき、
イベントは関数の呼び出しのみにします
User icon mini 退会したユーザー(投稿日:2013/01/20 08:34, 履歴)
>ユーザー関数にしておき、
>イベントは関数の呼び出しのみにします。

ですよね。その場合はこうやったほうが便利なのかな~
def battle(a,b)
  rad = rand(b)
  if rad < 1
    playBGM(XXX)
    startTurnBattle(a)
    playBGM(XXX)
    if getTurnBattleResult() ==
      getTurnBattleWin()
      #勝ったとき
    elsif getTurnBattleResult() ==
      getTurnBattleLose()
      #負けたとき
    elsif getTurnBattleResult() ==
      getTurnBattleRunAway()
      #逃げたとき
    end
  end
end


aがモンスターのID
bが確立みたいな感じかな。
あとは自由にお金でも経験値でもなんなり
User icon mini 退会したユーザー(投稿日:2013/01/20 08:35, 履歴)
確立×
確率○
  1 mini 闇さん(投稿日:2013/01/19 18:25, 履歴)
道全部に・・・・重い!!

ランダムに移動するイベントじゃ駄目なんですか?
マップに入る時ランダムでワープさせるてからなら
初期位置がどうとかもないですし
            mini ネコム(投稿日:2013/01/19 18:52, 履歴)
それでも別に良いのですが、別に道全部じゃなくても良いですし、書いた様に山だけとかに配置したら、重くなりませんよ。