Изменяем мелкие визуальные эффекты


 

Изменяем мелкие визуальные эффекты
 (Автор : SeriousHeming)



Статья предусматривает то, что вы умеете
создавать директории для модов, а также что у вас имеется Visual C++ 6.0
он полностью настроен на работу с SDK. Также данная статья
предусматривает, что Вы разобрались с редактированием классов Serious
Sam: TSE. ©



Ну что-ж статья посвящена следующему:
 
  • Изменять окружающие частицы в оружии, аммо, аммо-паках и т.д.
  • Изменить положение патронов или брони (лежащие патроны).
  • Изменить окружающий свет при выстреле из оружия. (color, Fall-off, Hot-spot и т.п)

Ну, чтож, приступим.

Начнем с окружающих частиц в оружии или аммо.
Найдем файл Ammoitem.es. Ищем следующие строки кода:
   
Code
    switch (m_EaitType) {
      case AIT_SHELLS:
        Particles_Spiral(this, 1.0f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;
      case AIT_BULLETS:
        Particles_Spiral(this, 1.5f*0.75, 1.0f*0.75, PT_STAR04, 6);
        break;
      case AIT_ROCKETS:
        Particles_Spiral(this, 1.5f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
      case AIT_GRENADES:
        Particles_Spiral(this, 2.0f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
      case AIT_ELECTRICITY:
        Particles_Spiral(this, 1.5f*0.75, 1.125f*0.75, PT_STAR04, 6);
        break;
      case AIT_NUKEBALL:
        Particles_Spiral(this, 1.25f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;
      case AIT_IRONBALLS:
        Particles_Spiral(this, 2.0f*0.75, 1.25f*0.75, PT_STAR04, 8);
        break;
      case AIT_BACKPACK:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_SERIOUSPACK:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_NAPALM:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_SNIPERBULLETS:
        Particles_Spiral(this, 1.5f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
    }

Здесь указывается, какая частица будет присутствовать определенному виду аммо.
Разберемся на примере простых патронов:

      case AIT_SHELLS:
        Particles_Spiral(this, 1.0f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;


Particles_spiral - это тип присутствующей частицы. Мы можем изменить ее, если будем аккуратными.
Лично я, когда был совсем начинающим в SDK, брал виды частиц из итема ParticlesHolder. Их же, оказывается можно взять совсем в другом файле - Particles.cpp.
Что же означают параметры, указанные в скобках?
Вот что мы можем получить из Particles.cpp:

void Particles_Spiral( CEntity *pen, FLOAT fSize, FLOAT fHeight,enum ParticleTexture ptTexture, INDEX ctParticles).
Или,
void Particles_Spiral( CEntity *pen, Размер, Высота,Текстура, кол-во частиц).
Текстуры можно наглядно увидеть в редакторе :



Вот и все. Собственно, ничего трудного нет.
Вот как просто можно разнообразить игру. Но не перестарайтесь!
 

Изменяем положение патронов или брони (лежащие патроны)

Возьмем на опыт тот же самый ammoitem.es. Найдем строки кода..
 
StartModelAnim(ITEMHOLDER_ANIM_MEDIUMOSCILATION, AOF_LOOPING|AOF_NORESTART);

Посмотрите на "ITEMHOLDER_ANIM_MEDIUMOSCILATION". Здесь указывается анимация парящего в воздухе объекта. Тоже самое мы можем увидеть и у других "итемов".Например, у брони:
StartModelAnim(ITEMHOLDER_ANIM_SMALLOSCILATION, AOF_LOOPING|AOF_NORESTART);

Вообще, сам итемхолдер содержит следующие анимации :

#define ITEMHOLDER_ANIM_DEFAULT_ANIMATION 0
#define ITEMHOLDER_ANIM_SMALLOSCILATION 1
#define ITEMHOLDER_ANIM_MEDIUMOSCILATION 2
#define ITEMHOLDER_ANIM_BIGOSCILATION 3
При "DEFAULT_ANIMATION" наше аммо не будет кружится в воздухе, а просто лежать на земле.
При "SMALLOSCILATION" наше аммо будет кружится так же, как кружится в воздухе броня.
При "MEDIUMOSCILATION" наше аммо будет кружится как обычное аммо)
При "BIGOSCILATION" наше аммо будет бешено крутиться в воздухе.

Но это еще далеко не все. Мы забыли про частицы. Частицы придется удалить.
Полностью удаляем вот этот код:
    switch (m_EaitType) {
      case AIT_SHELLS:
        Particles_Spiral(this, 1.0f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;
      case AIT_BULLETS:
        Particles_Spiral(this, 1.5f*0.75, 1.0f*0.75, PT_STAR04, 6);
        break;
      case AIT_ROCKETS:
        Particles_Spiral(this, 1.5f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
      case AIT_GRENADES:
        Particles_Spiral(this, 2.0f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
      case AIT_ELECTRICITY:
        Particles_Spiral(this, 1.5f*0.75, 1.125f*0.75, PT_STAR04, 6);
        break;
      case AIT_NUKEBALL:
        Particles_Spiral(this, 1.25f*0.75, 1.0f*0.75, PT_STAR04, 4);
        break;
      case AIT_IRONBALLS:
        Particles_Spiral(this, 2.0f*0.75, 1.25f*0.75, PT_STAR04, 8);
        break;
      case AIT_BACKPACK:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_SERIOUSPACK:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_NAPALM:
        Particles_Spiral(this, 3.0f*0.5, 2.5f*0.5, PT_STAR04, 10);
        break;
       case AIT_SNIPERBULLETS:
        Particles_Spiral(this, 1.5f*0.75, 1.25f*0.75, PT_STAR04, 6);
        break;
    }
Ну вот и все, теперь наше аммо лежит на земле..
 
Изменяем окружающий свет при выстреле из оружия. (color, Fall-off, Hot-spot и т.п)
Если знать, как, правильно использовать этот трюк, то можно сделать свою модификацию намного круче.
Под игроком, при выстреле из дробовика, томмигана и т.д, имеется небольшой Light от оружия. В хоррор модах, я думаю, он бы пригодился для освещения местности (Извините меня, я снова наигрался в Zombie Plague 4.3)
Сейчас мы откроем наш Player.es и найдем строку :
// Setup light source
  void SetupLightSource(void)
  {

Далее видим:
 
    // setup light source
    CLightSource lsNew;
    lsNew.ls_ulFlags = LSF_NONPERSISTENT|LSF_DYNAMIC;
    lsNew.ls_rHotSpot = 1.0f; // Лучше не изменять это, просто поставьте в 2 раза меньше чем ls_rFallOff
    lsNew.ls_colColor = C_WHITE; // Цвет света
    lsNew.ls_rFallOff = 2.5f; // Радиус действия.
    lsNew.ls_plftLensFlare = NULL;
    lsNew.ls_ubPolygonalMask = 0;
    lsNew.ls_paoLightAnimation = &m_aoLightAnimation;

    m_lsLightSource.ls_penEntity = this;
    m_lsLightSource.SetLightSource(lsNew);
  };
Вот и все. Не переборщите.
 

Статью создал Heming специально для новичков. Happy Coding! ©

 

 



Комментарии   

[Материал]  |  № 13  |  26.10.2011  |  0  
а лежачию оружку также делать?
Ответ Цитата

[Материал]  |  № 14  |  11.12.2011  |  0  
Да
Ответ Цитата

[Материал]  |  № 6  |  01.06.2011  |  0  
Quote
Найдем файл Ammoitem.es

А де? У мя пусто в С++ <_<
Ответ Цитата

[Материал]  |  № 7  |  01.06.2011  |  0  
C:/Mymod/Sources/EntitiesMP/Ammoitem.es
Ответ Цитата

[Материал]  |  № 8  |  01.06.2011  |  0  
Папки такой нету :D
Ответ Цитата

[Материал]  |  № 9  |  01.06.2011  |  0  
Quote
Статья предусматривает то, что вы умеете
создавать директории для модов, а также что у вас имеется Visual C++ 6.0
он полностью настроен на работу с SDK. Также данная статья
предусматривает, что Вы разобрались с редактированием классов Serious
Sam: TSE. ©
Ответ Цитата

[Материал]  |  № 10  |  01.06.2011  |  0  
Ну создал, поместил ентитес.длл а как распаковать-то? :D
Ответ Цитата

[Материал]  |  № 11  |  08.06.2011  |  0  
Никак
Ответ Цитата

[Материал]  |  № 12  |  11.08.2011  |  0  
Докатились бл*ть oh
Ответ Цитата

[Материал]  |  № 5  |  09.04.2011  |  0  
Классно. =) Новичку пригодится. =) Молодцом! Cool
Ответ Цитата

[Материал]  |  № 4  |  08.04.2011  |  0  
Отличная статья! :)
Ответ Цитата

[Материал]  |  № 3  |  08.04.2011  |  0  
Отличная статья, очень полезно! :)
Ответ Цитата

[Материал]  |  № 2  |  08.04.2011  |  0  
Хорошая статья! :)
Ответ Цитата

[Материал]  |  № 1  |  08.04.2011  |  0  
Ps: Извините за кривой размер картинок :)
Ответ Цитата

Оставьте комментарий

Мини-профиль

Гость

Вы в группе: Гости
Ваш IP: 3.142.133.234

Сейчас обсуждают

Fallgor0
Hyper_Virus_Rus2
Hyper_Virus_Rus11
Hyper_Virus_Rus15
Hyper_Virus_Rus61
Hyper_Virus_Rus2
Hyper_Virus_Rus9
Hyper_Virus_Rus7
Hyper_Virus_Rus3
Hyper_Virus_Rus10

МЕМЫ

НОВЫЙ
HoBu4oK 3 2

Файлы

zorgpro
260 25 10

VITEK
10439 2162 31

STALKER_27
1933 679 9

Green
1386 399 9

=RaF=
17221 2358 43

Категории раздела

Croteam [4]
Материалы по студии разработчика игр CroTeam.
Интервью с разработчиками [9]
Интервью с разработчиками, а также их издателями.
Serious Sam 1 [9]
Статьи о Serious Sam 1
Serious Sam 2 [6]
Статьи о Serious Sam 2
Serious Sam HD [4]
Статьи о HD-серии, ремейков классических версий Сэма.
Serious Sam 3: BFE [10]
Статьи о Serious Sam 3: BFE
Уроки по Serious Editor 1 [60]
Уроки по Serious Editor 2 [3]
Самое серьёзное редактирование, на русском!
Уроки по Serious Editor 3 [40]
Уроки по работе с редактором.
Serious Engine [6]
Описание возможностей всех движков компании Croteam
Разное [26]
Всё что не подошло не под одну из вышеупомянутых категорий.
Serious Sam: Revolution [1]
Материалы по SS: Revolution, серьёзном обновлении классических Крутых Сэмов.
Serious Sam 1.05/1.07 SDK [10]
SDK - набор исходников для Serious Sam: The Second Encounter 1.05/1.07.

Видео

Золотая Чаша Эпизод 4 "Упокоенный Богом" [ФИНАЛЬНЫЙ ТРЕЙЛЕР]
19 5.0

Золотая Чаша 4. В ДЕКАБРЕ.
100 5.0

Serious Lяп. Сэм: Защита Родины 3 - Подполье
160 5.0

Демонстрация физического движка (HL2IM)
98 5.0

СЕКРЕТНЫЙ ЗАВОД ЗОМБИ: эпичный путь к спасению - Aftermath (Serious Sam Map) №7
135 0.0

Статистика



На сайте: 19
Гостей: 18
Пользователей: 1
Bludo