HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > ShouldCollide
из HLSDK
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
n00b
Житель форума

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

Рейтинг



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 возвращается?

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

Старое сообщение 11-04-2011 08:37
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34527
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

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

__________________

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

Старое сообщение 11-04-2011 09:07
-
n00b
Житель форума

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

Рейтинг



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

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

Старое сообщение 11-04-2011 09:22
- За что?
PomanoB
Житель форума

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

Рейтинг



В 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:

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

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

Старое сообщение 11-04-2011 15:50
- За что?
n00b
Житель форума

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

Рейтинг



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

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

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

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

Старое сообщение 11-04-2011 15:59
- За что?
PomanoB
Житель форума

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

Рейтинг



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

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

Старое сообщение 11-04-2011 16:11
- За что?
n00b
Житель форума

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

Рейтинг



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

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

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

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

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

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

Рейтинг



Ох ёлки...
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'

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

Старое сообщение 12-04-2011 13:46
-
n00b
Житель форума

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

Рейтинг



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

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

Старое сообщение 12-04-2011 13:57
- За что?
hajimura
Новичок

Дата регистрации: Mar 2022
Проживает: (void)
Сообщений: 1
Возраст: 26

Рейтинг



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

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

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

Старое сообщение 10-10-2023 09:41
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

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

Рейтинг



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

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

Старое сообщение 11-10-2023 12:49
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12901
Возраст: 32

Рейтинг



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


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

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

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

Старое сообщение 11-10-2023 12:57
- За что?
Тема: (Опционально)
Ваш ответ:



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


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

Временная зона GMT. Текущее время 19:35. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > ShouldCollide
из HLSDK
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

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

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

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

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