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

Project1

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

[已经解决] 命中率的计算

[复制链接]

Lv1.梦旅人

梦石
0
星屑
48
在线时间
2459 小时
注册时间
2011-12-18
帖子
1484
跳转到指定楼层
1
发表于 2012-3-5 17:28:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 a364774426 于 2012-3-5 17:28 编辑

默认的工程了固定了角色的命中率
我想让它跟角色的敏捷相关,基础值是80,敏捷越高命中率越高,但是不会达到100
这一条公式该怎么写呢?

Lv2.观梦者

梦石
0
星屑
728
在线时间
687 小时
注册时间
2011-2-13
帖子
638
2
发表于 2012-3-5 21:06:05 | 只看该作者
武器和技能 也都各自的命中啊
那样真的萌大奶
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
334 小时
注册时间
2011-10-21
帖子
413
3
发表于 2012-3-31 09:17:23 | 只看该作者
修改Game_Actor里的def hit
算法可以自己写,以下样本(乱写的,别相信)
  1.   def hit
  2.     if two_swords_style
  3.       n = (base_agi * 10 / 100) * (weapons[0].hit + weapons[1].hit) / 200
  4.     else
  5.       n = (base_agi * 10 / 100) * weapons[0].hit / 100
  6.     end
  7.     return n
  8.   end
复制代码

评分

参与人数 1星屑 +40 收起 理由
iisnow + 40 感谢帮助~

查看全部评分

我是活着的死人哦
回复

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4694
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

4
发表于 2012-3-31 14:03:16 | 只看该作者
本帖最后由 protosssonny 于 2012-3-31 14:09 编辑
  1. hit = (80+20.0*agi/(agi+C) ).round    #C为任意正数
复制代码
以上公式的hit是永远在80到100之间的,因为agi/(agi+C) 是真分数,大于0且小于1。20乘一个真分数,值一定在0至20之间,80加一个0至20之间的数,那么值一定在80至100之间。
注意20.0不要写成20,我们需要小数来计算,纯整数会达不到目的,全部计算完毕后用.round来对命中率取整。当然你也可以自己设计为保留一位小数等,至于怎么保留,话题扯远了,我这里就不写了。
关于以上公式,可以写成:
  1. hit = (80+20.0*agi*C1/(agi*C1+C) ).round    #C、C1为任意正数
复制代码
这样可以利用敏捷的系数C1来微调命中与敏捷的关系。
比如:
  1. hit = (80+20.0*agi*2/(agi*2+50) ).round   
复制代码
{:2_273:}

点评

感谢!!!  发表于 2012-4-2 10:52
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-22 16:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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