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

Project1

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

[已经解决] 请教一个RGSS里关于计算的简单脚本问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2614
在线时间
288 小时
注册时间
2018-5-13
帖子
26
跳转到指定楼层
1
发表于 2018-11-28 00:17:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 大葱有营养 于 2018-11-28 00:26 编辑

在做游戏时发现,当角色中了命中率降低的debuff后,普攻命中会相应降低,但是技能完全不会命中了,
于是查了一下这块的脚本,在技能时命中率判定有这样一段脚本
RUBY 代码复制
  1. # 有効フラグをクリア
  2. effective = false
  3. # コモンイベント ID が有効の場合は有効フラグをセット
  4. effective |= skill.common_event_id > 0
  5. # 第一命中判定
  6. hit = skill.hit
  7. if skill.atk_f > 0
  8. hit *= user.hit / 100
  9. end
  10. hit_result = (rand(100) < hit)
  11. # 不確実なスキルの場合は有効フラグをセット
  12. effective |= hit < 100
  13. # 命中の場合
  14. if hit_result == true
  15. ……

然后……我把hit *= user.hit / 100 这一句改成了 hit *= user.hit / 100.0 就可以了,估计ruby的“/”对于两个整型数运算结果仍为整型
而且我又试着把这句话写成了 hit = hit * user.hit / 100,似乎也可以
但是我又有地方不明白了,ruby的变量似乎没有分整型实型,而且也没看到有变量类型声明,
那这句话hit *= user.hit / 100 到底是怎么判断user.hit是浮点数还是整数的?
为何hit = hit * user.hit / 100 就又对了?(我查了上下文,似乎hit也是整型数啊)
是否是对变量初始化的时候就决定了变量的类型呢?
希望能向大大们为我请教,谢谢,脚本渣渣在学习中还有很多不懂想向各位请教QwQ
游戏设计爱好者

Lv4.逐梦者

梦石
0
星屑
19388
在线时间
3097 小时
注册时间
2013-1-11
帖子
1290
2
发表于 2018-11-28 00:57:56 | 只看该作者
本帖最后由 张咚咚 于 2018-11-28 01:01 编辑

弱类型语言变量不需要声明类型。
a = 1
a = a.to_f # 1.0
a = a.to_i #1
5 / 3 = 1
5 / 3.0 = 1.66666667
可以用to_i和to_f进行整、小数转换。
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23994
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

3
发表于 2018-11-28 20:40:12 | 只看该作者
默认脚本里,user.hit 一直都是整数。关于此bug,https://rpg.blue/thread-404592-1-1.html里有提到

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
大葱有营养 + 1 谢谢推荐的帖子!很有用的说!.

查看全部评分

熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 04:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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