Ребята, вы со своими пингами дикую фуфлудильню развели. Это нехорошо.
Цитата:
Ku2zoff писал: Вы только представьте: 32 уникальных оружия + часть из них имеют клоны с небольшими изменениями. ... столкнулся лишь с одной трудностью - загрузкой спрайтов из weapon_оружие.txt - оно же происходит... планирую отказаться от спрайтов вообще, и рисовать иконки для худа моделями. Наверное, возможно будет менять ItemInfo на лету, я просто не пробовал. ... Будет время - попытаюсь.
Просто поглядишь новую версию XDM - и работы станет раз в 5 меньше.
Цитата:
Дядя Миша писал: flNextAmmoBurn шлётся в клиент-дате через fuser2.
Ещё будешь спрашивать, почему всё, что касается ХЛ я пишу с приставкой "говно-" - буду тебе это сообщение цитировать.
Вернул всё на свой протокол - стало работать. Жизнь приятна, забей на пятна. Короче говоря, в ХЛ какие-то хитрые высчеты того, что в веапон_дате происходит/не просиходит/как бы происходит/должно просиходить/когда-нибудь произойдёт/может произойти/..., и это сильно всё портит. Базировать на ней инвентарь - безумие. Такое же как и предиктовать выбор оружия.
ЧТО НОВОГО:
Запилил помимо политики подбирабельности вепонбоксов ещё и такую штуку (полезно для ко-опа): если банка улетает куда-то в пропасть с хёртом или её кто-то взрывает, то она возвращает своё содержимое владельцу. Если владелец в это время дохлый и не жмёт капу на респаун, коробочка его по-хитрому ждёт.
Ещё интересная фича скриптовой рендер-системы: частица при определённом событии (удар о стену, например) может поменять поведение, а именно - получить стартовые параметры из другой партикал-системы.
Т.е. вместо того чтобы заводить тыщи мильонов новых параметров с новыми названиями в текущей ПС, просто указывается имя другой ПС (которая может, например, не рисоваться вообще), из которой частицы получат InitializeParticle() и все будут счастливы.
После очередного плейтеста ещё допилен АИ. Больше тоннелей, больше секретов, умнее монстры, красивее и реалистичнее локации.
Добавлено 09-11-2016 в 12:59:
Что не сделано:
- trigger_hurt до сих пор пропускает энтити (посмотрите его говнокод и всё поймёте), в т.ч. и вепнбоксы
- weaponbox при вывале из игрока начинает медленно падать... падать... падать... вечно падать... свкозь пол, сквозь вечность.
- некритичные баги анимаций
ну переименуй fuser2 в flNextAmmoBurn. Может полегчает.
Цитата:
~ X ~ писал: какие-то хитрые высчеты того, что в веапон_дате происходит
Если бы кои-кто пони-мал, как устроена дельта, то и проблем бы не было.
Цитата:
~ X ~ писал: коробочка его по-хитрому ждёт.
Выходишь такой в чистом поле из-за угла, а там
Цитата:
~ X ~ писал: trigger_hurt до сих пор пропускает энтити
Тебе там динамический лист надо завести, например.
Добавлено 09-11-2016 в 13:49:
Цитата:
~ X ~ писал: Ребята, вы со своими пингами дикую фуфлудильню развели. Это нехорошо.
нам тоже не нравится, что мы мирно общаемся и ты постоянно влезаешь со своим оффтопом про XDM, которого никто никогда не видел. Может его и вовсе не существует.
Дядя Миша писал: Тебе там динамический лист надо завести, например.
Я бы завёл, но проблема с сейврестором. Кроме того, это хак.
Если исходить из предположения, что каждый кадр HurtTouch() вызывается для всех, кто в триггере, то, теоретически, можно просто
~ X ~ в реальности надежда на то, что хотя бы одна клиентская комманда попадёт на hurt. По этом и проверка по времени. Я даже не знаю, можно ли назвать это хаком.
Коробочки твоей это не касается, там придётся выкручиваться.
mittorn расскажи мне про коробочку. Коробочки очень ценные и когда они перестают коллайдиться вообще со всем на свете - это тотальный фаил.
А в связке с триггерами проблема такая: в HurtTouch() к триггеру коробочка попадает ОДИН раз. И если они пришёлся на не "те" полсекунды (где в коде сторит return), то коробка не хёртится НИКОГДА. Пускай она хоть всю игру в триггере простоит. И это совсем плохо т.к. своё оружие игрок не получит никогда.
Ну и проскоки игроков сквозь триггеры - тоже беда.
~ X ~ коробочка не шлёт комманд. Она делает touch во время физики. Видимо, тут виновата халфовая физика. Как известно, если что-то мелкое запустить с большой скоростью в стенку - оно пролетит сквозь неё. В чём причина - не знаю. Код физики вот:
C++ Source Code:
1
// move origin
2
// Base velocity is not properly accounted for since this entity will move again
3
// after the bounce without taking it into account
if( blocked ) *blocked = !VectorCompare( ent->v.origin, end ); // can't move full distance
4
5
// so we can run impact function afterwards.
6
if( SV_IsValidEdict( trace.ent ))
7
SV_Impact( ent, trace.ent, &trace );
SV_LinkEdict вызывает TouchLinks, который работает предельно просто: проверяет список всех триггеров на предмет пересечения. Трейс никакие триггеры не задевает
Разумеется твоя коробка просто пролетит через триггер, ни в один кадр не "трогая" его. Как это обойти? Попробуй ограничить скорость или увеличить триггер.
mittorn т.е. эти говнокды не просчитывают пересечение траекторий, а только коллизию апостариорно... уныло. Всё равно мне не понятно, почему для неподвижных вепонбоксов не вызывается точ триггера.