HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Страницы (260): « Первая ... « 206 207 208 209 [210] 211 212 213 214 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
[CFR] B@N@N
Житель форума

Группа: Неопытный
Дата регистрации: Feb 2018
Проживает: Default City
Сообщений: 174
Возраст: 31

Рейтинг



Цитата:
Ku2zoff писал:
У меня уже есть спрайтовые декали, которые пишутся в сейв, так что я бы мог это приспособить


Можно по подробние про это? В чом отличие от оригинала?

Добавлено 11-12-2021 в 13:07:

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

Ну у тебя тоже заардкожино всё будет)))
Ваще я так понял такой же визуальный ридактор и тхт файл никто больше ниосилел из авторов партекл систем. Походу оно ни так просто зделать

Сообщить модератору | | IP: Записан
Сообщение: 205898

Старое сообщение 11-12-2021 10:07
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
[CFR] B@N@N писал:
Можно по подробние про это? В чом отличие от оригинала?

Декали из спрайтов, а не из картинок в ваде. Могут анимироваться, менять размер на ходу, много чего ещё. В основе декали из инвазиона. Они прикольные, но исчезают после загрузки или перехода на новый уровень. Это я почти заборол, могут иногда пропадать с движущихся энтить при загрузке и переходе. Ещё обрезку по краям брашей не сделал - половина декали может висеть в пустоте. Собсно, в инвазионе это не слишком бросалось в глаза, т.к. там только дырки от пуль. А я планирую пятна крови, взрывов и ещё что-нибудь. Как только победю отваливание от движущихся энтить - займусь обрезкой.

Добавлено 11-12-2021 в 19:02:

Цитата:
[CFR] B@N@N писал:
Походу оно ни так просто зделать

Самая сложность в том, какой функционал задать самой системе. В идеале, она должна уметь всё, что умеют pEfxAPI (касаемо спрайтов), аврора и дождик БУзера. То есть тут не просто какие-то дымки от выстрелов в стену, и не просто дым, рассеивающийся из трубы. Тут и лучи, закрученные в спираль, и закольцованные лучи, и лучи с шумом, и прыгающие от пола спрайты гаусса, и искры от выстрелов из инвазиона, и эффекты телепортов, дофигища всего. Накодить это можно, в XDM очень многое уже есть. Другой вопрос как всё это унифицировать, чтобы у совершенно разных систем, например искр и кольца от взрыва не было дублирующихся параметров, и как вообще это всё сохранять в скрипт.
Будет готовая система - можно будет и редактор написать. Только вот нужна ли она, именно такая система? В большинстве случаев функционал будет избыточным. Всё, на что хватает фантазии у моддеров - повторять чужие эффекты. Поэтому Дядя Миша просто взял, и портировал аврору в ксаш с исправлениями. Подавляющее большинство моддеров даже чужие aur-файлы берут. Те самые, которые Лаури как примеры к спириту приложил. Даже те, кто умеет кодить, не раскрывают в полной мере возможности pEfxAPI. Нет примеров, нет документации.

Отредактировано Ku2zoff 11-12-2021 в 12:05

Сообщить модератору | | IP: Записан
Сообщение: 205900

Старое сообщение 11-12-2021 12:02
- За что?
Chyvachok
Житель форума

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 1844

Рейтинг



Цитата:
Ku2zoff писал:
А я планирую пятна крови, взрывов и ещё что-нибудь.


Если нужны более качественные спрайты вот из Ballistic Weapons кровяха: https://files.gamebanana.com/bitpit...eaponsblood.rar

Могу еще следы от пуль и взрывов скинуть.

Сообщить модератору | | IP: Записан
Сообщение: 205901

Старое сообщение 11-12-2021 13:21
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Ku2zoff писал:
Как только победю отваливание от движущихся энтить - займусь обрезкой.

Ну в ксаше же не отваливаются. Даже с монстров. Смотри как там устроено. Оно несложное, если разберёшься с переходом из глобального в локальное пространство.

