ミニゲーム:スーパーポーカー in VXA


いろいろとオカしなポーカーハンドの多い噂のスーパーポーカースクリプトです。 SceneManager.call(Scene_S_porkar) にてゲーム開始。 ミニゲーム用共通処理モジュール in VXAが必要です。 ゲーム内部で使用する画像は Graphics/Pictures にインポートしてください。 変更点 2013:06:16 ・所持金ベット方式と変数ベット方式を選択可能に
#==============================================================================
# ミニゲーム:スーパーポーカー in VX Ace By 貪藻矢射妥←
#------------------------------------------------------------------------------
# 貪藻矢射妥←ルール満載のポーカーです。
# 
# SceneManager.call(Scene_S_porkar)
# にてゲームを開始できます。
# 
# ポーカーハンドはカスタマイズポイントで増やすことができます。
# 
# EX)
# PH_XXX = [1, ← ポーカーハンドの獲得金額の倍率
#           [[DC, 14], [DC, 14], [DC, 14], [DC, 14], [DC, 14]],
#           ...                                               ,
#           ...                                                ]
# 
# [スート, 数字]の配列を5つ、そのポーカーハンドのパターン数分配列でもつ
# というなんともややこしいことになっております。
# 
# スートには数字かDCかFSを設定、数字には数時かDC、N1〜4、B1〜2を設定します。
# それぞれの意味は・・・
# DC:何でもいい場合の設定
# FS:スートが同じ場合の設定(フラッシュの処理)
# Nn:n番目のカードから数字を全て固定したい場合の設定
# Bn:前のカードの数時よりもn多い場合の設定(ストレートの処理)
# 
# ※ぢつは面倒なことにAとジョーカーが連番ということになっていますので、
#  ストレート系で何かポーカーハンドを増やしたい場合は気をつけてください。
# 
# ※現状A 2 3 4 5といったストレートは実現できません。すみません。
# 
# ※ちなみに、判定部分とかも変更する必要があります。
# 
#==============================================================================
# 変更履歴
# 2013:06:16
# ・所持金ベット方式と変数ベット方式を選択可能に

module S_PORKAR
  include BM
  # トランプの図柄セット
  CARD_ROOT="tr_set"
  # トランプ一枚のサイズ
  TR_WIDTH  = 72
  TR_HEIGHT = 100
  # トランプ一枚の描画倍率
  TR_DRAW_RATE = 0.8
  # ベット方式
  SPK_BET_TYPE = MINI_GAME::MG_BET_TYPE_COIN
  
  #--------------------------------------------------------------------------
  # トランプセッティング
  #--------------------------------------------------------------------------
  def set_tranp
    $card = [[], [], [], []]
    for i in 0...4
      for j in 0...15
        # 0の場合、カードの裏を設定(未使用)
        if j == 0
          $card[i][j] = Rect.new(13 * TR_WIDTH, 0, TR_WIDTH, TR_HEIGHT)
        # 14の場合、ジョーカーを設定
        elsif j == 14
          if i / 2 == 0
            $card[i][j] = Rect.new(13 * TR_WIDTH, 1 * TR_HEIGHT, 
                                   TR_WIDTH, TR_HEIGHT)
          else
            $card[i][j] = Rect.new(13 * TR_WIDTH, 2 * TR_HEIGHT, 
                                   TR_WIDTH, TR_HEIGHT)
          end
        # 13の場合、エースを設定
        elsif j == 13
          $card[i][j] = Rect.new(0, i * TR_HEIGHT, TR_WIDTH, TR_HEIGHT)
        # それ以外の場合
        else
          $card[i][j] = Rect.new(j * TR_WIDTH, i * TR_HEIGHT, 
                                 TR_WIDTH, TR_HEIGHT)
        end
      end
    end
  end
  
  # 最大交換回数
  CHANGE_MAX = 15
end

