[Ver1.10]テストプレー補助スクリプト

フォーラムルール
素材の利用規約を決めたいけど、どんなことを書けばいいのか分からない場合は、
素材のテンプレートをご利用下さい。
アバター
Reeta
記事: 4
登録日時: 2015年11月11日(水) 11:08
連絡を取る:

[Ver1.10]テストプレー補助スクリプト

投稿記事by Reeta » 2016年5月08日(日) 20:56

テストプレーすると思い通りに動かない、でも原因がわからない
変数やスイッチを操作してこうしてるはずなのにうまくいかない・・・など
あるあるですよね(多分)

そんなテストプレーのモヤモヤを解消するスクリプトを作りました

・何ができるの?
コモンイベントが呼び出されたらコンソールに表示されます
ゲームスイッチを操作したらコンソールに表示されます
変数を操作したらコンソールに表示されます
セルフスイッチを操作したらコンソールに表示されます
キーボードのAキーを押すと目の前のイベントのセルフスイッチの状態を表示してくれます。使うキーは変えられます

・2016/05/15 更新
変更を表示しないスイッチと変数を設定できるようになりました。
EXCLUSE_VARとEXCLUSE_SWに書いた番号は変更があってもログに表示されませんn

helper.png


・使い方
1:下のスクリプトをぶっこんでください
2:VX Aceのメニューのゲーム->コンソールを表示 をONにしてください
3:おわり


コード: 全て選択

#==============================================================================
#
# テストプレー補助スクリプト for VX Ace Ver1.10
# 初リリース:2016/05/08
# 現バージョンリリース:2016/05/15
#
# 以下のイベントコマンドの発生時にログを出します
# ・コモンイベントの呼び出し
# ・変数の操作
# ・スイッチの操作
# ・セルフスイッチの操作
#
#==============================================================================



module RS_Helper
 
  # テストモード時以外でもログを出すかON/OFF
  ENABLE_LOG  = false
 
  # セルフスイッチの確認に使うキーの設定
  # 次のキーが使えます。これ以外はゲーム内で標準で使用されているので非推奨
  # :X = Aキー
  # :Y = Sキー
  # :Z = Dキー
 
  SELF_KEY = :Y
 
  #--------------------------------------------------------------------------
  # Ver1.10より追加
 
  # 変更を監視しない変数番号
  # EXCLUSE_VAR = [1,2,3,4] のように記入
  EXCLUSE_VAR = []
 
  # 変更を監視しないスイッチ番号
  # [1,2,3,4] のように記入
  EXCLUSE_SW = []
 
  #--------------------------------------------------------------------------
 
 
  #--------------------------------------------------------------------------
  # 以下は変更しないでください!
  #--------------------------------------------------------------------------
 
 
  if ENABLE_LOG || $TEST
    puts ("ReStart テストプレー補助スクリプト\nVer1.10 Release at 20160515")
  end
 
 
  def self.log(val)
    if ENABLE_LOG || $TEST
      prefix = "----------------------------------------\n"
      puts prefix + val
    end
  end
 
  def self.log_noprefix(val)
    if ENABLE_LOG || $TEST
      puts val
    end
  end
 
  # 変数の監視除外判定
  def self.excluse_var(num)
   
    EXCLUSE_VAR.each{|var|
     if var == num
        return true
      end
    }
   
    return false
  end
 
    # スイッチの監視除外判定
  def self.excluse_sw(num)
   
    EXCLUSE_SW.each{|var|
     if var == num
        return true
      end
    }
   
    return false
  end
 
   
 
end


class Game_Interpreter

  #--------------------------------------------------------------------------
  # ● コモンイベント
  #--------------------------------------------------------------------------
  alias log_117 command_117
  def command_117
    RS_Helper::log("● コモンイベントを実行\nID:" + @params[0].to_s + " / 名前:" + $data_common_events[@params[0]].name)
    log_117
  end

  #--------------------------------------------------------------------------
  # ● スイッチの操作
  #--------------------------------------------------------------------------
  def command_121
    (@params[0]..@params[1]).each do |i|
      $game_switches[i] = (@params[2] == 0)
     
      txt = ""
      case @params[2]
        when 0 then
          txt = "\n=>[ON]に変更"
        when 1 then
          txt = "\n=>[OFF]に変更"
        end
       
      if !RS_Helper::excluse_sw(i)
        RS_Helper::log("● スイッチの操作\nID:" + i.to_s + " / 名前:" + $data_system.switches[i] + txt)
      end
    end
  end

  #--------------------------------------------------------------------------
  # ● 変数の操作を実行
  #--------------------------------------------------------------------------
  alias log_variable operate_variable
  def operate_variable(variable_id, operation_type, value)
    log_variable(variable_id, operation_type, value)

    operation = ""
    case operation_type
      when 0 then # 代入
        operation = "\n[代入] :" + value.to_s
      when 1 then # 加算
        operation = "\n[加算] :" + value.to_s
      when 2 then # 減算
        operation = "\n[減算] :" + value.to_s
      when 3 then # 乗算
        operation = "\n[乗算] :" + value.to_s
      when 4 then # 除算
        operation = "\n[除算] :" + value.to_s
      when 5 then # 剰余
        operation = "\n[剰余] :" + value.to_s
    end
   
    if !RS_Helper::excluse_var(variable_id)
      RS_Helper::log("● 変数の操作\nID:" + variable_id.to_s + " / 名前:" + $data_system.variables[variable_id] + operation + "\n=>現在値:" + $game_variables[variable_id].to_s)
    end
  end
  #--------------------------------------------------------------------------
  # ● セルフスイッチの操作
  #--------------------------------------------------------------------------
  alias log_123 command_123
  def command_123
    log_123
     
    operation = ""
    case @params[1]
      when 0 then
        operation = "ON"
      when 1 then
        operation = "OFF"
      end
     
    event_name = $game_map.events[@event_id].instance_variable_get(:@event).name
       
    RS_Helper::log("● セルフスイッチの操作\nID:" + @event_id.to_s + " / 名前:" + event_name + "\nセルフスイッチ:" + @params[0].to_s + " => " + operation.to_s)
  end
end

class Scene_Map < Scene_Base
 
  alias self_sw update
  def update
    self_sw
   
    if Input.trigger?(RS_Helper::SELF_KEY)
      # 目の前のイベントのIDを取得
      case $game_player.direction
        when 2 then # 下
          ev_id = $game_map.event_id_xy($game_player.x,$game_player.y+1)
        when 4 then # 左
          ev_id = $game_map.event_id_xy($game_player.x-1,$game_player.y)
        when 6 then # 右
          ev_id = $game_map.event_id_xy($game_player.x+1,$game_player.y)
        when 8 then # 上
          ev_id = $game_map.event_id_xy($game_player.x,$game_player.y-1)
      end
     
      # 目の前にイベントがあるなら処理続行
      if ev_id != 0
        check_self_sw(ev_id)
      end
     
    end
  end
 
  #--------------------------------------------------------------------------
  # ● セルフスイッチの確認
  #--------------------------------------------------------------------------
  def check_self_sw(id)
    map_id = $game_map.map_id
    event_name = $game_map.events[id].instance_variable_get(:@event).name
    sw_a = "A = " + $game_self_switches[[map_id,id,"A"]].to_s
    sw_b = "\nB = " + $game_self_switches[[map_id,id,"B"]].to_s
    sw_c = "\nC = " + $game_self_switches[[map_id,id,"C"]].to_s
    sw_d = "\nD = " + $game_self_switches[[map_id,id,"D"]].to_s
    RS_Helper::log("●セルフスイッチの確認\nID:" + id.to_s + " / 名前:" + event_name + "\n" + sw_a + sw_b + sw_c + sw_d)
  end
 
end


・ライセンスあれこれ
表に見える(プレイヤーに見える)ものではないのでライセンス表記はご自由に。
一応改変NGにしていますが、配布時に削除さえすれば焼くなり煮るなり改変はOKです。

画像
画像
画像
画像
画像
画像
最後に編集したユーザー Reeta on 2016年5月15日(日) 19:34 [ 編集 1 回目 ]

にゃん猫
記事: 13
登録日時: 2016年2月19日(金) 13:10

Re: テストプレー補助スクリプト

投稿記事by にゃん猫 » 2016年5月09日(月) 14:31

これは良いですね。MV版もあると助かります(´・ω・`)
てんてん
記事: 1
登録日時: 2016年7月26日(火) 18:34

Re: [Ver1.10]テストプレー補助スクリプト

投稿記事by てんてん » 2016年7月26日(火) 18:54

普段はログ表示したい変数を自分でスクリプトに書いてチェックしてましたが
その手間が無くなって助かります。
代入する前の変数の値も表示されると、なお良かったですね。
コンドル
記事: 1
登録日時: 2017年2月06日(月) 15:38

Re: [Ver1.10]テストプレー補助スクリプト

投稿記事by コンドル » 2017年2月06日(月) 15:42

これだけでも便利なものですが、欲を言えばバトル中や会話文・ショップ画面を表示しているときにも機能するようにしてほしいです。
(特にバトルで変数やスイッチを扱うことがあるので)
kix
記事: 19
登録日時: 2017年7月02日(日) 18:45

Re: [Ver1.10]テストプレー補助スクリプト

投稿記事by kix » 2017年10月22日(日) 16:36

スクリプトを利用させてもらっています。
連番スイッチを複数まとめて操作するとエラーになりました。使い方が悪かったのでしょうか?

“Ace:スクリプト素材(RGSS3)” へ戻る