О расширенном статусе
Полезный вспомогательный плагин, который позволяет другим плагинам настраивать строку состояния через API.
Примечание. AdvancedStatus сам по себе не отображает никаких полос. Это делают другие плагины, которые с ним работают.
Пример плагина, демонстрирующий взаимодействие с AdvancedStatus.
- Возможность указать частоту расчета количества баров;
- Возможность указать порядок бара;
- Возможность изменения высоты бара;
- Возможность настройки цвета и прозрачности фона ;
- Возможность установки материала для фона ;
- Возможность переключения между CuiRawImageComponent и CuiImageComponent для изображения ;
- Возможность задать собственное изображение и настроить цвет и прозрачность изображения ;
- Возможность установки спрайта вместо изображения ;
- Возможность указать произвольный текст . Дополнительно возможности настройки цвета , размера и шрифта текста;
- Нет необходимости передавать все параметры;
- Нет необходимости вручную удалять панель при выгрузке плагина.
{
«Интервал отсчета строки состояния клиента»: 0,5,
«Панель — слой отображения (https://umod.org/guides/rust/basic-concepts-of-gui#layers)»: «Под»,
«Панель — слева от Справа»: true,
«Полоска — смещение между»: 2,
«Полоска — высота по умолчанию»: 26,
«Основное — цвет по умолчанию»: «#505F75»,
«Основное — прозрачность по умолчанию»: 0,7,
«Основное — материал по умолчанию ( пусто, чтобы отключить)": "",
"Изображение - Цвет по умолчанию": "#6B7E95",
"Изображение - Прозрачность по умолчанию": 1.0,
"Текст - Размер по умолчанию": 12,
"Текст - Цвет по умолчанию": "#FFFFFF" ,
"Текст - шрифт по умолчанию (https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf",
"Текст - смещение по горизонтали по умолчанию": 0,
" Подтекст — размер по умолчанию»: 12,
«Подтекст — цвет по умолчанию»: «#FFFFFF»,
«Подтекст — шрифт по умолчанию (https://umod.org/guides/rust/basic-concepts-of-gui#fonts)»: "RobotoCondensed-Bold.ttf",
"Прогресс - Цвет по умолчанию": "#89B840",
"Прогресс - Прозрачность по умолчанию": 0,7,
"Прогресс - OffsetMin по умолчанию": "25 2,5",
"Прогресс - OffsetMax по умолчанию": "- 3.5 -3.5",
"Версия": {
"Основной": 0,
"Незначительный": 1,
"Патч": 14
}
}
Примечание. Значения по умолчанию будут использоваться, если внешний плагин сам не передает свойство.
RU:
{
"MsgDays": "d",
"MsgHours": "h",
"MsgMinutes": "m",
"MsgSeconds": "s"
}
RU:
{
"MsgDays": "д",
"MsgHours": "ч",
"MsgMinutes": "м",
"MsgSeconds": "с"
}
- OnPlayerGainedBuildingPrivilege:
- Вызывается после того, как игрок получает право на строительство.
- Онплеерлостбилдингпривилеге:
- Вызывается после того, как игрок выходит из своих прав на строительство.
void OnPlayerGainedBuildingPrivilege ( BasePlayer player ) { Puts ( $ "{player.displayName} вошел в авторизованную зону привилегий здания." ); } void OnPlayerLostBuildingPrivilege ( BasePlayer player ) { Puts ( $ "{player.displayName} вышел из авторизованной зоны привилегий здания." ); }
[ PluginReference ] частный плагин AdvancedStatus ;
Существует 7 методов:
- CreateBar
- Обновление содержания
- Удалитьбар
- УдалитьКатегорию
- Удалить все бары
- БарСуществует
- ВЗданииПривилегия
Существует 4 вида бара:
- По умолчанию — простая панель, отображающая предоставленную информацию. Не обновляет значение SubText само по себе;
- Timed — аналогичен полосе по умолчанию , но автоматически исчезает по истечении указанного в параметре TimeStamp времени ;
- TimeCounter — подтекст показывает оставшееся время до TimeStamp . Также автоматически удаляется по истечении TimeStamp ;
- TimeProgress — аналогичен панели TimeCounter , но дополнительно имеет индикатор выполнения .
СоздатьБар:
Используется для создания панели или обновления значений панели для игрока.
Чтобы вызвать метод CreateBar , вам необходимо передать 2 параметра. Первый — BasePlayer или <ulong> playerID . Второй — словарь с нужными вам параметрами .
В методе CreateBar все параметры являются необязательными , кроме двух:
- Идентификатор ;
- Плагин .
Параметры, не указанные при обновлении бара, сохранят значения, которые они имели до обновления .
Примечание. Плагин не обновляет значения автоматически, вам необходимо отправлять новые значения вручную.
Dictionary < string , object > параметры = new Dictionary < string , object > { { "Id" , barID }, //<string>Уникальный идентификатор бара в вашем плагине. *Данное поле является обязательным к заполнению. { "BarType" , "Default" }, //<string>Тип бара. Существует 4 типа: по умолчанию, по времени, TimeCounter и TimeProgress. { "Плагин" , Имя }, //<строка>Имя вашего плагина. *Данное поле является обязательным к заполнению. { "Category" , "Default" }, //<string>Внутренняя категория плагина панели. { "Order" , 10 }, //<int>Положение вашего бара относительно других. Порядок определяется возрастанием значений (ASC). { "Height" , 26 }, //<int>Высота вашей панели. Стандартная полоса составляет 26 пикселей. { "Main_Color" , "#505F75" }, //<string>HTML Шестнадцатеричный цвет фона панели. { "Main_Transparency" , 0.7f }, //<float>Прозрачность фона панели. { "Main_Material" , "assets/content/ui/uibackgroundblur.mat" }, //<строка>Материал фона панели (пусто, чтобы отключить). { "Image" , "scrap" }, //<string>Имя изображения, сохраненного в ImageLibrary, или прямая ссылка на изображение, если ImageLibrary не используется. { "Image_Sprite" , "" }, //<string>Спрайт-изображение бара. (Если пусто, в качестве изображения будет использоваться изображение). { "Is_RawImage" , true }, //<bool>Какой тип изображения будет использоваться? Верно — CuiRawImageComponent. Ложь — CuiImageComponent. { "Image_Color" , "#6B7E95" }, //<string>HTML Hex цвет изображения панели. { "Image_Transparency" , 1.0f }, //<float>Прозрачность изображения. { "Текст" , "Обрывок" }, //<строка>Основной текст.{ "Text_Size" , 12 }, //<int>Размер основного текста. { "Цветтекста" , "#FFFFFF" },
//<string>HTML Шестнадцатеричный цвет основного текста. { "Text_Font" , "RobotoCondensed-Bold.ttf" }, //<string>Шрифт основного текста. { "Text_Offset_Horizontal" , 0 }, //<int>Горизонтальное смещение основного текста. { "SubText" , "35" }, //<string>Подтекст. { "SubText_Size" , 12 }, //<int>Размер подтекста. { "SubText_Color" , "#FFFFFF" }, //<string>HTML Hex цвет подтекста. { "SubText_Font" , "RobotoCondensed-Bold.ttf" }, //<string>Шрифт подтекста. { "TimeStamp" , Сеть . ТаймЭкс . currentTimestamp + 6 }, //<double>Используется, если тип бара — Timed, TimeCounter или TimeProgress. { "Прогресс" , ( float ) 35 / 100f }, //<float>Прогресс. От 0,0 до 1,0. { "Progress_Color" , "#89B840" }, //<string>Цвет прогресса. { "Progress_Transparency" , 1f }, //<float>Прозрачность прогресса. { "Progress_OffsetMin" , "25 2.5" }, //<строка>Progress OffsetMin: "left bottom". { "Progress_OffsetMax" , "-3.5 -3.5" }, //<string>Progress OffsetMax: "right top". { "Command" , "kit" } //<string>Если поле не пустое, панель становится кликабельной, и указанная команда выполняется при нажатии. Примечание: команда должна быть ковалентной. }; Расширенный статус ?. Вызов ( "CreateBar " , player.userID , параметры ) ; //Вызов метода CreateBar с передачей BasePlayer/playerID и словаря, содержащего необходимые параметры.
ОбновлениеСодержание:
Используется для обновления только содержимого существующей строки состояния .
Чтобы вызвать метод UpdateContent , вам необходимо передать 2 параметра. Первый — BasePlayer или <ulong> playerID . Второй — словарь с нужными вам параметрами .
В методе UpdateBar все параметры являются необязательными , кроме двух:
- Идентификатор ;
- Плагин .
Удалитьбар:
Используется для удаления панели у игрока.
Есть два метода удаления бара по ID :
- с указаниемконкретного игрока;
- Чтобы вызвать этот метод, вам нужно передать 3 параметра . Первый — BasePlayer или <ulong> playerID . Второй — идентификатор вашего бара, а третий — имя вашего плагина .
- без указания конкретного игрока (что удаляет его для всех игроков)
- Чтобы вызвать этот метод, вам нужно передать 2 параметра . Первый — это идентификатор вашего бара, а второй — имя вашего плагина .
Если вы попытаетесь удалить несуществующую панель, ничего страшного не произойдет. Так что смело удаляйте панель, не проверяя ее существование.
PS При выгрузке вашего плагина нет необходимости вручную удалять бары для игроков, AdvancedStatus сделает это автоматически.
УдалитьКатегорию:
Используется для удаления всех полос , связанных с категорией плагина .
Чтобы вызвать метод DeleteCategory , вам необходимо передать 2 параметра. Первый — это категория , а второй — название вашего плагина .
Расширенный статус ?. Вызов ( «DeleteCategory» , «Default» , Name ); //Вызов метода DeleteCategory с передачей категории и имени вашего плагина
Удалить все бары:
Используется для удаления всех полосок , связанных с плагином .
Для вызова метода DeleteAllBars вам нужно передать всего 1 параметр. Это имя вашего плагина .
Расширенный статус ?. Вызов ( «DeleteAllBars» , Имя ); //Вызов метода DeleteAllBars, передавая имя вашего плагина
БарСуществует:
Используется для проверки существования указанного бара .
Чтобы вызвать метод BarExists , вам необходимо передать 3 параметра. Первый — BasePlayer или <ulong> playerID . Второй — идентификатор вашего бара. И третий — название вашего плагина .
( логическое значение ) AdvancedStatus ?. Вызов ( "BarExists" , player , barID , Name ); //Вызов метода BarExists с передачей BasePlayer/playerID, ID бара и названия вашего плагина.
InBuildingPrivilege:
Используется для проверки наличия у игрока разрешенных прав на строительство .
Чтобы вызвать метод InBuildingPrivilege , вам необходимо передать BasePlayer или <ulong> playerID .
( логическое значение ) AdvancedStatus ?. Вызов ( «InBuildingPrivilege» , player , false ); //Проверяем, есть ли у игрока привилегия на строительство.