|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
PEV (entvars_t) структура объекта
|
|
slogic | Дата: Среда, 29.11.2006, 20:57:18 | Сообщение # 1 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Довольно важная конструкция. Она описывает свойства объектов HL. Весь перечень возможных атрибутов можно прочитать в файле progdefs.h из HLSDK, структура entvars_t. К сожалению там не густо комментариев и возникает много вопросов. Эта тема посвящена исправить ситуацию. Точки перед атрибутами лишь подчеркивают, что это атрибуты объектов. .netname это и есть имя игрока (.globalname, .target, .targetname и .message обычно пустые для игрока) .angle ориентация модели игрока в пространстве (в градусах) .v_angle направление, куда смотрит игрок (в градусах); если смотрит в направлении отличном от .angle, то модель игрока визуально перекручивается (как проволока) - ноги в направлении .angle, тело - направлении .v_angle; кстати, этот атрибут используется ТОЛЬКО для игроков, для других entity - нулевой .view_ofs положение позиции глаз игрока относительно начала координат модели игрока (для CS и HL - отличаются, но высота модели игрока и там и там - одинаковая; высоту игрока можно получить из .size[2], который равен 72 единицам) .punchangle используется для эмуляции тряски экрана (вроде); пока я его не использовал, но заметил, что применяется в сочетании с атрибутом .fixangle .origin координаты игрока в пространстве .scale масштаб отрисовки модели игрока (по умолчанию 100); т.о. можно рисовать визуально однаковые модели с разным ростом; следует отометить, что изменение масштаба не меняет hitboxes игрока .fuser2 из плагина "Super Bunny Hopper" узнал, что этот этот параметр отвечает за замедление игрока после прыжка (его надо сбросить в ноль, чтобы отключить) .armorvalue количество брони у игрока .armortype тип брони; в HLDM не используется, а вот в моде DMC - используется (помните, три типа брони?); в CS тип брони хранится в специальной области памяти - pdata oldbuttons - бит-сумма IN_* констант (нажатых кнопок) для предыдущего фрэйма iuser1 - (для спектаторов в CS) номер типа режима наблюдения: 1 - Locked Chase Cam, 2 - Free Chase Cam, 3 - Free Look, 4 - First Person, 5 - Free Overview, 6 - Chase Overview iuser2 - (для спектаторов в CS) индекс игрока, выбранного для наблюдения (в "Free Look" всегда 0) bInDuck - равен 1, если игрок в процессе приседания (не полностью присел), иначе 0 flTimeStepSound - используется для синхронизации воспроизведения звука шагов, если форсировать большое значение (~900), то шагов слышно не будет movetype - тип движения, использует MOVETYPE_* константы solid - "твердость", использует SOLID_* константы skin - номер скина модели (1, 2, ...) body - что-то типа подмодели, например, в CS, если 1, то будет отображаться дополнительная BombBackpack/DefuseKit моделька для T/CT игрока effects - эффекты, бит-сумма EF_* констант, например EF_NODRAW отключает прорисовку (невидимость) light_level - уровень освещенности sequence - номер анимационного движения gaitsequence - номер анимационного движения "походки" waterlevel - указывает уровень воды: 0 - не в воде, 1 - по ноги в воде, 2 - по талию в воде, 3 - по голову в воде watertype - водный тип, использует CONTENTS_* константы, например, форсирование CONTENTS_WATER приведет к отключению повреждений при падении с большой высоты spawnflags - бит-сумма SF_* констант, учитывается при "спавнинге" flags - бит-сумма FL_* констант, например, наличие FL_DUCKING говорит о том, что игрок находится в положении полного присеста fixangle - ставится 1, чтобы установить угол обзора, соответствующий текущему значению v_angle weapons - бит-сумма (1<<WEAPON_*), (1<<CSW_*) и т.д. rendermode - режим рендеринга, использует kRender* константы renderfx - эффект рендеринга, использует kRenderFx* константы button - бит-сумма IN_* констант (нажатых кнопок) deadflag - использует DEAD_* константы Пока все. Буду дополнять. И вопросы по теме: 1) какой атрибут отвечает за торможение игрока при попадании в него пуль? 2) можно пояснить назначение атрибута .friction (он равен 1 для живых игроков, иначе 0)?
Сообщение отредактировал slogic - Понедельник, 13.08.2007, 12:08:54 |
|
| |
VEN | Дата: Четверг, 30.11.2006, 11:52:27 | Сообщение # 2 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Integer oldbuttons - бит-сумма IN_* констант (нажатых кнопок) для предыдущего фрэйма iuser1 - (для спектаторов в CS) номер типа режима наблюдения: 1 - Locked Chase Cam, 2 - Free Chase Cam, 3 - Free Look, 4 - First Person, 5 - Free Overview, 6 - Chase Overview iuser2 - (для спектаторов в CS) индекс игрока, выбранного для наблюдения (в "Free Look" всегда 0) bInDuck - равен 1, если игрок в процессе приседания (не полностью присел), иначе 0 flTimeStepSound - используется для синхронизации воспроизведения звука шагов, если форсировать большое значение (~900), то шагов слышно не будет movetype - тип движения, использует MOVETYPE_* константы solid - "твердость", использует SOLID_* константы skin - номер скина модели (1, 2, ...) body - что-то типа подмодели, например, в CS, если 1, то будет отображаться дополнительная BombBackpack/DefuseKit моделька для T/CT игрока effects - эффекты, бит-сумма EF_* констант, например EF_NODRAW отключает прорисовку (невидимость) light_level - уровень освещенности sequence - номер анимационного движения gaitsequence - номер анимационного движения "походки" waterlevel - указывает уровень воды: 0 - не в воде, 1 - по ноги в воде, 2 - по талию в воде, 3 - по голову в воде watertype - водный тип, использует CONTENTS_* константы, например, форсирование CONTENTS_WATER приведет к отключению повреждений при падении с большой высоты spawnflags - бит-сумма SF_* констант, учитывается при "спавнинге" flags - бит-сумма FL_* констант, например, наличие FL_DUCKING говорит о том, что игрок находится в положении полного присеста fixangle - ставится 1, чтобы установить угол обзора, соответствующий текущему значению v_angle weapons - бит-сумма (1<<WEAPON_*), (1<<CSW_*) и т.д. rendermode - режим рендеринга, использует kRender* константы renderfx - эффект рендеринга, использует kRenderFx* константы button - бит-сумма IN_* констант (нажатых кнопок) deadflag - использует DEAD_* константы Для живых и мертвых friction, по-моему, всегда 1.0 - отвечает за трение, например, 0.1 может имитировать хороший лед. :]
Сообщение отредактировал VEN - Четверг, 30.11.2006, 12:04:18 |
|
| |
slogic | Дата: Четверг, 30.11.2006, 11:56:17 | Сообщение # 3 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (VEN) | iuser2 - index наблюдаемого игрока | Если в поле видимости более одного игроква, то чей индекст ставится? Quote (VEN) | Да нет - для живых и мертвых friction по-моему всегда 1.0. | При подключении клиента к серверу и до момента первого spawn - точно 0. Хотя событие нужно уточнить, когда firction становится не 0. Может быть можно будет как-то использовать.
|
|
| |
VEN | Дата: Четверг, 30.11.2006, 12:02:25 | Сообщение # 4 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Улучшил описание iuser2.
|
|
| |
slogic | Дата: Четверг, 30.11.2006, 12:05:27 | Сообщение # 5 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (VEN) | Для живых и мертвых friction, по-моему, всегда 1.0 - отвечает за трение, например, 0.1 может имитировать хороший лед. :] | Инетерсно, как этот параметр сочетается с переменной sv_stopspeed. А про торможение при попадании пули нет слуйчано информации? Это самое важное на текущий момент, что мне надо узнать. Добавлено (2006-11-30, 12:05 Pm) ---------------------------------------------
Quote (VEN) | Улучшил описание iuser2. | О, совсем другой смысл
|
|
| |
VEN | Дата: Четверг, 30.11.2006, 16:11:31 | Сообщение # 6 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| iuser3 (для спектаторов в CS) - индекс игрока, в чью сторону направлена Dead Cam, Locked Chase Cam flDuckTime - время(фаза) приседания (1000 ... 0) (для только что полностью присевшего игрока ~600) flSwimTime - время(фаза) плавания (1000 ... 0) iStepLeft - меняется (1, 0, 1, 0, ...) каждый "слышный" шаг Quote | А про торможение при попадании пули нет слуйчано информации? | Нет, не думаю, что в этом случае существует такая pev, которую можно просто переправить, как в случае с прыжком.
|
|
| |
slogic | Дата: Четверг, 30.11.2006, 17:11:52 | Сообщение # 7 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (VEN) | Нет, не думаю, что в этом случае существует такая pev, которую можно просто переправить, как в случае с прыжком. | В твоей многотысячной коллекции тестовых скриптов нет случайно такого, который журнализирует изменения выбранных свойств игрока после отработки функций client_prethink(), client_postthink()?
|
|
| |
VEN | Дата: Четверг, 30.11.2006, 20:28:55 | Сообщение # 8 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Вот что-то подобное - можешь легко переделать под свои нужды. Сделан только для Int/Float/Vec. Выводит через server_print. См. исходник для опций.
|
|
| |
AlMod | Дата: Пятница, 01.12.2006, 13:37:22 | Сообщение # 9 |
Сонный кодер
Группа: Админы
Сообщений: 600
Статус: Не в сети
| VEN, советую отпостить эту инфу. как статью в соответствующем разделе в виде голосования. Если все будет, ок отпостю ее в статьях на главной
|
|
| |
slogic | Дата: Воскресенье, 03.12.2006, 17:55:40 | Сообщение # 10 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| flSwimTime - похоже у него больше значений, т.к. она постоянно меняется, даже при выборе команды. Интересно, а как описывается наличие бронежилета и шлемака? Я столкнулся с такой проблемой, что броня вообще не учитывается, которая приобретена с пом. HEV-установок (в DM картах) или с пом. armor-паков. Есть свойство amrortype. Это на самом деле не тип, а количество брони. Но кол-во брони какого типа он описывает?
|
|
| |
VEN | Дата: Воскресенье, 03.12.2006, 18:17:38 | Сообщение # 11 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| В CS количество брони - armorvalue, наличие шлема в pdata. Насчет HLDM я не в курсе, нужно смотреть. Quote | flSwimTime - похоже у него больше значений, т.к. она постоянно меняется, даже при выборе команды | Что-то не похоже на правду. "Swim" - "плавать". Изменяется только в воде в пределах (0 ... 1000). По крайней мере, по результатам моих тестов в CS. Ты ничего не напутал?
Сообщение отредактировал VEN - Воскресенье, 03.12.2006, 18:25:48 |
|
| |
slogic | Дата: Понедельник, 04.12.2006, 18:14:35 | Сообщение # 12 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (VEN) | Что-то не похоже на правду. "Swim" - "плавать". Изменяется только в воде в пределах (0 ... 1000). По крайней мере, по результатам моих тестов в CS. Ты ничего не напутал? | Да, я облажался. Поздно спохватился, а ты шустрее оказался Я работал с неверными данными. Сейчас повторно исследую. Добавлено (2006-12-04, 6:14 Pm) --------------------------------------------- pdata - это что и как к нему обратиться? .armortype - тип брони, используется в моде DMC =); в HLDM (не знаю как в CS) НЕ используется
Сообщение отредактировал slogic - Понедельник, 04.12.2006, 18:15:27 |
|
| |
VEN | Дата: Понедельник, 04.12.2006, 19:51:05 | Сообщение # 13 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Code | pdata - это что и как к нему обратиться? | pvPrivateData memory block. CS активно использует его для манипуляции свойств и количественных параметров entity: Player's Money, BackPackAmmo, Defuse/Plant skill, Deaths; Weapon's Type, Ammo и многое-многое другое. Фактически более 90% функций cstrike модуля основано на pdata. Fakemeta может манипулировать private int/float/string данными. Если не ошибаюсь, AMX поддерживает int pdata manipulation.
|
|
| |
slogic | Дата: Вторник, 05.12.2006, 13:53:37 | Сообщение # 14 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Пасиб! А .dmg и .damagetake за что отвечают? Зачем-то в .dmg присваивают двойку? Это флаг что ли?
|
|
| |
VEN | Дата: Вторник, 05.12.2006, 14:39:52 | Сообщение # 15 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| dmg_take - количество повреждений, причиненных entity takedamage - использует DAMAGE_* константы, например, DAMAGE_NO - ни что иное, как широко известный и любимый в узких кругах "god mode" dmg - точно не уверен, но полагаю, это свойство, обратное takedamage, для player, hostage равно 2.0; для некоторых entity, например выброшенная HE граната, а также установленая C4 в CS dmg равно 100.0
|
|
| |
| AMX Mod X Russian Community © 2006-2024 | |
|
| |