Русское сообщество по скриптингу

Валидность энтити

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Валидность энтити

Сообщение Revenant » 31 дек 2017, 09:13

Читая темы про валидность у меня появились некоторые вопросы и я надеюсь поможете в них разобраться.

Прочитал, что в хаме вызываются уже валидные энтити. Так ли это?

Валидные ли уже энтити в фейкмете? Например в FM_Touch. А в engine? ( register_touch )

Если они валидные нужно ли дополнительно проверять на валидность( pev_valid( index ) !=/== 2 ) при
использовании pdata в хаме/фейкмете/engine? Например в Ham_Weapon_PrimaryAttack/FM_Touch/register_touch и т.д.

А если энтити создана мной, будет ли она валидна в хаме/фейкмете/engine? Например в Ham_Touch/FM_Touch/register_touch/Ham_Spawn/FM_Spawn/Ham_Think/FM_Think и т.д? ( Мб непонятно написал. Если энтити создана мной нужно ли проверять её на валидность в хаме/фейкмете/engine? )

Нужно ли проверять игрока на валидность ( pev_valid( index ) !=/== 2 ) при
использовании pdata в хаме/фейкмете/engine и вне их?

Если я создаю энтити entity = engfunc( EngFunc_CreateNamedEntity, ... ) нужно её проверять на валидность перед установкой класснэйма/модели и т.д, или достаточно if ( entity ) ?
:dntknw:

Тема перемещена из раздела "Скриптинг" // Subb98
Аватара пользователя
Revenant
 
Сообщения: 2
Зарегистрирован: 31 дек 2017, 08:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn

Re: Валидность энтити

Сообщение Mistrick » 31 дек 2017, 09:24

Если сильно интересно, то смотрите исходники амхх.
Я бы просто писал код, а при наличии ошибок о валидности уже их добавил.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2741
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1156 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Валидность энтити

Сообщение Revenant » 01 янв 2018, 11:06

Может быть скажете что-то?
Аватара пользователя
Revenant
 
Сообщения: 2
Зарегистрирован: 31 дек 2017, 08:23
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: Pawn

Re: Валидность энтити

Сообщение Subb98 » 01 янв 2018, 14:28

Revenant писал(а):Прочитал, что в хаме вызываются уже валидные энтити. Так ли это?

Валидные ли уже энтити в фейкмете? Например в FM_Touch. А в engine? ( register_touch )

Смотрите Вы должны зарегистрироваться, чтобы видеть ссылки..

Revenant писал(а):Если они валидные нужно ли дополнительно проверять на валидность( pev_valid( index ) !=/== 2 ) при использовании pdata в хаме/фейкмете/engine? Например в Ham_Weapon_PrimaryAttack/FM_Touch/register_touch и т.д.

Очевидно, что если entity валидна, то проверка на валидность не требуется (будет избыточной).

Revenant писал(а):А если энтити создана мной, будет ли она валидна в хаме/фейкмете/engine? Например в Ham_Touch/FM_Touch/register_touch/Ham_Spawn/FM_Spawn/Ham_Think/FM_Think и т.д? ( Мб непонятно написал. Если энтити создана мной нужно ли проверять её на валидность в хаме/фейкмете/engine? )

Этот вопрос "упирается" в ваш первый: "Валидны ли entity в Ham Sandwich / Fakemeta / Engine".

Revenant писал(а):Нужно ли проверять игрока на валидность ( pev_valid( index ) !=/== 2 ) при
использовании pdata в хаме/фейкмете/engine и вне их?

Валидность клиента, обычно, проверяют при помощи is_user_connected. Прочитайте эту тему: Вы должны зарегистрироваться, чтобы видеть ссылки.

Revenant писал(а):Если я создаю энтити entity = engfunc( EngFunc_CreateNamedEntity, ... ) нужно её проверять на валидность перед установкой класснэйма/модели и т.д, или достаточно if ( entity ) ?
:dntknw:

Давайте рассуждать логически. При объявлении новой переменной её значение по умолчанию равно нулю. Если entity создана успешно, индекс переменной, который ссылается на entity, не может быть нулём. Следовательно, нужна ли тут проверка на валидность entity? Очевидно, что нет. Ну и чтобы не сомневаться, какие значения возвращает функция при создании entity, нужно Вы должны зарегистрироваться, чтобы видеть ссылки..
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5018
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1285 раз.
Поблагодарили: 2229 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2