module PH_SET
  # ポーカーハンド設定集
  
  # スート、数時を気にしない〜カード
  DC = "Don't_Care"
  # スートを固定するカード
  FS = "FixSurt"
  # 数字を固定するカード(1枚目)
  N1 = "FixNum_1"
  # 数字を固定するカード(2枚目)
  N2 = "FixNum_2"
  # 数字を固定するカード(3枚目)
  N3 = "FixNum_3"
  # 数字を固定するカード(4枚目)
  N4 = "FixNum_4"
  # ストレート用のアレ
  B1 = "Before_1"
  B2 = "Before_2"
  
  # オールマイティ
  PH_ALL = [200,
            [[DC, 14], [DC, 14], [DC, 14], [DC, 14], [DC, 14]]]
  # シャッフル同盟
  PH_SUF = [150,
            [[ 3, 10], [ 0, 11], [ 2, 12], [ 1, 13], [DC, 14]]]
  # ロイヤルストレートフラッシュ
  PH_RSF = [105,
            [[FS,  9], [FS, 10], [FS, 11], [FS, 12], [FS, 13]],
            [[FS,  9], [FS, 10], [FS, 11], [FS, 12], [DC, 14]],
            [[FS,  9], [FS, 10], [FS, 11], [FS, 13], [DC, 14]],
            [[FS,  9], [FS, 10], [FS, 12], [FS, 13], [DC, 14]],
            [[FS, 10], [FS, 11], [FS, 12], [FS, 13], [DC, 14]],
            [[FS,  9], [FS, 10], [FS, 11], [DC, 14], [DC, 14]],
            [[FS,  9], [FS, 10], [FS, 12], [DC, 14], [DC, 14]],
            [[FS,  9], [FS, 11], [FS, 12], [DC, 14], [DC, 14]],
            [[FS, 10], [FS, 11], [FS, 12], [DC, 14], [DC, 14]],
            [[FS,  9], [FS, 10], [FS, 13], [DC, 14], [DC, 14]],
            [[FS,  9], [FS, 11], [FS, 13], [DC, 14], [DC, 14]],
            [[FS, 10], [FS, 11], [FS, 13], [DC, 14], [DC, 14]],
            [[FS,  9], [FS, 12], [FS, 13], [DC, 14], [DC, 14]],
            [[FS, 10], [FS, 12], [FS, 13], [DC, 14], [DC, 14]],
            [[FS, 11], [FS, 12], [FS, 13], [DC, 14], [DC, 14]]]
  # ブラックジャック・ダブル
  PH_BJW = [75,
            [[ 0,  5], [ 0,  6], [ 0,  7], [ 0, 10], [ 0, 13]],
            [[ 1,  5], [ 1,  6], [ 1,  7], [ 1, 10], [ 1, 13]]]
  # ファイブカードフラッシュ
  PH_5CF = [55,
            [[FS, N1], [FS, N1], [FS, N1], [FS, N1], [FS, N1]],
            [[FS, N1], [FS, N1], [FS, N1], [FS, N1], [DC, 14]],
            [[FS, N1], [FS, N1], [FS, N1], [DC, 14], [DC, 14]],
            [[FS, N1], [FS, N1], [DC, 14], [DC, 14], [DC, 14]],
            [[DC, DC], [DC, 14], [DC, 14], [DC, 14], [DC, 14]]]
  # スペシャル・ハンズ
  PH_SPH = [40,
            [[FS,  4], [FS,  6], [FS,  7], [FS,  9], [FS, 10]]]
  # ストレートフラッシュ
  PH_STF = [28,
            [[FS, DC], [FS, B1], [FS, B1], [FS, B1], [FS, B1]],
            [[FS, DC], [FS, B1], [FS, B1], [FS, B1], [DC, 14]],
            [[FS, DC], [FS, B2], [FS, B1], [FS, B1], [DC, 14]],
            [[FS, DC], [FS, B1], [FS, B2], [FS, B1], [DC, 14]],
            [[FS, DC], [FS, B1], [FS, B1], [FS, B2], [DC, 14]],
            [[FS, DC], [FS, B1], [FS, B1], [DC, 14], [DC, 14]],
            [[FS, DC], [FS, B2], [FS, B1], [DC, 14], [DC, 14]],
            [[FS, DC], [FS, B1], [FS, B2], [DC, 14], [DC, 14]],
            [[FS, DC], [FS, B2], [FS, B2], [DC, 14], [DC, 14]]]
  # フォアカードフラッシュ
  PH_4CF = [20,
            [[FS, DC], [FS, N2], [FS, N2], [FS, N2], [FS, N2]],
            [[FS, N1], [FS, N1], [FS, N1], [FS, N1], [FS, DC]],
            [[FS, DC], [FS, N2], [FS, N2], [FS, N2], [DC, 14]],
            [[FS, N1], [FS, N1], [FS, N1], [FS, DC], [DC, 14]],
            [[FS, DC], [FS, N2], [FS, N2], [DC, 14], [DC, 14]],
            [[FS, N1], [FS, N1], [FS, DC], [DC, 14], [DC, 14]],
            [[FS, DC], [FS, DC], [DC, 14], [DC, 14], [DC, 14]]]
  # ファイブカード
  PH_5CD = [15,
            [[DC, N1], [DC, N1], [DC, N1], [DC, N1], [DC, N1]],
            [[DC, N1], [DC, N1], [DC, N1], [DC, N1], [DC, 14]],
            [[DC, N1], [DC, N1], [DC, N1], [DC, 14], [DC, 14]],
            [[DC, N1], [DC, N1], [DC, 14], [DC, 14], [DC, 14]]]
  # フルハウスフラッシュ
  PH_FHF = [12,
            [[FS, N1], [FS, N1], [FS, N3], [FS, N3], [FS, N3]],
            [[FS, N1], [FS, N1], [FS, N1], [FS, N4], [FS, N4]],
            [[FS, N1], [FS, N1], [FS, N3], [FS, N3], [DC, 14]]]
  # フォアカード
  PH_4CD = [10,
            [[DC, DC], [DC, N2], [DC, N2], [DC, N2], [DC, N2]],
            [[DC, N1], [DC, N1], [DC, N1], [DC, N1], [DC, DC]],
            [[DC, DC], [DC, N2], [DC, N2], [DC, N2], [DC, 14]],
            [[DC, N1], [DC, N1], [DC, N1], [DC, DC], [DC, 14]],
            [[DC, DC], [DC, N2], [DC, N2], [DC, 14], [DC, 14]],
            [[DC, N1], [DC, N1], [DC, DC], [DC, 14], [DC, 14]],
            [[DC, DC], [DC, DC], [DC, 14], [DC, 14], [DC, 14]]]
  # フルハウス
  PH_FHS = [8.5,
            [[DC, N1], [DC, N1], [DC, N3], [DC, N3], [DC, N3]],
            [[DC, N1], [DC, N1], [DC, N1], [DC, N4], [DC, N4]]]
  # スリーカードフラッシュ
  PH_3CF = [7,
            [[FS, DC], [FS, DC], [FS, N3], [FS, N3], [FS, N3]],
            [[FS, DC], [FS, N2], [FS, N2], [FS, N2], [FS, DC]],
            [[FS, N1], [FS, N1], [FS, N1], [FS, DC], [FS, DC]],
            [[FS, DC], [FS, DC], [FS, N3], [FS, N3], [DC, 14]],
            [[FS, DC], [FS, N2], [FS, N2], [FS, DC], [DC, 14]],
            [[FS, N1], [FS, N1], [FS, DC], [FS, DC], [DC, 14]],
            [[FS, DC], [FS, DC], [FS, DC], [DC, 14], [DC, 14]]]
  # ツーペアフラッシュ
  PH_2PF = [5,
            [[FS, DC], [FS, N2], [FS, N2], [FS, N4], [FS, N4]],
            [[FS, N1], [FS, N1], [FS, DC], [FS, N4], [FS, N4]],
            [[FS, N1], [FS, N1], [FS, N3], [FS, N3], [FS, DC]]]
  # ワンペアフラッシュ
  PH_1PF = [4,
            [[FS, DC], [FS, DC], [FS, DC], [FS, N4], [FS, N4]],
            [[FS, DC], [FS, DC], [FS, N3], [FS, N3], [FS, DC]],
            [[FS, DC], [FS, N2], [FS, N2], [FS, DC], [FS, DC]],
            [[FS, N1], [FS, N1], [FS, DC], [FS, DC], [FS, DC]],
            [[FS, DC], [FS, DC], [FS, DC], [FS, DC], [DC, 14]]]
  # フラッシュ
  PH_FLS = [3,
            [[FS, DC], [FS, DC], [FS, DC], [FS, DC], [FS, DC]]]
  # ストレート
  PH_STT = [2.5,
            [[DC, DC], [DC, B1], [DC, B1], [DC, B1], [DC, B1]],
            [[DC, DC], [DC, B1], [DC, B1], [DC, B1], [DC, 14]],
            [[DC, DC], [DC, B2], [DC, B1], [DC, B1], [DC, 14]],
            [[DC, DC], [DC, B1], [DC, B2], [DC, B1], [DC, 14]],
            [[DC, DC], [DC, B1], [DC, B1], [DC, B2], [DC, 14]],
            [[DC, DC], [DC, B1], [DC, B1], [DC, 14], [DC, 14]],
            [[DC, DC], [DC, B2], [DC, B1], [DC, 14], [DC, 14]],
            [[DC, DC], [DC, B1], [DC, B2], [DC, 14], [DC, 14]]]
  # スリーカード
  PH_3CD = [2,
            [[DC, DC], [DC, DC], [DC, N3], [DC, N3], [DC, N3]],
            [[DC, DC], [DC, N2], [DC, N2], [DC, N2], [DC, DC]],
            [[DC, N1], [DC, N1], [DC, N1], [DC, DC], [DC, DC]],
            [[DC, DC], [DC, DC], [DC, N3], [DC, N3], [DC, 14]],
            [[DC, DC], [DC, N2], [DC, N2], [DC, DC], [DC, 14]],
            [[DC, N1], [DC, N1], [DC, DC], [DC, DC], [DC, 14]],
            [[DC, DC], [DC, DC], [DC, DC], [DC, 14], [DC, 14]]]
  # ツーペア
  PH_2PC = [1.5,
            [[DC, DC], [DC, N2], [DC, N2], [DC, N4], [DC, N4]],
            [[DC, N1], [DC, N1], [DC, DC], [DC, N4], [DC, N4]],
            [[DC, N1], [DC, N1], [DC, N3], [DC, N3], [DC, DC]]]
  # ワンペア
  PH_1PC = [0,
            [[DC, DC], [DC, DC], [DC, DC], [DC, N4], [DC, N4]],
            [[DC, DC], [DC, DC], [DC, N3], [DC, N3], [DC, DC]],
            [[DC, DC], [DC, N2], [DC, N2], [DC, DC], [DC, DC]],
            [[DC, N1], [DC, N1], [DC, DC], [DC, DC], [DC, DC]],
            [[DC, DC], [DC, DC], [DC, DC], [DC, DC], [DC, 14]]]
  
  # 判定用配列
  JUDG_LIST = [nil,    PH_ALL, PH_SUF, PH_RSF, PH_BJW, PH_5CF, PH_SPH, 
               PH_STF, PH_4CF, PH_5CD, PH_FHF, PH_4CD, PH_FHS, PH_3CF, 
               PH_2PF, PH_1PF, PH_FLS, PH_STT, PH_3CD, PH_2PC, PH_1PC]
end

class Game_System
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :ph_set                   # ポーカーハンド変数セット
end

class Window_Super_Porkar < Window_Selectable
  include BM
  include PH_SET
  include TITLE_BM
  include S_PORKAR
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 48, 384, 272 + 8 - 48)
  end
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh(cards)
    contents.clear
    
    @list = []
    for card in cards
      @list.push([card[0].to_i, card[1].to_i])
    end
    
    buble_sort
    draw_sporkar
  end
  #--------------------------------------------------------------------------
  # ● トランプのソート
  #--------------------------------------------------------------------------
  def buble_sort
      @list.sort! {|a, b| a[1] <=> b[1] }
  end
  #--------------------------------------------------------------------------
  # ● トランプの描画
  #--------------------------------------------------------------------------
  def draw_sporkar
    contents.clear
    
    for i in 0..4
      draw_card($card[@list[i][0]][@list[i][1]], 15 + i * 80 * TR_DRAW_RATE, 30)
    end
  end
  #--------------------------------------------------------------------------
  # ● グラフィックの描画
  #--------------------------------------------------------------------------
  def draw_card(card, x, y, opacity = MAX8BIT)
    @cw = card.width
    contents.stretch_blt(Rect.new(x, y, TR_WIDTH * TR_DRAW_RATE, TR_HEIGHT * TR_DRAW_RATE), 
                         Cache.picture(CARD_ROOT), card, opacity)
  end
  #--------------------------------------------------------------------------
  # ● トランプの交換
  #--------------------------------------------------------------------------
  def card_change(index)
    #@list[index] = [1, 14]
    @list[index] = [rand(4), rand(14) + 1]
    buble_sort
    draw_sporkar
  end
  #--------------------------------------------------------------------------
  # ● カーソルアップデート準備
  #--------------------------------------------------------------------------
  def cu_update(index)
    @index = index
    @cursor_width = @cw - 4
    update_cursor_rect
  end
  #--------------------------------------------------------------------------
  # ● カーソルの矩形更新
  #--------------------------------------------------------------------------
  def update_cursor_rect
    # カーソル位置が 0 未満の場合
    if @index < 0
      cursor_rect.empty
      return
    end
    # カーソルの座標を計算
    x = 10 + @index * 80 * TR_DRAW_RATE
    y = 30 - 8
    # カーソルの矩形を更新
    cursor_rect.set(x, y, @cursor_width * TR_DRAW_RATE + 16, 100 * TR_DRAW_RATE + 16)
  end
  #--------------------------------------------------------------------------
  # ● 判定用ダミーデータ作成
  #--------------------------------------------------------------------------
  def make_dmy_ary(root)
    # ダミー配列を完全別物としてコピーする。(深いコピー)
    @dummy = Marshal.load(Marshal.dump(root))
    
    for i in 1...@dummy.size
      for j in 0..4
        if @dummy[i][j][0] == FS
          @dummy[i][j][0] = @list[0][0]
        elsif @dummy[i][j][0] == DC
          @dummy[i][j][0] = @list[j][0]
        end
        if @dummy[i][j][1] == N1
          @dummy[i][j][1] = @list[0][1]
        elsif @dummy[i][j][1] == N2
          @dummy[i][j][1] = @list[1][1]
        elsif @dummy[i][j][1] == N3
          @dummy[i][j][1] = @list[2][1]
        elsif @dummy[i][j][1] == N4
          @dummy[i][j][1] = @list[3][1]
        elsif @dummy[i][j][1] == B1
          @dummy[i][j][1] = @dummy[i][j - 1][1] + 1
        elsif @dummy[i][j][1] == B2
          @dummy[i][j][1] = @dummy[i][j - 1][1] + 2
        elsif @dummy[i][j][1] == DC
          @dummy[i][j][1] = @list[j][1]
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● ポーカーハンド判定
  #--------------------------------------------------------------------------
  def sporkar_judg
    judg_list = JUDG_LIST
    
    for i in 1...judg_list.size
      make_dmy_ary(judg_list[i].clone)    
      for j in 1...@dummy.size
        if @list == @dummy[j]
          # A、ジョーカーが続いた場合、ストレートでは無いと判断させる
          if (i == 7 || i == 17) && @list[1][1] != 13
            $game_system.ph_set = [i,judg_list[i][0]]
            return
          else
            $game_system.ph_set = [i,judg_list[i][0]]
            return
          end
        end
      end
    end
  end
