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 возвращается?
n00b писал: Как я понял, если возвратить 0, то обьекты не столкнутся, и пройдут друг через друга
Именно. Емнип, я делал так двери а ля деус екс (которые при открытии проходят сквозь активатора, а не отталкивают его как в халфе, что бесит необычайно). Но наверняка могу сказать только за волатилу, что в ней это работает. А в халфе - вроде бы.
Эмм, с какими, и чем ?
Вот с этим плагином, на cs_assault игроки не проходят ни через себя, ни через дверь. Сервер через hlupdatelools качал. И в нон-стим кс p21 также.
Добавлено 11-04-2011 в 19:59:
Аааа, а гранаты через двери летают....
Ладно, походу для игроков не работает, обидно...
Проверял на двери на меншене.
НО
Сквозь дверь пройти не получается, но потом, когда она сама по времени закрывается, то спокойно проходит сквозь игрока.
Ох ёлки...
1. пример использования функции - в ricoсhet, который опенсорц.
2. для игрока есть свой кастомный трейс-фильтр в pm_shared.c
Пример использования - в том же ricochet.
3. В ксаше тоже работает.
Про ricoсhet я просто не знал
За "трейс-фильтр в pm_shared.c" спасибо, я так и подумал, но простыми хуками ( через амхх например ) ведь его не изменить...
hajimura на гитхабе вместе с исходниками халфы. Рикошет, как и DMC - опенсорс. Только функция эта, если она правильно работает, действует только на связку энтить-энтить или игрок-энтить. Для связки игрок-игрок нужно использовать pev->groupinfo и pev->groupflags. А чтобы быстро и без проблем переключать налету коллизию игрока, лучше использовать трейс-фильтр, как советовал Дядя Миша.
Я так научил игрока ползать по низким вентиляциям, и даже сделал взаимодействие с открываемыми вентиляционными решётками. Но без маппинга это не работает, на карте должны быть специальные энтити, с которыми игрок не коллидит, когда лежит на пузе или ползёт.
hajimura писал: Добрый день. Где можно найти исходники?
Они входят в HLSDK.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!