版主:

图文——标题:ja2数学用表

楼主发表于: 2006年12月11日 16:20:07 短消息
ly85124ly
  • 级别 注册用户
  • 称谓 小石头
  • 精华 0
  • 发贴 0
  • 积分 0
  • 游戏网金币 0
  • 在线时间 0小时
  • 注册时间 2007-1-22
  • 最后登陆 2007-1-22

ja2数学用表

文章出处:铁资网  作者:sdjk  发布时间:2005-03-11  

我不想把ja公式化,但是我通过看源码的计算还是明白了许多细节
打游戏时没有哪个人会去做计算,但看公式可以帮助你明白做某件事时,有哪些影响因素,这些因素又在什么量级上影响着做事的结果。
这有助于提高,象diablo中的武器伤害的研究fans那样

所以我把这些公式列在这里,供感兴趣的人参考。

1 士气加成:士气几乎在ja2的任何活动中都起修正作用。
1)士气高于50,则士气减45除以10,即士气为55则+1%,65则+2%,95以上+5%
2)士气低于50,则士气-50乘2除5,即士气为45则-2%,40则-4%,0则-20%

2 疲劳惩罚:疲劳和士气一样,几乎在所有活动中起作用,本规则中的气值指气槽的最大值。
1)气值大于85无惩罚
2)气值70~85,惩罚为5%
3)气值50~70,惩罚为12.5%
4)气值30~50,惩罚25%
5)气值15~30,惩罚为37.5%
6)气值0~15,惩罚为45%


3 计算投掷命中率:
1)徒手投掷(如飞刀,手雷等)基准点为:(DEX+枪法)/2 ,有throwing技能加12,专家加24
2)装备投掷(如小炮等)基准点为:(DEX+枪法+智力+级别)/4,有重武器技能加15,专家加30
3)士气加成
4)疲劳度惩罚
5)与上次目标相同加10
6)每精瞄1点加10%
7)被气体影响减50
8)正接受包扎减20
9)每个shock点减5
10)未超过最大射程,以武器最大射程的1/2为基准,距目标超过此距离惩罚,小于此距离奖励,具体点数等于超过或小于的距离占最大射程的百分比
11)超过最大射程,则命中率减半
12)负伤有惩罚,生命值只有一半的人会有1/3的惩罚,最大惩罚为2/3,如果负伤被包扎了,则惩罚加大,生命值只有一半的人将会有1/2的惩罚,如果是装备投掷则负伤惩罚减半,最后,负伤惩罚可以被佣兵级别降低,1级不降,然后每高一级降10%,10级佣兵只受到10%的负伤惩罚。
13)气值不满有惩罚,惩罚百分比(100-气值)/200,如果是装备投掷则惩罚减半,此惩罚可被DEX降低,DEX为10不降,dex为100只受10%惩罚。
14)如是装备投掷,则乘装备状态百分比


4 开锁成功率计算
1)基础值等于机械能力
2)智力惩罚百分比:(智力+100)/200,即智力100无惩罚,智力0减半
3)DEX惩罚百分比:同智力
4)加上等级的3倍
5)如是普通锁,则有开锁技能加25,专家加50
6)如是电子锁,则无电子技能减半
7)最后乘以开锁工具的状态百分比
8)疲劳惩罚
9)减掉门的难度
10)如果机率此时小于30,则几率为0,不可能开门,如果大于99则强制等于99
11)减掉一个最大为100的随机数,如大于0,则开门。

5 射击命中率
1)基础值为枪法,机器人的枪法为自己和控制者枪法的最大值
2)士气加成
3)疲劳惩罚
4)当前值如果大于枪支状态,则取与枪支状态的均值
5)与上次射击同一目标加10
6)神经值加15
7)蹲着射击有加成,距离每格加1,最大加10
8)趴着射击大于5格有加成,距离每格加1,最大加20,如果带支架,再加成,状态大于85%的支架再加50%加成,即趴着射击最大有30的加成。
9)如果不是双手武器,则SMG减5,如果没有双手技能,减20
10)如果是扫射,减去该武器的扫射惩罚,扫射的子弹逐发累计惩罚,有自动武器技能,惩罚减半,自动武器专家再减半。
11)在可以看到目标时,每花一点AP瞄准,则加10
12)射击者被气体影响,减50
13)正接受包扎减20
14)每个shock点减5
15)激瞄加成,状态50%无加成,100%加20,状态低于50%反而带来惩罚,0%减20
16)太阳镜缩短视距10%
17)狙瞄在距离大于6格时,每个AP可减少20%视距,最大减少80%,此效果要乘以狙瞄状态百分比
18)射头每格受3点惩罚,射腿每格受1点惩罚
19)射程惩罚:(最大射程-(实际距离×3))/1.7 (此公式中距离单位为格)
20)视野惩罚:3×(9-视距)
21)由地面射击屋顶的人减25
22)屋顶向下射击加15,屋顶技能再加15
23)目标蹲着,则实际距离大于8格减20,距离大于2格的每大一格减3
24)目标趴着,距离大于2格的每大一格减3,最大减40
25)目标站着,射击者趴着,则小于5格有惩罚,此时打腿惩罚小,打头惩罚大,距离近惩罚大,距离远惩罚小,4格打头无惩罚,3格打头惩罚10,1格惩罚30。
26)目标移动越多惩罚越大,最大30
27)目标闪躲惩罚:目标AGI/5+目标等级×2,此惩罚在目标蹲着时减1/3,目标趴着时减2/3,最后如果此惩罚值低于射手AGI/5+射手等级×2,则惩罚取消。
28)负伤惩罚,生命值只有一半的人会有1/3的惩罚,最大惩罚为2/3,如果负伤被包扎了,则惩罚加大,生命值只有一半的人将会有1/2的惩罚,最后,负伤惩罚可以被佣兵级别降低,1级不降,然后每高一级降10%,10级佣兵只受到10%的负伤惩罚。
29)气值不满有惩罚,惩罚百分比(100-气值)/200,此惩罚可被DEX降低,DEX为10不降,dex为100只受10%惩罚。
30)实际距离超过最大射程减半!
31)命中率最后被强制归到1到99之间

