Project1

标题: 怎么提取当前行动的敌人的行为列表中的特技编号 [打印本页]

作者: 幻耶    时间: 2012-4-17 20:52
标题: 怎么提取当前行动的敌人的行为列表中的特技编号
本帖最后由 幻耶 于 2012-4-17 21:09 编辑

在战斗脚本中,如果当前行动的敌人的行为列表中有特技,就随机提取其中一个特技的编号,然后把它代入一个变量dsu_plus_rewardpost_czw
作者: 幻耶1    时间: 2012-4-18 20:09
在战斗中,提取对方敌人的行为列表中随机一个特技的编号
作者: though110112113    时间: 2012-4-24 13:45
a = @active_battler.skills[rand(@active_battler.skills.size)].id在sence batlle 里写的,不知对不对
作者: 幻耶    时间: 2012-4-25 17:24
though110112113 发表于 2012-4-24 13:45
a = @active_battler.skills[rand(@active_battler.skills.size)].id在sence batlle 里写的,不知对不对 ...

我在 Scene_Battle 4 的 def update_phase4_step5 下面添加 p @active_battler.skills[rand(@active_battler.skills.size)].id
结果一轮到敌人出手就出错,轮到角色出手跳出来的都是不相关的数字

作者: though110112113    时间: 2012-4-26 13:02
好吧,为什么我的不出错呃,奇怪,你放在“生成特技结果”那里试试
作者: 幻耶    时间: 2012-4-30 11:42
本帖最后由 幻耶 于 2012-4-30 11:43 编辑
though110112113 发表于 2012-4-26 13:02
好吧,为什么我的不出错呃,奇怪,你放在“生成特技结果”那里试试


放在“生成特技结果”那里,一样出错,一轮到敌人出手就出错


  #--------------------------------------------------------------------------
  # ● 生成特技行动结果
  #--------------------------------------------------------------------------
  def make_skill_action_result
    # 获取特技
    @skill = $data_skills[@active_battler.current_action.skill_id]
    # 如果不是强制行动
    unless @active_battler.current_action.forcing
      # 因为 SP 耗尽而无法使用的情况下
      unless @active_battler.skill_can_use?(@skill.id)
        # 清除强制行动对像的战斗者
        $game_temp.forcing_battler = nil
        # 移至步骤 1
        @phase4_step = 1
        return
      end
    end
    # 消耗 SP
    @active_battler.sp -= @skill.sp_cost
   
    p @active_battler.skills[rand(@active_battler.skills.size)].id
作者: Wind2010    时间: 2012-4-30 15:27
敌人只有actions而没有skills,并且actions里面的是RPG::Enemy::Action
然后我也等这个问题的答案……
作者: though110112113    时间: 2012-4-30 17:30
在Game_Enemy定义实变量attr_reader   :skills    ,然后初始化@skills = []..得么?
作者: he11120    时间: 2012-4-30 17:41
本帖最后由 he11120 于 2012-5-1 12:08 编辑

在Game_Enemy这里
302行 ”for action in available_actions“的上面,增加这些
  1.   $drxw = []
  2.       for action in available_actions
  3.        if action.kind == 1
  4.         $drxw |= [action.skill_id]
  5.         end
  6.       end
复制代码
然后你想干什么就调用吧。
  1. p $drxw[rand($drxw.size)]
复制代码

作者: 幻耶    时间: 2012-5-1 08:40
he11120 发表于 2012-4-30 17:41
在Game_Enemy这里
302行 ”for action in available_actions“的上面.304行  ”for action in available_ac ...

如果敌人的行为列表里只有普通攻击、防御、什么也不做,没有特技,依然会提取出编号,而且编号不是7就是1




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1