Встановлення
Встановіть CounterStrike Sharp , Metamod:Source
Завантажити VIPCore
Розпакуйте архів та завантажте його на ігровий сервер (приклад шляху:
addons/counterstrikesharp/plugins)
Розмістіть модулі за цим шляхомaddons/counterstrikesharp/plugins
Команди
Команда | Опис |
|---|---|
| Перезавантажує конфігурацію ( |
| Додає VIP-гравця (лише для консолі сервера) |
| Оновлює VIP гравця (лише для консолі сервера) |
| Дозволяє видалити гравця за ідентифікатором SteamID (лише для консолі сервера) |
| Відкриває VIP-меню |
Конфігурації
Розташований у папціaddons/counterstrikesharp/configs/plugins/VIPCore
Core.json
{
"TimeMode": 0, // 0 - seconds | 1 - minutes | 2 - hours | 3 - days)
"ServerId": 0, // SERVER ID
"UseCenterHtmlMenu": true, //If `true`, the menu will be in the center, if `false`, it will be in the chat. Note that if you have another plugin that uses `CenterHtml`, server crashes may occur
"ServerIP": "0.0.0.0", // default ip
"ServerPort": 27015, // default port
"ReOpenMenuAfterItemClick": true,//Whether to reopen the menu after selecting an item | true - yes | false - no
"VipLogging": true, //Whether to log VIPCore | true - yes | false - no
"Connection": {
"Host": "host",
"Database": "database",
"User": "user",
"Password": "password",
"Port": 3306
}
}vip.json
{
"Delay": 2.0
"Groups": {
"VIP1": {
"Values": {
"feature1": value1,
"feature2": value2
}
}
}
}Приклад модуля
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Modules.Commands;
using VipCoreApi;
namespace VIPMyModule;
public class VIPMyModule : BasePlugin
{
public override string ModuleAuthor => "Author";
public override string ModuleName => "[VIP] My Module";
public override string ModuleVersion => "1.0.0";
private MyPlugin _myPlugin;
private IVipCoreApi? _api;
private PluginCapability<IVipCoreApi> PluginCapability { get; } = new("vipcore:core");
public override void OnAllPluginsLoaded(bool hotReload)
{
_api = PluginCapability.Get();
if (_api == null) return;
_api.OnCoreReady += () =>
{
_myPlugin = new MyPlugin(this, _api);
_api.RegisterFeature(_myPlugin);
};
}
public override void Unload(bool hotReload)
{
_api?.UnRegisterFeature(_myPlugin);
}
}
public class MyPlugin : VipFeatureBase
{
public override string Feature => "MyFeature";
private TestConfig _config;
public MyPlugin(VIPMyModule vipMyModule, IVipCoreApi api) : base(api)
{
vipMyModule.AddCommand("css_viptestcommand", "", OnCmdVipCommand);
_config = LoadConfig<TestConfig>("VIPMyModule");
}
public override void OnPlayerSpawn(CCSPlayerController player)
{
if (PlayerHasFeature(player))
{
PrintToChat(player, $"VIP player - {player.PlayerName} has spawned");
}
}
public override void OnSelectItem(CCSPlayerController player, IVipCoreApi.FeatureState state)
{
if (state == IVipCoreApi.FeatureState.Enabled)
{
PrintToChat(player, "Enabled");
}
else
{
PrintToChat(player, "Disabled");
}
}
public void OnCmdVipCommand(CCSPlayerController? player, CommandInfo info)
{
if (player == null) return;
if (IsClientVip(player) && PlayerHasFeature(player))
{
PrintToChat(player, $"{player.PlayerName} is a VIP player");
return;
}
PrintToChat(player, $"{player.PlayerName} not a VIP player");
}
}
public class TestConfig
{
public int Test1 { get; set; } = 50;
public bool Test2 { get; set; } = true;
public string Test3 { get; set; } = "TEST";
public float Test4 { get; set; } = 30.0f;
}
Рекомендовані коментарі
Приєднуйтесь до обговорення
Ви можете написати зараз та зареєструватися пізніше. Якщо у вас є обліковий запис, авторизуйтесь, щоб опублікувати від імені свого облікового запису.
Примітка: Ваш пост буде перевірено модератором, перш ніж стане видимим.