Advertisement
Guest User

CNWSCreature__AIActionTaunt

a guest
Oct 19th, 2011
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.21 KB | None | 0 0
  1. const unsigned __int32 __thiscall CNWSCreature__AIActionTaunt(void *this, int a2)
  2. {
  3.   int v2; // esi@1
  4.   int v3; // eax@3
  5.   int v4; // edi@3
  6.   void *v5; // eax@9
  7.   int v6; // edi@10
  8.   int v7; // edx@12
  9.   int v9; // edi@16
  10.   int v10; // edx@18
  11.   int v11; // ST64_4@18
  12.   __int16 v12; // dx@18
  13.   int v13; // ebx@19
  14.   int v14; // ebp@19
  15.   int v15; // ebp@19
  16.   int v16; // eax@19
  17.   int v17; // ebx@19
  18.   int v18; // ebx@19
  19.   int v19; // eax@19
  20.   int v20; // ebx@19
  21.   void *v21; // eax@28
  22.   int v22; // ebx@29
  23.   int v23; // eax@31
  24.   __int16 v24; // cx@31
  25.   __int16 v25; // cx@31
  26.   void *v26; // eax@34
  27.   int v27; // ST60_4@34
  28.   int v28; // ST5C_4@34
  29.   int v29; // ST58_4@34
  30.   void *v30; // eax@34
  31.   int v31; // edi@35
  32.   int v32; // ST64_4@37
  33.   int v33; // [sp-4h] [bp-48h]@38
  34.   char v34[4]; // [sp+10h] [bp-34h]@3
  35.   char v35[4]; // [sp+14h] [bp-30h]@16
  36.   int v36; // [sp+18h] [bp-2Ch]@18
  37.   int v37; // [sp+1Ch] [bp-28h]@19
  38.   int v38; // [sp+20h] [bp-24h]@18
  39.   void *v39; // [sp+24h] [bp-20h]@18
  40.   int v40; // [sp+28h] [bp-1Ch]@18
  41.   int v41; // [sp+2Ch] [bp-18h]@1
  42.   int v42; // [sp+30h] [bp-14h]@1
  43.   int v43; // [sp+34h] [bp-10h]@1
  44.   int v44; // [sp+40h] [bp-4h]@9
  45.   signed int v45; // [sp+48h] [bp+4h]@19
  46.  
  47.   v2 = (int)this;
  48.   v41 = 0;
  49.   v42 = 0;
  50.   v43 = 0;
  51.   if ( CNWSObject__GetDead(this) == 1 && CNWSObject__GetIsPCDying((void *)v2) == 1
  52.     || (CNWSCreature__ActivityManager(v2, 1),
  53.         *(_DWORD *)v34 = *(_DWORD *)(a2 + 52),
  54.         v3 = CServerExoApp__GetCreatureByGameObjectID(*(_DWORD *)(g_pAppManager + 4), *(unsigned int *)v34),
  55.         v4 = v3,
  56.         !v3)
  57.     || CNWSObject__GetDead((void *)v3)
  58.     || CNWSObject__GetIsPCDying((void *)v4) )
  59.   {
  60.     *(_DWORD *)(v2 + 2720) = 0;
  61.     return CNWSObject__ACTION_FAILED;
  62.   }
  63.   if ( *(_DWORD *)(v4 + 208) == 1 )
  64.   {
  65.     *(_DWORD *)(v2 + 2720) = 0;
  66.     CNWSCreature__SendFeedbackMessage(v2, 0xDFu, 0, 0);
  67.     return CNWSObject__ACTION_FAILED;
  68.   }
  69.   if ( *(_DWORD *)(*(_DWORD *)(v2 + 2756) + 72) )
  70.   {
  71.     v5 = operator new(0x34u);
  72.     v44 = 0;
  73.     if ( v5 )
  74.       v6 = CNWCCMessageData__CNWCCMessageData(v5);
  75.     else
  76.       v6 = 0;
  77.     v7 = *(_DWORD *)(*(_DWORD *)(v2 + 2756) + 72) / 0x3E8u;
  78.     v44 = -1;
  79.     if ( (unsigned int)v7 < 1 )
  80.       v7 = 1;
  81.     CScriptEvent__SetInteger(v6, 0, v7);
  82.     CNWSCreature__SendFeedbackMessage(v2, 1u, v6, 0);
  83.     return CNWSObject__ACTION_FAILED;
  84.   }
  85.   if ( !CNWSCreature__GetIsInUseRange((void *)v2, *(unsigned int *)v34, 1.0, 0) )
  86.   {
  87.     CNWSCreature__GetUseRange((void *)v2, *(unsigned int *)v34, (int)&v41, (int)v35);
  88.     *(float *)v35 = *(float *)v35 + 1.0;
  89.     v9 = *(_DWORD *)(v4 + 116);
  90.     CNWSObject__AddActionToFront(
  91.       (void *)v2,
  92.       43,
  93.       *(_WORD *)(a2 + 100),
  94.       3,
  95.       (const char **)v34,
  96.       0,
  97.       0,
  98.       0,
  99.       0,
  100.       0,
  101.       0,
  102.       0,
  103.       0,
  104.       0,
  105.       0,
  106.       0,
  107.       0,
  108.       0,
  109.       0,
  110.       0,
  111.       0,
  112.       0,
  113.       0,
  114.       0,
  115.       0,
  116.       0,
  117.       0);
  118.     CNWSCreature__AddMoveToPointActionToFront(
  119.       (void *)v2,
  120.       *(_WORD *)(a2 + 100),
  121.       v41,
  122.       v42,
  123.       v43,
  124.       v9,
  125.       v34[0],
  126.       1,
  127.       v35[0],
  128.       0.0,
  129.       0,
  130.       0,
  131.       0,
  132.       0,
  133.       0,
  134.       0);
  135.     return CNWSObject__ACTION_COMPLETE;
  136.   }
  137.   if ( !*(_DWORD *)(v2 + 2720) )
  138.   {
  139.     CNWSCreature__BroadcastVoiceChat((void *)v2, 8u);
  140.     v10 = *(_DWORD *)v2;
  141.     v11 = *(_DWORD *)v34;
  142.     *(_DWORD *)(v2 + 2720) = 1;
  143.     (*(void (__thiscall **)(int, int))(v10 + 196))(v2, v11);
  144.     v12 = *(_WORD *)(a2 + 100);
  145.     v36 = 1;
  146.     v40 = 28;
  147.     v38 = 1073741824;
  148.     v39 = (void *)1065353216;
  149.     CNWSObject__AddActionToFront(
  150.       (void *)v2,
  151.       43,
  152.       v12,
  153.       3,
  154.       (const char **)v34,
  155.       0,
  156.       0,
  157.       0,
  158.       0,
  159.       0,
  160.       0,
  161.       0,
  162.       0,
  163.       0,
  164.       0,
  165.       0,
  166.       0,
  167.       0,
  168.       0,
  169.       0,
  170.       0,
  171.       0,
  172.       0,
  173.       0,
  174.       0,
  175.       0,
  176.       0);
  177.     CNWSObject__AddActionToFront(
  178.       (void *)v2,
  179.       6,
  180.       *(_WORD *)(a2 + 100),
  181.       1,
  182.       (const char **)&v40,
  183.       2,
  184.       (const char **)&v39,
  185.       2,
  186.       (const char **)&v38,
  187.       1,
  188.       (const char **)&v36,
  189.       0,
  190.       0,
  191.       0,
  192.       0,
  193.       0,
  194.       0,
  195.       0,
  196.       0,
  197.       0,
  198.       0,
  199.       0,
  200.       0,
  201.       0,
  202.       0,
  203.       0,
  204.       0);
  205.     return CNWSObject__ACTION_COMPLETE;
  206.   }
  207.   v15 = *(_DWORD *)(v2 + 3172);
  208.   v16 = (*(int (__thiscall **)(int))(*(_DWORD *)v4 + 16))(v4);
  209.   v17 = CNWSCreatureStats__GetSkillRank(v15, 0x12u, v16, 0);
  210.   v37 = CNWSCreatureStats__GetFavoredEnemyBonus(*(_DWORD *)(v2 + 3172), v4) + v17;
  211.   v18 = *(_DWORD *)(v4 + 3172);
  212.   v14 = rand() % 20 + 1;
  213.   v19 = (*(int (__thiscall **)(int))(*(_DWORD *)v2 + 16))(v2);
  214.   v20 = CNWSCreatureStats__GetSkillRank(v18, 1u, v19, 0);
  215.   v13 = v20 + rand() % 20 + 1;
  216.   v45 = v13;
  217.   if ( CNWSCreatureStats__HasFeat(*(_DWORD *)(v4 + 3172), 380) )
  218.   {
  219.     v13 += 2;
  220.     v45 = v13;
  221.   }
  222.   if ( v13 < 1 )
  223.   {
  224.     v45 = 1;
  225.     v13 = 1;
  226.   }
  227.   if ( !(unsigned __int8)CNWSCreatureStats__GetINTStat(*(_DWORD *)(v4 + 3172)) )
  228.   {
  229.     *(_DWORD *)(v2 + 2720) = 0;
  230.     CNWSCreature__SendFeedbackMessage(v2, 3u, 0, 0);
  231.     return CNWSObject__ACTION_FAILED;
  232.   }
  233.   v40 = v37 + v14;
  234.   if ( v37 + v14 >= v13 )
  235.   {
  236.     if ( !*(_DWORD *)(v4 + 2516) )
  237.     {
  238.       v36 = 1;
  239.       if ( v14 - v13 + v37 >= 1 )
  240.         v36 = v14 - v13 + v37;
  241.       v21 = operator new(0x90u);
  242.       v39 = v21;
  243.       v44 = 1;
  244.       if ( v21 )
  245.         v22 = (int)CGameEffect__CGameEffect(v21, 1);
  246.       else
  247.         v22 = 0;
  248.       v24 = *(_WORD *)(v22 + 10);
  249.       *(_WORD *)(v22 + 8) = CNWSEffectListHandler__EFFECT_TAUNT;
  250.       v44 = -1;
  251.       v25 = CGameEffect__DURATION_TYPE_TEMPORARY | v24 & 0xFFF8;
  252.       *(_DWORD *)(v22 + 12) = 1106247680;
  253.       *(_WORD *)(v22 + 10) = v25;
  254.       CGameEffect__SetCreator((void *)v22, *(_DWORD *)(v2 + 4));
  255.       v23 = v36;
  256.       if ( v36 > 6 )
  257.         v23 = 6;
  258.       CGameEffect__SetInteger(v22, 0, v23);
  259.       CNWSObject__ApplyEffect((void *)v4, (void *)v22, 0, 0);
  260.       v13 = v45;
  261.     }
  262.   }
  263.   CNWSCreature__ClearPersonalReputation((void *)v2, *(_DWORD *)(v4 + 4));
  264.   CNWSCreature__AddToPersonalReputationList((void *)v2, *(_DWORD *)(v4 + 4), -100, 1, 180.0);
  265.   v27 = *(_DWORD *)CServerAIMaster__EVENT_ON_MELEE_ATTACKED;
  266.   v28 = *(_DWORD *)(v4 + 4);
  267.   v29 = *(_DWORD *)(v2 + 4);
  268.   v30 = (void *)CServerExoApp__GetServerAIMaster(*(_DWORD *)(g_pAppManager + 4));
  269.   CServerAIMaster__AddEventDeltaTime(v30, 0, 0, v29, v28, v27, 0);
  270.   v26 = operator new(0x34u);
  271.   v44 = 2;
  272.   if ( v26 )
  273.     v31 = CNWCCMessageData__CNWCCMessageData(v26);
  274.   else
  275.     v31 = 0;
  276.   v32 = *(_DWORD *)(v2 + 4);
  277.   v44 = -1;
  278.   CNWCCMessageData__SetObjectID(v31, 0, v32);
  279.   CScriptEvent__SetInteger(v31, 0, 342);
  280.   CScriptEvent__SetInteger(v31, 1, v14);
  281.   CScriptEvent__SetInteger(v31, 2, v37);
  282.   CScriptEvent__SetInteger(v31, 3, v13);
  283.   CScriptEvent__SetInteger(v31, 4, 0);
  284.   CScriptEvent__SetInteger(v31, 6, 1);
  285.   v33 = v40 >= v13;
  286.   CScriptEvent__SetInteger(v31, 5, v33);
  287.   CNWSCreature__BroadcastSkillData(v2, v31);
  288.   CNWSCreature__SetCombatMode(v2, 0, 1);
  289.   *(_DWORD *)(*(_DWORD *)(v2 + 2756) + 72) = 6000;
  290.   *(_DWORD *)(v2 + 2720) = 0;
  291.   return CNWSObject__ACTION_COMPLETE;
  292. }
  293.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement