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

Project1

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

[已经解决] 请问如何添加[自动攻击]选择项..

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
90
在线时间
12 小时
注册时间
2009-7-24
帖子
8
跳转到指定楼层
1
发表于 2009-7-27 14:29:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如题,打一些小杂怪一个个按太烦了,如何才能像<<吞食天地2历史的天空>>一样有自动攻击选项呢..
谢谢了

Lv1.梦旅人

很傻很天真

梦石
0
星屑
55
在线时间
3 小时
注册时间
2007-3-13
帖子
3667
2
发表于 2009-7-27 14:49:08 | 只看该作者
请搜索引号内的内容:"自动 工具"
注意带上空格
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
62 小时
注册时间
2009-7-12
帖子
116
3
发表于 2009-7-27 15:14:25 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

4
发表于 2009-7-27 16:16:30 | 只看该作者
其实现在的RPG不带这个功能的话 玩起来感觉很累~
仙剑里也有这样的效果,不过那个还带得有AI

不想看【论文】就下了范例自己去研究
有兴趣的话接着往下看~
战斗中自动行动v1.0.rar (189.55 KB, 下载次数: 170)

我就说说最基本的吧~
拿默认系统来说~
先要新建一些命令属性来作保存上次手动输入的命令信息
找到
class Game_BattleAction
定义一些新的实例变量
  attr_accessor :hzhj_speed                    # 速度
  attr_accessor :hzhj_kind                     # 种类 (基本 / 特技 / 物品)
  attr_accessor :hzhj_basic                    # 基本 (攻击 / 防御 / 逃跑)
  attr_accessor :hzhj_skill_id                 # 特技 ID
  attr_accessor :hzhj_item_id                  # 物品 ID
  attr_accessor :hzhj_target_index             # 对像索引
其实就是把原有的改了个名字再定义了一次
然后
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    clear
    @hzhj_speed = 0
    @hzhj_kind = 0
    @hzhj_basic = 0
    @hzhj_skill_id = 0
    @hzhj_item_id = 0
    @hzhj_target_index = 0
  end
新定义一个方法来把储存的信息传递给要执行的部分
  #--------------------------------------------------------------------------
  # ● 自动战斗
  #--------------------------------------------------------------------------
  def auto_battle
    @speed = @hzhj_speed
    @kind = @hzhj_kind
    @basic = @hzhj_basic
    @skill_id = @hzhj_skill_id
    @item_id = @hzhj_item_id
    @target_index = @hzhj_target_index
  end
再新定义一个方法把手动输入的命令存储下来
  #--------------------------------------------------------------------------
  # ● 保存当前的行动
  #--------------------------------------------------------------------------
  def to_k
    @hzhj_speed = @speed
    @hzhj_kind = @kind
    @hzhj_basic = @basic
    @hzhj_skill_id = @skill_id
    @hzhj_item_id = @item_id
    @hzhj_target_index = @target_index
  end
然后在 Game_Party新定义2个方法来方便批处理
  #--------------------------------------------------------------------------
  # ● 设置自动战斗的命令
  #--------------------------------------------------------------------------
  def set_auto_action
    for hzhj in @actors
      if hzhj != nil
        hzhj.current_action.auto_battle
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 保存当前所有人的命令
  #--------------------------------------------------------------------------
  def save_action
    for hzhj in @actors
      if hzhj != nil
        hzhj.current_action.to_k
      end
    end
  end
然后还需要一个变量来传递 现在是否存在自动状态
所以 我的方法是在Game_Temp新加了个东西
  attr_accessor :battle_main_auto
然后在Scene_Battle 1 初始化
并给@actor_command_window新加一个自动的选项
然后来到Scene_Battle 3
找到   def update_phase3_basic_command
在when 3 的后面加上 when 4
      when 4  # 自动
        $game_system.se_play($data_system.decision_se)
        $game_temp.battle_main_auto = true
        start_phase4
最后来到Scene_Battle 4
先是在def start_phase4
添加
    if $game_temp.battle_main_auto
      $game_party.set_auto_action
    else
      $game_party.save_action
    end
然后找到  def update_phase4_step1
的    if @action_battlers.size == 0下面新加一段
      if $game_temp.battle_main_auto
        start_phase4
        return
      end
最后在def update_phase4下面加一段
    if $game_temp.battle_main_auto
      if Input.press?(Input::B)
        $game_temp.battle_main_auto = false
      end
    end

完成~~











你知道得太多了

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 14:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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