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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
跳转到指定楼层
1
发表于 2012-4-17 20:52:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 幻耶 于 2012-4-17 21:09 编辑

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

点评

请问是在什么样的情况下呢,使用特技、普通攻击还是进入战斗?  发表于 2012-4-18 08:52
囡囚囨囚囨図囨囧

Lv1.梦旅人

梦石
0
星屑
155
在线时间
44 小时
注册时间
2011-9-2
帖子
33
2
发表于 2012-4-18 20:09:46 | 只看该作者
在战斗中,提取对方敌人的行为列表中随机一个特技的编号
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-16
帖子
48
3
发表于 2012-4-24 13:45:42 | 只看该作者
a = @active_battler.skills[rand(@active_battler.skills.size)].id在sence batlle 里写的,不知对不对
回复

使用道具 举报

Lv4.逐梦者

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-16
帖子
48
5
发表于 2012-4-26 13:02:29 | 只看该作者
好吧,为什么我的不出错呃,奇怪,你放在“生成特技结果”那里试试
回复

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
6
 楼主| 发表于 2012-4-30 11:42:31 | 只看该作者
本帖最后由 幻耶 于 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
囡囚囨囚囨図囨囧
回复

使用道具 举报

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
7
发表于 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技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
51 小时
注册时间
2010-7-16
帖子
48
8
发表于 2012-4-30 17:30:56 | 只看该作者
在Game_Enemy定义实变量attr_reader   :skills    ,然后初始化@skills = []..得么?
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
187 小时
注册时间
2006-9-3
帖子
175
9
发表于 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)]
复制代码
...........
回复

使用道具 举报

Lv4.逐梦者

梦石
3
星屑
6420
在线时间
1131 小时
注册时间
2007-12-26
帖子
2402
10
 楼主| 发表于 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
囡囚囨囚囨図囨囧
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 23:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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