Иконка ресурса

FREE MBCoins : 12.3 12.3

Нет прав для скачивания
C#:
using System.Collections.Generic;
using Newtonsoft.Json;
using Oxide.Core.Plugins;

namespace Oxide.Plugins
{
    [Info("MBCoins", "Barry_Allenn", "12.3")]
    class MBCoins : RustPlugin
    {
        //апи пополнить забрать взять
        [ConsoleCommand("mb.give")]
        void cmdMoneyGive(ConsoleSystem.Arg args)
        {
            if (!args.IsAdmin) return;
            var player = args.Args[0];
            var much = args.Args[1];

            API_PUT_BALANCE_PLUS(ulong.Parse(player), float.Parse(much));
            Puts($"Баланс видан {player} - {much} MBCoins");
        }

        private float API_GET_BALANCE(ulong player)
        {
            if (!DataMBCoins.ContainsKey(player))
                return 0;

            return DataMBCoins[player];
        }

[HookMethod("GetPlayerBalance")]
        public float GetPlayerBalance(ulong playerId)
        {
            return API_GET_BALANCE(playerId);
        }

    
        private void API_PUT_BALANCE_PLUS(ulong player, float money)
        {
            DataMBCoins[player] += money;
            WriteData();
            AnoncePlayer(player, $"Вам зачислено {money} MBCoins!");
        }
        private void API_PUT_BALANCE_MINUS(ulong player, float money)
        {
            DataMBCoins[player] -= money;
            WriteData();
            AnoncePlayer(player, $"C баланса списано {money} MBCoins!");
        }

        private BasePlayer FindPlayer(string nameOrId)
        {
            foreach (var check in BasePlayer.activePlayerList)
            {
                if (check.displayName.ToLower().Contains(nameOrId.ToLower()) || check.userID.ToString() == nameOrId)
                    return check;
            }

            return null;
        }

        private void AnoncePlayer(ulong player, string txt)
        {
            BasePlayer playerBS = FindPlayer(player.ToString());
            if(playerBS == null) return;

            playerBS.ChatMessage(txt);
        }

        void OnPlayerConnected(BasePlayer player)
        {
            RegisteredDataUser(player.userID);
        }

        void RegisteredDataUser(ulong player)
        {
            if (!player.IsSteamId()) return;
            if (!DataMBCoins.ContainsKey(player))
                DataMBCoins.Add(player, 0);
        }

        void OnServerInitialized()
        {
            foreach(BasePlayer player in BasePlayer.activePlayerList)
                OnPlayerConnected(player);
            timer.Every(360f, WriteData);
        }

        void Unload() => WriteData();
        private void OnServerShutdown() => Unload();
        private void Init() => ReadData();

        [JsonProperty("Система экономики")] public Dictionary<ulong, float> DataMBCoins = new Dictionary<ulong, float>();
        void ReadData()
        {
            DataMBCoins = Oxide.Core.Interface.Oxide.DataFileSystem.ReadObject<Dictionary<ulong, float>>("MBSystem/DataMBCoins");
        }
        void WriteData() {
            Oxide.Core.Interface.Oxide.DataFileSystem.WriteObject("MBSystem/DataMBCoins", DataMBCoins);
        }
    }
}

Автор
15FPS
Скачиваний
0
Просмотры
1
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху