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

Project1

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

[已经解决] 如果让随机攻击最多对每个敌人造成一次伤害。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
285
在线时间
3 小时
注册时间
2012-7-30
帖子
4
跳转到指定楼层
1
发表于 2014-6-10 11:31:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如说,技能设定为随机攻击三个敌人,在敌人只有一个或两个时,如何让它只攻击每个敌人一次?

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2014-6-10 12:37:15 | 只看该作者
本帖最后由 taroxd 于 2014-6-10 12:54 编辑

大概是在Game_Action中选择目标时加个uniq就可以了

我现在没环境,无法给出脚本。@moy 来帮帮忙吧? 应该是没什么难度的
回复 支持 反对

使用道具 举报

Lv2.观梦者

无节操

梦石
0
星屑
607
在线时间
795 小时
注册时间
2009-2-6
帖子
3939

开拓者贵宾

3
发表于 2014-6-10 13:10:12 | 只看该作者
本帖最后由 moy 于 2014-6-10 13:18 编辑

RUBY 代码复制
  1. class Game_Action
  2.   #--------------------------------------------------------------------------
  3.   # ● 目标为敌人
  4.   #--------------------------------------------------------------------------
  5.   def targets_for_opponents
  6.     if item.for_random?
  7.       #--剔除重复目标--
  8.       targets = Array.new(item.number_of_targets) { opponents_unit.random_target }
  9.       targets.uniq
  10.       #--------------
  11.     elsif item.for_one?
  12.       num = 1 + (attack? ? subject.atk_times_add.to_i : 0)
  13.       if @target_index < 0
  14.         [opponents_unit.random_target] * num
  15.       else
  16.         [opponents_unit.smooth_target(@target_index)] * num
  17.       end
  18.     else
  19.       opponents_unit.alive_members
  20.     end
  21.   end
  22. end

测了下没啥问题,如果你用了别的脚本导致冲突,就直接找到
  1. Array.new(item.number_of_targets) { opponents_unit.random_target }
复制代码
这句,把他改成我框起来的那两句。正常使用就直接丢外挂里吧。

评分

参与人数 1星屑 +66 收起 理由
taroxd + 66 解决的不是很自然呢……

查看全部评分

Brandnew day, Brandnew Life
                              实在  中
暂为素材区版主,版其  琢磨
应援一下~
RPG制作大师授权素材推广计划
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-6-10 13:18:32 | 只看该作者
moy 发表于 2014-6-10 13:10
#--------------------------------------------------------------------------
  # ● 目标为敌人
  #- ...

谢环境!不过我觉得,也许这样会更加科学一点?(不浪费)

RUBY 代码复制
  1. class Game_Action
  2.   #--------------------------------------------------------------------------
  3.   # ● 目标为敌人
  4.   #--------------------------------------------------------------------------
  5.   def targets_for_opponents
  6.     if item.for_random?
  7.       opponents_unit.members.sample(item.number_of_targets)
  8.     elsif item.for_one?
  9.       num = 1 + (attack? ? subject.atk_times_add.to_i : 0)
  10.       if @target_index < 0
  11.         [opponents_unit.random_target] * num
  12.       else
  13.         [opponents_unit.smooth_target(@target_index)] * num
  14.       end
  15.     else
  16.       opponents_unit.alive_members
  17.     end
  18.   end
  19. end

点评

moy
╮(╯_╰)╭俺知道你的痛(啥  发表于 2014-6-10 14:18
呜,我就是没有默认脚本在身边啦……  发表于 2014-6-10 14:14
moy
你忽略了默认脚本的random_target,那里面有嘲讽相关的数值(当然,其实我觉得大部分情况下无所谓……没多少人管嘲讽值  发表于 2014-6-10 13:21
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 22:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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