加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 大葱有营养 于 2018-11-28 00:26 编辑
在做游戏时发现,当角色中了命中率降低的debuff后,普攻命中会相应降低,但是技能完全不会命中了,
于是查了一下这块的脚本,在技能时命中率判定有这样一段脚本
# 有効フラグをクリア effective = false # コモンイベント ID が有効の場合は有効フラグをセット effective |= skill.common_event_id > 0 # 第一命中判定 hit = skill.hit if skill.atk_f > 0 hit *= user.hit / 100 end hit_result = (rand(100) < hit) # 不確実なスキルの場合は有効フラグをセット effective |= hit < 100 # 命中の場合 if hit_result == true ……
# 有効フラグをクリア
effective = false
# コモンイベント ID が有効の場合は有効フラグをセット
effective |= skill.common_event_id > 0
# 第一命中判定
hit = skill.hit
if skill.atk_f > 0
hit *= user.hit / 100
end
hit_result = (rand(100) < hit)
# 不確実なスキルの場合は有効フラグをセット
effective |= hit < 100
# 命中の場合
if hit_result == true
……
然后……我把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 |