AMX MOD X
Пятница, 19.04.2024, 13:36:56



Приветствую Вас Гость | RSS
[ Главная ] [ PEV (entvars_t) структура объекта - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Полезная информация » PEV (entvars_t) структура объекта (описание атрибутов)
PEV (entvars_t) структура объекта
slogicДата: Среда, 29.11.2006, 20:57:18 | Сообщение # 1
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Довольно важная конструкция. Она описывает свойства объектов 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
Репутация: 45
Статус: Не в сети
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
Репутация: 47
Статус: Не в сети
Quote (VEN)
iuser2 - index наблюдаемого игрока

Если в поле видимости более одного игроква, то чей индекст ставится?

Quote (VEN)
Да нет - для живых и мертвых friction по-моему всегда 1.0.

При подключении клиента к серверу и до момента первого spawn - точно 0. Хотя событие нужно уточнить, когда firction становится не 0. Может быть можно будет как-то использовать.

 
VENДата: Четверг, 30.11.2006, 12:02:25 | Сообщение # 4
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Улучшил описание iuser2.
 
slogicДата: Четверг, 30.11.2006, 12:05:27 | Сообщение # 5
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (VEN)
Для живых и мертвых friction, по-моему, всегда 1.0 - отвечает за трение, например, 0.1 может имитировать хороший лед. :]

Инетерсно, как этот параметр сочетается с переменной sv_stopspeed.

А про торможение при попадании пули нет слуйчано информации? Это самое важное на текущий момент, что мне надо узнать.

Добавлено (2006-11-30, 12:05 Pm)
---------------------------------------------
Quote (VEN)
Улучшил описание iuser2.

О, совсем другой смысл smile

 
VENДата: Четверг, 30.11.2006, 16:11:31 | Сообщение # 6
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
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
Репутация: 47
Статус: Не в сети
Quote (VEN)
Нет, не думаю, что в этом случае существует такая pev, которую можно просто переправить, как в случае с прыжком.

В твоей многотысячной коллекции тестовых скриптов нет случайно такого, который журнализирует изменения выбранных свойств игрока после отработки функций client_prethink(), client_postthink()?
 
VENДата: Четверг, 30.11.2006, 20:28:55 | Сообщение # 8
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Вот что-то подобное - можешь легко переделать под свои нужды.
Сделан только для Int/Float/Vec. Выводит через server_print. См. исходник для опций.
Прикрепления: 91630845.sma (4.4 Kb)
 
AlModДата: Пятница, 01.12.2006, 13:37:22 | Сообщение # 9
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
VEN, советую отпостить эту инфу. как статью в соответствующем разделе в виде голосования. Если все будет, ок отпостю ее в статьях на главной cool

 
slogicДата: Воскресенье, 03.12.2006, 17:55:40 | Сообщение # 10
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
flSwimTime - похоже у него больше значений, т.к. она постоянно меняется, даже при выборе команды.

Интересно, а как описывается наличие бронежилета и шлемака? Я столкнулся с такой проблемой, что броня вообще не учитывается, которая приобретена с пом. HEV-установок (в DM картах) или с пом. armor-паков.

Есть свойство amrortype. Это на самом деле не тип, а количество брони. Но кол-во брони какого типа он описывает?

 
VENДата: Воскресенье, 03.12.2006, 18:17:38 | Сообщение # 11
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
В 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
Репутация: 47
Статус: Не в сети
Quote (VEN)
Что-то не похоже на правду. "Swim" - "плавать". Изменяется только в воде в пределах (0 ... 1000). По крайней мере, по результатам моих тестов в CS. Ты ничего не напутал?

Да, я облажался. Поздно спохватился, а ты шустрее оказался smile Я работал с неверными данными. Сейчас повторно исследую.

Добавлено (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
Репутация: 45
Статус: Не в сети
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
Репутация: 47
Статус: Не в сети
Пасиб!

А .dmg и .damagetake за что отвечают? Зачем-то в .dmg присваивают двойку? Это флаг что ли?

 
VENДата: Вторник, 05.12.2006, 14:39:52 | Сообщение # 15
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
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 Форум » Скриптинг » Полезная информация » PEV (entvars_t) структура объекта (описание атрибутов)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024