Цитата:
Ku2zoff писал:
Поэтому Дядя Миша просто взял, и портировал аврору в ксаш с исправлениями.

К Авроре Ксер в свое время редактор написал. У нее на мой взгляд был только один недостаток - баги. Ну вот я их и поправил, а функционал немного дополнил. Сделал проекцию светового пятна на партиклы и всё такое.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 205902

Старое сообщение 11-12-2021 14:40
-
Chyvachok
Житель форума

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 1844

Рейтинг



Такой вариант сделать другой цвет крови при выстреле в голову нормальный? Пока вижу что есть шанс если монстра разорвет на мясо выстрелом в голову, то куски будут желтую кровь оставлять, а если в тело то красную. Хотя как вариант влепить в Gib Monster проверку возвращающую цвет крови, или это лишняя проверка будет?

code:
void CZombie :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vector vecDir, TraceResult *ptr, int bitsDamageType) { switch ( ptr->iHitgroup ) { case HBOX_HEAD: m_bloodColor = BLOOD_COLOR_YELLOW; break; } CBaseMonster::TraceAttack( pevAttacker, flDamage, vecDir, ptr, bitsDamageType ); if (m_bloodColor = BLOOD_COLOR_YELLOW) m_bloodColor = BLOOD_COLOR_RED; }

Отредактировано Chyvachok 11-12-2021 в 18:04

Сообщить модератору | | IP: Записан
Сообщение: 205904

Старое сообщение 11-12-2021 17:57
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Короче, я пошёл по пути самурая. CZombie::TraceBleed с аргументом цвета крови, что логично. CZombie::TraceAttack, CZombie::GibMonster, CZombie::SpawnGibs. Последнее делать не хотелось, но гибсы из SpawnRandomGibs по-умолчанию принимают цвет крови владельца. Пришлось сделать для зомби кастомную функцию, чтобы задать цвет вручную.

C++ Source Code:
1
#include "weapons.h"
2
 
3
void CZombie::TraceAttack(entvars_t* pevAttacker, float flDamage, Vector vecDir, TraceResult* ptr, int bitsDamageType)
4
{
5
  if (pev->takedamage)
6
  {
7
    m_LastHitGroup = ptr->iHitgroup;
8
 
9
    switch (ptr->iHitgroup)
10
    {
11
    case HITGROUP_HEAD:
12
        SpawnBlood(ptr->vecEndPos, BLOOD_COLOR_YELLOW, flDamage);
13
      TraceBleed(BLOOD_COLOR_YELLOW, flDamage, vecDir, ptr, bitsDamageType);
14
      break;
15
    default:
16
        SpawnBlood(ptr->vecEndPos, BLOOD_COLOR_RED, flDamage);
17
      TraceBleed(BLOOD_COLOR_RED, flDamage, vecDir, ptr, bitsDamageType);
18
      break;
19
    }
20
    AddMultiDamage(pevAttacker, this, flDamage, bitsDamageType);
21
  }
22
}
23
 
24
void CZombie::TraceBleed(int bloodColor, float flDamage, Vector vecDir, TraceResult* ptr, int bitsDamageType)
25
{
26
  if (flDamage == 0) return;
27
 
28
  if (!(bitsDamageType & (DMG_CRUSH | DMG_BULLET | DMG_SLASH | DMG_BLAST | DMG_CLUB | DMG_MORTAR))) return;
29
 
30
  TraceResult Bloodtr;
31
  Vector vecTraceDir;
32
  float flNoise;
33
  int cCount;
34
  int i;
35
 
36
 
37
  if (flDamage < 10)
38
  {
39
    flNoise = 0.1;
40
    cCount = 1;
41
  }
42
  else if (flDamage < 25)
43
  {
44
    flNoise = 0.2;
45
    cCount = 2;
46
  }
47
  else
48
  {
49
    flNoise = 0.3;
50
    cCount = 4;
51
  }
52
 
53
  for (i = 0; i < cCount; i++)
54
  {
55
    vecTraceDir = vecDir * -1;
56
    vecTraceDir.x += RANDOM_FLOAT(-flNoise, flNoise);
57
    vecTraceDir.y += RANDOM_FLOAT(-flNoise, flNoise);
58
    vecTraceDir.z += RANDOM_FLOAT(-flNoise, flNoise);
59
 
60
    UTIL_TraceLine(ptr->vecEndPos, ptr->vecEndPos + vecTraceDir * -172, ignore_monsters, ENT(pev), &Bloodtr);
61
 
62
    if (Bloodtr.flFraction != 1.0) UTIL_BloodDecalTrace(&Bloodtr, bloodColor);
63
  }
64
}
65
 
