查看: 1259|回复: 7

新人腳本問題

  [复制链接]
梦石
0
星屑
535
在线时间
6 小时
注册时间
2008-7-17
回帖
3
发表于 2008-7-17 18:52:14 | 显示全部楼层 |阅读模式

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

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

×
#--------------------------------------------------------------------------
  # ● 获取 MaxHP
  #--------------------------------------------------------------------------
  def maxhp
    n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min
    for i in @states
      n *= $data_states.maxhp_rate / 100.0
    end
    n = [[Integer(n), 1].max, 999999].min
    return n
  end

這個是遊戲本身自帶庫的戰鬥用腳本,首先就卡殼在那個 n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min沒看懂什麽意思,請幫忙解答
版务信息:版主帮忙结贴~

逃兵

发表于 2008-7-17 19:00:04 | 显示全部楼层
有問題以後就在這個帖子里更新

若果你这么做,大概没人会继续解答

n = [[base_maxhp + @maxhp_plus, 1].max, 999999].min


n = base_maxhp + @maxhp_plus
if n < 1
  n = 1
elsif n > 999999
  n = 999999
end
return n
「If you judge people, you have no time to love them.」—— Mother Teresa
回复

使用道具 举报

逃兵

发表于 2008-7-17 19:00:07 | 显示全部楼层
重复了……自屏蔽
「If you judge people, you have no time to love them.」—— Mother Teresa
回复

使用道具 举报

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-9-2
回帖
225
发表于 2008-7-17 19:02:47 | 显示全部楼层
base_maxhp + @maxhp_plus 是角色HP上限
[base_maxhp + @maxhp_plus, 1].max是在1和base_maxhp + @maxhp_plus中间取较大值
同理[[base_maxhp + @maxhp_plus, 1].max, 999999].min 就是在所取出的最大值与999999之间取较小值

这句其实就是给n赋值为base_maxhp + @maxhp_plus  只不过限定了大小在1~999999之间




系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
回复

使用道具 举报

梦石
0
星屑
535
在线时间
6 小时
注册时间
2008-7-17
回帖
3
 楼主| 发表于 2008-7-17 19:03:31 | 显示全部楼层
看過了LS的解答,完全理解了,原來是比較指令啊= =
回复

使用道具 举报

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-9-2
回帖
225
发表于 2008-7-17 19:11:55 | 显示全部楼层
说是比较指令不太准确 虽然过程是进行大小比较 但是给出的结果里是没有大小顺序的 只有最值 如果你在[].max里放3个数它只会把最大值找出来 其他两个数的大小比较是不会给出滴~

n = [[Integer(n), 1].max, 999999].min也是同样的意思
不过多了一个取整过程
Integer(n)是对之前所赋的n取整
回复

使用道具 举报

梦石
0
星屑
535
在线时间
6 小时
注册时间
2008-7-17
回帖
3
 楼主| 发表于 2008-7-17 19:28:12 | 显示全部楼层
因為RGSS太注重屬性系統的使用,我還不是怎么適應,這段整體的意思大概明白了,你幫我看看我這么理解對不對
首先取N並且給其規定一個1~999999的範圍,然後將N與屬性數據中每一個最大HP率比較,然後再對N取一次整,并確定一次其範圍,那么基本可以理解為:MAXHP=(BASE MAXHP+MAXHP_PLUS)*MAXHP調整比率
回复

使用道具 举报

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-9-2
回帖
225
发表于 2008-7-17 20:30:51 | 显示全部楼层
  for i in @states
     n *= $data_states.maxhp_rate / 100.0
   end
这个循环节泥~是附加状态属性的运算~
在数据库里是设定了某状态对HP上限的影响比率(状态下MAXHP是基本MAXHP的百分之多少)
在读取了此比率后乘在n上 就得到了战斗中角色该状态下的HP上限
因为进行了乘法运算可能出现小数点 所以就进行了取整 并再次限定范围
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部