DeutscherRitterPlatz's Wishlist
-
Vanish Status
The plugin displays invisibility indication in the status bar. Depends on Vanish/BetterVanish and AdvancedStatus plugins.
P.S. For those who use Vanish from uMod. Since the API method IsInvisible sometimes returns true for players who are not invisible, I asked the author to change or add a new method that works correctly.
In the meantime, while it hasn't been changed or added, you can use the plugin below, which includes just one additional method, IsInvisible2:
Vanish.cs
But if you are using Vanish without modifications(without adding the IsInvisible2 method), you need to specify the API method as IsInvisible instead of IsInvisible2 in the VanishStatus config file.
The ability to specify the order of the bar; The ability to change the height of the bar; The abillity to customize the color and transparency of the background; The ability to set a material for the background; The ability to switch between CuiRawImageComponent and CuiImageComponent for the image; The ability to get images from the local folder(*SERVER*\oxide\data\AdvancedStatus\Images); The abillity to set own image and customize the color and transparency of the image; The abillity to set sprite instead of the image; The ability to customize the color, size and font of the text.
{ "Vanish - The name of the API method to check if a player is invisible": "IsInvisible2", "Status. Bar - Height": 26, "Status. Bar - Order": 10, "Status. Background - Color": "#15AC9D", "Status. Background - Transparency": 0.7, "Status. Background - Material(empty to disable)": "", "Status. Image - Url": "https://i.imgur.com/3D1JIaU.png", "Status. Image - Local(Leave empty to use Image_Url)": "VanishStatus_Vanish", "Status. Image - Sprite(Leave empty to use Image_Local or Image_Url)": "", "Status. Image - Is raw image": false, "Status. Image - Color": "#15AC9D", "Status. Image - Transparency": 1.0, "Status. Text - Size": 12, "Status. Text - Color": "#FFFFFF", "Status. Text - Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Version": { "Major": 0, "Minor": 1, "Patch": 5 } }
EN: { "MsgText": "You are invisible" } RU: { "MsgText": "Вы невидимы" }
-
Advanced Status
Useful API plugin that imitates in-game status bars, allowing the addition of custom status bars.
Note: AdvancedStatus does not display any bars on its own. This is done by other plugins that work with it.
An example plugin demonstrating interaction with AdvancedStatus.
The ability to specify the frequency of calculating the number of bars; The ability to specify the order of the bar; The ability to change the height of the bar; The abillity to customize the color and transparency of the background; The ability to set a material for the background; The ability to switch between CuiRawImageComponent and CuiImageComponent for the image; The ability to get images from the local folder(*SERVER*\oxide\data\AdvancedStatus\Images); The abillity to set own image and customize the color and transparency of the image; The abillity to set sprite instead of the image; The ability to specify custom text; The ability to customize the color, size and font of the text; No need to pass all parameters; No need to manually delete your bar when unloading your plugin.
advancedstatus.admin - Grants access to the chat command(by default /bar).
{ "Chat command": "bar", "Is it worth enabling console notifications for the successful loading of local images?": false, "Interval(in seconds) for counting in-game status bars": 0.5, "Interval(in seconds) for counting Building Privilege status bars. Note: Calculating Building Privilege is significantly more resource-intensive than other counts": 1.0, "Bar - Display Layer. If you have button bars, it's advisable to use Hud(https://umod.org/guides/rust/basic-concepts-of-gui#layers)": "Under", "Bar - Left to Right": true, "Bar - Offset between status bars": 2, "Bar - Default Height": 26, "Main - Default Color": "#505F75", "Main - Default Transparency": 0.7, "Main - Default Material(empty to disable)": "", "Image - Default Image": "AdvancedBar_Image", "Image - Default Color": "#6B7E95", "Image - Default Transparency": 1.0, "Image - Outline Default Color": "#000000", "Image - Outline Default Transparency": 1.0, "Image - Outline Default Distance": "0.75 0.75", "Text - Default Size": 12, "Text - Default Color": "#FFFFFF", "Text - Default Transparency": 1.0, "Text - Default Font(https://umod.org/guides/rust/basic-concepts-of-gui#fonts)": "RobotoCondensed-Bold.ttf", "Text - Default Offset Horizontal": 0, "Text - Outline Default Color": "#000000", "Text - Outline Default Transparency": 1.0, "Text - Outline Default Distance": "0.75 0.75", "SubText - Default Size": 12, "SubText - Default Color": "#FFFFFF", "SubText - Default Transparency": 1.0, "SubText - Default Font": "RobotoCondensed-Bold.ttf", "SubText - Outline Default Color": "#000000", "SubText - Outline Default Transparency": 1.0, "SubText - Outline Default Distance": "0.75 0.75", "Progress - Default Color": "#89B840", "Progress - Default Transparency": 0.7, "Progress - Default OffsetMin": "25 2.5", "Progress - Default OffsetMax": "-3.5 -3.5", "Version": { "Major": 0, "Minor": 1, "Patch": 17 } } Note: Default values will be used if the external plugin does not pass the property itself.
EN: { "MsgDays": "d", "MsgHours": "h", "MsgMinutes": "m", "MsgSeconds": "s" } RU: { "MsgDays": "д", "MsgHours": "ч", "MsgMinutes": "м", "MsgSeconds": "с" }
images reload *ImageName* - Reloads the specified image from the image folder; all - Reloads all local images from the image folder. Example: /bar images reload all
Note: To access the commands, the player must be an admin(console or owner) or have the advancedstatus.admin permission.
OnAdvancedStatusLoaded: Called after the AdvancedStatus plugin is fully loaded and ready. OnPlayerGainedBuildingPrivilege: Called after the player enters their building privilege. OnPlayerLostBuildingPrivilege: Called after the player exits their building privilege.
void OnAdvancedStatusLoaded() { Puts("The AdvancedStatus plugin is loaded and ready to go!"); } void OnPlayerGainedBuildingPrivilege(BasePlayer player) { Puts($"{player.displayName} entered the authorized building privilege zone."); } void OnPlayerLostBuildingPrivilege(BasePlayer player) { Puts($"{player.displayName} exited the authorized building privilege zone."); }
[PluginReference] private Plugin AdvancedStatus; There are 15 methods:
IsReady CreateBar UpdateContent DeleteBar DeleteCategory DeleteAllBars GetTotalClientBars GetTotalPlayerBars LoadImages LoadImage CopyImage DeleteImages DeleteImage BarExists InBuildingPrivilege
There are 5 types of bar:
Default - A simple bar that displays the provided information. Does not update the value of SubText by itself; Timed - Similar to the default bar, but it automatically disappears after the specified time in the TimeStamp parameter; TimeCounter - The SubText shows the remaining time until TimeStamp. Also automatically removed upon expiration of the TimeStamp; TimeProgress - Similar to the Timed bar, but additionally features an automatically filling progress bar; TimeProgressCounter - Similar to the TimeCounter bar, but additionally features an automatically filling progress bar.
IsReady:
Used to check if the AdvancedStatus plugin is loaded and ready to work.
The IsReady method returns true if it is ready, or null if it is not.
(bool)AdvancedStatus?.Call("IsReady");//Calling the IsReady method. If the result is not null(bool true), the plugin is ready.
CreateBar:
Used to create a bar or update bar values for a player.
To call the CreateBar method, you need to pass 2 parameters. The first one is BasePlayer or <ulong>playerID. The second one is a dictionary with the parameters you need.
In the CreateBar method, all parameters are optional, except for two:
Id; Plugin. Parameters not specified when creating a new bar will use the values set in the AdvancedStatus plugin's configuration file.
Parameters not specified during bar update will retain the values they had before the update.
Note: The plugin does not update values automatically, you need to manually send new values.
Dictionary<string, object> parameters = new Dictionary<string, object> { { "Id", "AdvancedStatusDemo_1" }, //<string>Unique identifier for the bar in your plugin. ***This is a required field. { "BarType", "Default" }, //<string>Type of the bar. There are 4 types: Default, Timed, TimeCounter and TimeProgress. { "Plugin", "AdvancedStatusDemo" }, //<string>Name of your plugin. ***This is a required field. { "Category", "Default" }, //<string>Internal plugin category of the bar. { "Order", 10 }, //<int>The position of your bar relative to others. Order is determined by increasing values(ASC). { "Height", 26 }, //<int>The height of your bar. A standard bar is 26 pixels. { "Main_Color", "#505F75" }, //<string>HTML Hex color of the bar background. { "Main_Transparency", 0.7f }, //<float>Transparency of the bar background. { "Main_Material", "assets/content/ui/uibackgroundblur.mat" }, //<string>Material of the bar background(empty to disable). { "Image", "scrap" }, //<string>Name of the image saved in the ImageLibrary or a direct link to the image if ImageLibrary is not used. { "Image_Local", "AdvancedStatusDemo_Scrap" }, //<string>The name of the image file(without its extension) located in *SERVER*\data\AdvancedStatus\Images. Leave empty to use Image. { "Image_Sprite", "" }, //<string>Sprite image of the bar. Leave empty to use Image_Local or Image. { "Is_RawImage", true }, //<bool>Which type of image will be used? True - CuiRawImageComponent. False - CuiImageComponent. { "Image_Color", "#6B7E95" }, //<string>HTML Hex color of the bar image. { "Image_Transparency", 1.0f }, //<float>Transparency of the image. { "Text", "Scrap" }, //<string>Main text. { "Text_Size", 12 }, //<int>Size of the main text. { "Text_Color", "#FFFFFF" }, //<string>HTML Hex color of the main text. { "Text_Font", "RobotoCondensed-Bold.ttf" }, //<string>Font of the main text. { "Text_Offset_Horizontal", 0 }, //<int>Horizontal offset for the main text. { "SubText", "35" }, //<string>Sub text. { "SubText_Size", 12 }, //<int>Size of the sub text. { "SubText_Color", "#FFFFFF" }, //<string>HTML Hex color of the sub text. { "SubText_Font", "RobotoCondensed-Bold.ttf" }, //<string>Font of the sub text. { "TimeStampStart", Network.TimeEx.currentTimestamp }, //<double>Responsible for specifying the start point of the time reference and 0% for TimeProgress and TimeProgressCounter bars. Used if the bar type is Timed, TimeCounter, TimeProgress or TimeProgressCounter. { "TimeStamp", Network.TimeEx.currentTimestamp + 6 }, //<double>Specifies the end time point after which the bar will be destroyed and 100% for TimeProgress and TimeProgressCounter bars. Used if the bar type is Timed, TimeCounter, TimeProgress or TimeProgressCounter. { "TimeStampDestroy", Network.TimeEx.currentTimestamp + 3 }, //<double>If TimeStampDestroy is specified and it is less than TimeStamp, the bar will be destroyed by TimeStampDestroy. Used if the bar type is Timed, TimeCounter, TimeProgress or TimeProgressCounter. { "Progress", (float)35 / 100f }, //<float>Progress. From 0.0 to 1.0. { "Progress_Reverse", false }, //<bool>Progress reverse. A value of false means that the progress will increase. Used if the bar type is TimeProgress or TimeProgressCounter. { "Progress_Color", "#89B840" }, //<string>Progress color. { "Progress_Transparency", 1f }, //<float>Progress transparency. { "Progress_OffsetMin", "25 2.5" }, //<string>Progress OffsetMin: "*left* *bottom*". { "Progress_OffsetMax", "-3.5 -3.5" }, //<string>Progress OffsetMax: "*right* *top*". { "Command", "kit" } //<string>If the field is not empty, the bar becomes clickable, and the specified command is executed upon clicking. Note: the command must be covalence. }; AdvancedStatus?.Call("CreateBar", player.userID.Get(), parameters); //Calling the CreateBar method with the passing of BasePlayer/playerID and a dictionary containing the required parameters.
UpdateContent:
Used to update only the content of an existing status bar.
To call the UpdateContent method, you need to pass 2 parameters. The first one is BasePlayer or <ulong>playerID. The second one is a dictionary with the parameters you need.
In the UpdateBar method, all parameters are optional, except for two:
Id; Plugin. var parameters = new Dictionary<string, object> { { "Id", "MyID" }, //<string>Unique identifier for the bar in your plugin. ***This is a required field. { "Plugin", Name }, //<string>Name of your plugin. ***This is a required field. { "Text", "MyText" }, //<string>Main text. { "SubText", "MyText" }, //<string>Sub text. { "Progress", (float)amount / 100f }, //<float>Progress. From 0.0 to 1.0. }; AdvancedStatus?.Call("UpdateContent", player.userID.Get(), parameters); //Calling the UpdateContent method with the passing of BasePlayer/playerID and a dictionary containing the required parameters.
DeleteBar:
Used to remove the bar for a player.
There are two methods for removing a bar by ID:
with specifying a particular player; To call this method, you need to pass 3 parameters. The first one is BasePlayer or <ulong>playerID. The second one is Id of your bar and the third one is name of your plugin. without specifying a particular player (which removes it for all players) To call this method, you need to pass 2 parameters. The first one is Id of your bar and the second one is name of your plugin. AdvancedStatus?.Call("DeleteBar", player.userID.Get(), barID, Name); //Calling the DeleteBar method with the passing of BasePlayer/playerID, ID of the bar and the name of your plugin. AdvancedStatus?.Call("DeleteBar", barID, Name); //Calling the DeleteBar method with the passing of ID of the bar and the name of your plugin. If you try to delete a bar that doesn't exist, nothing bad will happen. So feel free to delete the bar without checking its existence.
P.S. When unloading your plugin, there is no need to manually delete bars for players, AdvancedStatus will handle it automatically.
DeleteCategory:
Used to remove all bars associated with the plugin's category.
To call the DeleteCategory method, you need to pass 2 parameters. The first one is category and the second one is name of your plugin.
AdvancedStatus?.Call("DeleteCategory", "Default", Name);//Calling the DeleteCategory method by passing the category and name of your plugin
DeleteAllBars:
Used to remove all bars associated with the plugin.
To call the DeleteAllBars method, you need to pass only 1 parameter. It is name of your plugin.
AdvancedStatus?.Call("DeleteAllBars", Name);//Calling the DeleteAllBars method, passing the name of your plugin
GetTotalClientBars:
Used to get the number of client bars for the player.
To call the GetTotalClientBars method, you need to pass only 1 parameter. It is BasePlayer or <ulong>playerID.
(int)AdvancedStatus?.Call("GetTotalClientBars", player.userID.Get());//Calling the GetTotalClientBars method, passing the name of BasePlayer/playerID
GetTotalPlayerBars:
Used to get the number of active custom bars for the player.
To call the GetTotalPlayerBars method, you need to pass only 1 parameter. It is BasePlayer or <ulong>playerID.
(int)AdvancedStatus?.Call("GetTotalPlayerBars", player.userID.Get());//Calling the GetTotalPlayerBars method, passing the name of BasePlayer/playerID
LoadImages:
Used to check if the local images specified in the list are loaded.
If any of the images are not loaded but their files exist in the images folder, the plugin will load them.
To call the LoadImages method, you need to pass only 2 parameters. The first one is the <List<string>>list of image's name and the second one(optional) is <bool>force, which, if set to true, will force reload the image even if it already exists.
AdvancedStatus?.Call("LoadImages", list, false);//Calling the LoadImages method, passing a list of image names
LoadImage:
Used to check if the local image is loaded.
If the file is not loaded and exists in the images folder, the plugin will load it.
To call the LoadImage method, you need to pass 2 parameters. The first one is the <string>image's name and the second one(optional) is <bool>force, which, if set to true, will force reload the image even if it already exists.
AdvancedStatus?.Call("LoadImage", imgName, false);//Calling the LoadImage method, passing an image's name
CopyImage:
Used to create and load a copy of an existing image.
To call the CopyImage method, you need to pass 3 parameters. The first parameter is the <string>source image's name, the second parameter is the <string>new image's name and the third one(optional) is <bool>force, which, if set to true, will force copy and reload the image even if it already exists.
AdvancedStatus?.Call("CopyImage", "ZoneStatus_Default", "ZoneStatus_NewZone", false);//Calling CopyImage, passing the source image name and the new image name.
DeleteImages:
Used to delete a list of images and their files.
To call the DeleteImages method, you need to pass 2 parameters. The first one is the <List<string>>list of image's name and the second one(optional) parameter is <bool>deleteFile, which, if set to true, will delete image's file too.
AdvancedStatus?.Call("DeleteImages", list, true);//Calling DeleteImages, passing a list of image names.
DeleteImage:
Used for removing the image and the image file.
To call the DeleteImage method, you need to pass 2 parameters. The first parameter is the <string>image's name and the second one(optional) parameter is <bool>deleteFile, which, if set to true, will delete image's file too.
AdvancedStatus?.Call("DeleteImage", "ZoneStatus_NewZone", true);//Calling DeleteImage, passing the image name.
BarExists:
Used to check if the specified bar exists.
To call the BarExists method, you need to pass 3 parameters. The first one is BasePlayer or <ulong>playerID. The second one is Id of your bar. And the third one is name of your plugin.
(bool)AdvancedStatus?.Call("BarExists", player.userID.Get(), barID, Name);//Calling the BarExists method with the passing of BasePlayer/playerID, ID of the bar and name of your plugin.
InBuildingPrivilege:
Used to check if the player has authorized building privileges.
To call the InBuildingPrivilege method, you need to pass BasePlayer or <ulong>playerID.
(bool)AdvancedStatus?.Call("InBuildingPrivilege", player.userID.Get());//Checking if the player has Building Privilege.
-
Walkie-Talkie
Introducing the Walkie-Talkie Plugin: Seamlessly integrate real-time communication into your gaming experience! Stay connected with your teammates, strategize on-the-go, and coordinate your moves effortlessly with this immersive in-game communication tool. Whether you're navigating treacherous terrains or planning tactical maneuvers, the Walkie-Talkie keeps you in sync, enhancing teamwork and elevating your gaming adventure to a whole new level!
Features:
Gives players the ability to commiserate with each other, come up with strategies, and ambush each other. It is possible to create different variations of walkie-talkies for different distances. By default, 5 variations of walkie-talkies are given ready-made. Walkie-talkies can be both automatic and manual (in manual mode it is necessary to press LMB to hold the walkie-talkie, in automatic mode it is not required).
Installation:
Before installing the plugin, make sure you have the CustomItemDefinitions library installed.
It is necessary for the plugin to work. Download it here. Put this plugin in the plugins folder How does a walkie-talkie work?
Several players must have a walkie-talkie tuned to the same frequency in their inventory.
To start talking into the walkie-talkie you need to take it in your hand, then press LMB (in case of manual walkie-talkie, for automatic walkie-talkie it is not required) and then press V button (if the microphone mode is enabled), that's it, now you can start talking.
How do I get a walkie-talkie?
Since each walkie-talkie has its own unique shortname and ItemId you can receive it like any other item. That is, you can give it out via the give or giveto command, or add it to the loot table or other ways via plugins.
- #custom item
- #walkie
-
(and 4 more)
Tagged with:
-
Balance Status
The plugin allows you to display the balance of the player.
Features:
Optimized Detailed customization of everything. Ability to customize text for different languages to reach players from different countries Autogenerate lang files for all languages, you just need to write your own text. -
Permission Status
The plugin allows you to display time to expiration for permissions or groups.
Features:
Detailed and elegant display of your permissions and groups. Detailed customization of everything Ability to customize text for different languages to reach players from different countries. Ability to enable status display only in the authorized area of the cabinet Ability for a player to disable status display Optimized (static) status mode available Automatically generate language files for all languages, you just need to write your text. Permissions:
permissionstatus.hide - this permission is used for status switching by the player.
IMPORTANT: If you give this to any group, the statuses will not work. Chat Commands:
ps.toggle - status display switch for a player
Default Config
{ "ExampleGroupOrPerm": { "true - Group | false - Permission": true, "Display Mode (0 - Time, 1 - Static)": 0, "[Time display mode] Update Interval (in seconds)": 60.0, "Only show in authorized cupboard area": false, "Icon Url": "default", "Time Format": "d\\d\\ hh\\h\\ mm\\m", "Background Color": "0.16 0.44 0.63 0.85", "Icon Color": "0.22 0.63 0.90 0.9", "Title Color": "1 1 1 1", "Text Color": "1 1 1 1" } } Default Lang:
{ "HideMessage": "You have hidden the statuses of timed permissions.", "ShowMessage": "You have enabled the display of timed permissions statuses.", "ExampleGroupOrPerm": "ExampleGroupOrPerm" } Example Config:
{ "Elite": { "true - Group | false - Permission": true, "Display Mode (0 - Time, 1 - Static)": 0, "Only show in authorized cupboard area": false, "Icon Url": "default", "Time Format": "d\\d\\ hh\\h\\ mm\\m", "Color": "0.85 0.52 0.17 1", "Icon Color": "1 0.8 0 1", "Text Color": "1 1 1 1", "Subtext Color": "1 1 1 1" }, "backpackpro.size42": { "true - Group | false - Permission": false, "Display Mode (0 - Time, 1 - Static)": 0, "Only show in authorized cupboard area": false, "Icon Url": "https://static.thenounproject.com/png/74337-200.png", "Time Format": "d\\d\\ hh\\h\\ mm\\m", "Color": "0.16 0.44 0.63 1", "Icon Color": "0.22 0.63 0.90 1", "Text Color": "1 1 1 1", "Subtext Color": "1 1 1 1" } } Example Lang:
{ "Elite": "Elite", "backpackpro.size42": "Ext. backpack" }- #timedpermissions
- #statusbar
-
(and 7 more)
Tagged with: