Делая свой мод вы наверняка хотели бы использовать несколько моделей учёных. И, что характерно, некоторые из них могут иметь 5,6 или более голов. (Например как в They Hunger, Opposing Force, T2def...). Однако, когда такие учёные пытаются вас лечить - получается глюк, что вместо одного лица у учёного появляется другое. Этот урок расскажет вам, как это исправить. 1. Открываем scientist.cpp, и ищем там void CScientist :: HandleAnimEvent( MonsterEvent_t *pEvent ). Найдя заменяем там строчки: int oldBody = pev->body; pev->body = (oldBody % NUM_SCIENTIST_HEADS) + NUM_SCIENTIST_HEADS * 1; На: SetBodygroup( 2, 1 ); и int oldBody = pev->body; pev->body = (oldBody % NUM_SCIENTIST_HEADS) + NUM_SCIENTIST_HEADS * 0; на: SetBodygroup( 2, 0 ); 2. Далее, идём в процедуру void CScientist :: Spawn( void ) и делаем возможным выбор модели, дя этого оператор: SET_MODEL(ENT(pev), "models/scientist.mdl"); Заменяем на участок кода: if (FStrEq((char*)STRING(pev->model), "")) { SET_MODEL(ENT(pev), "models/scientist.mdl"); } else { SET_MODEL(ENT(pev), STRING(pev->model)); } 3. И соответственно, чтобы эта вся байда не вылетала при первом же запуске идём в процедуру void CScientist :: Precache( void ), и вместо строчки: PRECACHE_MODEL("models/scientist.mdl"); Пишем: if (FStrEq((char*)STRING(pev->model), "")) { PRECACHE_MODEL("models/scientist.mdl"); } else { PRECACHE_MODEL((char*)STRING(pev->model)); } 4. Компилируем серверную библиотеку, редактируем ФГД файл, и наслаждаемся маппингом! П.Т. Данный тутор ещё не завершен. Но скоро это будет исправлено!:)
|