LlGetAgentInfo/ru

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Общая информация

Function: integer llGetAgentInfo( key id );

Возвращает битовое поле (в виде целочисленного значения), содержащее информацию об аватаре с ключом id.

• key id UUID аватара, находящегося в регионе

Constant Val Returned if agent...
AGENT_ALWAYS_RUN 0x1000 включен режим "всегда бежать" ("Always Run"), или бежит посредством двойного нажатия клавиши передвижения
AGENT_ATTACHMENTS 0x0002 имеет присоединенные объекты (аттачменты)
AGENT_AUTOPILOT 0x2000 в режиме "автопилота"
AGENT_AWAY 0x0040 в режиме "отошёл"
AGENT_BUSY 0x0800 в режиме "занят"
AGENT_CROUCHING 0x0400 присел
AGENT_FLYING 0x0001 летит или парит
AGENT_IN_AIR 0x0100 находится в воздухе (прыгает, летит или падает)
AGENT_MOUSELOOK 0x0008 в режиме от 1-го лица
AGENT_ON_OBJECT 0x0020 сидит на объекте (и привязан к нему)[1]
AGENT_SCRIPTED 0x0004 имеет присоединенные объекты (аттачменты), содержащие скрипты
AGENT_SITTING 0x0010 сидит (на объекте или на земле)
AGENT_TYPING 0x0200 печатает
AGENT_WALKING 0x0080 идёт, бежит или крадётся

Предостережения

  • AGENT_BUSY означает, что данный аватар проигрывает встроенную анимацию "busy", даже если он на самом деле не находится в режиме "занят" ("busy").
  • На серверах версии до 1.40 включительно, AGENT_TYPING обозначал, что аватар проигрывает встроенную анимацию "type" ("печатание"), и не возвращался, если у пользователя была отключена функция проигрывания анимации печатания (см. PlayTypingAnim). На серверах версии 1.42 и выше, он обозначает, что приходят сообщения о начале/конце печатания от программы-клиента, и более не зависит от анимации. Если требуется обнаружение по старому механизму, используйте функцию llGetAnimationList и проверяйте присутствие анимации "c541c47f-e0c0-058b-ad1a-d6ae3a4584d9"SVC-787
  • AGENT_ALWAYS_RUN | AGENT_WALKING означает, что пользователь задал настройку "всегда бежать" в опциях программы-просмотрщика. Используйте llGetAnimation для обнаружения бега, вызванного физическими воздействиями.
  • Эта функция не возвращает достоверной информации сразу после пересечения границы сима. Используйте llGetAnimation при необходимости. — SVC-3177

Important Issues

~ All Issues ~ Search JIRA for related Bugs
   llGetAgentInfo() returns unreliable info after a sim border crossing

Примеры

<lsl> default {

   touch_start(integer buf)
   {
       buf = llGetAgentInfo(llDetectedKey(0));
       string out;
       if(buf & AGENT_FLYING)
           out += "The agent is flying.\n";
       else
           out += "The agent is not flying.\n";
       
       if(buf & AGENT_ATTACHMENTS)
       {
           if(buf & AGENT_SCRIPTED)
               out += "The agent has scripted attachments.\n";
           else
               out += "The agent's attachments are unscripted.\n";
       }
       else
           out += "The agent does not have attachments.\n";
       
       if(buf & AGENT_MOUSELOOK)
           out += "the agent is in mouselook.";
       else
           out += "the agent is in normal camera mode.";
       llWhisper(0, out);
   }

}

</lsl>

Заметки

Эта функция - не лучший способ определить, находится ли аватар в регионе, используйте llGetAgentSize (или, с недавнего времени, llGetAgentList --прим. пер.).

См. также

Функции

•  llRequestAgentData
•  llGetAnimation
•  llGetAnimationList

Углублённые заметки

История

All Issues

~ Search JIRA for related Issues
   agent_info() event
   llGetAgentInfo() returns unreliable info after a sim border crossing

Tests

•  llGetAgentInfo_Test

Сноски

  1. ^ Сидение на земле здесь не считается, поскольку аватар может сесть как бы на объект таким образом, но при этом не быть к нему привязанным. Имеется в виду именно сидение на объекте.

Описания

function integer llGetAgentInfo( key id );