66
void CZombie::GibMonster(void)
67
{
68
  TraceResult	tr;
69
  BOOL		gibbed = FALSE;
70
 
71
  EMIT_SOUND(ENT(pev), CHAN_WEAPON, "common/bodysplat.wav", 1, ATTN_NORM);
72
 
73
  if (CVAR_GET_FLOAT("violence_hgibs") != 0)
74
  {
75
    SpawnGibs(3, 1);
76
    gibbed = TRUE;
77
  }
78
 
79
  if (CVAR_GET_FLOAT("violence_agibs") != 0)
80
  {
81
    SpawnGibs(3, 0);
82
    gibbed = TRUE;
83
  }
84
 
85
  if (gibbed)
86
  {
87
    SetThink(&CBaseMonster::SUB_Remove);
88
    pev->nextthink = gpGlobals->time;
89
  }
90
  else FadeMonster();
91
}
92
 
93
void CZombie::SpawnGibs(int cGibs, int human)
94
{
95
  int cSplat;
96
 
97
  for (cSplat = 0; cSplat < cGibs; cSplat++)
98
  {
99
    CGib* pGib = GetClassPtr((CGib*)NULL);
100
 
101
    if (human)
102
    {
103
      pGib->Spawn("models/hgibs.mdl");
104
      pGib->pev->body = RANDOM_LONG(1, 6 - 1);
105
      pGib->m_bloodColor = BLOOD_COLOR_RED;
106
    }
107
    else
108
    {
109
      pGib->Spawn("models/agibs.mdl");
110
      pGib->pev->body = RANDOM_LONG(0, 4 - 1);
111
      pGib->m_bloodColor = BLOOD_COLOR_YELLOW;
112
    }
113
 
114
    pGib->pev->origin.x = pev->absmin.x + pev->size.x * (RANDOM_FLOAT(0, 1));
115
    pGib->pev->origin.y = pev->absmin.y + pev->size.y * (RANDOM_FLOAT(0, 1));
116
    pGib->pev->origin.z = pev->absmin.z + pev->size.z * (RANDOM_FLOAT(0, 1)) + 1;
117
 
118
    pGib->pev->velocity = g_vecAttackDir * -1;
119
 
120
    pGib->pev->velocity.x += RANDOM_FLOAT(-0.25, 0.25);
121
    pGib->pev->velocity.y += RANDOM_FLOAT(-0.25, 0.25);
122
    pGib->pev->velocity.z += RANDOM_FLOAT(-0.25, 0.25);
123
 
124
    pGib->pev->velocity = pGib->pev->velocity * RANDOM_FLOAT(300, 400);
125
 
126
    pGib->pev->avelocity.x = RANDOM_FLOAT(100, 200);
127
    pGib->pev->avelocity.y = RANDOM_FLOAT(100, 300);
128
 
129
    if (pev->health > -50) pGib->pev->velocity = pGib->pev->velocity * 0.7;
130
    else if (pev->health > -200) pGib->pev->velocity = pGib->pev->velocity * 2;
131
    else pGib->pev->velocity = pGib->pev->velocity * 4;
132
 
133
    pGib->pev->solid = SOLID_BBOX;
134
    UTIL_SetSize(pGib->pev, Vector(0, 0, 0), Vector(0, 0, 0));
135
 
136
    pGib->LimitVelocity();
137
  }
138
}