end

class Scene_S_porkar < Scene_Minigame_Base
  include S_PORKAR
  include MINI_GAME
  #--------------------------------------------------------------------------
  # ● スーパーポーカー初期化
  #--------------------------------------------------------------------------
  def sporkar_init(flg = true)
    $game_system.ph_set = [0, 0]
    @start_flg = false
    @set_flg = false
    @bet_gold = 0
    @index = 0
    @change = 0
    set_tranp
    @sp_cards = [[0, 0], [1, 0], [2, 0], [3, 0], [0, 0]]
    if flg == true
      @sporkar_window.refresh(@sp_cards)
    end
  end
  #--------------------------------------------------------------------------
  # ● スーパーポーカー 清算
  #--------------------------------------------------------------------------
  def get_gold
    get = Integer(@bet_gold * $game_system.ph_set[1])
    if get > MAX_GOLD
      get = MAX_GOLD
    end
    if get > 0
      get_lost_gold_coin(get, MG_GOLDCOIN_GET, SPK_BET_TYPE)
      text = GET_GOLD[SPK_BET_TYPE] + get.to_s
      @info_window.refresh(text)
    else
      get_lost_gold_coin(@bet_gold, MG_GOLDCOIN_LOST, SPK_BET_TYPE)
      text = LOST_GOLD[SPK_BET_TYPE] + @bet_gold.to_s
      @info_window.refresh(text)
    end
    
    text_flash = "フラッシュ"
    
    case $game_system.ph_set[0]
    when 0
      text2 = "役無し"
      se = LOOSE_ME
    when 1
      text2 = "オールマイティ"
      se = JACK_POT_ME1
    when 2
      text2 = "シャッフル同盟"
      se = JACK_POT_ME2
    when 3
      text2 = "ロイヤルストレート" + text_flash
      se = JACK_POT_ME2
    when 4
      text2 = "ブラックジャック・ダブル"
      se = JACK_POT_ME2
    when 5
      text2 = "ファイブカード" + text_flash
      se = JACK_POT_ME3
    when 6
      text2 = "スペシャル・ハンズ"
      se = JACK_POT_ME3
    when 7
      text2 = "ストレート" + text_flash
      se = JACK_POT_ME3
    when 8
      text2 = "フォアカード" + text_flash
      se = JACK_POT_ME4
    when 9
      text2 = "ファイブカード"
      se = JACK_POT_ME4
    when 10
      text2 = "フルハウス" + text_flash
      se = JACK_POT_ME4
    when 11
      text2 = "フォアカード"
      se = JACK_POT_ME4
    when 12
      text2 = "フルハウス"
      se = JACK_POT_ME5
    when 13
      text2 = "スリーカード" + text_flash
      se = JACK_POT_ME5
    when 14
      text2 = "ツーペア" + text_flash
      se = JACK_POT_ME5
    when 15
      text2 = "ワンペア" + text_flash
      se = JACK_POT_ME6
    when 16
      text2 = text_flash
      se = JACK_POT_ME6
    when 17
      text2 = "ストレート"
      se = JACK_POT_ME6
    when 18
      text2 = "スリーカード"
      se = JACK_POT_ME6
    when 19
      text2 = "ツーペア"
      se = JACK_POT_ME6
    when 20
      text2 = "ワンペア"
      se = LOOSE_ME
    end
    
    @change_info_window.refresh(text2, nil)
    
    se.play
  end
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  def start
    super
    create_minigame_window(SPK_BET_TYPE)
    
    # インフォウィンドウ その2
    @change_info_window = Window_Info_Space2.new
    
    # スーパーポーカーメインウィンドウ
    @sporkar_window = Window_Super_Porkar.new
    @sporkar_window.activate
    
    set_keyhelp1
    
    sporkar_init
    @bet_window.refresh(@bet_gold)
    @title_window.refresh("スーパーポーカー")
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新(基本)
  #--------------------------------------------------------------------------
  def update_basic
    super
    if @start_flg == true
      if @set_flg == false
        @sp_cards = [[rand(4), rand(14) + 1], [rand(4), rand(14) + 1], 
                     [rand(4), rand(14) + 1], [rand(4), rand(14) + 1], 
                     [rand(4), rand(14) + 1]]
        @sporkar_window.refresh(@sp_cards)
        @set_flg = true
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    if @sporkar_window.active
      update_main
    end
    if @value_window.active
      update_value
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (メインウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_main
    # B ボタンが押された場合
    if Input.trigger?(:B)
      # キャンセル SE を演奏
      Sound.play_cancel
      if @start_flg
        @sporkar_window.cu_update(-1)
        set_keyhelp1
        @start_flg = false
      else
        #$game_system.windowskin_name = WINDOW_SKIN_ROOT
        return_scene
      end
      return
    end
    if !@start_flg
      # A ボタンが押された場合
      if Input.trigger?(:A)
        # 決定 SE を演奏
        Sound.play_ok
        # 念の為
        @sporkar_window.refresh(@sp_cards)
        value_window_activate
      
        @value_window.number = @bet_gold
      
        @sporkar_window.deactivate
        set_keyhelp3
        return
      end
    end
    if @start_flg
      # X ボタンが押された場合
      if Input.trigger?(:X)
        # 決定 SE を演奏
        Sound.play_ok
        @sporkar_window.sporkar_judg
        get_gold
        sporkar_init(false)
        @bet_window.refresh(@bet_gold)
        @gold_window.refresh
        @sporkar_window.cu_update(-1)
        set_keyhelp1
        return
      end
      # 方向ボタンの右が押された場合
      if Input.repeat?(:RIGHT)
        Sound.play_cursor
        if @index == 4
          @index = 0
        else
          @index += 1
        end
        @sporkar_window.cu_update(@index)
      end
      # 方向ボタンの左が押された場合
      if Input.repeat?(:LEFT)
        Sound.play_cursor
        if @index == 0
          @index = 4
        else
          @index -= 1
        end
        @sporkar_window.cu_update(@index)
      end
    end
    
    # C ボタンが押された場合
    if Input.trigger?(:C)
      if @bet_gold == 0
        # エラー SE を演奏
        ERROR_SE.play
        text =  "まずは" + MG_ERR_BET_ZERO[SPK_BET_TYPE]
        @info_window.refresh(text)
      else
        # 決定 SE を演奏
        Sound.play_ok
        @info_window.refresh("")
        @change_info_window.refresh(@change, CHANGE_MAX)
        if !@start_flg
          @start_flg = true
          @sporkar_window.cu_update(@index)
          set_keyhelp2
        elsif @start_flg
          @change += 1
          @change_info_window.refresh(@change, CHANGE_MAX)
          @sporkar_window.card_change(@index)
          @sporkar_window.cu_update(@index)
        end
        if @change == CHANGE_MAX
          @sporkar_window.sporkar_judg
          get_gold
          sporkar_init(false)
          @bet_window.refresh(@bet_gold)
          @gold_window.refresh
          @sporkar_window.cu_update(-1)
          set_keyhelp1
        end
        return
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新 (バリューウィンドウがアクティブの場合)
  #--------------------------------------------------------------------------
  def update_value
    #refresh
    # C ボタンが押された場合
    if Input.trigger?(:C)
      if (MG_BET_TYPE_GOLD == SPK_BET_TYPE && @bet_gold > $game_party.gold) ||
        (MG_BET_TYPE_COIN == SPK_BET_TYPE && @bet_gold > $game_variables[MG_COIN_INDEX])
        # エラー SE を演奏
        ERROR_SE.play
        @info_window.refresh(MG_ERR_BET_UPPER[SPK_BET_TYPE])
      elsif @bet_gold == 0
        # エラー SE を演奏
        ERROR_SE.play
        @info_window.refresh(MG_ERR_BET_ZERO[SPK_BET_TYPE])
      else
        # 決定 SE を演奏
        Sound.play_ok
        @info_window.refresh("")
        value_window_deactivate
        @sporkar_window.activate
        @bet_window.refresh(@bet_gold)
        set_keyhelp1
      return
      end
    end
    # B ボタンが押された場合
    if Input.trigger?(:B)
      # キャンセル SE を演奏
      Sound.play_cancel
      value_window_deactivate
      @sporkar_window.activate
      set_keyhelp1
      return
    end
    @bet_gold = @value_window.number
  end
  #--------------------------------------------------------------------------
  # ○ キーヘルプを設定
  #--------------------------------------------------------------------------
  def set_keyhelp1
    @bottomkeyhelp_window.clear
    @bottomkeyhelp_window.set_bottom_help({"B"=>"キャンセル", 
                                           "A"=>"コインベット", 
                                           "C"=>"ゲーム開始"})
  end
  #--------------------------------------------------------------------------
  # ○ キーヘルプを設定 2
  #--------------------------------------------------------------------------
  def set_keyhelp2
    @bottomkeyhelp_window.clear
    @bottomkeyhelp_window.set_bottom_help({"←→"=>"交換選択", 
                                           "C"   =>"カード交換", 
                                           "X"   =>"勝負", 
                                           "B"   =>"キャンセル"})
  end
  #--------------------------------------------------------------------------
  # ○ キーヘルプを設定 3
  #--------------------------------------------------------------------------
  def set_keyhelp3
    @bottomkeyhelp_window.clear
    @bottomkeyhelp_window.set_bottom_help({"矢印"=>"ベット", 
                                           "C"   =>"決定", 
                                           "B"   =>"キャンセル"})
  end
end
こぉんな感じになります。 使用画像はこちら カスタマイズポイントの設定
変数 設定例 説明
CHANGE_MAX 15 トランプを交換できる最大枚数
MAX_DIG 7 入力金額最高桁数

戻る