| 赞 | 0 |
| VIP | |
| 好人卡 | |
| 积分 | 1 |
| 经验 | |
| 最后登录 | 2019-5-19 |
| 在线时间 | 308 小时 |
- 梦石
- 0
- 星屑
- 89
- 在线时间
- 308 小时
- 注册时间
- 2010-8-10
- 回帖
- 728
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 不是马甲 于 2014-1-24 21:57 编辑
来自http://hikimoki.sakura.ne.jp/rgss3/script_battle/tmatbtl.rb
战斗选择指令已经汉化(来自百度翻译
直接插入即可
[pre lang="ruby" line="1"]#==============================================================================
# ★ RGSS3_自動戦闘 Ver1.01
#==============================================================================
=begin
作者:tomoaky
webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/)
增加命令“自动”和“重复”,两种指令追加。
自动全体演员这回合只自动战斗的状态,
重复的全体演员前面的回合采取的行动自动选择。
附加功能全自动战斗开关(初期设定在7号)开了间
遇敌从地图场面回到为止都是自动化。
===注意点===
・前的回合一样行动成本不足等不能实行的场合攻击
、1回合中重复选择的情况全演员的行动,攻击
・前回合开始时被选择的行动重复的对象,
成本不足重复的内容发生变化时,下一次的回合以后也变化了
使用游戏(初期设定)开关
0007,0008
2012.01.17版本1.01
・逃跑指令失败后重复的命令不正确动作极化
2011.12.15版本1.0
公开
=end
#==============================================================================
# □ 設定項目
#==============================================================================
module TMATBTL
SW_FULLAUTO = 7 # 完全自動戦闘フラグとして扱うゲームスイッチ番号
SW_FULLFAST = 8 # 完全自動戦闘の早送りフラグとして扱うゲームスイッチ番号
end
#==============================================================================
# ■ Vocab
#==============================================================================
module Vocab
AutoBattle = "自动" # 自動戦闘コマンド名
RepeatBattle = "重复" # 繰り返し戦闘コマンド名
end
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :repeat_commands # 前ターンの行動内容
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias tmatbtl_game_temp_initialize initialize
def initialize
tmatbtl_game_temp_initialize
@repeat_commands = []
end
end
#==============================================================================
# ■ Window_Message
#==============================================================================
class Window_Message
#--------------------------------------------------------------------------
# ● 入力待ち処理
#--------------------------------------------------------------------------
alias tmatbtl_window_message_input_pause input_pause
def input_pause
if $game_party.in_battle && $game_switches[TMATBTL::SW_FULLAUTO]
wait($game_switches[TMATBTL::SW_FULLFAST] ? 30 : 60)
else
tmatbtl_window_message_input_pause
end
end
end
#==============================================================================
# ■ Window_PartyCommand
#==============================================================================
class Window_PartyCommand
#--------------------------------------------------------------------------
# ● コマンドリストの作成
#--------------------------------------------------------------------------
alias tmatbtl_window_partycommand_make_command_list make_command_list
def make_command_list
tmatbtl_window_partycommand_make_command_list
add_command(Vocab::AutoBattle, :auto)
add_command(Vocab::RepeatBattle, :repeat)
end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle
#--------------------------------------------------------------------------
# ● 早送り判定
#--------------------------------------------------------------------------
alias tmatbtl_scene_battle_show_fast? show_fast?
def show_fast?
tmatbtl_scene_battle_show_fast? || ($game_switches[TMATBTL::SW_FULLAUTO] &&
$game_switches[TMATBTL::SW_FULLFAST])
end
#--------------------------------------------------------------------------
# ● パーティコマンドウィンドウの作成
#--------------------------------------------------------------------------
alias tmatbtl_scene_battle_create_party_command_window create_party_command_window
def create_party_command_window
tmatbtl_scene_battle_create_party_command_window
@party_command_window.set_handler(:auto, method(:command_auto))
@party_command_window.set_handler(:repeat, method(:command_repeat))
end
#--------------------------------------------------------------------------
# ● パーティコマンド選択の開始
#--------------------------------------------------------------------------
alias tmatbtl_scene_battle_start_party_command_selection start_party_command_selection
def start_party_command_selection
tmatbtl_scene_battle_start_party_command_selection
if $game_switches[TMATBTL::SW_FULLAUTO]
command_auto unless scene_changing?
end
end
#--------------------------------------------------------------------------
# ● 戦闘開始
#--------------------------------------------------------------------------
alias tmatbtl_scene_battle_battle_start battle_start
def battle_start
tmatbtl_scene_battle_battle_start
$game_temp.repeat_commands = []
end
#--------------------------------------------------------------------------
# ● ターン開始
#--------------------------------------------------------------------------
alias tmatbtl_scene_battle_turn_start turn_start
def turn_start
$game_party.members.each_with_index do |actor, i|
next unless actor.inputable?
$game_temp.repeat_commands = []
actor.actions.each do |action|
$game_temp.repeat_commands.push(action.clone)
end
end
tmatbtl_scene_battle_turn_start
end
#--------------------------------------------------------------------------
# ○ コマンド[オート]
#--------------------------------------------------------------------------
def command_auto
$game_party.members.each do |actor|
actor.make_auto_battle_actions if actor.inputable?
end
@party_command_window.deactivate
turn_start
end
#--------------------------------------------------------------------------
# ○ コマンド[リピート]
#--------------------------------------------------------------------------
def command_repeat
$game_party.members.each_with_index do |actor, i|
next unless actor.inputable?
actor.actions.clear
if !$game_temp.repeat_commands || $game_temp.repeat_commands.empty?
$game_temp.repeat_commands =
[Game_Action.new(actor).set_attack.evaluate]
end
$game_temp.repeat_commands.each do |action|
actor.actions.push(action.clone)
actor.actions[actor.actions.size - 1].set_attack unless action.valid?
end
end
@party_command_window.deactivate
turn_start
end
end
[/pre] |
评分
-
查看全部评分
|