Advertisement
Guest User

Anti-Lead GunZ 2008

a guest
Nov 23rd, 2014
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.07 KB | None | 0 0
  1.     case PC_LEAD_SHOT:
  2.             {
  3.                 MUID uidAttacker;
  4.                 MUID uidPlayer;
  5.                 D3DXVECTOR3 srcPos;
  6.                 float fDamage, fPiercingRatio;
  7.                 ZDAMAGETYPE damageType;
  8.                 MMatchWeaponType weaponType;
  9.                 uidPlayer.Low = 0;
  10.                 int nMeleeType;
  11.                 char string[32];
  12.                 char szName[32];
  13.                 int nTeam;
  14.  
  15.                 pCmd->GetParameter( &uidPlayer.High, 0, MPT_INT, -1 );
  16.                 //uidAttacker = pCmd->m_uidSender;
  17.                 if( pCmd->m_uidSender.High != uidChar.High ){
  18.                     pCmd->GetParameter( &srcPos.x, 1, MPT_FLOAT, -1 );
  19.                     pCmd->GetParameter( &srcPos.y, 2, MPT_FLOAT, -1 );
  20.                     pCmd->GetParameter( &srcPos.z, 3, MPT_FLOAT, -1 );
  21.                     pCmd->GetParameter( &damageType, 4, MPT_INT, -1 );
  22.                     pCmd->GetParameter( &weaponType, 5, MPT_INT, -1 );
  23.                     pCmd->GetParameter( &fDamage, 6, MPT_FLOAT, -1 );
  24.                     pCmd->GetParameter( &fPiercingRatio, 7, MPT_FLOAT, -1 );
  25.                     pCmd->GetParameter( &nMeleeType, 8, MPT_INT, -1 );
  26.                     pCmd->GetParameter( &string, 9, MPT_STRING, 32 );
  27.                     pCmd->GetParameter( &szName, 10, MPT_STRING, 32 );
  28.                     pCmd->GetParameter( &nTeam, 11, MPT_INT, -1 );
  29.  
  30.                     if( fDamage > 150.0f || fPiercingRatio > 2.0f ){
  31.                         return true;
  32.                     }
  33.  
  34.                     if( uidChar.High == uidPlayer.High ){
  35.                         ZCharacter* pAttacker = ZCharacterManager::GetInstance()->Find( pCmd->m_uidSender );
  36.                         ZCharacter* pMe = ZCharacterManager::GetInstance()->Find( uidChar );
  37.                        
  38.                         ZGameClient* pClient = (ZGameClient*)ZGetGameClient();
  39.                         MSTAGE_SETTING_NODE& pNode = pClient->GetStageSetting()->GetStageSettingNode();
  40.                    
  41.                         if( ZCharacter::GetMe()->GetTeamID() != nTeam){
  42.                             ZPostBackDamage( fDamage, szName );
  43.                             nRecv += fDamage;
  44.                         }
  45.  
  46.                         int type = pNode.nGameType;
  47.                         if (pMe && !stricmp(string, "l34d") && (type == 0 || type == 2 || type == 6 || type == 5 || type == 10 || type == 8) || (pMe->IsTeam(pAttacker) && pNode.bTeamKillEnabled) || (!pMe->IsTeam(pAttacker))){
  48.                             if( !bGod ){
  49.                                 /*float newDamage = 0.0f;
  50.                                 newDamage = fDamage*nTank;
  51.                                 fDamage = newDamage;
  52.                                 ((void(__thiscall*)( ZCharacter*, ZCharacter*, D3DXVECTOR3, ZDAMAGETYPE, MMatchWeaponType, float, float, int ))0x47AE10)( pMe, pAttacker, srcPos, damageType, weaponType, fDamage, fPiercingRatio, nMeleeType );*/
  53.                                 if (pMe->GetAP() <= 0) {
  54.                                     fPiercingRatio = 1.0f;
  55.                                 }
  56.                                 float damageHp = fDamage * fPiercingRatio;
  57.                                 float damageAp = fDamage - damageHp;
  58.                                 int ap = pMe->GetAP() - static_cast<int>(damageAp);
  59.                                 int hp = pMe->GetHP() - static_cast<int>(damageHp);
  60.                                 pMe->SetAP((hp > 0) ? ap : 0);
  61.                                 pMe->SetHP(hp);
  62.                                 DWORD* me = (DWORD*)ZCharacterManager::GetInstance()->Find( uidChar );
  63.                                 DWORD lowid = pCmd->m_uidSender.Low;
  64.                                 DWORD highid = pCmd->m_uidSender.High;
  65.                                 _asm {
  66.                                     PUSHAD
  67.                                     MOV EAX, pMe
  68.                                     MOV EAX, DWORD PTR DS:[EAX+0x3BC]
  69.                                     MOV EDX, lowid
  70.                                     MOV EBX, highid
  71.                                     MOV DWORD PTR DS:[EAX+0x1C], EDX
  72.                                     MOV DWORD PTR DS:[EAX+0x20], EBX
  73.                                     POPAD
  74.                                 }
  75.                             }
  76.                         }
  77.                     }
  78.                 }
  79.  
  80.                 return true;
  81.  
  82.                 break;
  83.             };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement