HLFX.Ru Forum
Показать все 12 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- ShouldCollide (https://hlfx.ru/forum/showthread.php?threadid=2744)


Отправлено n00b 11-04-2011 в 08:37:

ShouldCollide

На сайте метамода нашел функцию:

Цитата:

ShouldCollide
int ShouldCollide(edict_t *pentTouched, edict_t *pentOther);

from [email protected], via HLCoders:
..a hook that can override if any two entities should collide when they try to pass through each other.

comments:
Mugsy from DoD indicates that the return value for normal operation is 1.
Added in SDK 2.0.


Что-то я не понял, для чего она нужна. Проверил через амхх - в кс всегда возвращается 1. Как я понял, если возвратить 0, то обьекты не столкнутся, и пройдут друг через друга, но они уменя все так-же сталкиваются. Через эту функцию нельзя чтоли запретить столкновение? А для чего тогда 1 возвращается?


Отправлено XaeroX 11-04-2011 в 09:07:

Цитата:
n00b писал:
Как я понял, если возвратить 0, то обьекты не столкнутся, и пройдут друг через друга

Именно. Емнип, я делал так двери а ля деус екс (которые при открытии проходят сквозь активатора, а не отталкивают его как в халфе, что бесит необычайно). Но наверняка могу сказать только за волатилу, что в ней это работает. А в халфе - вроде бы.

__________________

xaerox on Vivino


Отправлено n00b 11-04-2011 в 09:22:

Спасибо.
Но уменя - вроде бы НЕТ. Может просто через амхх нельзя... или потому что этих функций нет в дллке самой кс, они же new api...


Отправлено PomanoB 11-04-2011 в 15:50:

В AmxModX работает, по крайней мере с дверью

C++ Source Code:
1
#include <amxmodx>
2
#include <fakemeta>
3
 
4
public plugin_init()
5
{
6
  register_forward(FM_ShouldCollide, "fwdShouldCollide")
7
}
8
 
9
public fwdShouldCollide(ent, other)
10
{
11
  forward_return(FMV_CELL, 0)
12
  return FMRES_SUPERCEDE
13
}


Добавлено 11-04-2011 в 19:50:

Проверял в КС стим


Отправлено n00b 11-04-2011 в 15:59:

Эмм, с какими, и чем ?
Вот с этим плагином, на cs_assault игроки не проходят ни через себя, ни через дверь. Сервер через hlupdatelools качал. И в нон-стим кс p21 также.

Добавлено 11-04-2011 в 19:59:

Аааа, а гранаты через двери летают....
Ладно, походу для игроков не работает, обидно...


Отправлено PomanoB 11-04-2011 в 16:11:

Проверял на двери на меншене.
НО
Сквозь дверь пройти не получается, но потом, когда она сама по времени закрывается, то спокойно проходит сквозь игрока.


Отправлено n00b 11-04-2011 в 16:28:

Да дверь то через игрока проходит, игрок через дверь нет.

Добавлено 11-04-2011 в 20:28:

Да ещё и застревает в ней...


Отправлено Дядя Миша 12-04-2011 в 13:46:

Ох ёлки...
1. пример использования функции - в ricoсhet, который опенсорц.
2. для игрока есть свой кастомный трейс-фильтр в pm_shared.c
Пример использования - в том же ricochet.
3. В ксаше тоже работает.

__________________
My Projects: download page

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

Цитата:

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


Отправлено n00b 12-04-2011 в 13:57:

Про ricoсhet я просто не знал
За "трейс-фильтр в pm_shared.c" спасибо, я так и подумал, но простыми хуками ( через амхх например ) ведь его не изменить...


Отправлено hajimura 10-10-2023 в 09:41:

Цитата:
Дядя Миша писал:
Ох ёлки...
1. пример использования функции - в ricoсhet, который опенсорц.

Добрый день. Где можно найти исходники?


Отправлено Ku2zoff 11-10-2023 в 12:49:

hajimura на гитхабе вместе с исходниками халфы. Рикошет, как и DMC - опенсорс. Только функция эта, если она правильно работает, действует только на связку энтить-энтить или игрок-энтить. Для связки игрок-игрок нужно использовать pev->groupinfo и pev->groupflags. А чтобы быстро и без проблем переключать налету коллизию игрока, лучше использовать трейс-фильтр, как советовал Дядя Миша.
Я так научил игрока ползать по низким вентиляциям, и даже сделал взаимодействие с открываемыми вентиляционными решётками. Но без маппинга это не работает, на карте должны быть специальные энтити, с которыми игрок не коллидит, когда лежит на пузе или ползёт.


Отправлено FiEctro 11-10-2023 в 12:57:

Цитата:
hajimura писал:
Добрый день. Где можно найти исходники?


Они входят в HLSDK.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Временная зона GMT. Текущее время 14:31.
Показать все 12 сообщений этой темы на одной странице

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