void CClientPedManager::RestreamPeds ( unsigned short usModel ) { // Store the affected vehicles CClientPed* pPed; std::vector < CClientPed* > ::const_iterator iter = IterBegin (); for ( ; iter != IterEnd (); iter++ ) { pPed = *iter; // Streamed in and same vehicle ID? if ( pPed->IsStreamedIn () && pPed->GetModel () == usModel ) { // Stream it out for a while until streamed decides to stream it // back in eventually pPed->StreamOutForABit (); // Hack fix for Players not unloading. if ( IS_PLAYER ( pPed ) ) { // Awesome hack skills + 1, change him to another model while we unload for the lulz // Translation: My hack level has increased to ninety eight and we need to wait a frame before reloading the model ID in question so that the custom model unloads properly. // To do this we set him to CJ (Impossible to mod to my knowledge) and then set him back in CPed::StreamedInPulse pPed->SetModel ( 0, true ); } } } }
void CClientPedManager::RestreamWeapon ( unsigned short usModel ) { eWeaponSlot eSlot = (eWeaponSlot) GetWeaponSlotFromModel ( usModel ); // Store the affected vehicles CClientPed* pPed; std::vector < CClientPed* > ::const_iterator iter = IterBegin (); for ( ; iter != IterEnd (); iter++ ) { pPed = *iter; // Streamed in and same vehicle ID? if ( pPed->IsStreamedIn () && pPed->GetWeapon ( eSlot ) && pPed->GetWeapon ( eSlot )->GetInfo ( WEAPONSKILL_STD )->GetModel () == usModel ) { // Awesome hack skills + 1, change him to another model while we unload for the lulz // Translation: My hack level has increased to ninety nine and we need to wait a frame before reloading the model ID in question so that the custom model unloads properly. // To do this we take away the weapon and give it back in CPed::StreamedInPulse ergo reloading the model info pPed->StreamOutWeaponForABit ( eSlot ); } } }