void cheat_lockstatus() { if (!cheat_state->_generic.lockstatus) return; if (gta_menu_active()) return; if (cheat_state->_generic.cheat_panic_enabled) return; if (!pGameInterface || !pGameInterface->GetPools()) return; if (!pPedSelf) return; const vehicle_entry *vehicle; char buf[256]; int v; float w, h; D3DXVECTOR3 poss, screenposs; CVector2D screenPosition; CVector ourPosition, iterPosition, ourPosMinusIter; // get our position if (!isBadPtr_GTA_pVehicle(pPedSelf->GetVehicle())) { ourPosition = *(pPedSelf->GetVehicle()->GetPosition()); } else { ourPosition = pPedSelf->GetInterface()->Placeable.matrix->vPos; } // setup iterator CVehicleSA *iterVehicle = NULL; CPoolsSA *pPools = reinterpret_cast <CPoolsSA *> (pGameInterface->GetPools()); CPoolsSA::vehiclePool_t::mapType::iterator iter = pPools->m_vehiclePool.map.begin(); // iterate while (iter.pos < iter.end) { // map iterator CVehicleSA pointer to our CVehicleSA pointer iterVehicle = iter.pos->second; // advance to next CVehicleSA for next pass iter.pos++; // move past null pointers if (isBadPtr_GTA_pVehicle(iterVehicle)) continue; //if ( isBadPtr_GTA_pVehicle(iterVehicle->GetVehicleInterface()) ) // continue; // check if it's farther than set.vehicle_tags_dist iterPosition = iterVehicle->GetInterface()->Placeable.matrix->vPos; ourPosMinusIter = ourPosition - iterPosition; if (ourPosMinusIter.Length() > set.vehicle_tags_dist) continue; // check if it's our vehicle if (iterVehicle == pPedSelf->GetVehicle()) continue; // check if it's near zero if (iterVehicle->GetPosition()->IsNearZero()) continue; // CVector to D3DXVECTOR3, function to be converted to CVector later poss.x = iterPosition.fX; poss.y = iterPosition.fY; poss.z = iterPosition.fZ; // yup CalcScreenCoors(&poss, &screenposs); // check if the vehicle is culled or not if (screenposs.z < 1.f) continue; // D3DXVECTOR3 to CVector2D screenPosition.fX = screenposs.x; screenPosition.fY = screenposs.y; // get the vehicle model's name vehicle = gta_vehicle_get_by_id(iterVehicle->GetModelIndex()); // get SAMP's vehicle id if (g_Vehicles != NULL) v = translateGTASAMP_vehiclePool.iSAMPID[getVehicleGTAIDFromInterface((DWORD *)iterVehicle->GetVehicleInterface())]; else v = (int)iterVehicle->GetArrayID(); ///////////////// // render time // h = pD3DFont->DrawHeight(); _snprintf_s(buf, sizeof(buf)-1, "%s", iterVehicle->AreDoorsLocked() ? "Закрыта" : "Открыта"); w = pD3DFont->DrawLength(buf); // different color if car is being driven DWORD color_veh; if (iterVehicle->AreDoorsLocked()) color_veh = D3DCOLOR_XRGB(255, 0, 0); // blueish 100, 150, 235 else color_veh = D3DCOLOR_XRGB(0, 255, 0); // render vehicle name pD3DFont->PrintShadow(screenPosition.fX, screenPosition.fY, color_veh, buf); } return; }