Weapon Touch Details
|
|
VEN | Дата: Четверг, 04.01.2007, 19:52:00 | Сообщение # 1 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Некоторые кодеры испытывают проблемы при определении следующих деталей при соприкосновении игрока с оружием: - WeaponBoxToucherClientIndex - WeaponBoxOwnerClientIndex - WeaponIndex - WeaponName - WeaponBoxEntityIndex - WeaponEntityIndex Данный плагин показывает, как можно получить вышеприведенные детали. Примечание: weaponbox entity - не является "оружием", это entity-"коробка", которая "содержит" weapon_* entity, т.е. настоящую weapon entity.
Сообщение отредактировал VEN - Пятница, 05.01.2007, 00:24:19 |
|
| |
slogic | Дата: Четверг, 04.01.2007, 23:58:26 | Сообщение # 2 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Code | // is weapon not on the ground? if (!(pev(ent, pev_flags) & FL_ONGROUND)) return FMRES_IGNORED | Это ненадежный код. У меня были случаи, когда объект был вроде бы на земле (короче не двигался по вертикали), но флаг не был установлен. В частности такое возникает, если объект лежит на решетке. Так что самый надежный способ - проверить скорость объекта по вертикали (координату Z).
|
|
| |
VEN | Дата: Пятница, 05.01.2007, 00:43:31 | Сообщение # 3 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| А что насчет pfnEntIsOnFloor? Добавлено (2007-01-05, 0:06 Am) --------------------------------------------- Насчет скорости - не будет работать для entities с MOVETYPE_NONE, например. Добавлено (2007-01-05, 0:43 Am) ---------------------------------------------
В общем, изменил на pfnEntIsOnFloor метод - посмотришь по возможности, насколько он надежен. На breakable решетке не смог протестить, т.к. entity на ней не задерживается, brush решетки - не знаю, на каких картах есть (по крайней мере, мелкие горизонтальные).
|
|
| |
slogic | Дата: Пятница, 05.01.2007, 00:46:23 | Сообщение # 4 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Тоже пробовал. О чем может идти речь, если, используя функцию EngFunc_DropToFloor, объект оказывался ПОД решеткой, хотя если придать ему свободное падение, то он останавливался на решетке. Quote (VEN) | Насчет скорости - не будет работать для entities с MOVETYPE_NONE, например. | А ты уверен, что в этом случае FL_ONGROUND вообще будет когда-либо установлен? К счастью для объектов, которым не чужда физика, такой тип движения никогда не будет установлен.
|
|
| |
VEN | Дата: Пятница, 05.01.2007, 01:05:28 | Сообщение # 5 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Quote | О чем может идти речь, если, используя функцию EngFunc_DropToFloor, объект оказывался ПОД решеткой, хотя если придать ему свободное падение, то он останавливался на решетке. | Очень странное поведение... Quote | А ты уверен, что в этом случае FL_ONGROUND вообще будет когда-либо установлен? | Ну, возможно, будет установлен, если такую entity поместить например в solid brush. Хотя, не уверен, и это, действительно, не важно...Добавлено (2007-01-05, 1:05 Am) --------------------------------------------- Кстати, было подозрение на "банальность" pfnEntIsOnFloor, т.е. на использование того же FL_ONGROUND флага, но тест показал, что функция "умней". Вердикт: MustUse.
|
|
| |