Статистика ( по source префабам ), шт.
Наверняка каждый, кто поиграл в Half-Life2 хотел, чтобы хедкрабы спрыгивали с зомбяков и в первом Half-Life
Спрыгивающий Headcrab
Наверняка каждый, кто поиграл в Half-Life2 хотел, чтобы хедкрабы спрыгивали с зомбяков и в первом Half-Life
Автор / ы урока : DIMaN[BBc] Просмотров : 1755 ( +2 ) Скачиваний : 0 Прислал / (а) : Streit Дата создания : 07.04.2011 20:58:11 Источник : http://www.confession.ucoz.ru... Рейтинг : ( 0 ) Поделиться :
Имеются следующие переводы : |
русский |
Наверняка каждый, кто поиграл в Half-Life2 хотел, чтобы хедкрабы спрыгивали с зомбяков и в первом Half-Life. Этот тутор призван изменить эту несправедливость. Теперь и в ваших модах Хедкрабы будут свободно спрыгивать с тела носителя.
Для этого нада MS VC++, и минимальное знание синтаксиса языка и структуры исходников HL. Если все это присутствует, начнем.
Собственно все изменения будут происходить только в файле zombie.cpp. Откроем его.
В самом начале после:
//=========================================================
// Monster's Anim Events Go Here
//=========================================================
#define ZOMBIE_AE_ATTACK_RIGHT 0x01
#define ZOMBIE_AE_ATTACK_LEFT 0x02
#define ZOMBIE_AE_ATTACK_BOTH 0x03
#define ZOMBIE_AE_CRAB1 0x04
#define ZOMBIE_AE_CRAB2 0x05
#define ZOMBIE_AE_CRAB3 0x06
Это мы объявили специальные эвенты движка. После объявим еще один эвент, его будет использовать функция spawn, чтобы хедкраб мог спрыгивать с зомбика:
#define ZOMBIE_CRAB "monster_headcrab"
Далее в районе 56 строки, сразу после int IgnoreConditions ( void ) объявим процедуру:
Далее в районе 396 строки, после функции Precache вставляем:
//=========================================================
// Spawn Headcrab - headcrab jumps from zombie
//=========================================================
void CZombie :: SpawnCrab( void )
{
CBaseEntity *pCrab = CBaseEntity::Create( ZOMBIE_CRAB, pev->origin, pev->angles, edict() );
pCrab->pev->spawnflags |= SF_MONSTER_FALL_TO_GROUND;
}
Эта функция нужна, чтобы хедкраб спрыгивал. Далее в функции HandleAnimEvents добавим (297 строка):
// headcrab jumps from zombie
case ZOMBIE_AE_CRAB1:
{
ALERT( at_console, "Crab1 spawned!\n" );
pev->body = 1; // set the head to a skull
SpawnCrab(); // spawn a headcrab
}
break;
case ZOMBIE_AE_CRAB2:
{
ALERT( at_console, "Crab2 spawned!\n" );
pev->body = 1; // set the head to a skull
SpawnCrab(); // spawn a headcrab
}
break;
case ZOMBIE_AE_CRAB3:
{
ALERT( at_console, "Crab3 spawned!\n" );
pev->body = 1; // set the head to a skull
SpawnCrab(); // spawn a headcrab
}
break;
И последний штрих. В функции Precache, это 387 строка, вставим следующее:
UTIL_PrecacheOther( ZOMBIE_CRAB );
Теперь компилируем и наслаждаемся. Хедкраб спрыгивает, после смерти носителя.
Похожие 1. Новые типы патронов - Каждый хоть раз добавлял в Хл новое оружие но ему не нравилось, что оно или слишком мощно стреляет или слишком слабо. 2. Как адаптировать код к модели - Допустим, вы сделали новую модель для автомата MP5, но порядок и кол-во анимаций не сходятся. 3. Летающие бочки и trigger_push - Все, кто хотя бы один раз прошел Hl1 наверняка знает, что на карте c2a5 (там где плотина) есть такие прикольные бочки, которые подскакивают вверх и там взрываются. 4. Quake strafing & DoD bobing styles - Вот от нечего делать я решил немножко изменить стиль игры в оригинальной хл. 5. Тряска игрока от наносимого урона - Вы хотите cделать чтобы игроков трясло от урона? 6. Замедление игрока - Довольно забавно наблюдать, как игрок одинаково быстро бегает как с монтировкой в руках, так и с тяжелой базукой, хотя логичнее, что держа в руках сей девайс, он будет бегать медленнее 7. Увеличение количества мяса от взрыв - Увеличение количества мяса от взрывов людей или инопланетян. 8. Как пофиксить моргание монстров - Как пофиксить моргание монстров на движущихся платформах 9. Неработающие двери :) - Как сделать, чтоб двери не открывались, когда нет света и рядом с ними был индикатор (красн. зел.)
Вы не можете комментировать, т.к. вы не зарегистрированы.