Плагін магазину, розроблений для покращення вашого ігрового процесу, забезпечуючи динамічну систему кредитів, яка дозволяє гравцям купувати необхідні предмети безпосередньо в магазині.
📦 Встановлення
1) Передумови
Цей плагін вимагає такої залежності:
➡ CS2MenuManagerMake sure to install this dependency before proceeding.
2) Завантажте плагін
Завантажте останню версію за посиланням:
https://github.com/schwarper/cs2-store/releases
3) Налаштуйте параметри плагіна
Після встановлення:
Перейменуйте файли конфігурації в:
addons/counterstrikesharp/configs/plugins/cs2-store/
на такі:cs2-store.json→ Визначте тут доступні товари магазину.config.toml→ Налаштуйте параметри плагіна та бази даних.
4) Завантаження/перезавантаження плагіна
Щоб активувати:
Перезавантажте сервер
АБОВиконайте ці команди в консолі сервера:
css_plugins load cs2-store(Завантажити плагін)css_plugins reload Store(Перезавантажити після змін)
🕸️ Приклад API
Дайте гравцеві предмет або кредити
public class TestModule : BasePlugin{
public override string ModuleName => "Test Module";
public override string ModuleVersion => "0.0.1";
private IStoreApi? _storeApi;
public override void OnAllPluginsLoaded(bool hotReload)
{
_storeApi = IStoreApi.Capability.Get();
}
public void GivePlayerCredits(CCSPlayerController player, int credits)
{
_storeApi?.GivePlayerCredits(player, credits);
}
public bool GivePlayerItem(CCSPlayerController player, string uniqueId)
{
// Checks if item is exist.
if (_storeApi?.GetItem(uniqueId) is not { } item)
return false;
// Checks if player has already this item
if (_storeApi.Item_PlayerHas(player, item["type"], uniqueId, ignoreVip: false))
return false;
// Give item
_storeApi.Item_Give(player, item);
return true;
}}Додати модуль
//Module type[StoreItemType("test")]//We use IItemModulepublic class TestModule : BasePlugin, IItemModule{
public override string ModuleName => "Test Module";
public override string ModuleVersion => "0.0.1";
// You can also use this way.
// However, we won't use _storeApi anywhere for this example.
//private IStoreApi? _storeApi;
public override void OnAllPluginsLoaded(bool hotReload)
{
// You need to use assembly here.
IStoreApi.Capability.Get()?.RegisterModules(Assembly.GetExecutingAssembly());
//_storeApi = IStoreApi.Capability.Get();
//_storeApi?.RegisterModules(Test.Assembly);
}
// ============================
// IItemModule dependencies
// ============================
// Sets if item is equipable
public bool Equipable => false;
// Sets if player has to be alive/dead to purchase
// True => alive only
// False => dead only
// Null => everyone can purchase
public bool? RequiresAlive => null;
// You can use this execute as OnAllPluginsLoaded.
public void OnPluginStart() { Console.WriteLine($"Test OnPluginStart"); }
public void OnMapStart() { }
public void OnServerPrecacheResources(ResourceManifest manifest) { }
// If you set false, they cannot equip / unequip, if true, they can.
public bool OnEquip(CCSPlayerController player, Dictionary<string, string> item)
{
return true;
}
public bool OnUnequip(CCSPlayerController player, Dictionary<string, string> item, bool update)
{
return true;
}}
Приєднуйтесь до обговорення
Ви можете написати зараз та зареєструватися пізніше. Якщо у вас є обліковий запис, авторизуйтесь, щоб опублікувати від імені свого облікового запису.