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

Project1

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

[已经解决] 关于VxAce自身脚本的2个问题。

[复制链接]

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
跳转到指定楼层
1
发表于 2020-2-9 10:13:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#--------------------------------------------------------------------------
  # ● 特徴値の総和計算(データ ID は非指定)
  #--------------------------------------------------------------------------
  def features_sum_all(code)
    features(code).inject(0.0) {|r, ft| r += ft.value }
  end
  #--------------------------------------------------------------------------
脚本中标红字的 r 和 ft 代表什么。依据脚本的变量命名都是以易于联想的原则,应该是两个英文单词的简写吧?

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

2
发表于 2020-2-9 10:47:20 | 只看该作者
result
feature
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
3
 楼主| 发表于 2020-2-9 10:59:21 | 只看该作者
原来如此!那这句脚本的意思应该就是:所有不同但同类的增减值的全部加总了。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
4
发表于 2020-2-9 11:10:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
5
 楼主| 发表于 2020-2-9 12:06:37 | 只看该作者
def eval(a, b, v)
    [Kernel.eval(@formula), 0].max * sign rescue 0
  end

这句脚本看了官方解释也看不懂,尤其是红字部份。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
6
 楼主| 发表于 2020-2-9 12:08:08 | 只看该作者
alianlord 发表于 2020-2-9 12:06
def eval(a, b, v)
    [Kernel.eval(@formula), 0].max * sign rescue 0
  end


class RPG::UsableItem::Damage
  def initialize
    @type = 0
    @element_id = 0
    @formula = '0'
    @variance = 20
    @critical = false
  end
  def none?
    @type == 0
  end
  def to_hp?
    [1,3,5].include?(@type)
  end
  def to_mp?
    [2,4,6].include?(@type)
  end
  def recover?
    [3,4].include?(@type)
  end
  def drain?
    [5,6].include?(@type)
  end
  def sign
    recover? ? -1 : 1
  end
def eval(a, b, v)
    [Kernel.eval(@formula), 0].max * sign rescue 0
  end

  attr_accessor :type
  attr_accessor :element_id
  attr_accessor :formula
  attr_accessor :variance
  attr_accessor :critical
end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
7
 楼主| 发表于 2020-2-9 12:12:25 | 只看该作者
alianlord 发表于 2020-2-9 12:08
class RPG::UsableItem::Damage
  def initialize
    @type = 0

eval(a, b, v)

    根据参数执行计算公式,参数 a,b,v 分别指定了技能释放者所在队伍、技能承受者所在队伍以及所需的变量。

    如果伤害结果是恢复,那么就会返回一个负值。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

8
发表于 2020-2-9 13:10:53 | 只看该作者
本帖最后由 喵呜喵5 于 2020-2-9 13:12 编辑
  1. def eval(a, b, v)
  2.     result = Kernel.eval(@formula)  # @formula 如果有语法错误导致代码执行报错,则 result = 0 (rescue 0)
  3.     result = [result, 0].max
  4.     result *= sign
  5.     return result
  6.   end
复制代码
回复 支持 1 反对 0

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
164
在线时间
415 小时
注册时间
2020-1-11
帖子
256
9
 楼主| 发表于 2020-2-9 14:36:29 | 只看该作者

我大概猜了一下,是不是这个意思……
result = Kernel.eval(@formula)
"当方法错误时,就返回0 "
result = [result, 0].max
"把返回值(只要不是错误,也就是不等于0),用max方法挑选出来。
result *= sign
"把值*sign,伤害和回复就是正值和负值之别。
return result
"返回伤害值或回复值。

这段脚本怎么会用全局搜索找不到?
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21631
在线时间
9415 小时
注册时间
2012-6-19
帖子
7118

开拓者短篇九导演组冠军

10
发表于 2020-2-9 15:13:58 | 只看该作者
alianlord 发表于 2020-2-9 14:36
我大概猜了一下,是不是这个意思……
result = Kernel.eval(@formula)
"当方法错误时,就返回0 "

这段脚本就是把
[Kernel.eval(@formula), 0].max * sign rescue 0
拆开来写

评分

参与人数 1星屑 +10 +1 收起 理由
寂静的夜里 + 10 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 13:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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