sniper0214补充:
有一些更正和补充

1)基础值为枪法,机器人的枪法为自己和控制者枪法的最大值
应该为 枪法x清醒度/100 清醒度包括以下数值(100, 75, 65, 50, 100),按注释来看,喝酒减少清醒度.
火箭筒的算法不同,为 (Dex+枪法+智慧+10x级别)/4
有重武器技能加15,专家再加15
清醒度影响人物的每一个属性,所有取人物属性的地方都要加上清醒修正

2)士气加成

3)疲劳惩罚

4)当前值如果大于枪支状态,则取与枪支状态的均值

5)与上次射击同一目标加10
不是同一目标,是同一方格

6)神经值加15

7)蹲着射击有加成,距离每格加1,最大加10

8)趴着射击大于5格有加成,距离每格加1,最大加20,如果带支架,再加成,状态大于85%的支架再加50%加成,即趴着射击最大有30的加成。
支架加成为 支架状态x趴着射击的加成/100/2

9)如果不是双手武器,则SMG减5,如果没有双手技能,减20
是否使用两把武器的判断如下:
1. 左手武器类别为枪
2. 左手武器不能为双手武器
3. 射击者不在扫射状态
4. 右手武器不是榴弹发射器
5. 右手武器必须是枪
6. 左手枪的状态必须大于等于10
7. 左手枪中必须有子弹
如果不符合,即使没有双手技能也不减20

10)如果是扫射,减去该武器的扫射惩罚,扫射的子弹逐发累计惩罚,有自动武器技能,惩罚减半,自动武器专家再减半。

11)在可以看到目标时,每花一点AP瞄准,则加10

增加一条
如果射击者是电脑控制的人,在简单模式下命中减5, 在其他模式下如下
INT8 gbDiff[MAX_DIFF_PARMS][5] =
{
//AI DIFFICULTY SETTING
// WIMPY EASY NORMAL TOUGH ELITE
{ -20, -10, 0, 10, 20 }, // DIFF_ENEMY_EQUIP_MOD
{ -10, -5, 0, 5, 10 }, // DIFF_ENEMY_TO_HIT_MOD
{ -2, -1, 0, 1, 2 }, // DIFF_ENEMY_INTERRUPT_MOD
{ 50, 65, 80, 90, 95 }, // DIFF_RADIO_RED_ALERT
{ 4, 6, 8, 10, 13 } // DIFF_MAX_COVER_RANGE
};
// max with 0 to prevent this being a bonus, for JA2 it's just a penalty to make early enemies easy
// CJC note: IDIOT! This should have been a min. It's kind of too late now...
// CJC 2002-05-17: changed the max to a min to make this work.
iChance += __min( 0, gbDiff[ DIFF_ENEMY_TO_HIT_MOD ][ SoldierDifficultyLevel( pSoldier ) ] );
按代码来看命中最多会减10

12)射击者被气体影响,减50

13)正接受包扎减20

14)每个shock点减5

再增加一条
如果射击者的枪上有增程枪管,并且在这次射击中枪管会脱落,命中减30

15)激瞄加成,状态50%无加成,100%加20,状态低于50%反而带来惩罚,0%减20
应该在狙瞄后面
火箭枪和自动火箭枪自带激瞄,激瞄状态等于枪的状态
激瞄加成为 (激瞄状态-50)x20/50 负数则变为惩罚

16)太阳镜缩短视距10%
缩短视距,不是命中,视距在后面影响命中

17)狙瞄在距离大于6格时,每个AP可减少20%视距,最大减少80%,此效果要乘以狙瞄状态百分比
不花费AP瞄准时无效,6格内无效(包括6格),狙瞄影响的是视距,不是命中,视距减少效果如下:
20x瞄准花费的APx(距离-60)/100x狙瞄状态/100
如果视距小于1,强制为1

