![]() |
Показать все 110 сообщений этой темы на одной странице |
HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Hull'ы (https://hlfx.ru/forum/showthread.php?threadid=4587)
Hull'ы
В коде компиляторов и функциях GetHullBounds на сервере и клиенте задефайнены размеры хуллов игрока. Три штуки: в полный рост, в присяде и точечный нулевой. Чтобы изменить размер игрока, надо поменять значения во всех трёх местах. Сегодня убедился экспериментально, пересобрав ещё и компиляторы. Это не беда, сделать не сложно. Но можно ли добавить ещё один хулл для лежачего игрока? Подозреваю, что нет, и это ограничение формата карт и движка. А для чего юзается точечный хулл? С первыми двумя понятно - для размеров игрока сидя и стоя. Ну а третий для чего? Для дохлого игрока? Можно ли его заюзать для своих целей?
Ku2zoff для всего юзается. Просто прям для всего. Особенно для трейсов, вроде.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
~ X ~ понял. Трейс он ведь точечный. Значит и все точечные энтити, тоже его юзают. И монстры, им ведь можно без труда задавать произвольный размер, в отличие от игрока.
Добавлено 21-04-2015 в 17:15:
Можно модифицировать компиляторы и добавить ещё один хулл, только вот прожуёт ли это дело движок? Я тут в DoD поэкспериментировал. Хулл у лежачего игрока такой же как и у сидячего. Забавно наверное выглядит со стороны, когда один игрок запрыгивает на другого в таком случае.
Добавлено 21-04-2015 в 17:27:
Похоже, нельзя добавить. Всего движок юзает 4 хулла: 3 для коллизии, про которые и идёт речь и один визуальный.
Есть мысль сделать хулл в присяде изначально маленьким, для лежачего игрока и как-то искусственно блокировать движение, когда игрок в присяде, а пространство не позволяет пролезть.
На самом деле нулевого хулла не существует. 
__________________
ДМ вот чё мне писал "в pm_shared функция pmove->usehull.
Там есть нулевой - это обычный хулл игрока, есть первый - это присевший игрок и есть второй - точечный. Засада в том, что третий хитрая халфа может вообще не добавить в эту структуру.
Так что попробуй pmove->usehull = 3, но предупреждаю - может и не сработать."
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Он строится при загрузке уровня.__________________
Почитал на русском форуме, посвящённом AMX. У чувака получилось хакнуть GetHullBounds и применить к игроку второй (третий по счёту) Vector(0,0,0), нулевой хулл. На скрине видно, что залез в узенькую щель (юнита 3) между ящиками на дедасте. Значит для игрока сработает usehull = 2.
Я боюсь, что если изменю его размеры в компиляторах и в движке, то что-нибудь изломаю.
1 | /* |
2 | ================================ |
3 | GetHullBounds |
4 |
5 | Engine calls this to enumerate player collision hulls, for prediction. Return 0 if the hullnumber doesn't exist. |
6 | ================================ |
7 | */. |
Методом тыка выяснил, что в GetHullBounds можно подставлять любые значения (и в любой кейс), лишь бы они совпадали с хуллами, задефайнеными в компиляторах, и кейс соответствовал pmove->usehull.
1 | vec3_t g_hull_size[NUM_HULLS][2] = |
2 | { |
3 | {// 0x0x0 |
4 | {0, 0, 0}, {0, 0, 0} |
5 | } |
6 | , |
7 | {// 32x32x72 |
8 | {-16, -16, -36}, {16, 16, 36} |
9 | } |
10 | , |
11 | {// 64x64x64 |
12 | {-32, -32, -32}, {32, 32, 32} |
13 | } |
14 | , |
15 | {// 32x32x36 |
16 | {-16, -16, -18}, {16, 16, 18} |
17 | } |
18 | }; |
1 | для игрока |
2 | mins = Vector(-16, -16, -36); |
3 | maxs = Vector(16, 16, 36); |
4 | потому что ориджин в пузе |
1 | для монстра, ростом с игрока |
2 | mins = Vector(-16, -16, 0); |
3 | maxs = Vector(16, 16, 72); |
4 | потому что ориджин в ногах |
__________________
>Хотя бывает, что нод вроде бы вот он, а монстр к нему не идёт).
оох, как же это выматывает.
__________________
http://www.moddb.com/mods/monorail-quest
Замечал, кстати, если менять UTIL_SetSize монстрикам на свои, более подходящие к модельке, то бывает монстры перестают ходить по лестнице, высота ступенек которой равны 16 юнитам. В итоге у меня все монстрики размером 32х32х72. Ходят по ступенькам хорошо, но вот когда прыгают в сторону стены, то наполовину в стену уходят. Есть какое-то решение?
__________________
Base Defense on Steam, ModDB

__________________
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Поэкспериментировал тут в pm_shared.c. Нагородить такой огород могли только Valve. Копипастил PM_Duck и PM_UnDuck, менял условия на свои, научил игрока падать и ползать. Напоролся на кучу проблем. Если не трогать переменную pmove->bInDuck, то не меняется view_ofs игрока. Почему, ХЗ. Если пользоваться чем-то своим, а не флагом FL_DUCKING, то хулл игрока уменьшается до нужного, но ориджин не опускается к земле. Тоже ХЗ почему. Может я что-то не дописал в коде. В целом, получается вполне неплохо, хулл лежачего игрока всё равно не сменишь как надо, т.к. коллижн бокс всегда повёрнут в одном направлении. Есдинственное, что можно было бы сделать, это уменьшить высоту, чтобы игрок пролезал в низкие щели. Буду копать дальше. В конце концов, в Day of Defeat размер лежачего игрока такой же, как и сидячего, и ведь играется номально у же вон сколько лет. Хотя я подумываю пересесть на Ксаш и завести дополнительный хулл, чтобы не изломать работу монстров и прочих энтить, и при этом сделать возможным ползание в низких вентиляциях, под машинами и проч.
__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))

__________________
XaeroX нахрена вообще хуллы?!! Так сложно пересечение параллелепипеда с десятком треУГольников просчитать? Я что-то матан не улавливаю...
Кстати, обнаружил в ксаше жуткий пендец, если пригибаешься под ступеньками лесткицы.... бошкой можно сквозь грани полезть и заглючить +_+
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


__________________
__________________
ㅤ
Cybermax vgui уже вроде кто-то пилит даже под прыщеглазикс, мастер-сервер уже не обязательно делать хл-совмеСТИМым. А что такое "менеджер загрузки ресурсов"?
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Это система, позволяющая грузить в память на лету ресурсы конкретно для данной ситуации и выкидывать из памяти ненужные. Так где-то ДМ писал.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Но... ох уж эти обстоятельства, сегодня такие, завтра эдакие.__________________
В ходе экспериментов с приседанием и попыток написать ползание, обнаружил, что pmove->usehull захардкодено в движке на флаг FL_DUCKING. По-другому просто не объяснить то, что игрок застревает полу, если не выставлять этот флаг, а только указывать pmove->usehull = 1. Ненавижу Valve.
Добавлено 27-04-2015 в 18:28:
Догадка подтвердилась. Достаточно поставить флаг FL_DUCKING и хулл нормально уменьшается. Чтож, это облегчает задачу. Теперь надо отделить специфические условия приседания от этого флага, и использовать его в только качестве указателя на маленький хулл. А уж присевший игрок или лежачий определять другим способом.
Тебя ввело в заблуждение название переменной usehull.
Разумеется, это чисто флаг ducking. Посмотри комментарий в entity_state.h, строка 91.
Возможно, когда-то планировались и другие хуллы, например, чтобы Фримон мог ползать на животе, но в итоге остались только приседания.
Добавлено 27-04-2015 в 18:47:
Прежде чем ненавидеть Valve, нужно как следует изучить SDK. 
__________________
Только в ксаше мультиплеер неправильно работает.
Ku2zoff правильно он работает. Просто предиктинга нет
__________________
-Brain is dead-

__________________
Ты считаешь, что ДМ украл?
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Почти получилось
Только игрок лежит на земле, если ещё нажать CTRL, а если не нажимать, то висит по центру своего хулла:


Ghoul [BB]
ДМ украл сорцы хл2 у вальвы? Это смешно, конечно же, я так не думаю.
Это какой-то хакер был известный, его чуть не посадили, емнип, за это.
__________________
Я имел ввиду, что он украл код из украденных сорцов.
Добавлено 27-04-2015 в 20:06:
Ku2zoff, постой-ка , браток, а зачем тебе вообще такие сложности?
Я вот вспомнил, что в Тириане я просто сделал другой хитбокс на модели игроков. Далее, всё оружие, которое оперирует трейсами (пули и лучи) вполне прилично работало как раз по этому хитбоксу.
А для пожектайлей (ракеты, энергоразряды, торпеды и прочее) я в код ввел небольшой хак: в Think она через определенные интервалы времени ищет заданную энтитю. Если находит, то детонирует и наносит дамаг.
Так что, можно сказать, что отказался от стандартных хитбоксов.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ghoul [BB]
Ну почему сразу украл? Не украл, а позаимствовал. Взял в беспроцентную аренду на 99 лет.
А ты думал, ДМу, как Менделееву, во сне приснился ксаш, полностью совместимый с халфой?
Добавлено 27-04-2015 в 23:08:
Ghoul [BB]
Браток, а ты случаем не путаешь хитбоксы с хуллами? Они оба на "х" начинаются. 
__________________
1. Да мне вообще всё равно, украл он их там или приснились они ему... Он писал, да расхваливал, что самостоятельно нашел необходимые решения. Плюс сильно исходники Квейка помогли.
2. Не, не путаю хитбокс с хуллом.
UtilSetSize (x,y,z) - это хуллы.
А хитбокс назначается при компилляции модели.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo

__________________
Может чуть не в тему, мне кажеться, или чтобы монстру-трупу трейс (автомат там или гаусс не важно) нанес урон нужно чтобы он не только попал в хитбокс, но и чтобы этот трейс прошел через хулл тоже или хитбокс должен быть внутри хулла? Не знаю что именно из этих двух, откуда вообще у меня такая идея взялась, в ХЛ если с разных сторон стрелять по убитому трупу, то пули проходят скрозь конечности, то оставляют кровь. А прожектайли как я понял не используют хитбоксы? НА с1а0 можно на сидячем охраннике проверить, хитскан ему спокойно урон наносит, а вот снаряды скрозь него пролетают.
Кстати какие комманды показывают прямо в игре хитбоксы и хуллы? Интересно глянуть в Брутал ХЛ, руки у ученых не отстреливаются при стрельбе по кулачкам потому что там хитбокса нет, или из-за того что они не в хулле.
Энтити для трассировки выбираются по pev->absmin/max, отсюда возникает ощущение, что хитбоксы должны быть внутри хулла.
__________________
Сделал. Тутор нужен? Для сингла вообще нет никаких проблем, только кодинг. А вот для мульта нужна новая модель с соответствующими анимациями.

__________________
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Анимации перехода из положения в положение ещё не проигрываются, но они есть. Так же в планах запретить игроку ползать боком, или заставить его перекатываться (тут надо бы вертеть камеру по оси ROLL, но мне чота лень это кодить, да и боюсь, не получится).
Ku2zoff
Ты зачем это прон выкладываешь?!
__________________
XaeroX это не тот прон, который прон 
Если кто не в курсе то TS идейный последователь Action HL
Добавлено 29-04-2015 в 07:39:
Кажется ещё в The Opera Mod было, не помню точно. В The Trenches тоже есть вроде. Я уже про Firearms молчу.
Добавлено 29-04-2015 в 07:58:
В Opera есть кручение от первого лица, которого нет в TS.
__________________
ㅤ
Cybermax вот ещё и эти посмотрю, т.к. испытываю нехватку анимаций.
))) Я просто представил себе это ИРЛ как-то... и не стал делать лежание в былокоде.__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
Ku2zoff спасибо. 9-путевой блендинг мне не нужен, но scaling нужен. Я ещё слышал что движковая реализация хитбоксов какая-то плохая, и что писать свою по-любому надо, но не придавал этому значения.
Да, гетганпазашан есть и там и там. Ещё был оффсет в пм_шареде.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Лол, у дядьки мишки бугурт оказывается. 
К счастью, он не отрицает, что взял в свой проект нелегальный код из ворованных (хл2) и зареверсенных (осхлдс) источников. Было бы глупо отрицать то, что выглядит, за мелкими отличиями, ну просто один-в-один. Я, впрочем, и не осуждаю. Это просто факт, и людям, желающим использовать ксаш, следует о нём знать, дабы чего не вышло (навроде C&D на почту).
Просто надо понимать, что чудес не бывает, и бинарная совместимость рождается не столько из гениальности автора, сколько из получения доступа к сорцам, легального (в идеале) либо не очень (как вышло с халфой). Ксаш хороший движок, но лично мне он именно этим и не подходит, а возможно - и кому-то ещё не подойдёт. И именно поэтому я пишу свой, который в первую очередь будет защищен от любых лицензионных проблем. Кому это всё не важно - не вижу ничего плохого в том, чтобы выбрать ксаш.
Вместо этого он переключился на волатилу, мол, я код ку3 взял, да ещё и ухудшил. Ну, типа, "сам дурак". Даже если это так (хотя это не так, и от ку3 не то что кода - даже от архитектуры мало осталось, но безусловно схожие решения есть - не я же изобрёл формат RoQ, например), то, внимание! Код ку3 действительно доступен под легальной лицензией GPL. Если мне что-то предъявят, мне достаточно будет просто открыть сорцы, чтобы избавиться от мнимого нарушения цопирайтов. А вот что будет делать наш дядя?
Он не понимает, что из нелегальных сорцов код брать НЕЛЬЗЯ ни под каким видом? Тем более под опенсорсной лицензией, где этот факт очень легко заметить?
Упрёк в закрытости сорцов вообще шикарен. Сорцы рендера П2, надо полагать, закрыты по той же причине? 
И да, я люблю заново писать код, который был написан до меня, и не считаю это чем-то плохим. Мне просто нравится процесс написания кода.\
ЗЫ: слово "украл" я не "кричу", знающие люди - это каклы-креазоты, что ли? Ну эти всё знают, да.
Я периодически напоминаю, что код ксаша имеет серьёзные лицензионные нарушения в связи с тем-то и тем-то. Ещё раз - ДМ это даже не отрицает. Так что из-за чего бугурт-то и эти нелепые обвинения уже меня? 
Добавлено 30-04-2015 в 18:40:
Для каклов и креазотов я приведу один пример. Только один, но могу и гораздо больше, если потребуется.
Вот функция из ксаша:
1 | hull_t *Mod_HullForStudio( model_t *model, float frame, int sequence, vec3_t angles, vec3_t origin, vec3_t size, byte *pcontroller, byte *pblending, int *numhitboxes, edict_t *pEdict ) |
2 | { |
3 | vec3_t angles2; |
4 | mstudiocache_t *bonecache; |
5 | mstudiobbox_t *phitbox; |
6 | int i, j; |
7 |
8 | ASSERT( numhitboxes ); |
9 |
10 | if( mod_studiocache->integer ) |
11 | { |
12 | bonecache = Mod_CheckStudioCache( model, frame, sequence, angles, origin, size, pcontroller, pblending ); |
13 |
14 | if( bonecache != NULL ) |
15 | { |
16 | Q_memcpy( studio_planes, &cache_planes[bonecache->current_plane], bonecache->numhitboxes * sizeof( mplane_t ) * 6 ); |
17 | Q_memcpy( studio_hull_hitgroup, &cache_hull_hitgroup[bonecache->current_hull], bonecache->numhitboxes * sizeof( uint )); |
18 | Q_memcpy( studio_hull, &cache_hull[bonecache->current_hull], bonecache->numhitboxes * sizeof( hull_t )); |
19 |
20 | *numhitboxes = bonecache->numhitboxes; |
21 | return studio_hull; |
22 | } |
23 | } |
24 |
25 | mod_studiohdr = Mod_Extradata( model ); |
26 | if( !mod_studiohdr ) return NULL; // probably not a studiomodel |
27 |
28 | VectorCopy( angles, angles2 ); |
29 | angles2[PITCH] = -angles2[PITCH]; // stupid quake bug |
30 |
31 | pBlendAPI->SV_StudioSetupBones( model, frame, sequence, angles2, origin, pcontroller, pblending, -1, pEdict ); |
32 | phitbox = (mstudiobbox_t *)((byte *)mod_studiohdr + mod_studiohdr->hitboxindex); |
33 |
34 | for( i = j = 0; i < mod_studiohdr->numhitboxes; i++, j += 6 ) |
35 | { |
36 | studio_hull_hitgroup[i] = phitbox[i].group; |
37 |
38 | Mod_SetStudioHullPlane( &studio_planes[j+0], phitbox[i].bone, 0, phitbox[i].bbmax[0] ); |
39 | Mod_SetStudioHullPlane( &studio_planes[j+1], phitbox[i].bone, 0, phitbox[i].bbmin[0] ); |
40 | Mod_SetStudioHullPlane( &studio_planes[j+2], phitbox[i].bone, 1, phitbox[i].bbmax[1] ); |
41 | Mod_SetStudioHullPlane( &studio_planes[j+3], phitbox[i].bone, 1, phitbox[i].bbmin[1] ); |
42 | Mod_SetStudioHullPlane( &studio_planes[j+4], phitbox[i].bone, 2, phitbox[i].bbmax[2] ); |
43 | Mod_SetStudioHullPlane( &studio_planes[j+5], phitbox[i].bone, 2, phitbox[i].bbmin[2] ); |
44 |
45 | studio_planes[j+0].dist += DotProductAbs( studio_planes[j+0].normal, size ); |
46 | studio_planes[j+1].dist -= DotProductAbs( studio_planes[j+1].normal, size ); |
47 | studio_planes[j+2].dist += DotProductAbs( studio_planes[j+2].normal, size ); |
48 | studio_planes[j+3].dist -= DotProductAbs( studio_planes[j+3].normal, size ); |
49 | studio_planes[j+4].dist += DotProductAbs( studio_planes[j+4].normal, size ); |
50 | studio_planes[j+5].dist -= DotProductAbs( studio_planes[j+5].normal, size ); |
51 | } |
52 |
53 | // tell trace code about hibox count |
54 | *numhitboxes = mod_studiohdr->numhitboxes; |
55 |
56 | if( mod_studiocache->integer ) |
57 | { |
58 | Mod_AddToStudioCache( frame, sequence, angles, origin, size, pcontroller, pblending, model, studio_hull, *numhitboxes ); |
59 | } |
60 |
61 | return studio_hull; |
62 | } |
1 | hull_t * R_StudioHull(model_t * arg_0, float arg_4, int arg_8, vec3_t arg_C, vec3_t arg_10, |
2 | vec3_t arg_14, byte * arg_18, byte * arg_1C, int * OUT_arg_20_total, edict_t * OUT_arg_24, int arg_isCS) { |
3 |
4 | int i, j, var_20; |
5 | vec3_t var_18; |
6 | r_object_t * var_1c_r_obj; |
7 | mstudiobbox_t * var_c; |
8 |
9 | var_1c_r_obj = NULL; |
10 | SV_InitStudioHull(); |
11 | if(cvar_r_cachestudio.value != 0) { |
12 |
13 | var_1c_r_obj = R_CheckStudioCache(arg_0, arg_4, arg_8, arg_C, arg_10, arg_14, arg_18, arg_1C); |
14 | if(var_1c_r_obj != NULL) { |
15 |
16 | Q_memcpy(studio_planes, &(cache_planes[var_1c_r_obj->nCurrentPlane]), var_1c_r_obj->Total * sizeof(mplane_t) * 6); |
17 | Q_memcpy(studio_hull, &(cache_hull[var_1c_r_obj->nCurrentHull]), var_1c_r_obj->Total * sizeof(hull_t)); |
18 | Q_memcpy(studio_hull_hitgroup, &(cache_hull_hitgroup[var_1c_r_obj->nCurrentHull]), var_1c_r_obj->Total * sizeof(uint32)); |
19 |
20 | *OUT_arg_20_total = var_1c_r_obj->Total; |
21 | return(studio_hull); |
22 | } //else, continue like before. |
23 | } |
24 |
25 | pstudiohdr = Mod_Extradata(arg_0); //If this fails, Mod_ExtraData bails for us. |
26 | var_18[0] = -arg_C[0]; |
27 | var_18[1] = arg_C[1]; |
28 | var_18[2] = arg_C[2]; |
29 |
30 | g_pSvBlendingAPI->BoneSetup(arg_0, arg_4, arg_8, var_18, arg_10, arg_18, arg_1C, -1, OUT_arg_24); |
31 |
32 | var_c = (mstudiobbox_t *)(((byte *)pstudiohdr) + pstudiohdr->hitboxindex); |
33 | for(i = j = 0; i < pstudiohdr->numhitboxes; i++, j+=6) { |
34 |
35 | //So THIS is the loop that adds CS compatibility, or whatever. Screw that. |
36 | studio_hull_hitgroup[i] = var_c[i].group; |
37 |
38 | SV_SetStudioHullPlane(&(studio_planes[j+0]), var_c[i].bone, 0, var_c[i].bbmax[0]); |
39 | SV_SetStudioHullPlane(&(studio_planes[j+1]), var_c[i].bone, 0, var_c[i].bbmin[0]); |
40 | SV_SetStudioHullPlane(&(studio_planes[j+2]), var_c[i].bone, 1, var_c[i].bbmax[1]); |
41 | SV_SetStudioHullPlane(&(studio_planes[j+3]), var_c[i].bone, 1, var_c[i].bbmin[1]); |
42 | SV_SetStudioHullPlane(&(studio_planes[j+4]), var_c[i].bone, 2, var_c[i].bbmax[2]); |
43 | SV_SetStudioHullPlane(&(studio_planes[j+5]), var_c[i].bone, 2, var_c[i].bbmin[2]); |
44 |
45 | studio_planes[j+0].dist += (abs(studio_planes[j+0].normal[0] * arg_14[0]) + abs(studio_planes[j+0].normal[1] * arg_14[1]) + abs(studio_planes[j+0].normal[2] * arg_14[2])); |
46 | studio_planes[j+1].dist += (abs(studio_planes[j+1].normal[0] * arg_14[0]) + abs(studio_planes[j+1].normal[1] * arg_14[1]) + abs(studio_planes[j+1].normal[2] * arg_14[2])); |
47 | studio_planes[j+2].dist += (abs(studio_planes[j+2].normal[0] * arg_14[0]) + abs(studio_planes[j+2].normal[1] * arg_14[1]) + abs(studio_planes[j+2].normal[2] * arg_14[2])); |
48 | studio_planes[j+3].dist += (abs(studio_planes[j+3].normal[0] * arg_14[0]) + abs(studio_planes[j+3].normal[1] * arg_14[1]) + abs(studio_planes[j+3].normal[2] * arg_14[2])); |
49 | studio_planes[j+4].dist += (abs(studio_planes[j+4].normal[0] * arg_14[0]) + abs(studio_planes[j+4].normal[1] * arg_14[1]) + abs(studio_planes[j+4].normal[2] * arg_14[2])); |
50 | studio_planes[j+5].dist += (abs(studio_planes[j+5].normal[0] * arg_14[0]) + abs(studio_planes[j+5].normal[1] * arg_14[1]) + abs(studio_planes[j+5].normal[2] * arg_14[2])); |
51 |
52 | } |
53 |
54 | //Again, CS gets special treatment |
55 | *OUT_arg_20_total = var_20 = pstudiohdr->numhitboxes; |
56 |
57 | if(cvar_r_cachestudio.value != 0) { |
58 |
59 | R_AddToStudioCache(arg_4, arg_8, arg_C, arg_10, arg_14, arg_18, arg_1C, arg_0, studio_hull, var_20); |
60 | } |
61 |
62 | return(studio_hull); |
63 | } |
__________________
Ku2zoff
эти кто-то -- внезапно, вальва. у неё там очень мерзкая EULA. если б они официально разрешили некоммерческое использование... но такого никогда не будет. габа жадная -- ей надо что бы всё было намертво привязано к стиму.
__________________
http://www.moddb.com/mods/monorail-quest

__________________
__________________
Дядя миша продолжает бредить на ксм.
Как будто я виноват, что дядя миша хоть и умеет писать свой код, но, наверное, плохо, раз потом вынужден копипастить чужие решения, когда находит. Как будто я виноват, что код, который он копипастит - краденый. Как будто я виноват, что брал его сейврестор, потому что хотелось взять хоть что-то полезное из ксаша, на тот момент довольно примитивного, а он, скажем, брал из волатилы мой код открывания рта (но потом, конечно же, всё переписал - когда нашёл ещё лучший вариант в хл2).
Но я ещё раз, русским ртом повторяю: речь не о копипасте как таковой. Речь о копипасте нелегального, ворованного кода. И хватит приводить в пример старую волатилу, там хватало копипасты, но никак не ворованных сорцов. Хотя ДМ смеялся надо мной, и говорил - да что ты этот ку3 глядишь, гляди лучше ворованную бетку хл2, там вон как всё классно! Но я отважно не повёлся на искушения и ограничился более примитивными решениями. Из-за которых волатила и тормозит -- ну, это все знают 
А дельта-энкодер ДМ и правда сам написал, это я помню. Опираясь на документ из хлсдк и, вероятно, сорцы ку3, где тоже есть дельта, хотя и не такая продвинутая. И разве я говорил, что 100% кода ксаша - копипаста? У ДМ, видимо, это больная тема, вот он и читает в моих фразах то, что я даже не подразумевал.
Слухи я никакие не распространяю, за слова свои могу ответить. Не нравится пример кода с трассой? Могу привести код физики энтитей. Да много чего. Пусть народ спрашивает, не стесняется. Сорцы ксаша я внимательно исследовал, и только после исследования начал говорить об опасной копипасте в них. А поначалу, когда я их толком и не смотрел, мне не было дела.
Ежели дяде мише или ещё кому-то не нравятся мои слова, не нравится правда - ну не ходите на этот форум, не читайте. Все дружно отпишитесь. Вон, кахлы от канала Шария отписываются массово, потому что он, видити ли, всё время врёт и вообще кремлёвский агент. Берите пример, так сказать. 
Добавлено 30-04-2015 в 22:24:

__________________
__________________
ㅤ
>хл сдк
уныло
>юнити
анально
__________________
http://www.moddb.com/mods/monorail-quest
__________________
ㅤ
перекрестные ссылки с обвинениями друг друга на обоих ресурсах и тонны ненависти.
не надо. вы все хорошие. просто у каждого свой путь и свой кодекс чести.
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
>Source: >Steam Client Runtime
гомосексуально
__________________
http://www.moddb.com/mods/monorail-quest
__________________
ㅤ
Вернусь к теме, наконец. А то мы совсем от неё отошли. Вот вам видео с функционалом, который я уже накодил:
И минимод впридачу. Работает только на стим-версии, потому что основан на новом хлсдк. Никаких страшных изменений в коде нет, можно поиграть в обычную халфу. Новые анимации есть не для всех оружий, а только для монтировки, глока, питона и мп5. Убирание оружия работает не совсем корректно, т.к. у некоторых оружий отсутствует анимация holster и соответствующая функция. А это тема другого тутора, который только ленивый не прочитает, если захочет сделать нормальное убирание пушек. Модель игрока для мультиплеера всего одна, для теста больше и не надо.
Как работает:
1. Клавиша z чтобы лечь/встать.
2. Нельзя лечь в воде (при waterlevel > 1), потому что морда игрока окажется под водой.
3. Если заползти в воду, игрок встанет.
4. Если подползти к лестнице, игрок встанет и ухватится за неё.
5. Нельзя ползать вбок (стрейфить). Анимации есть, но я пока не морочился с этим. Возможно, вы увидите это в моём моде.
6. Нельзя перейти в положения сидя из лежачего нажатием CTRL (это возможно только если попытаться встать, нажав z, находясь, например, в вентиляции).
7. Перейти из сидячего положения в лежачее можно, но камера утопает на секунду в полу. Пока не морочился с этим. Если не будет лень, сделаю нормально, как и п.6, к тому же с анимациями. Увидите в моём моде. Если будет лень, заблочу эту возможность вместе с п.6, как сделано в Day of Defeat.
Вроде всё. Из недоработок - ныряние камеры в пол, могут быть проблемы с сейв/рестором и случайными комбинациями состояний лежа/сидя/стоя, я шибко не тестил. Состояние теоретически может залипнуть, и тогда невозможно будет лечь, даже находясь стоя. Ну и напоследок: лежачий игрок имеет такой же размер, как и сидячий. Без исходников движка никак не завести новый хулл, а изменять ещё один существующий я не рискну во избежание проблем с движением пушаблей и навигацией монстров. Возможно, в будущем найду решение как это обойти.
Кому интересно, потестите, сообщите о багах. Просьба подробно описывать свои действия, которые предшествовали багу.
З.Ы. название папки мода происходит от английского словосочетания to lie prone (рус. "лежать ничком"), а не от того, что вы любите смотреть, когда родителей нет дома 
__________________
Выглядит отлично, а может сделаешь возможность кататься в стороны в положении лежа? Может и не очень реалистично, но я так и представляю человек десять которые лежат рядом друг сч другом и начинают синхронно перекатываться то в одну сторону, то в другую 
__________________
ㅤ
Дядя Миша опять высказывает нелепые упрёки. Вот пример: "Это говорит человек, который таскал в джекхаммер код из хл2 не то что функциями - целыми файлами, о чём гордо мне похвастался в аське, но забыл рассказать на публику."
Как можно утащить код из движка хл2 в редактор хл1? Ну как??! Просветите вату.
А конкретно - выкладывай цитаты из аськи, не стесняйся, где я там "целыми файлами" таскал код из хл2.
Но ты ведь такой же врун, как небезызвестный товарищ Геращенко. За слова не отвечаешь. Если и приведёшь цитату - то совсем с другим смыслом, ведь правда? 
От ксаша я не отвяжусь, т.к. на его примере изучаю голдсорс. Ну нравится мне изучать дядьмишин код, хоть и ворованный, опять же, что я могу с собой поделать?
И волатайлу ты, дядя миша, вспоминаешь регулярно, когда давно никаких гадостей не писал. Недавно я на эту тему отдельный пост написал, не будем к нему возвращаться. 
Надоел мне уже этот бокс по переписке. По-моему, все уже сделали выводы. Пусть ДМ обосновывает свои слова в мой адрес, я в его - уже обосновал, приведя одну функцию. Повторюсь, если нужно больше - приведу больше.
Но на его месте я бы эту тему поскорее закрыл, пока не всплыли ещё более интересные подробности. А то всякое бывает.
Добавлено 01-05-2015 в 01:37:
Я, оказывается, латентный хахол (см. там же). Вот это поворот. Ну всё, тут мне крыть нечем. 
__________________
Интересно а данные события будут отражены в летописи, то бишь в столь любимой Иксом статье на лурке?
__________________
ㅤ
Cybermax
Ну только если там появится статья про ксаш.
__________________
Того и гляди, что и мой ник там всплывёт. Когда зарелизю мод, точно всплывёт 
Ku2zoff еще круто было бы запилить сальто вперед, подкаты и т.д.
__________________
ㅤ
). А там видно будет, может запилим убийцу файрармса. Хотя зачем убивать труп? 
__________________
Ku2zoff так может это и был хитрый план пеара?
Какие мапы тебе нужны?
__________________
-Brain is dead-
2 Ku2zoff:
У меня ещё осталось не мало бесхозных карт, сингловых в основном. Могу их сплавить.
Ku2zoff думаю сначала, когда народа будет мало, лучше завлекать его чем-то наподобие fy карт, чтобы люди, пофанившись в мясе постепенно открывали и другие карты. В идеале первоначальный набор должен содержать по одной-две карты на каждый режим игры, чтобы выбор заключался именно в переключении режимов, а не чисто смене карт
__________________
-Brain is dead-
__________________
ㅤ

__________________
МОЙ НОВЫЙ ПАБЛИК ПО ХЛ))
Что интересно, в свою очередь Action Quake 2 является последователем мода Navy seals для Quake 1.
Любопытный факт из книги хранящейся дома "Крейнак, Джой; Хебрейкен, Джой - Интернет"
__________________
ㅤ
Хм. А я смотрю тут каждый чо-то пилит.
А зачем делать два раза одно и тоже? Те же самые модели. Мне кажется из-аз ограничения полигонов для ГС не возможно создать модель оружия от первого лица на уровне современных шутеров.
__________________
ㅤ

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

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


__________________
ㅤ
__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ku2zoff
Ты аккуратнее там с дядей, он немолодой уже, нервничать ему не стоит. А то потом нам с тобой за него ксаш доделывать придётся. 
Добавлено 01-07-2015 в 00:40:

__________________

__________________
Лично мне кажется что внешние текстуры это просто дело вкуса. Хотя лучше не буду лезть в споры. Буду как Швейцария, соблюдать нейтралитет. А то боком потом выйдет.
__________________
ㅤ
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.
Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo
Ghoul [BB] вообще, говоря отвлечённо, автор треда хочет поговорить о хуллах. А я бы хотел поговорить об их визуализации.
__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]
| Временная зона GMT. Текущее время 16:21. | Показать все 110 сообщений этой темы на одной странице |
На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024