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

Project1

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

新人腳本問題

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
535
在线时间
6 小时
注册时间
2008-7-17
帖子
4
跳转到指定楼层
1
发表于 2008-7-17 18:52:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
#--------------------------------------------------------------------------
  # ● 获取 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沒看懂什麽意思,請幫忙解答
版务信息:版主帮忙结贴~

Lv1.梦旅人

逃兵

2
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

逃兵

3
发表于 2008-7-17 19:00:07 | 只看该作者
重复了……自屏蔽
「If you judge people, you have no time to love them.」—— Mother Teresa
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2007-9-2
帖子
236
4
发表于 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感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
535
在线时间
6 小时
注册时间
2008-7-17
帖子
4
5
 楼主| 发表于 2008-7-17 19:03:31 | 只看该作者
看過了LS的解答,完全理解了,原來是比較指令啊= =
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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

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

使用道具 举报

Lv2.观梦者

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

使用道具 举报

Lv1.梦旅人

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-8-9 05:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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