HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Брызги воды как в Соусе
Я, наверно, загнул с маштабами, но....
Страницы (4): « 1 2 [3] 4 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 29

Рейтинг



PomanoB Проверь, ведь лучше чем спрашивать и ждать ответа.

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 08-02-2011 20:14
- За что?
PomanoB
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 157

Рейтинг



Проверил, pev->waterlevel для не игроков работает)
На глаз вроде не особо сильная нагрузка, но хотелось бы способ лучше(

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

Старое сообщение 08-02-2011 20:45
- За что?
fire64
Житель форума

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

Рейтинг



По поводу кода

PomanoB, объясни что ты хочешь сделать и как. потому что что бы дать тебе совет нужно хотя бы представлять, что ты в конечном счете хочешь получить.

Нагрузки никакой не будет, так как там и так каждый кадр вызывается тчинк функция у каждой энтити и еще пара сотен разных функций и параметров.

Как вариант можешь использовать для проверки столкновений не внешние энтити, а саму воду.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Отредактировано fire64 08-02-2011 в 21:29

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

Старое сообщение 08-02-2011 21:23
- За что?
PomanoB
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 157

Рейтинг



Я хочу сделать брызги при падении любого объекта в воду)
И think-то вызывается не каждый кадр а после pev->nextthink

[qoute]Как вариант можешь использовать для проверки столкновений не внешние энтити, а саму воду.[/quote]
Это как ?
В think'е воды искать ентити в радиусе?

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

Старое сообщение 09-02-2011 05:39
- За что?
SiPlus
GMod Lua Coder
Девойс

Дата регистрации: Jun 2007
Проживает: Санкт-Петербург
Сообщений: 317
Возраст: 27

Рейтинг



Примерно так:

function Water:Touch(ent) --прикосновение, ent - прикоснувшаяся энтитя
local Splash = ents.Create("env_sprite") --создает всплеск
Splash:SetKeyValue("sprite","спрайт всплеска") --задает параметр энтити, точно не знаю, как называется параметр, отвечающий за файл спрайта
Splash:SetPos(Vector(ent:GetPos().x,ent:GetPos().y,self:GetPos().z + self:Height())) --устанавливает местоположение спрайта, X и Y это позиция прикоснувшейся энтити, Z это местоположение воды + ее уровень
Splash:Spawn() --создает всплеск
Splash:Activate() --активирует его
timer.Simple(0.5,function() Splash:Remove() end) --удаляет всплеск через 0.5с
end

Отредактировано SiPlus 09-02-2011 в 07:59

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

Старое сообщение 09-02-2011 07:51
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
PomanoB писал:
Единственно что приходит мне в голову - в StartFrame перебирать все энтити и проверять вода или нет, но это как-то фигово(

на уровне движка есть areanodes - бинарное дерево, в котором находятся все физобъекты и при помощи которого можно быстро найти энтитю в заданной точке. Проблема лишь в том, что в игровой дллке этого метода нету, поэтому остается ровно один способ - перебор энтить.
И ничего фигового тут нету. Сервер каждый кадр по нескольку раз перебирает физ. энтити и никого это не колышет.
Причем перебрать достаточно всего один раз - далее-то у нас уже есть энтить, сквозь которую прошла трасса.
Можно и по другому сделать: сделать трейс, проверить контентс на конце, разделить длинну трассы пополам, проверить контентс на середине, потом еще раз пополам. Но лучше всего этим заниматься на клиенте, поскольку там есть GetWaterEntity.

Добавлено 09-02-2011 в 14:29:

SiPlus ты читаешь вообще что пишут? Вода несолидная, трасса проходит сквозь нее не задевая. Причем тут WaterTouch ?

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 09-02-2011 11:29
-
SiPlus
GMod Lua Coder
Девойс

Дата регистрации: Jun 2007
Проживает: Санкт-Петербург
Сообщений: 317
Возраст: 27

Рейтинг



Дядя Миша, ну если SOLID_NONE и карта своя, то можно попробовать какой-нибудь trigger_water создать, который делает всплески, и разместить его по всей поверхности воды. Там, где в воду ничего не падает, можно этот триггер и не делать.

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

Старое сообщение 09-02-2011 13:22
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



SiPlus ну ты представь себе что SOLID_TRIGGER трасса игнорирует точно также как и SOLID_NOT. Хоть на своей карте, хоть на чужой.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 09-02-2011 13:54
-
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 29

Рейтинг



Некий Festern писал на half-life.ru

Цитата:
Вставляется в код UTIL_BubbleTrail:

Vector SplashOrigin = to;

CBaseEntity *pW = NULL;

for (int i=1;i<=10;i++)
{
pW = UTIL_FindEntityByClassname(pW,"func_water" );
if ( !FNullEnt(pW->pev) )
{
if(((pW->pev->mins.x<to.x)&&(pW->pev->maxs.x>to.x))&&((pW->pev->mins.y<to.y)&&(pW->pev->maxs.y>to.y))&&((pW->pev->mins.z<to.z)&&(pW->pev->maxs.z>to.z)))
{
SplashOrigin.z=pW->pev->maxs.z;
break;
}
}
}

SplashOrigin.x=to.x-((to.x-from.x)*(SplashOrigin.z-to.z)/(from.z-to.z));
SplashOrigin.y=to.y-((to.y-from.y)*(SplashOrigin.z-to.z)/(from.z-to.z));

В итоге SplashOrigin - нужный вектор.


Я этот код использую, при попадании пуль в воду рисую партиклю в точке SplashOrigin.

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 09-02-2011 14:26
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
PLut писал:
Некий Festern писал на half-life.ru

ну и? С мировой водой это работать не будет.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 09-02-2011 16:18
-
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 29

Рейтинг



Дядя Миша Да, зато будет работать с энтити. Лучше чем возня с триггерами ИМХО.

__________________
Base Defense on Steam, ModDB

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

Старое сообщение 09-02-2011 16:33
- За что?
SiPlus
GMod Lua Coder
Девойс

Дата регистрации: Jun 2007
Проживает: Санкт-Петербург
Сообщений: 317
Возраст: 27

Рейтинг



Цитата:
Дядя Миша писал:
трасса игнорирует точно

Какая трасса? К триггеру можно прикоснуться, зачем трасса, местоположение всплеска можно узнать по местоположению вещи, которая в него вошла.

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

Старое сообщение 09-02-2011 16:48
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



Цитата:
SiPlus писал:
К триггеру можно прикоснуться, зачем трасса, местоположение всплеска можно узнать по местоположению вещи, которая в него вошла.

вещь, которая "входит" в триггер - это пуля. Стрельба пулями традиционно сделана трейслайном, который проходит сквозь триггеры не задевая их. Или тебе нравится блистать идиотизмом?

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 09-02-2011 17:09
-
PomanoB
Житель форума

Дата регистрации: Aug 2010
Проживает: (void)
Сообщений: 157

Рейтинг



Всем спасибо за ответы, сделал перебором и проверкой waterlevel

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

Старое сообщение 09-02-2011 18:53
- За что?
 Дядя Миша
racing for fish

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

Рейтинг



PomanoB еще рекомендую код XDM к изучению на предмет ватер-сплешей на мировой воде.

__________________
My Projects: download page

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

Цитата:

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

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

Старое сообщение 09-02-2011 20:31
-
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 18:54. Новая тема    Ответить
Страницы (4): « 1 2 [3] 4 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Брызги воды как в Соусе
Я, наверно, загнул с маштабами, но....
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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