Регистрация - или - Войти

Восстановить пароль
×

Для восстановления пароля необходимо ввести логин или почту, которую Вы вводили при регистрации. После это, на Ваш почтовый ящик будет отпрвлено письмо с кодом.

Логин или почта :

The CrucibleThe Crucible

Адская смесь Painkiller и Unreal Tournament с привкусом Ballistic Weapons...

22/03/2011
CremationCremation

кремация - это русский мод, восстанавливающий оригинальный сюжет игры half-life 2, описанный в книге Raising the Bar....

24/02/2015
Статистика ( по комментариям ), шт.

Здесь я вам расскажу, как можно перекрасить пули в Half-Life1 и приведу свой пример


  • Описание
  • КАК УСТАНОВИТЬ

Как перекрасить пули в ХЛ

Здесь я вам расскажу, как можно перекрасить пули в Half-Life1 и приведу свой пример


Автор / ы урока : MZK
Просмотров : 2310 ( +1 )
Скачиваний : 34
Прислал / (а) : SlaY_61
Дата создания : 01.08.2011 18:29:40
Рейтинг :
 ( 5 ) 
Поделиться :


Имеются следующие переводы : | русский |

Здесь я вам расскажу, как можно перекрасить пули в Half-Life1 и приведу свой пример. Дело в том, что мой пример - не лучшая реализация и я считаю, можно сделать и получше. Советую использовать лишь алгоритм, а саму реализацию писать самостоятельно.

Итак начнем:

Всё, как ни странно будем делать в серверной части Первым делом напишем саму функцию для прорисовки пули - писать её будим как УТИЛ-функцию, то есть сейчас откроем файл utill.cpp и в свободном месте между аналогичными пишем вот это (это как раз та часть, какую вы можете свободно менять на свой вкус):

void MyTracer ( const Vector &start, const Vector &end )
{
    MESSAGE_BEGIN( MSG_BROADCAST, SVC_TEMPENTITY );
        WRITE_BYTE( TE_BEAMPOINTS );
        WRITE_COORD( start.x );
        WRITE_COORD( start.y );
        WRITE_COORD( start.z );
        WRITE_COORD( end.x );
        WRITE_COORD( end.y );
        WRITE_COORD( end.z );
        WRITE_SHORT( g_sModelIndexFireSpot );
        WRITE_BYTE( 0 ); // frame start
        WRITE_BYTE( 2 ); // framerate
        WRITE_BYTE( 1 ); // life
        WRITE_BYTE( 3 );  // width
        WRITE_BYTE( 0 );   // noise
        int rndC;
        rndC = RANDOM_LONG( 125, 255 );
        WRITE_BYTE( rndC );    // R, g, b
        WRITE_BYTE( rndC );    // r, G, b
        WRITE_BYTE( rndC );    // r, g, B
        WRITE_BYTE( 255 );    // brightness
        WRITE_BYTE( RANDOM_LONG(1,10) );        // speed
    MESSAGE_END();
}

Думаю нет необходимости объяснять еще раз, что это…

Так, теперь зайдём в util.h найдём аналогичные и напишем туда: extern void MyTracer( const Vector &start, const Vector &end); Теперь зайдём на weapons.h и запищем среди аналогичных строк: extern DLL_GLOBAL short g_sModelIndexFireSpot;

Это мы объявили спрайт для пуль - можете определить свой или просто использовать существующий теперь откроем weapons.cpp: g_sModelIndexFireSpot = PRECACHE_MODEL ("sprites/fire_spot.spr");// flame, for explode fx and bullet tracers - это мы загрузили спрайт, опять же - это на ваше усмотрение.

Теперь поднимемся выше, к самому началу файла а среди аналогичных запишем: DLL_GLOBAL short g_sModelIndexFireSpot;

Всё!!!! теперь приступим уже к подстановке нашей функции в правильные места…

Зайдём в combat.cpp

Найдём функцию CBaseEntity::FireBullets и после default: пишем вместо мессаги вот это:

MyTracer( vecTracerSrc, tr.vecEndPos ); Теперь заходим в следующюю функцию FireBulletsPlayer И пишем вместо всего, что есть между // make bullet trails и ближайщей } вот это:MyTracer( vecSrc, tr.vecEndPos );

Вот вроде бы и все

Компилируем и наслаждаемся! будут ошибки - пишите смело, может просто я чего забыл написать….

Вот спрайт для пуль



1. ( 20.9 Kb )
Похожие1. Создание нового оружия - В этом туторе не будет объяснено КАК сделать новое оружие, ибо для каждого оружия нужен свой код. Здесь просто будет приведена информация о тех нюансах без которых ваше оружие не будет работать
2. Создание нового ствола - Создание нового ствола с новыми патронами
3. Новый монстр - В общем-то это самый лёгкий тутор который можно придумать.
4. Тряска игрока от наносимого урона - Вы хотите cделать чтобы игроков трясло от урона?
5. Переключение оружия a la HL2 - Мне не нравится, как переключается оружие в ХЛ. Может, кому-то и интересно тыкать по менюшкам худа, но мне больше нравится реализация переключения в Unreal RTN, Quake Mission Packs и HL2
6. Функции движка - как и для чего - Функции движка - как и для чего их использовать?
7. Как сделать вортигонта из HL1 другом - Моя первая статья
8. Создание сценариев - Для создания сценариев (aka скриптов) в Half-Life существуют две энтити: scripted_sequence и scripted_sentence. Первая отвечает за движения, выполняемые монстром/персонажем, будь то ходьба, бег, нажатие кнопки, тряска автомата с газировкой или почёсывание подбородка. Вторая служит для того, чтобы персонаж произнес какую-то фразу. При этом его голова повернётся в сторону слушателя, и рот будет открываться в соответствии с амплитудой звука.
9. Изменение цвета HUD'а (полное)! - Изменение цвета HUD'а (полное)! Но прицелы придётся переделывать вам самим! Сдесь я перевевёл туториал с twhl.info на русский язык!
Вы не можете комментировать, т.к. вы не зарегистрированы.
    Plumber
    Half-Life 2Plumber
    BLENDER в BSP
    Half-Life 2BLENDER в BSP
    The Lost Temple | Карта на прохождение
    Garrys modThe Lost Temple | Карта на прохождение
    В премодерации
    Half-LifeВ премодерации