Добавлено 12-12-2021 в 06:43:

Цитата:
Chyvachok писал:
если монстра разорвет на мясо выстрелом в голову, то куски будут желтую кровь оставлять, а если в тело то красную

Используй мой код. Куски будут оставлять оба цвета.

Отредактировано Ku2zoff 11-12-2021 в 23:41

Сообщить модератору | | IP: Записан
Сообщение: 205907

Старое сообщение 11-12-2021 23:43
- За что?
[CFR] B@N@N
Житель форума

Группа: Неопытный
Дата регистрации: Feb 2018
Проживает: Default City
Сообщений: 174
Возраст: 31

Рейтинг



Цитата:
Ku2zoff писал:
. Ещё обрезку по краям брашей не сделал - половина декали может висеть в пустоте


А как они в движке тогда обриаются?

Сообщить модератору | | IP: Записан
Сообщение: 205908

Старое сообщение 12-12-2021 01:23
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
[CFR] B@N@N писал:
А как они в движке тогда обриаются?

Элементарно. Вокруг полигона, на который наложена декаль строятся ограничивающие плоскости. Как кросспродукт от ребра и нормали.
И этими плоскостями полигон декали обрезается точно по его размеру.

Добавлено 12-12-2021 в 09:47:

Но поскольку декаль накладывается как трипланарная проекция, то её копии ложатся и на соседние полигоны, а лишнее просто удаляется.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 205909

Старое сообщение 12-12-2021 06:47
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Дядя Миша а где всю эту математику поглядеть? Какие функции в gl_decals.c?

Сообщить модератору | | IP: Записан
Сообщение: 205994

Старое сообщение 17-12-2021 15:07
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34523
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Ku2zoff
https://en.wikipedia.org/wiki/Suthe...dgman_algorithm

__________________

Сообщить модератору | | IP: Записан
Сообщение: 205997

Старое сообщение 17-12-2021 16:03
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



Ku2zoff polylib.c, там всё. В любой кваке смотри.
Если хочешь понять принцип. Ну а если не хочешь - копипасти из паранои.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 205998

Старое сообщение 17-12-2021 17:13
-
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Если хочешь понять принцип.

Оно не хочется на самом деле, хочется побыстрее скопипастить. Но чем больше я изучаю физику и математику (даже в первом семестре), тем больше понимаю, что кодер без знания матчасти - ноль без палочки.

Сообщить модератору | | IP: Записан
Сообщение: 205999

Старое сообщение 17-12-2021 17:20
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32210
Нанёс повреждений: 392 ед.

Рейтинг



От задач зависит. По крайней мере никто не заставляет пограммистов придумывать новые математические решения. Но вот воплощать в коде уже имеющиеся - вполне себе.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | | IP: Записан
Сообщение: 206005

Старое сообщение 17-12-2021 18:10
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 1008
Возраст: 31

Рейтинг



Цитата:
Ku2zoff писал:
кодер без знания матчасти - ноль без палочки

Истину глаголишь, я тут фонарик ксашмодовский уже пару месяцев пытаюсь пофиксить время от времени, там замуты с матрицами какие-то, а я в этом ничего не понимаю. У каждого мозги под свои задачи заточены, а я уж точно не математик

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 206008

Старое сообщение 17-12-2021 18:40
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6749
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
воплощать в коде уже имеющиеся - вполне себе

Всё равно надо разбираться, а не бездумно копипастить.
Цитата:
Aynekko писал:
фонарик ксашмодовский уже пару месяцев пытаюсь пофиксить

Я думаю, что тебе надо поштудировать оптику. Шейдеры же не от балды написаны, а с опорой на реальные физические законы.

Сообщить модератору | | IP: Записан
Сообщение: 206017

Старое сообщение 18-12-2021 10:58
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 02:59. Новая тема    Ответить
Страницы (260): « Первая ... « 206 207 208 209 [210] 211 212 213 214 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
7 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024