发新话题
打印

[讨论] 关于敏捷与命中计算公式分析[申精]

关于敏捷与命中计算公式分析[申精]

找了半天没找到有人分析,自己动手了..    妖城在线论坛1 h# L# O( u" u% ?. e
- Q) K- q, K. O  C
代码取至GMSV..
复制内容到剪贴板
代码:
bool __cdecl BATTLE_DuckCheck(int a1, int a2)
{
  int v2; // eax@1
  bool v3; // edx@1
  int v5; // eax@3
  int v6; // eax@8
  signed int v7; // eax@14
  long double v8; // fst7@14
  long double v9; // fst6@14
  long double v10; // fst5@14
  long double v11; // fst4@14
  signed int v12; // eax@18
  long double v13; // fst3@22
  __int16 v14; // ax@23
  long double v15; // t1@24
  long double v16; // fst3@24
  long double v17; // fst4@24
  long double v18; // t2@25
  long double v19; // fst4@25
  long double v20; // fst5@25
  long double v21; // fst4@27
  long double v22; // fst3@27
  long double v23; // fst2@27
  long double v24; // t1@30
  long double v25; // fst3@30
  long double v26; // fst5@30
  long double v27; // fst4@30
  signed int v28; // eax@30
  long double v29; // t2@34
  long double v30; // fst5@34
  long double v31; // fst6@34
  long double v32; // fst5@34
  long double v33; // fst7@34
  bool v34; // eax@38
  __int16 v35; // ax@45
  char v36; // al@47
  float v37[2]; // [sp+4h] [bp-90h]@34
  signed int v38; // [sp+8h] [bp-8Ch]@15
  float v39; // [sp+Ch] [bp-88h]@37
  int v40; // [sp+20h] [bp-74h]@23
  __int16 v41; // [sp+24h] [bp-70h]@23
  __int16 v42; // [sp+26h] [bp-6Eh]@23
  float v43; // [sp+28h] [bp-6Ch]@15
  char v44; // [sp+2Ch] [bp-68h]@1

  memcpy(&v44, &unk_817D290, 0x4Cu);   //敏捷加成常量
  v10D6A5D0 = 1120403456;
  v2 = BATTLE_CanMoveCheck(a2);
  v3 = 0;
  if ( v2 )
  {
    v5 = BATTLE_GetDamageReact(a2);
    v3 = 0;
    if ( v5 <= 0 )
    {
      if ( *(_BYTE *)(a2 + 1136) < 0 )
      {
        *(_DWORD *)(a2 + 1136) &= 0xFFFFFF7Fu;
        return 0;
      }
      if ( *(_BYTE *)(a2 + 1136) & 0x40 || (v6 = *(_DWORD *)(a2 + 1112), v6 == 1) || v6 == 42 || v6 == 43 || v6 == 44 )
        return 0;
      if ( v6 != 60 || (v36 = BATTLE_checkEquipmentEffect(a2), v3 = 0, v36 & 8) )
      {
        if ( *(_DWORD *)(a1 + 1112) == 42 )
          return 0;
        v7 = *(_DWORD *)(a1 + 1416);
        v8 = (long double)*(signed int *)(a1 + 1348);   //攻击者命中修正
        v9 = (long double)*(signed int *)(a2 + 1352);   //被攻击者闪躲修正
        v10 = (long double)*(signed int *)(a1 + 1176);  //攻击者敏捷
        v11 = (long double)*(signed int *)(a2 + 1176);  //被攻击者敏捷
        if ( v7 )                                       //判断攻击者是否有敏捷BUFF加倍
        {
          v38 = *(_DWORD *)(a1 + 1416);
          v43 = v10 + (long double)v7 * 0.01 * v10;
          v10 = v43;
        }
        if ( v10 < 0.0 )
          v10 = 0.0;                                      //负敏修正为0
        v12 = *(_DWORD *)(a2 + 1416);
        if ( v12 )                                        //判断被攻击者是否有敏捷BUFF加倍
        {
          v38 = *(_DWORD *)(a2 + 1416);
          v43 = v11 + (long double)v12 * 0.01 * v11;
          v11 = v43;
        }
        if ( v11 < 0.0 )                              
          v11 = 0.0;                                      //负敏修正为0
        v13 = v10;
        if ( v10 <= 241.0 )                               // 判断攻击者敏捷是否到达241 --传说中的240敏捷理论   其实是241.
        {
          LOBYTE(v35) = v42;
          HIBYTE(v35) = 12;
          v41 = v35;
        }
        else
        {
          LOBYTE(v14) = v42;
          HIBYTE(v14) = 12;
          v41 = v14;
          v40 = (signed int)(v10 - 241.0);
          v38 = (signed int)(v10 - 241.0);
          v43 = 0.3 * (long double)v38 + 241.0;         //攻击者敏捷*0.3
          v13 = v43;
        }
        v15 = v13;
        v16 = v11;
        v17 = v15;
        if ( v16 <= 241.0 )                               // 判断被攻击者敏捷是否到达241
        {
          v20 = v16;
        }
        else
        {
          v18 = v17;
          v19 = v16 - 241.0;
          v40 = (signed int)v19;
          v38 = (signed int)v19;
          v43 = 0.3 * (long double)(signed int)v19 + 241.0;         //被攻击者敏捷*0.3
          v17 = v18;
          v20 = v43;
        }
        if ( v17 >= 1.0 )
        {
          v22 = 1.0;
          v23 = v17;
          v21 = 1.0;
        }
        else
        {
          v21 = 1.0;
          v22 = 1.0;
          v23 = 1.0;
        }
        if ( v21 > v20 )
          v20 = v22;
        v24 = v22;
        v25 = v20;
        v26 = v24;
        v27 = v25 / v23 * 10.0;
        v40 = (signed int)v27;
        v28 = (signed int)v27;
        if ( (signed int)v27 <= 9 )
          v28 = 10;
        if ( v28 > 28 )
          v28 = 28;
        v29 = v26;
        v30 = v9 + (long double)*(signed int *)(a2 + 1248) + v37[v28];           //v30 = 被攻击者闪躲+技能闪躲加成+敏捷闪躲加成
        v31 = v29;
        v32 = v30 - (long double)*(signed int *)(a1 + 1244) - v8;                //v32 = v30-攻击者技能命中加成-攻击者命中
        v33 = 70.0;                                                              //设置闪躲最大百分比为70
        if ( v32 <= 70.0 )
          v33 = v32;
        if ( v31 > v33 )
          v33 = v31;
        v39 = v33;
        v34 = v39 >= (long double)(signed int)RAND(1, 100);                     //取1-100的随机数  如果大于或等于被攻击者最终闪躲值则命中
        v10D6A5D0 = v39;
        v3 = v34;
      }
    }
  }
  return v3;
}
所以得出 241敏捷只是PK的最低门槛,  而不是到了241就不需要敏捷了..  敏捷对于命中还是很大关系..  —魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート& |# r) t; B' u1 n- Y
魔力私服,最新魔力宝贝私服技术交流# D4 M0 y0 B) _3 |1 j6 T
敏捷闪躲加成常量数组魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表0 B& v: D0 e) K! o- c

) i, L) l5 J+ Q5 X9 l" D( {- |. @—魔力私服,魔力宝贝私服技术,DELPHI编程,魔力寶貝, 魔力宝贝, 크로스게이트,クロスゲート1.000000       5.000000       10.00000       15.00000
$ I! d) L2 j6 h2 h2 x# D魔力私服,最新魔力私服,魔力宝贝私服,魔力宝贝私服技术,魔力宝贝私服,私服架设技术,妖城,FLASH,电影,黑客,网络,网吧,破解,入侵,注册表20.00000       25.00000       30.00000       35.00000
4 O" E8 N6 I4 [$ z% [8 j; W40.00000       45.00000       50.00000       52.50000魔力私服,最新魔力宝贝私服技术交流' _6 \  K6 j0 j# H
55.00000       57.50000       60.00000       62.50000
; b1 ]2 ^0 @; n7 N$ y( Rbbs.mocwww.com65.00000       67.50000       70.00000魔力私服,最新魔力宝贝私服技术交流0 N5 y9 E: f; q# ~: O, T

9 b+ `" O9 W8 u& o0 [4 w" V& b6 wbbs.mocwww.com[ 本帖最后由 taishanci 于 2013-6-2 19:08 编辑 ]
本帖最近评分记录

TOP

好想要gmsv源码

TOP

群策群力,慢慢逆…………魔力私服,最新魔力宝贝私服技术交流+ f+ k! Q! D; w. T

% x9 {2 y/ G( X4 o& F妖城在线论坛感谢分享
妖城欢迎您!

TOP

发新话题