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

get_user_aiming не находит объект с SOLID_TRIGGER

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

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

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

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

get_user_aiming не находит объект с SOLID_TRIGGER

Сообщение HolyDorus » 30 апр 2021, 21:16

Доброго времени суток, у меня есть некий объект, у которого плотность установлена в SOLID_TRIGGER. Проблема появляется при попытке получить объект с помощью get_user_aiming, он просто не находится((
Использовать SOLID_BBOX не вариант, так как нужно обеспечить свободное прохождение игроков сквозь этот объект. Кто-то стыкался с подобной проблемой?
Группа плагинов: vk.com/remake_dorus
Аватара пользователя
HolyDorus
 
Сообщения: 13
Зарегистрирован: 30 апр 2021, 21:04
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Python
PAWN
C++
JavaScript

Re: get_user_aiming не находит объект с SOLID_TRIGGER

Сообщение nekruxa » 30 апр 2021, 22:01

Была та же проблема, я сделал так: занес объекты в массив, с их свойствами, установил SOLID_BBOX, далее get_user_aiming() (в моем случае был trace), после получения ID объекта, восстановил свойства объектов так, как было. SOLID_BBOX -> get_user_aiming() -> set_task(func) -> func{ SOLID_TRIGGER }
Могу и ошибаться, но get_user_aiming() работает с игроками, им не получишь ID объекта, можно использовать
Код: Выделить всё
public Get_Aimming(id){
    
    static 
Floatstart[3], Floatofs[3], Floatangle[3], i
    
    pev
(idpev_originstart)
    
pev(idpev_view_ofsofs)
    
pev(idpev_v_angleangle)
    
engfunc(EngFunc_MakeVectorsangle)
    
global_get(glb_v_forwardangle)
    
    for(
03i++)
    {
        
start[i] += ofs[i]
    }
    
    for(
03i++)
    {
        
angle[i] *= 9999.0;
        
angle[i] += start[i];
    }
    
    
engfunc(EngFunc_TraceLinestartangleDONT_IGNORE_MONSTERSid0)
    
    return 
get_tr2(0TR_pHit)
}
 
Аватара пользователя
nekruxa
 
Сообщения: 118
Зарегистрирован: 20 апр 2020, 12:43
Благодарил (а): 11 раз.
Поблагодарили: 30 раз.
Языки программирования: Я ничего не знаю

Re: get_user_aiming не находит объект с SOLID_TRIGGER

Сообщение HolyDorus » 30 апр 2021, 22:19

nekruxa писал(а):Была та же проблема, я сделал так: занес объекты в массив, с их свойствами, установил SOLID_BBOX, далее get_user_aiming() (в моем случае был trace), после получения ID объекта, восстановил свойства объектов так, как было. SOLID_BBOX -> get_user_aiming() -> set_task(func) -> func{ SOLID_TRIGGER }
Могу и ошибаться, но get_user_aiming() работает с игроками, им не получишь ID объекта, можно использовать
Код: Выделить всё

public Get_Aimming
(id){
    
    static Float
: start[3], Float: ofs[3], Float: angle[3], i
    
    pev
(id, pev_origin, start)
    pev(id, pev_view_ofs, ofs)
    pev(id, pev_v_angle, angle)
    engfunc(EngFunc_MakeVectors, angle)
    global_get(glb_v_forward, angle)
    
    for
(= 0; i < 3; i++)
    {
        start[i] += ofs[i]
    }
    
    for
(= 0; i < 3; i++)
    {
        angle[i] *= 9999.0;
        angle[i] += start[i];
    }
    
    engfunc
(EngFunc_TraceLine, start, angle, DONT_IGNORE_MONSTERS, id, 0)
    
    return get_tr2
(0, TR_pHit)
}

get_user_aiming возвращает не только id игроков, но и других объектов тоже. Пробовал использовать UTIL_GetEntityAiming, но проблема все же оставалась.
Группа плагинов: vk.com/remake_dorus
Аватара пользователя
HolyDorus
 
Сообщения: 13
Зарегистрирован: 30 апр 2021, 21:04
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Python
PAWN
C++
JavaScript

Re: get_user_aiming не находит объект с SOLID_TRIGGER

Сообщение nekruxa » 30 апр 2021, 22:21

HolyDorus, Расписал решение выше
Аватара пользователя
nekruxa
 
Сообщения: 118
Зарегистрирован: 20 апр 2020, 12:43
Благодарил (а): 11 раз.
Поблагодарили: 30 раз.
Языки программирования: Я ничего не знаю

Re: get_user_aiming не находит объект с SOLID_TRIGGER

Сообщение Leonidddd » 01 май 2021, 07:07

HolyDorus, простую проверку на коннект достаточно добавить и всегда вернёт индекс игрока.
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2531
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 189 раз.
Поблагодарили: 713 раз.

Re: get_user_aiming не находит объект с SOLID_TRIGGER

Сообщение HolyDorus » 01 май 2021, 23:41

Leonidddd писал(а):HolyDorus, простую проверку на коннект достаточно добавить и всегда вернёт индекс игрока.

Да это само собой понятно. Проблема абсолютно не в этом, а в том, что я не могу получить id энтити, с помощью функции get_user_aiming если у этой энтити стоит SOLID_TRIGGER
Группа плагинов: vk.com/remake_dorus
Аватара пользователя
HolyDorus
 
Сообщения: 13
Зарегистрирован: 30 апр 2021, 21:04
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Python
PAWN
C++
JavaScript

Re: get_user_aiming не находит объект с SOLID_TRIGGER

Сообщение fl0wer » 02 май 2021, 13:57

HolyDorus писал(а):
Leonidddd писал(а):HolyDorus, простую проверку на коннект достаточно добавить и всегда вернёт индекс игрока.

Да это само собой понятно. Проблема абсолютно не в этом, а в том, что я не могу получить id энтити, с помощью функции get_user_aiming если у этой энтити стоит SOLID_TRIGGER

Ну поставь солид ббокс с размерами, сделай трейс и верни какой был солид.
Аватара пользователя
fl0wer
 
Сообщения: 1687
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 240 раз.
Поблагодарили: 507 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN


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

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

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