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

Project1

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

[已经解决] 有关随机连击问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
99
在线时间
900 小时
注册时间
2012-11-13
帖子
893
跳转到指定楼层
1
发表于 2013-11-18 09:02:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 3106345123 于 2013-11-23 07:55 编辑

  默认系统的连击是对一个人,我想实现随机连击
例如:设定连击3次,有可能是打一人3次或打两人共3次等。
即:如设定连击3次,先随机打1人,再随机打1人(可重复),再.........直到打完次数为止。
注:最好默认系统的连击能保留。

点评

试试把技能对象设定为三个随机敌人试试吧。  发表于 2013-11-18 17:22
废弃

Lv3.寻梦者

梦石
0
星屑
3298
在线时间
1120 小时
注册时间
2009-4-15
帖子
815
2
发表于 2013-11-18 12:30:31 | 只看该作者
可以设定技能对象为:随机一个敌人。

点评

我的意思是:如设定连击3次,先随机打1人,再随机打1人(可重复),再.........直到打完次数为止。  发表于 2013-11-18 13:21

评分

参与人数 1星屑 +1 收起 理由
3106345123 + 1 还是要感谢你

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
99
在线时间
900 小时
注册时间
2012-11-13
帖子
893
3
 楼主| 发表于 2013-11-19 12:49:15 | 只看该作者
tan12345 发表于 2013-11-18 12:30
可以设定技能对象为:随机一个敌人。

谢谢,看来我对数据库还不够了解
不过,能超过4次吗?
废弃
回复 支持 反对

使用道具 举报

Lv1.梦旅人

巫女会长

梦石
0
星屑
60
在线时间
1028 小时
注册时间
2009-10-24
帖子
3470

贵宾

4
发表于 2013-11-19 14:58:11 | 只看该作者
技能的攻击目标数定义在 RPG::UsableItem 中的 number_of_targets, 实际使用的时候在 Game_Action 145行 make_targets 中根据目标属性生成目标数组,当目标是敌人时在 176行 targets_for_opponents 方法中生成敌人目标。在177行判定是否随机目标,如果是随机目标则 Array.new(item.number_of_targets) { opponents_unit.random_target } 该行生成随机目标数组,在该数组中 item.number_of_targets 呼出技能对应的目标数。如果希望id为n的技能目标数大于4(例如5),可以在这里添加判断语句 item.number_of_targets = 5 if item.id == n,那么id为n的技能就可以随机攻击5个目标,以此类推。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
99
在线时间
900 小时
注册时间
2012-11-13
帖子
893
5
 楼主| 发表于 2013-11-20 13:06:37 | 只看该作者
本帖最后由 3106345123 于 2013-11-20 13:16 编辑
dukesward 发表于 2013-11-19 14:58
技能的攻击目标数定义在 RPG::UsableItem 中的 number_of_targets, 实际使用的时候在 Game_Action 145行 m ...


可能是我智商太低
加了就报错
(脚本智商只停留在常量+变量上
废弃
回复 支持 反对

使用道具 举报

Lv1.梦旅人

巫女会长

梦石
0
星屑
60
在线时间
1028 小时
注册时间
2009-10-24
帖子
3470

贵宾

6
发表于 2013-11-21 01:17:54 | 只看该作者
看来number_of_targets只能调用不能赋值,你把这段脚本插入到main前试试

RUBY 代码复制
  1. =begin
  2. ===============================================================================
  3. 使用:在SET_SKILL数组中添加需要设置目标数的技能id,在SET中添加对应的目标数。
  4.  
  5. 例如:
  6. SET_SKILL = [5, 6, 7]
  7. SET_TARGET = [1, 2, 3]
  8.  
  9. 设置5号技能目标数1, 6号技能目标数2, 7号技能目标数3。
  10. ===============================================================================
  11. =end
  12.  
  13. SET_SKILL = [5, 6, 7]
  14. SET_TARGET = [2, 2, 3]
  15.  
  16. class Game_Action
  17.   #--------------------------------------------------------------------------
  18.   # ● 目标为敌人
  19.   #--------------------------------------------------------------------------
  20.   def targets_for_opponents
  21.     if item.for_random?
  22.       SET_SKILL.size.times do |i|
  23.         if item.id == SET_SKILL[i]
  24.           @n_target = SET_TARGET[i]
  25.         end
  26.       end
  27.       Array.new(@n_target ? @n_target : item.number_of_targets) { opponents_unit.random_target }
  28.     elsif item.for_one?
  29.       num = 1 + (attack? ? subject.atk_times_add.to_i : 0)
  30.       if @target_index < 0
  31.         [opponents_unit.random_target] * num
  32.       else
  33.         [opponents_unit.smooth_target(@target_index)] * num
  34.       end
  35.     else
  36.       opponents_unit.alive_members
  37.     end
  38.   end
  39. end

评分

参与人数 2星屑 +5 梦石 +1 收起 理由
Sion + 1 认可答案
3106345123 + 5 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
99
在线时间
900 小时
注册时间
2012-11-13
帖子
893
7
 楼主| 发表于 2013-11-21 13:18:15 | 只看该作者
dukesward 发表于 2013-11-21 01:17
看来number_of_targets只能调用不能赋值,你把这段脚本插入到main前试试

=begin

谢谢,可行
废弃
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 07:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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