SemChats

$ SemChats [Paid] 1.0.0

Добавили новые платежные методы ЮМани (РУ Карты) | Cryptomus (Крита)
Sempai

SempaiВерифицирован

Admin
Команда форума
Администратор
VIP
12 Май 2022
2,301
492
0
145,922
Sempai submitted a new resource:

SemChats - Простой плагин для префиксов игроков

REPORT SYSTEM - Простой плагин для префиксов игроков.
Простой плагин с префиксами автосообщениями и многое другое.

ОСОБЕННОСТИ
  • Настройка аватарок для автосообщений.
  • Автосообщение в чат.
  • Настройки цвета ника по привилегиям.
  • Настройки префикса привилегиям.
  • Поддержка самих привилегий.
  • Удобная минималестическая меню.
  • Модератор чат для модераторов.
СКРИНШОТЫ...

Read more about this resource...
 
K

K407

New member
11 Июн 2022
11
0
1
2
ошибки в консоли


Код:
Failed to call hook 'PrefixCMD' on plugin 'Chats v1.0.0' (ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index)
  at System.Collections.Generic.List`1[T].get_Item (System.Int32 index) [0x00009] in <b11ba2a8fbf24f219f7cc98532a11304>:0
  at Oxide.Plugins.Chats.PrefixCMD (ConsoleSystem+Arg args) [0x00151] in <f56ba7b51500424485aef0f5fe854b59>:0
  at Oxide.Plugins.Chats.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x005f1] in <f56ba7b51500424485aef0f5fe854b59>:0
  at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <795304323ac74a298b8ed190a1dfa739>:0
  at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000de] in <beb2b64691c64e2b95b99491bd85442c>:0
  at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <beb2b64691c64e2b95b99491bd85442c>:0
 
K

K407

New member
11 Июн 2022
11
0
1
2
Ошибка `Index was out of range` в приведенном коде возникает из-за того, что индекс `index` может превышать количество доступных префиксов для игрока. Чтобы исправить это, необходимо добавить проверку, чтобы убедиться, что индекс находится в пределах допустимого диапазона:

ошибки в консоли


Код:
Failed to call hook 'PrefixCMD' on plugin 'Chats v1.0.0' (ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index)
  at System.Collections.Generic.List`1[T].get_Item (System.Int32 index) [0x00009] in <b11ba2a8fbf24f219f7cc98532a11304>:0
  at Oxide.Plugins.Chats.PrefixCMD (ConsoleSystem+Arg args) [0x00151] in <f56ba7b51500424485aef0f5fe854b59>:0
  at Oxide.Plugins.Chats.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x005f1] in <f56ba7b51500424485aef0f5fe854b59>:0
  at Oxide.Plugins.CSharpPlugin.InvokeMethod (Oxide.Core.Plugins.HookMethod method, System.Object[] args) [0x00079] in <795304323ac74a298b8ed190a1dfa739>:0
  at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x000de] in <beb2b64691c64e2b95b99491bd85442c>:0
  at Oxide.Core.Plugins.Plugin.CallHook (System.String hook, System.Object[] args) [0x00060] in <beb2b64691c64e2b95b99491bd85442c>:0
 
K

K407

New member
11 Июн 2022
11
0
1
2
Я также рекомендую добавить проверку на наличие доступных префиксов, чтобы избежать ошибок, связанных с пустыми списками.

C:
private void PrefixCMD(ConsoleSystem.Arg args)
        {
            BasePlayer player = args.Player();
            if (player == null) return;
            if (args.Args.Length < 2) return;
            var index = int.Parse(args.Args[1]);
            if (index < 0) return;
        
            if (!playerSettings.ContainsKey(player.userID))
                playerSettings.Add(player.userID, new Chatter { CurrentTag = cfg.prefix["chats.default"], CurrentColor = cfg.nickcolors["chats.default"] });
        
            if (args.Args[0] == "next")
            {
                var settings = playerSettings[player.userID];
        
                var allprefixes = GetAvaiblePrefixes(player.userID);
                if (allprefixes == null || allprefixes.Count() < 1) return;
        
                if (index >= allprefixes.Count) return;
                settings.CurrentTag = allprefixes[int.Parse(args.Args[1])];
                DrawUI(player, 0, 0, true);
            }
            if (args.Args[0] == "back")
            {
                var settings = playerSettings[player.userID];
        
                var allprefixes = GetAvaibleNickname(player.userID);
                if (allprefixes == null || allprefixes.Count() < 1) return;
        
                if (index >= allprefixes.Count) return;
                settings.CurrentTag = allprefixes[int.Parse(args.Args[1])];
                DrawUI(player, 0, 0, true);
            }
        }
 
K

K407

New member
11 Июн 2022
11
0
1
2
В предоставленном коде есть ошибка в обработке кнопки `back`:

```
var allprefixes = GetAvaibleNickname(player.userID);
```

Вы пытаетесь получить список доступных префиксов, используя метод `GetAvaibleNickname`, который предназначен для получения списка доступных никнеймов. Вам необходимо заменить этот метод на правильный для получения списка доступных префиксов:
 
K

K407

New member
11 Июн 2022
11
0
1
2
C:
private void PrefixCMD(ConsoleSystem.Arg args)
        {
            BasePlayer player = args.Player();
            if (player == null) return;
            if (args.Args.Length < 2) return;
            var index = int.Parse(args.Args[1]);
            if (index < 0) return;

            if (!playerSettings.ContainsKey(player.userID))
                playerSettings.Add(player.userID, new Chatter { CurrentTag = cfg.prefix["chats.default"], CurrentColor = cfg.nickcolors["chats.default"] });

            if (args.Args[0] == "next")
            {
                var settings = playerSettings[player.userID];

                var allprefixes = GetAvaiblePrefixes(player.userID);
                if (allprefixes == null || allprefixes.Count() < 1) return;

                if (index >= allprefixes.Count) return;
                settings.CurrentTag = allprefixes[int.Parse(args.Args[1])];
                DrawUI(player, 0, 0, true);
            }
            if (args.Args[0] == "back")
            {
                var settings = playerSettings[player.userID];

                var allprefixes = GetAvaiblePrefixes(player.userID);
                if (allprefixes == null || allprefixes.Count() < 1) return;

                if (index >= allprefixes.Count) return;
                settings.CurrentTag = allprefixes[int.Parse(args.Args[1])];
                DrawUI(player, 0, 0, true);
            }
        }
 
Petrovich

Petrovich VIP Пользователь

Купил подписку на VIP плагины

🔥 Купить сейчас
N

NIK777 VIP Пользователь

Купил подписку на VIP плагины

🔥 Купить сейчас
BananoMC

BananoMC VIP Пользователь

Купил подписку на VIP плагины

🔥 Купить сейчас
Y

Yunkady VIP Пользователь

Купил подписку на VIP плагины

🔥 Купить сейчас
D

Doxbin VIP Пользователь

Купил подписку на VIP плагины

🔥 Купить сейчас