partoftheworlD Опубликовано 2 июня, 2016 Поделиться Опубликовано 2 июня, 2016 (изменено) Структура Скрытый текст struct __declspec(align(8)) struct_WeaponChatacteristcs { _QWORD qwPointer; byte unknown_10; byte gap1[7]; byte unknown_9; byte gap2[4]; byte unknown_11; byte gap3[10]; int iShooting_mode_; float fTime2NextShotBuffer; float fTime2NextShot; int iShot_Count_; byte gap4[4]; int iShot_Count; byte gap5[16]; int iterator; BYTE bShooting; byte gap6[12]; int iSet_shooting_mode; byte gap7[44]; float Zoom; byte gap8[12]; float fRecoil_x; float fRecoil_Y; BYTE bAim_active; byte bIDK; byte gap2[1]; byte bIDK3; int iShooting_mode; float fFov; byte gap9[55]; float fBuffer; int gap10[4]; byte bunknown; byte gap11[20]; float fDeltaTime; byte gap12[72]; byte iIDK6; byte gap13[29]; int iIDK4; byte gap14[5]; byte value; byte gap15[14]; byte iIDK5; byte gap16[7]; float fIDK6; byte gap17[180]; byte bIDK6; byte gap18[3]; byte bIDK8; byte gap19[3]; byte unknown_5; byte gap20[3]; byte unknown_7; byte gap21[26]; byte bIDK7; float fTime2NextShotReverse; }; Восстановленный код выстрела Скрытый текст Characteristics = Characteristics_of_weapon_1; v3 = 0; if ( GetObjectID(Characteristics_of_weapon_1) || ((v4 = *&Characteristics->iIDK6 == 0, LODWORD(Pointer_32) = (*(Characteristics->qwPointer + 0x20i64))(Characteristics), v4) ? (Pointer_32_BE0_or_BD8 = *(Pointer_32 + 0xBE0)) : (Pointer_32_BE0_or_BD8 = *(Pointer_32 + 0xBD8)), GetObjectID(Pointer_32_BE0_or_BD8)) ) { SetRecoil(Characteristics, *&fTime2NextShot); } LOBYTE(Fired_cartridges) = Get_Number_of_Bagged_ammo(Characteristics); if ( Fired_cartridges ) { if ( Crosshair_Active ) Aim(Characteristics); if ( (*(Characteristics->qwPointer + 0x28i64))(Characteristics) ) { LODWORD(Pointer_20_) = (*(Characteristics->qwPointer + 0x20i64))(Characteristics); if ( *(Pointer_20_ + 0xFD8) > 0.0 ) { Characteristics->bShooting = Characteristics->iShooting_mode_ == 2 && Characteristics->bShooting; v9 = Characteristics->qwPointer; *&Characteristics->unknown_5 = -1; // 0x258 *&Characteristics->unknown_7 = 0; // 0x25C Characteristics->bIDK3 = 0; Characteristics->iShooting_mode = 0; Characteristics->iShooting_mode_ = 0; (*(v9 + 48))(Characteristics); LODWORD(Characteristics->fTime2NextShot) = 0; LODWORD(Characteristics->fTime2NextShotBuffer) = fTime2NextShot; } } GetTimeDelta(Characteristics, *&fTime2NextShot); if ( Characteristics->fBuffer > 0.0 ) { (*(Characteristics->qwPointer + 0x30i64))(Characteristics); *&fTime2NextShot = *&fTime2NextShot - Characteristics->fBuffer; if ( *&fTime2NextShot > 0.30000001 ) LODWORD(Characteristics->fBuffer) = -1082130432; } if ( Characteristics->bShooting && (*(Characteristics->qwPointer + 40i64))(Characteristics) ) { (Allows2shot_Func)(Characteristics, fTime2NextShot); } else { LODWORD(v10) = (*(Characteristics->qwPointer + 0x20i64))(Characteristics); if ( *(*(v10 + 0xBA0) + 0x10i64) ) (*(Characteristics->qwPointer + 32i64))(Characteristics); } if ( Characteristics->iShooting_mode_ != 2 ) *&Characteristics->bunknown = sub_CC42F0(Characteristics); if ( (Characteristics->bAim_active || byte_1C21756) && !sub_CC74B0(Characteristics) ) sub_CC1600(0, Characteristics, 1, Characteristics->bIDK, *&fTime2NextShot); sub_CC73F0(Characteristics, *&fTime2NextShot); sub_CC01F0(Characteristics, *&fTime2NextShot); sub_CC08E0(Characteristics, *&fTime2NextShot); sub_CC6A80(Characteristics); SetFov(Characteristics, fTime2NextShot); LODWORD(v11) = (*(Characteristics->qwPointer + 32i64))(Characteristics); DeltaTime = IGSObject::GetTimeDelta((v11 + 40)); Pointer = Characteristics->qwPointer; fTime2NextShotBuffer_1 = DeltaTime + Characteristics->fTime2NextShotReverse; Characteristics->fTime2NextShotReverse = fTime2NextShotBuffer_1; if ( (*(Pointer + 40))(Characteristics) ) Characteristics[1].unknown_9 = 0; if ( Characteristics->iShooting_mode_ != 2 ) sub_CBF900(Characteristics); ishooting_mode = Characteristics->iShooting_mode_; if ( !ishooting_mode ) { LODWORD(v26) = (*(Characteristics->qwPointer + 32i64))(Characteristics); LODWORD(iIDK4) = (*(*v26 + 0x758i64))(v26, *&Characteristics->iIDK6);// iIDK6 = -1.0 iIDK4_1 = iIDK4; if ( (*(Characteristics->qwPointer + 40i64))(Characteristics) ) { if ( !iIDK4_1 || sub_CCC2B0(Characteristics) || !sub_CC4A90(Characteristics, 0, 0) || (LODWORD(v30) = (*(Characteristics->qwPointer + 32i64))(Characteristics), (*(*v30 + 2568i64))(v30)) ) { if ( (Get_Shooting_Mode(Characteristics) == 3 || Get_Shooting_Mode(Characteristics) == 4) && -1.0 != Characteristics->fIDK6 // iIDK5 = -1.0 после выстрела устанавливает значение 2434 или 3569 && (*(Characteristics->qwPointer + 40i64))(Characteristics) ) { a1a = qword_1C22160; v41 = dword_1C22168; Shot(&a1a, Characteristics, *&dword_1C22168); } goto MakeShot; } LODWORD(v31) = (*(Characteristics->qwPointer + 32i64))(Characteristics); if ( !sub_AC7C80(v31) ) { sub_CC4A10(Characteristics, 0i64); goto MakeShot; } LODWORD(v32) = (*(Characteristics->qwPointer + 32i64))(Characteristics); LOBYTE(v3) = *&Characteristics->iIDK6 == 0; LODWORD(v33) = (*(*v32 + 1880i64))(v32, v3); v34 = v33; bCondition = !sub_CCC2B0(Characteristics) && sub_CC4A90(Characteristics, 0, 0); v36 = v34 && !*(v34 + 64); if ( !bCondition ) goto MakeShot; v29 = v36 == 0; } else { v29 = Characteristics[1].unknown_9 == 0; } if ( !v29 ) sub_CC4A10(Characteristics, 0i64); goto MakeShot; } v16 = ishooting_mode - 1; if ( v16 ) { v17 = v16 - 1; if ( !v17 ) { sub_CBD1F0(Characteristics); if ( fTime2NextShotBuffer_1 < Characteristics->fTime2NextShot ) { if ( ((Get_Shooting_Mode(Characteristics) == 3 || Get_Shooting_Mode(Characteristics) == 4) && (fTime2NextShotBuffer_1 = -1.0, -1.0 != Characteristics->fIDK6) && (*(Characteristics->qwPointer + 40i64))(Characteristics) || Get_Shooting_Mode(Characteristics) == 2 && Characteristics->iterator > 0 && (*(Characteristics->qwPointer + 40i64))(Characteristics)) && (a1a = qword_1C22160, fTime2NextShotBuffer_1 = *&dword_1C22168, v41 = dword_1C22168, Shot(&a1a, Characteristics, *&dword_1C22168)) ) { if ( Get_Shooting_Mode(Characteristics) == 2 ) --Characteristics->iterator; } else { Characteristics->bShooting = Characteristics->iShooting_mode_ == 2 && Characteristics->bShooting; v23 = Characteristics->qwPointer; *&Characteristics->unknown_5 = -1; *&Characteristics->unknown_7 = 0; Characteristics->bIDK3 = 0; Characteristics->iShooting_mode = 0; Characteristics->iShooting_mode_ = 0; (*(v23 + 48))(Characteristics); LODWORD(Characteristics->fTime2NextShot) = 0; Characteristics->fTime2NextShotBuffer = fTime2NextShotBuffer_1; } } LODWORD(Characteristics_of_weapon_Pointer) = (*(Characteristics->qwPointer + 32i64))(Characteristics); Characteristics->fTime2NextShot = IGSObject::GetTimeDelta((Characteristics_of_weapon_Pointer + 0x28)) + Characteristics->fTime2NextShot; goto MakeShot; } v18 = v17 - 1; if ( !v18 ) { LODWORD(v20) = (*(Characteristics->qwPointer + 32i64))(Characteristics); LOBYTE(v3) = *&Characteristics->iIDK6 == 0; LODWORD(v21) = (*(*v20 + 1880i64))(v20, v3); if ( !v21 || (LODWORD(v22) = (*(Characteristics->qwPointer + 32i64))(Characteristics), sub_AC7BF0(v22)) ) sub_CC0C00(Characteristics); goto MakeShot; } if ( v18 != 1 || !sub_CCB540(Characteristics) ) { MakeShot: sub_CC03C0(Characteristics); if ( Characteristics->iShooting_mode_ != 2 ) *&Characteristics->bunknown = sub_CC42F0(Characteristics); LOBYTE(Fired_cartridges) = (*(Characteristics->qwPointer + 40i64))(Characteristics); if ( !Fired_cartridges ) { Fired_cartridges = Characteristics->iShot_Count; if ( Characteristics->iShot_Count_ != Fired_cartridges ) { iShooting_Mode = Characteristics->iShooting_mode_; if ( iShooting_Mode != 2 ) { v38 = *&Characteristics->gap11[12]; Characteristics->iShot_Count = (Fired_cartridges + 1) % 32; if ( *&Characteristics->gap11[8] != v38 && (iShooting_Mode == 3 || iShooting_Mode == 4) ) *&Characteristics->gap11[8] = v38; a1a = qword_1C22160; v41 = dword_1C22168; LOBYTE(Fired_cartridges) = Shot(&a1a, Characteristics, *&dword_1C22168); } } } return Fired_cartridges; } if ( Characteristics->iShooting_mode_ == 2 && Characteristics->bShooting ) { Characteristics->bShooting = 1; Zeroing: v19 = Characteristics->qwPointer; *&Characteristics->unknown_5 = -1; *&Characteristics->unknown_7 = 0; Characteristics->bIDK3 = 0; Characteristics->iShooting_mode = 0; Characteristics->iShooting_mode_ = 0; (*(v19 + 48))(Characteristics); LODWORD(Characteristics->fTime2NextShot) = 0; Characteristics->fTime2NextShotBuffer = fTime2NextShotBuffer_1; goto MakeShot; } } else { (*(Characteristics->qwPointer + 48i64))(Characteristics); LastShotTime = fTime2NextShotBuffer_1 - Characteristics->fTime2NextShotBuffer; sub_CBD1F0(Characteristics); if ( LastShotTime <= fTime2NextShotBuffer_1 ) goto MakeShot; if ( Characteristics->iShooting_mode_ == 2 && Characteristics->bShooting ) { Characteristics->bShooting = 1; goto Zeroing; } } Characteristics->bShooting = 0; goto Zeroing; } return Fired_cartridges; } В прикрепленных файл в виде html восстановленного код он с подсветкой. Full_Shot_Func.htm Изменено 2 июня, 2016 пользователем partoftheworlD 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения