设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2865|回复: 5
打印 上一主题 下一主题

[已经解决] 求助 怎么在战斗菜单中加入自动战斗

[复制链接]

Lv1.梦旅人

梦石
0
星屑
62
在线时间
44 小时
注册时间
2015-5-11
帖子
32
跳转到指定楼层
1
发表于 2015-12-31 10:51:26 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
战斗场景  指令有1战斗 2撤退   怎么在1战斗前 加一个自动战斗的指令   确定了自动战斗指令后将进行自动战斗  玩家不能操作战斗 直到战斗结束为止

Lv1.梦旅人

梦石
0
星屑
50
在线时间
21 小时
注册时间
2014-11-27
帖子
5
5
发表于 2016-8-17 11:10:18 | 只看该作者
流浪杰哥 发表于 2015-12-31 17:02
#==============================================================================
# ■ Vocab
#-------- ...

为什么我复制后用不了啊 好像是注释无效 手动注释也注释不了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
62
在线时间
44 小时
注册时间
2015-5-11
帖子
32
4
 楼主| 发表于 2015-12-31 19:09:20 | 只看该作者
流浪杰哥 发表于 2015-12-31 17:03
拿去试试,我想应该可以吧

多谢了 ,非常有用,太有才了,我想做个补充,能否让战斗速度提升一倍,这样等待结束的时间就会更短
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
3
发表于 2015-12-31 17:03:31 | 只看该作者
拿去试试,我想应该可以吧
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8629
在线时间
1465 小时
注册时间
2012-6-6
帖子
349
2
发表于 2015-12-31 17:02:32 | 只看该作者
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Vocab
  3. #------------------------------------------------------------------------------
  4. #  用語とメッセージを定義するモジュールです。定数でメッセージなどを直接定義す
  5. # るほか、グローバル変数 $data_system から用語データを取得します。
  6. #==============================================================================
  7. module Vocab
  8.   # 戦闘
  9.   Auto         = "自动"
  10. end
  11.  
  12. #==============================================================================
  13. # ■ Window_PartyCommand
  14. #------------------------------------------------------------------------------
  15. #  バトル画面で、戦うか逃げるかを選択するウィンドウです。
  16. #==============================================================================
  17. class Window_PartyCommand < Window_Command
  18.   #--------------------------------------------------------------------------
  19.   # ● コマンドリストの作成
  20.   #--------------------------------------------------------------------------
  21.   alias make_command_list_auto make_command_list
  22.   def make_command_list
  23.     make_command_list_auto
  24.     add_command(Vocab::Auto,   :auto)
  25.   end  
  26. end
  27.  
  28. #==============================================================================
  29. # ■ Scene_Battle
  30. #------------------------------------------------------------------------------
  31. #  バトル画面の処理を行うクラスです。
  32. #==============================================================================
  33. class Scene_Battle < Scene_Base
  34.   #--------------------------------------------------------------------------
  35.   # ● パーティコマンドウィンドウの作成
  36.   #--------------------------------------------------------------------------
  37.   alias create_party_command_window_auto create_party_command_window
  38.   def create_party_command_window
  39.     create_party_command_window_auto
  40.     @party_command_window.set_handler(:auto, method(:command_auto))
  41.     @party_command_window.unselect
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● コマンド[オート]
  45.   #--------------------------------------------------------------------------
  46.   def command_auto
  47.     BattleManager.auto_on
  48.     BattleManager.skip_on
  49.     auto_set
  50.     turn_start
  51.   end
  52.   #--------------------------------------------------------------------------
  53.   # ● 早送り判定
  54.   #--------------------------------------------------------------------------
  55.   def show_fast?
  56.     return true if BattleManager.skip?
  57.     return true if Input.press?(:B) || Input.press?(:C)
  58.     return false
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● フレーム更新(基本)
  62.   #--------------------------------------------------------------------------
  63.   alias update_basic2 update_basic
  64.   def update_basic
  65.     update_basic2
  66.     update_auto_battle
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● オート戦闘の更新
  70.   #--------------------------------------------------------------------------
  71.   def update_auto_battle
  72.     BattleManager.auto_off if Input.press?(:B)
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● オート戦闘のセット
  76.   #--------------------------------------------------------------------------
  77.   def auto_set
  78.     BattleManager.input_start   
  79.     loop do
  80.       break unless BattleManager.next_command
  81.       BattleManager.actor.input.set_attack
  82.     end
  83.   end
  84.   #--------------------------------------------------------------------------
  85.   # ● パーティコマンド選択の開始
  86.   #--------------------------------------------------------------------------
  87.   alias start_party_command_selection2 start_party_command_selection
  88.   def start_party_command_selection
  89.     if BattleManager.auto?
  90.       @party_command_window.deactivate
  91.       auto_set
  92.       turn_start
  93.       return
  94.     end
  95.     BattleManager.skip_off
  96.     start_party_command_selection2
  97.   end
  98.  
  99.   #--------------------------------------------------------------------------
  100.   # ● アニメーションの表示
  101.   #     targets      : 対象者の配列
  102.   #     animation_id : アニメーション ID(-1: 通常攻撃と同じ)
  103.   #--------------------------------------------------------------------------
  104.   def show_animation(targets, animation_id)
  105.     unless anim_skip?
  106.       if animation_id < 0
  107.         show_attack_animation(targets)
  108.       else
  109.         show_normal_animation(targets, animation_id)
  110.       end
  111.     end
  112.     @log_window.wait
  113.     wait_for_animation unless anim_skip?
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● アニメーションをスキップするか?
  117.   #--------------------------------------------------------------------------
  118.   def anim_skip?
  119.     BattleManager.auto?
  120.   end
  121.  
  122. end
  123.  
  124. #==============================================================================
  125. # ■ BattleManager
  126. #------------------------------------------------------------------------------
  127. #  戦闘の進行を管理するモジュールです。
  128. #==============================================================================
  129. module BattleManager
  130.   #--------------------------------------------------------------------------
  131.   # ● メンバ変数の初期化
  132.   #--------------------------------------------------------------------------
  133.   def self.init_members
  134.     @phase = :init              # 戦闘進行フェーズ
  135.     @can_escape = false         # 逃走可能フラグ
  136.     @can_lose = false           # 敗北可能フラグ
  137.     @event_proc = nil           # イベント用コールバック
  138.     @preemptive = false         # 先制攻撃フラグ
  139.     @surprise = false           # 不意打ちフラグ
  140.     @actor_index = -1           # コマンド入力中のアクター
  141.     @action_forced = nil        # 戦闘行動の強制
  142.     @map_bgm = nil              # 戦闘前の BGM 記憶用
  143.     @map_bgs = nil              # 戦闘前の BGS 記憶用
  144.     @action_battlers = []       # 行動順序リスト
  145.     @auto_flg = false           # オート戦闘フラグ
  146.     @turn_skip = false          # このターンをスキップするか
  147.   end
  148.   #--------------------------------------------------------------------------
  149.   # ● オート・オン
  150.   #--------------------------------------------------------------------------
  151.   def self.auto_on
  152.     @auto_flg = true
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● オート・オフ
  156.   #--------------------------------------------------------------------------
  157.   def self.auto_off
  158.     @auto_flg = false
  159.   end
  160.   #--------------------------------------------------------------------------
  161.   # ● オートか?
  162.   #--------------------------------------------------------------------------
  163.   def self.auto?
  164.     @auto_flg
  165.   end
  166.   #--------------------------------------------------------------------------
  167.   # ● ターンをスキップする
  168.   #--------------------------------------------------------------------------
  169.   def self.skip_on
  170.     @turn_skip = true
  171.   end
  172.   #--------------------------------------------------------------------------
  173.   # ● ターンをスキップしない
  174.   #--------------------------------------------------------------------------
  175.   def self.skip_off
  176.     @turn_skip = false  
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● スキップ状態か?
  180.   #--------------------------------------------------------------------------
  181.   def self.skip?
  182.     @turn_skip
  183.   end
  184.  
  185. end

点评

现在的答复回报才200jy,真是小气,对吗,层主?  发表于 2016-8-21 16:26

评分

参与人数 1星屑 +200 收起 理由
taroxd + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 20:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表