查看: 2294|回复: 9

[已经解决] 怎么提取当前行动的敌人的行为列表中的特技编号

[复制链接]
梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
回帖
914
发表于 2012-4-17 20:52:13 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 幻耶 于 2012-4-17 21:09 编辑

在战斗脚本中,如果当前行动的敌人的行为列表中有特技,就随机提取其中一个特技的编号,然后把它代入一个变量

点评

请问是在什么样的情况下呢,使用特技、普通攻击还是进入战斗?  发表于 2012-4-18 08:52
囡囚囨囚囨図囨囧
梦石
0
星屑
155
在线时间
44 小时
注册时间
2011-9-2
回帖
26
发表于 2012-4-18 20:09:46 | 显示全部楼层
在战斗中,提取对方敌人的行为列表中随机一个特技的编号
回复

使用道具 举报

梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-16
回帖
43
发表于 2012-4-24 13:45:42 | 显示全部楼层
a = @active_battler.skills[rand(@active_battler.skills.size)].id在sence batlle 里写的,不知对不对
回复

使用道具 举报

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
回帖
914
 楼主| 发表于 2012-4-25 17:24:28 | 显示全部楼层
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
结果一轮到敌人出手就出错,轮到角色出手跳出来的都是不相关的数字
囡囚囨囚囨図囨囧
回复

使用道具 举报

梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-16
回帖
43
发表于 2012-4-26 13:02:29 | 显示全部楼层
好吧,为什么我的不出错呃,奇怪,你放在“生成特技结果”那里试试
回复

使用道具 举报

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
回帖
914
 楼主| 发表于 2012-4-30 11:42:31 | 显示全部楼层
本帖最后由 幻耶 于 2012-4-30 11:43 编辑
though110112113 发表于 2012-4-26 13:02
好吧,为什么我的不出错呃,奇怪,你放在“生成特技结果”那里试试


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

  #--------------------------------------------------------------------------
  # ● 生成特技行动结果
  #--------------------------------------------------------------------------
  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
囡囚囨囚囨図囨囧
回复

使用道具 举报

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
回帖
3515
发表于 2012-4-30 15:27:52 | 显示全部楼层
敌人只有actions而没有skills,并且actions里面的是RPG::Enemy::Action
然后我也等这个问题的答案……

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-16
回帖
43
发表于 2012-4-30 17:30:56 | 显示全部楼层
在Game_Enemy定义实变量attr_reader   :skills    ,然后初始化@skills = []..得么?
回复

使用道具 举报

梦石
0
星屑
70
在线时间
187 小时
注册时间
2006-9-3
回帖
129
发表于 2012-4-30 17:41:21 | 显示全部楼层
本帖最后由 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)]
复制代码
...........
回复

使用道具 举报

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
回帖
914
 楼主| 发表于 2012-5-1 08:40:56 | 显示全部楼层
he11120 发表于 2012-4-30 17:41
在Game_Enemy这里
302行 ”for action in available_actions“的上面.304行  ”for action in available_ac ...

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

点评

脚本改好了,原本的不要动,加上去就可以了。  发表于 2012-5-1 12:08
囡囚囨囚囨図囨囧
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部