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

Project1

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

[已经解决] 技能公式写在脚本里,如何判断最高物理攻击力的队友?

[复制链接]

Lv2.观梦者

梦石
0
星屑
723
在线时间
530 小时
注册时间
2010-6-9
帖子
840
跳转到指定楼层
1
发表于 2015-9-1 22:38:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想实现一个使用技能后“最高物理攻击力的队友且存活的队友”.hp+=40%的技能,如何进行比较”科学“的对比(条件判断)?请各位大神指点指点。

Lv1.梦旅人

梦石
0
星屑
80
在线时间
132 小时
注册时间
2014-5-7
帖子
148
2
发表于 2015-9-2 00:28:00 | 只看该作者
  1.   def sort_unit(p, limit = :max, unit = $game_party)
  2.     if limit == :max
  3.       list = unit.members.sort {|a,b| b.param(p) - a.param(p) }
  4.     elsif limit == :min
  5.       list = unit.members.sort {|a,b| a.param(p) - b.param(p) }; end
  6.     index = 0
  7.     loop do
  8.       return nil unless list[index]
  9.       return list[index] if list[index].alive?
  10.       index += 1
  11.     end; end
复制代码
姑且敲出了一段可以获取要求对象的代码,但遗憾这东西没办法在数据库的公式框里面调用……使用方法是插入
  1. “sort_unit(能力值序号, 排列方式, 单位组)”
复制代码
能力值:0→HP上限,1→MP上限,2→攻击,3→防御……到7号是幸运
排列方式:":max"或":min",默认最高
单位组:"$game_party"默认,从玩家队伍获取对象;或者"$game_troop"从敌群判断。

例子:
sort_unit(0) → 返回玩家队伍中HP上限最高的成员
sort_unit(2, :min) → 返回玩家队伍中攻击最低的成员
sort_unit(6, :min, $game_troop) → 返回敌群中幸运最低的成员

至于调用方法,个人想到的就是2种:一种是直接用脚本调用,另一种是用公共事件调用。
前者的话,就要把代码放在Game_Battler里面。

后者是需要把上面的代码放在Game_Interpreter里面,然后建立一个公共事件;
公共事件的内容是给变量赋值"sort_unit(各种参数).id",之后可以用这个变量来指定角色。
如果没有脚本能力这样的方法比较推荐。

点评

本楼我留下了,似乎有更深的应用,感谢。  发表于 2015-9-2 13:51
感谢回复并指导。  发表于 2015-9-2 13:50
我测试一下,感谢。  发表于 2015-9-2 12:10
「私が来た!  私が見た!  ならば次わ買つだけのこと!」
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

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

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

开拓者贵宾

3
发表于 2015-9-2 12:38:15 | 只看该作者
本帖最后由 taroxd 于 2015-9-2 12:42 编辑

楼上的太长了啦
RUBY 代码复制
  1. $game_party.alive_members.max_by(&:atk)

点评

原来还有by_max这种方法存在啊……  发表于 2015-9-2 18:45
& 表示 block 参数。如果后面跟的不是 block,会调用 to_proc 方法。此处是调用了 Symbol#to_proc  发表于 2015-9-2 14:50
估计 array.max_by(&:atk)是array.max_by{|o| o.atk}的简便写法【然而不懂这个&是什么鬼。传址?  发表于 2015-9-2 14:33
噗 并没有 $game_party.alive_members是RM里已有的方法 max_by则是ruby里的一个方法【这玩意RM里用到了三次不过都是array.max_by{|o| o.atk } 这样种形式的  发表于 2015-9-2 14:30
没有前置脚本呀~  发表于 2015-9-2 14:00
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2015-9-2 18:24:55 | 只看该作者
taroxd 发表于 2015-9-1 19:38
楼上的太长了啦
$game_party.alive_members.max_by(&:atk)[/pre]
负零  本楼效能略高。认可该楼  发表于 昨天 20:51


@VIPArcher 问题解决
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-6-11 05:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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