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

Project1

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

[已经解决] 关于Scene_Battle中的选择敌人的方法

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4721
在线时间
387 小时
注册时间
2012-11-8
帖子
276
跳转到指定楼层
1
发表于 2013-5-10 15:55:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 qq634488405 于 2013-5-11 17:41 编辑

想问一下,在实际操作中,这个方法的返回值是什么?

点评

start_enemy_select 只是转换窗口的一个过程。  发表于 2013-5-11 00:22

Lv4.逐梦者

梦石
0
星屑
6333
在线时间
1158 小时
注册时间
2012-12-16
帖子
49
2
发表于 2013-5-10 21:14:15 | 只看该作者
具体是什么方法?

点评

#-------------------------------------------------------------------------- # ● 开始选择敌人 #-------------------------------------------------------------------------- def start_enemy_select   发表于 2013-5-10 23:56
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
帖子
768
3
发表于 2013-5-10 21:17:47 | 只看该作者
\\\\\、、、、、、、这个类中的方法不是一般的多呀?楼主指的哪一个方法?

点评

start_enemy_select,end_enemy_select  发表于 2013-5-10 23:57
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33620
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 2013-5-10 23:55:42 | 只看该作者
本帖最后由 芯☆淡茹水 于 2013-5-11 01:42 编辑

选择敌人?是指怎样确定行动对象么?
那看看下面这段

RUBY 代码复制
  1. if @active_battler.is_a?(Game_Actor)
  2.         if @active_battler.restriction == 3
  3.           target = $game_party.random_target_actor
  4.         elsif @active_battler.restriction == 2
  5.           target = $game_troop.random_target_enemy
  6.         else
  7.           index = @active_battler.current_action.target_index
  8.           target = $game_troop.smooth_target_enemy(index)
  9.         end
  10.       end


这段是普通攻击确定对象(角色用),添加下注释,就会很好理解

如果行动方是角色
if @active_battler.is_a?(Game_Actor)
      如果行动者限制 等于 3 (普通攻击同伴)
   if @active_battler.restriction == 3
       行动对象 等于 随机角色
      target = $game_party.random_target_actor
        除此以外,如果行动者限制 等于 2 (普通攻击敌人)
    elsif @active_battler.restriction == 2
          行动对象 等于 随机敌人
      target = $game_troop.random_target_enemy
       除此以外
    else
         行动对象 等于 光标所选中的敌人
      index = @active_battler.current_action.target_index
      target = $game_troop.smooth_target_enemy(index)
    end
end

最终选择好的敌人就是那个  target

然后就是:
# 设置对像方的战斗者序列
@target_battlers = [target]
# 应用通常攻击效果
  for target in @target_battlers
     target.attack_effect(@active_battler)
  end


这些确定行动对象,都在 Scene_Battle 4 第 170 多行开始(包括基本攻击,特技和物品)

点评

那么如果敌人只有一个,选择攻击,则跳过选择敌人,直接对敌人攻击这个该怎么实现?  发表于 2013-5-11 13:50
xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6333
在线时间
1158 小时
注册时间
2012-12-16
帖子
49
5
发表于 2013-5-11 15:47:40 | 只看该作者
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 角色指令窗口光标位置分之
      case @actor_command_window.index
      when 0  # 攻击
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 设置行动
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 0
        # 开始选择敌人
        start_enemy_select
#在这里确定敌人成员数,决定应用选择光标或转到下一个角色的指令输入。
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 角色指令窗口光标位置分之
      case @actor_command_window.index
      when 0  # 攻击
        # 演奏确定 SE
        $game_system.se_play($data_system.decision_se)
        # 设置行动
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 0
        #敌人成员数为1的情况。
        if $game_troop.enemies.size == 1  
          phase3_next_actor      #转到下一个角色指令输入。
       else
          start_enemy_select      #开始选择敌人。
       end

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6333
在线时间
1158 小时
注册时间
2012-12-16
帖子
49
6
发表于 2013-5-11 15:57:09 | 只看该作者
好吧,忘了行动对象索引了。
在if $game_troop.enemies.size == 1 底下
@active_battler.current_action.target_index = $game_troop.enemies[0].index

点评

好的,谢谢  发表于 2013-5-11 17:40
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6333
在线时间
1158 小时
注册时间
2012-12-16
帖子
49
7
发表于 2013-5-11 23:23:21 | 只看该作者
换成以下代码的话,敌人只有一个,或战斗中只剩一个敌人都没问题。
        count = 0
        enemy = nil
        for i in 0...$game_troop.enemies.size
          if $game_troop.enemies[i].exist?
            count +=1
            enemy = $game_troop.enemies[i]
          end
        end
        if count == 1 and enemy != nil
          @battler.current_action.target_index = enemy.index
          phase2_next_actor
          return
        end
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 13:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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