18)射头每格受3点惩罚,射腿每格受1点惩罚
不是每格,而是每10点视距,不足10点的不计算

19)射程惩罚:(最大射程-(实际距离×3))/1.7 (此公式中距离单位为格)

再增加一条
如果射击者为坦克的话并且 距离/10 小于26的话命中减少 2x(26-(距离/10))

20)视野惩罚:3×(9-视距)
如果视距为0,减少80,否则的话如下
// Effects based on aiming & sight
// From for JA2.5: 3% bonus/penalty for each tile different from range NORMAL_RANGE.
// This doesn't provide a bigger bonus at close range, but stretches it out, making medium
// range less penalized, and longer range more penalized
iChance += 3 * ( NORMAL_RANGE - iSightRange ) / CELL_X_SIZE;
命中增加 3x(90-视距)/10

21)由地面射击屋顶的人减25

22)屋顶向下射击加15,屋顶技能再加15
专家再加15

在射手瞄准的格内查找与射手同一层的士兵,如果找到

23)目标蹲着,则实际距离大于8格减20,距离大于2格的每大一格减3
如果射击者是坦克且距离小于12格时,每少一格命中减13

24)目标趴着,距离大于2格的每大一格减3,最大减40
如果射击者是坦克且距离小于12格时,每少一格命中减25

25)目标站着,射击者趴着,则小于5格有惩罚,此时打腿惩罚小,打头惩罚大,距离近惩罚大,距离远惩罚小,4格打头无惩罚,3格打头惩罚10,1格惩罚30。
等于5格时也有惩罚
惩罚计算如下
iChance -= (5 - ubAdjAimPos - 距离 / 10) x 10;
ubAdjAimPos为瞄准的部位,瞄头时为1,瞄身体时为2,瞄腿时为3,此时瞄其他部位时视为瞄身体

26)目标移动越多惩罚越大,最大30

27)目标闪躲惩罚:目标AGI/5+目标等级×2,此惩罚在目标蹲着时减1/3,目标趴着时减2/3,最后如果此惩罚值低于射手AGI/5+射手等级×2,则惩罚取消。
惩罚是目标AGI/5+目标等级x2,蹲着减1/3,趴着减2/3
奖励是射手AGI/5+射手等级x2,如果目标是坦克或射手是怪物女王,奖励减半
如果惩罚大于奖励,则命中减少(惩罚-奖励)
如果奖励大于惩罚,不奖励也不惩罚

在射手瞄准的格内未找到与射手同一层的士兵且射手是坦克且距离小于12格,每少1格命中减25

28)负伤惩罚,生命值只有一半的人会有1/3的惩罚,最大惩罚为2/3,如果负伤被包扎了,则惩罚加大,生命值只有一半的人将会有1/2的惩罚,最后,负伤惩罚可以被佣兵级别降低,1级不降,然后每高一级降10%,10级佣兵只受到10%的负伤惩罚。

29)气值不满有惩罚,惩罚百分比(100-气值)/200,此惩罚可被DEX降低,DEX为10不降,dex为100只受10%惩罚。
惩罚为 命中x(100-气值)/200
Dex修正为 惩罚x(110-Dex)/100
最后命中减去Dex修正

30)实际距离超过最大射程减半!

增加一条
如果视距大于视线范围,命中减半

31)命中率最后被强制归到1到99之间
如果命中小于1且射手是坦克,则命中为0,否则命中为1
如果命中大于99,强制为99

sdjk回复:
谢谢补充,有些东西是为了叙述起来简洁,不至于烦琐得吓走太多人而故意省略的,如喝酒和坦克等,一些我认为无关紧要的公式也没有写,只是把典型值列出供参考,现在好了,你给了读者一个新选择。

另,我文中的距离统一是“格”,也就是10个距离单位,因为距离单位对玩家来说是没有直观意义的,所以都按照格来说了。你纠正的一些公式,其实只是距离单位不同而已。

屋顶作战技能应该是没有专家级的
$Page1$

快速回复

登录名:
密码: 马上注册! 如果您还不是游戏网会员请点击马上注册,如果您是......
心情:
:revertSmile50: :revertSmile51: :revertSmile52: :revertSmile53: :revertSmile55: :revertSmile56: :revertSmile57: :revertSmile58: :revertSmile60: :revertSmile61: :revertSmile63: :revertSmile65: :revertSmile66: :revertSmile67: :revertSmile70:
内容:
验证码: 看不清?点击图片换图(游客回复需通过认证才能显示,想立即看到回复,请注册登录)
[完成后可按 Ctrl+Enter 回复]推荐朋友,获得无限社区积分!
  • 游戏网声明:
  • 本社区(http://bbs.youxi.com)所载所有内容皆为网友上传。 游戏网只为网友提供空间和平台,并不代表本网赞同其观点和对其真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请于该信息发布之日起30日内进行。
  • 文明回贴是一种美德,尊重他人等于尊重自己!