Вопросы

Dev_Persona
Новичок

Приветствую всех, у меня возник такой вопрос:

 

- хочу изменить базовую регистрацию в админке в крмп, на Болле сложную то-есть, сейчас изначально пароль от админки может быть только из цифр, хотелось бы узнать как можно было бы сделать что бы можно было использовать и цифры и буквы, вот код:

 

case DIALOG_ADMIN_REG:

   {

    if(!response) return FixKick(playerid);

 

    if(strval(inputtext) < 100000 || strval(inputtext) > 999999) return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен быть из 6 цифр.\n", "Готово", "");

             SetPlayerData(playerid, P_APASS, strval(inputtext));

 

             UpdatePlayerDatabaseInt(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));

 

             AdminAuthorization(playerid);

   }

Поделиться сообщением


Ссылка на сообщение

22 ответа на этот вопрос

  • 0
Wiggins
Новичок

Твой код использует strval(inputtext), который преобразует строку в число. Это ограничивает пароль только цифрами. Чтобы разрешить использование букв, нужно работать со строками, а не с числами. Примерный код:

Цитата

 

case DIALOG_ADMIN_REG:
{
    if(!response) return FixKick(playerid);

    // Проверяем длину пароля (минимум 6 символов)
    if(strlen(inputtext) < 6) 
        return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", 
        "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен содержать минимум 6 символов и включать цифры и буквы.\n", 
        "Готово", "");

    // Проверка на наличие хотя бы одной буквы и одной цифры
    new bool:hasLetter = false, bool:hasDigit = false;
    for (new i = 0; i < strlen(inputtext); i++) 
    {
        if (inputtext >= '0' && inputtext <= '9') hasDigit = true;
        if ((inputtext >= 'A' && inputtext <= 'Z') || (inputtext >= 'a' && inputtext <= 'z')) hasLetter = true;
    }

    if (!hasLetter || !hasDigit)
        return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", 
        "{FFFFFF}Пароль должен содержать минимум одну букву и одну цифру.\nПопробуйте снова.", 
        "Готово", "");

    // Сохраняем строковый пароль
    SetPlayerData(playerid, P_APASS, inputtext);
    UpdatePlayerDatabaseString(playerid, "AdminPassword", GetPlayerData(playerid, P_APASS));

    AdminAuthorization(playerid);
}

 


В примерном коде используется UpdatePlayerDatabaseString вместо UpdatePlayerDatabaseInt - так как теперь пароль не число, а строка. И пароль сохраняется как строка, а не как число.

Отредактировано пользователем Wiggins

Поделиться сообщением


Ссылка на сообщение
  • 0
Dev_Persona
Новичок

@Wiggins , интересный код конечно но при использовании inputtext вместо strlen(inputtext), выдает ошибку - 033, и в setplayerdata также с inputtext выдает ошибку 006

Поделиться сообщением


Ссылка на сообщение
  • 0
Wiggins
Новичок

@Dev_Persona Ошибки 033 и 006 возникают, потому что inputtext - это массив (строка), а некоторые функции требуют явного указания типа. Попробуйте этот исправленный код:
 

Цитата

 

case DIALOG_ADMIN_REG:
{
    if(!response) return FixKick(playerid);

    // Создаем строковый массив для хранения пароля
    new password[MAX_PLAYER_NAME]; // Можно увеличить, если нужно
    format(password, sizeof(password), "%s", inputtext); // Копируем ввод в переменную

    // Проверяем длину пароля (минимум 6 символов)
    if(strlen(password) < 6) 
        return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", 
        "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен содержать минимум 6 символов и включать цифры и буквы.\n", 
        "Готово", "");

    // Проверка на наличие хотя бы одной буквы и одной цифры
    new bool:hasLetter = false, bool:hasDigit = false;
    for (new i = 0; i < strlen(password); i++) 
    {
        if (password >= '0' && password <= '9') hasDigit = true;
        if ((password >= 'A' && password <= 'Z') || (password >= 'a' && password <= 'z')) hasLetter = true;
    }

    if (!hasLetter || !hasDigit)
        return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", 
        "{FFFFFF}Пароль должен содержать минимум одну букву и одну цифру.\nПопробуйте снова.", 
        "Готово", "");

    // Сохраняем пароль в строковом формате
    SetPlayerData(playerid, P_APASS, password);
    UpdatePlayerDatabaseString(playerid, "AdminPassword", password);

    AdminAuthorization(playerid);
}

 

Отредактировано пользователем Wiggins

Поделиться сообщением


Ссылка на сообщение
  • 0
Wiggins
Новичок

@angel_sinvays Первый код я взял у самого крмп мода, а второй код (ошибка 033 и 006) исправил DeepSeek, код не создал ИИ, не суй свой нос туда, где не написано твоего имени...

Поделиться сообщением


Ссылка на сообщение
  • 0
Dev_Persona
Новичок

@Wiggins сути не изменилось, также выдает 3 ошибки:

 

- D:\BLACK RUSSIA MOD\gamemodes\blackrussia.pwn(34923) : ошибка 033: массив должен быть проиндексирован (переменная "password")

D:\BLACK RUSSIA MOD\gamemodes\blackrussia.pwn(34924) : ошибка 033: массив должен быть проиндексирован (переменная "password")

D:\BLACK RUSSIA MOD\gamemodes\blackrussia.pwn(34933) : ошибка 006: должно быть связано с массивом

Поделиться сообщением


Ссылка на сообщение
  • 0
sinvays
Гуру форума

@Wiggins 

4 часа назад, Wiggins сказал:

DeepSeek , не  суй свой нос туда, где не написано твоего имени...

 

На этом Вы могли и закончить своё сообщение.

Фу, как грубо. Всего лишь подметил что код написанный с помощью нейросети :nini:

Отредактировано пользователем angel_sinvays

Поделиться сообщением


Ссылка на сообщение
  • 0
Wiggins
Новичок

@angel_sinvays Еще раз говорю, код писал не ИИ, он просто исправил ошибку 033 и 006, но у меня этих ошибок нет, поэтому я попросил его исправить, код я взял из самого мода BLACK RUSSIA, а тебе то какая разница? Код тебе чтоли прислал? Если помогаю, то помогаю другому человеку, а не тебе, я выше сказал, что не суй свой нос туда, где не написано твоего имени. "Фу, как грубо" - это ты мучаешь, как дети



@Dev_Persona Не понимаю почему у тебя такие ошибки, у меня вроде всё нормально...
 

Цитата

new password[65];
strmid(password, inputtext, 0, sizeof(password), sizeof(password));
SetPlayerData(playerid, P_APASS, password[0]);
UpdatePlayerDatabaseString(playerid, "AdminPassword", password);


Попробуй эти строки исправить.

Отредактировано пользователем Wiggins

Поделиться сообщением


Ссылка на сообщение
  • 0
Dev_Persona
Новичок

@Wiggins 006 убралась, осталась 033

 

D:\BLACK RUSSIA MOD\gamemodes\blackrussia.pwn(34987) : ошибка 033: массив должен быть проиндексирован (переменная "password")

D:\BLACK RUSSIA MOD\gamemodes\blackrussia.pwn(34988) : ошибка 033: массив должен быть проиндексирован (переменная "password")  

 

может я неправильно заменил, не знаю но ошибка 033 осталась, код выглядит сейчас так:

 

case DIALOG_ADMIN_REG:

{

    if(!response) return FixKick(playerid);

 

    // Создаем строковый массив для хранения пароля

    new password[65];

    strmid(password, inputtext, 0, sizeof(password), sizeof(password)); // Копируем ввод в переменную

 

    // Проверяем длину пароля (минимум 6 символов)

    if(strlen(password) < 6) 

        return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", 

        "{FFFFFF}Для того, чтобы продолжить дальше - придумайте и введите\n{FFFFFF}пароль от панели администратора в диалоговое поле ниже.\n\n{FFFFFF}Пароль должен содержать минимум 6 символов и включать цифры и буквы.\n", 

        "Готово", "");

 

    // Проверка на наличие хотя бы одной буквы и одной цифры

    new bool:hasLetter = false, bool:hasDigit = false;

    for (new i = 0; i < strlen(password); i++) 

    {

        if (password >= '0' && password <= '9') hasDigit = true;

        if ((password >= 'A' && password <= 'Z') || (password >= 'a' && password <= 'z')) hasLetter = true;

    }

 

    if (!hasLetter || !hasDigit)

        return ShowPlayerDialog(playerid, DIALOG_ADMIN_REG, DIALOG_STYLE_INPUT, "{FF6347}"PROJECT_NAME" {ffffff}| Придумайте пароль", 

        "{FFFFFF}Пароль должен содержать минимум одну букву и одну цифру.\nПопробуйте снова.", 

        "Готово", "");

 

    // Сохраняем пароль в строковом формате

    SetPlayerData(playerid, P_APASS, password[0]);

UpdatePlayerDatabaseString(playerid, "AdminPassword", password);

 

    AdminAuthorization(playerid);

}

Отредактировано пользователем Dev_Persona

Поделиться сообщением


Ссылка на сообщение
  • 0
sinvays
Гуру форума

@Wiggins 

51 минуту назад, Wiggins сказал:

"Фу, как грубо" - это ты мучаешь, как дети

 

Успокойся, ты по буквам уже не попадаешь парень, кого я мучаю какие дети? :nini:

 

51 минуту назад, Wiggins сказал:

BLACK RUSSIA

 

На этом ты тоже мог закончить уже своё изложение.

 

51 минуту назад, Wiggins сказал:

код писал не ИИ, он просто исправил ошибку 033 и 006

 

Не признавая очевидное ты сам же себя закапываешь, код по сути был переписан нейросетью так как ты утверждаешь что он там "исправил" проблему.

Исходя из этого с точностью можно сказать что код который ты скинул выше был написан нейросетью.

 

@Dev_Persona Проблема в том, что ты передаешь в функции не сам пароль а только его первый символ, то есть передаешь в функции SetPlayerData и UpdatePlayerDatabaseString не сам массив, а только первый символ из этого массива. Вместо того чтобы передавать password[0], нужно передавать весь массив password, так как это строка, а не один символ. Просто убери [0] в тех строках, где ты передаешь пароль и должно заработать.

Отредактировано пользователем angel_sinvays

Поделиться сообщением


Ссылка на сообщение
  • 0
Wiggins
Новичок
40 минут назад, angel_sinvays сказал:

Успокойся, ты по буквам уже не попадаешь парень, кого я мучаю какие дети? :nini:


Ах, извини, я забыл, что ты не только эксперт по кодам, но еще и логопед. Дети? Да вот же один - ты, который лезет в чужой диалог, как в песочницу с кривыми куличиками.
 

40 минут назад, angel_sinvays сказал:

На этом ты тоже мог закончить уже своё изложение.


О, господин Редактор! А можно я еще добавлю точку? Или тебе комфортнее в режиме "краткость - сестра твоей ограниченности"?
 

40 минут назад, angel_sinvays сказал:

Не признавая очевидное ты сам же себя закапываешь, код по сути был переписан нейросетью так как ты утверждаешь что он там "исправил" проблему.

Исходя из этого с точностью можно сказать что код который ты скинул выше был написан нейросетью.


Слушай, если нейросеть для тебя - высший разум, то мне страшно представить, как ты относишься к калькулятору. Может, он у тебя и прогнозы делает? Ладно, копай дальше, только чур не ныть, когда наткнешься на свою же глупость - она там, внизу, слоями.
Ты так упорно цепляешься за мои слова, будто от этого зависит твой доступ в интернет. Расслабься, родители не узнают, что ты споришь с ИИ помощником... Или узнают? Вот это будет трагедия уровня сиськи-массиськи 006


@Dev_Persona 

Цитата

if (password >= '0' && password <= '9') hasDigit = true;
if ((password >= 'A' && password <= 'Z') || (password >= 'a' && password <= 'z')) hasLetter = true;

 

Отредактировано пользователем Wiggins

Заметка от DEST , создано

3.2. Код необходимо брать в тег "Код", а код более 10 строк – еще и в "Спойлер". Как это сделать рассказано в разделе "FAQ".

Поделиться сообщением


Ссылка на сообщение
  • 0
Dev_Persona
Новичок

@Wiggins ну также 033, так как от кода сути не меняется так как он таким и был, проблема 033, от этих двух строк

 

if (password >= '0' && password <= '9') hasDigit = true;

if ((password >= 'A' && password <= 'Z') || (password >= 'a' && password <= 'z')) hasLetter = true;

Поделиться сообщением


Ссылка на сообщение
  • 0
Wiggins
Новичок

@Dev_Persona Оказывается, форум не позволяет ставить индекс ⟦i⟧ , он меняет его на курсив, только что заметил.

 

Снимок экрана (112).png

Отредактировано пользователем Wiggins

Заметка от DEST , создано

Еще как позволяет, нужно использовать только кнопку "Код", а не "Цитата" :)

Поделиться сообщением


Ссылка на сообщение
  • 0
47 минут назад, Dev_Persona сказал:

@Wiggins ну также 033, так как от кода сути не меняется так как он таким и был, проблема 033, от этих двух строк

 

if (password >= '0' && password <= '9') hasDigit = true;

if ((password >= 'A' && password <= 'Z') || (password >= 'a' && password <= 'z')) hasLetter = true;

 

Убери их вообще

Поделиться сообщением


Ссылка на сообщение
  • 0
sinvays
Гуру форума

@Dev_Persona Попробуй заменить строки где ты проверяешь пароль, ты сравниваешь весь массив с символами, а нужно сравнивать каждый символ отдельно. Вместо того, чтобы писать, например, password >= '0' && password <= '9', ты должен проверять каждый символ массива через индексацию, то есть использовать

password[i]

.

И код который тебе прислали, выглядит в целом правильным, но я не могу утверждать, что он точно решит твой вопрос так как я его лично не проверял. Одно могу сказать точно — тот человек который прислал тебе выше код, сгенерировал его через нейросеть предоставив ему твой пример кода, а дальше пошло само.

Отредактировано пользователем angel_sinvays

Поделиться сообщением


Ссылка на сообщение
  • 0
Wiggins
Новичок

@angel_sinvays Я просто сижу здесь и ору, что ты мне несешь...
 

16 часов назад, angel_sinvays сказал:

ты пытаешься меня унизить текстом из нейросети


Я об этом слышу впервые, раз ты уже об этом знаешь, значит ты сам этим пользуешься, я от тебя это слышу впервые. У тебя закончился словарный запас, ты не знаешь, как ответить, ты даже мои ответы принимаешь за ответ нейросети.
 

16 часов назад, angel_sinvays сказал:

Ладно хоть код, но вот это уже настоящий позор, неужели люди настолько неучи что уже начинают переписываться с другими через нейросеть? Так поди скоро нейросеть захватит весь разум человечества, хотя.... Она уже начала это делать судя по сообщениям от этого товарища и от других людей которые мне выписывают огромные текста в Эверест с помощью нейросети) 


Если для тебя развёрнутый ответ - признак "захвата разума", то я рад, что нейросети помогают людям формулировать свои мысли более полно и чётко. А по поводу "позора", по-моему, позорно ограничивать себя в использовании новых технологий.

Отредактировано пользователем Wiggins

Заметка от keyl , создано

2.17. Запрещено флудить, оффтопить, заниматься флеймом. 

Устное предупреждение.

Заметка от keyl , создано

Выясните ваши отношения в ЛС

Поделиться сообщением


Ссылка на сообщение
  • -2
sinvays
Гуру форума

@Wiggins О господи, ты пытаешься меня унизить текстом из нейросети, да, зря я полез на тебя, чувствую начинаю глупеть читая твоё изложение написанным "Тобою" :nini:

 

Ладно хоть код, но вот это уже настоящий позор, неужели люди настолько неучи что уже начинают переписываться с другими через нейросеть? Так поди скоро нейросеть захватит весь разум человечества, хотя.... Она уже начала это делать судя по сообщениям от этого товарища и от других людей которые мне выписывают огромные текста в Эверест с помощью нейросети) 

Заметка от DEST , создано

2.17. Запрещено флудить, оффтопить, заниматься флеймом. 

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
  • -2
sinvays
Гуру форума

@Wiggins 

2 часа назад, Wiggins сказал:

значит ты сам этим пользуешься

 

Нет, не пользуюсь, но изучаю и интегрирую в различные сервисы и знаю какие текста составляет сама нейросеть, она использует тупорылую формулировку которой уже никто не пользуется вот как с 2010 года :)

 

2 часа назад, Wiggins сказал:

Если для тебя развёрнутый ответ - признак "захвата разума", то я рад, что нейросети помогают людям формулировать свои мысли более полно и чётко. А по поводу "позора", по-моему, позорно ограничивать себя в использовании новых технологий.

 

Опять же, текст был написан с горой не понятных для меня слов которые в принципе не соотносятся с темой которое я выше тебе написал, прогнал мой текст через нейросеть и он тебе выдало "аргументы" которыми как ты думаешь выигрываешь. Ты мне напоминаешь Маркелова, только как я понимаю ты более продвинутый парень. Тебе ещё долго изучать нейросеть если ты даже не знаешь как работать с формулировкой слов <3

Заметка от keyl , создано

Особое приглашение нужно? Дать мут чтобы прекратить сверхполезный дискус?

Заметка от keyl , создано

2.17. Запрещено флудить, оффтопить, заниматься флеймом. 

Устное предупреждение.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • patrickk
      От patrickk
      Всем привет, решил написать dm сервер и довольно хорошим получился, даже на голову выше Goat dm. Оставил не решенную проблему тем что  у меня есть 4 локации с rp run и cj run ну а как добавить cj бег на те локации не знаю и как эта система работает. Надеюсь мне помогут знающие люди
    • Samolet
      От Samolet
      Здраствуйте, cоздаю копию Arizona на ОМП, опен мультиплеер, загрузил и подключил бд, но сервер не хочет вот лог :[2026-10-20T21:03:32+0300] [Info] Log file reloaded. Starting open.mp server (1.5.8.3079) from commit c6759bd8d265171ae3d86598895a23d5a8d92a3b Loading component $CAPI.so Successfully loaded component C-API (1.5.8.3079) with UID 10467dd8d4c56fc6 Loading component LegacyConfig.so Successfully loaded component LegacyConfig (1.5.8.3079) with UID 24ef6216838f9ffc Loading component NPCs.so Successfully loaded component NPCs (1.5.8.3079) with UID 3d0e59e87f4e90bc Loading component Recordings.so Successfully loaded component Recordings (1.5.8.3079) with UID 871144d399f5f613 Loading component Checkpoints.so Successfully loaded component Checkpoints (1.5.8.3079) with UID 44a937350d611dde Loading component TextDraws.so Successfully loaded component TextDraws (1.5.8.3079) with UID 9b5dc2b1d15c992a Loading component Pawn.so Successfully loaded component Pawn (1.5.8.3079) with UID 78906cd9f19c36a6 Loading component GangZones.so Successfully loaded component GangZones (1.5.8.3079) with UID b3351d11ee8d8056 Loading component Actors.so Successfully loaded component Actors (1.5.8.3079) with UID c81ca021eae2ad5c Loading component Pickups.so Successfully loaded component Pickups (1.5.8.3079) with UID cf304faa363dd971 Loading component Dialogs.so Successfully loaded component Dialogs (1.5.8.3079) with UID 44a111350d611dde Loading component Objects.so Successfully loaded component Objects (1.5.8.3079) with UID 59f8415f72da6160 Loading component Console.so Successfully loaded component Console (1.5.8.3079) with UID bfa24e49d0c95ee4 Loading component TextLabels.so Successfully loaded component TextLabels (1.5.8.3079) with UID a0c57ea80a009742 Loading component Variables.so Successfully loaded component Variables (1.5.8.3079) with UID 75e121848bc01fa2 Loading component Databases.so Successfully loaded component Databases (1.5.8.3079) with UID 80092e7eb5821a96 Loading component LegacyNetwork.so Successfully loaded component RakNetLegacyNetwork (1.5.8.3079) with UID ea9799fd79cf8442 Loading component CustomModels.so Successfully loaded component CustomModels (1.5.8.3079) with UID 15e3cb1e7c77ffff Loading component Menus.so Successfully loaded component Menus (1.5.8.3079) with UID 621e219eb97ee0b2 Loading component Vehicles.so Successfully loaded component Vehicles (1.5.8.3079) with UID 3f1f62ee9e22ab19 Loading component Classes.so Successfully loaded component Classes (1.5.8.3079) with UID 8cfb3183976da208 Loading component Timers.so Successfully loaded component Timers (1.5.8.3079) with UID 2ad8124c5ea257a3 Loaded 22 component(s) from /home/gs113492/components Executing Server Config... [2026-10-20T21:03:33+0300] [Info] Loading plugin: crashdetect.so [2026-10-20T21:03:33+0300] [Info] CrashDetect plugin 4.19 [2026-10-20T21:03:33+0300] [Info] Loading plugin: mapandreas.so [2026-10-20T21:03:33+0300] [Info] Loading plugin: streamer.so [2026-10-20T21:03:33+0300] [Info] *** Streamer Plugin v2.9.4 by Incognito loaded *** [2026-10-20T21:03:33+0300] [Info] Loading plugin: sscanf.so [2026-10-20T21:03:33+0300] [Info] [2026-10-20T21:03:33+0300] [Info] =============================== [2026-10-20T21:03:33+0300] [Info] sscanf plugin loaded. [2026-10-20T21:03:33+0300] [Info] Version: 2.8.3 [2026-10-20T21:03:33+0300] [Info] (c) 2018 Alex "Y_Less" Cole [2026-10-20T21:03:33+0300] [Info] =============================== [2026-10-20T21:03:33+0300] [Info] Loading plugin: TOTP.so [2026-10-20T21:03:33+0300] [Info] TOTP plugin v1.0.1 by Games loaded. [2026-10-20T21:03:33+0300] [Info] Loading plugin: mysql_static.so [2026-10-20T21:03:33+0300] [Info] >> plugin.mysql: R39-6 successfully loaded. [2026-10-20T21:03:33+0300] [Info] Loading plugin: libpawn_json.so [2026-10-20T21:03:34+0300] [Error] Function not registered: YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_RegAlias [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_Reset [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_RegHandler [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_Delete [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_New [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_IgnoreBits [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_Init [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_SendRPC [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_SendPacket [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_WriteValue [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_ReadValue [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_ReadValue [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Info] [debug] BS_WriteValue [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendPacket [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendRPC [2026-10-20T21:03:34+0300] [Info] [debug] PR_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_IgnoreBits [2026-10-20T21:03:34+0300] [Info] [debug] BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Info] [debug] BS_New [2026-10-20T21:03:34+0300] [Info] [debug] BS_Delete [2026-10-20T21:03:34+0300] [Info] [debug] PR_RegHandler [2026-10-20T21:03:34+0300] [Info] [debug] BS_Reset [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] PC_RegAlias [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_ReadValue [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Info] [debug] BS_WriteValue [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendPacket [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendRPC [2026-10-20T21:03:34+0300] [Info] [debug] PR_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_IgnoreBits [2026-10-20T21:03:34+0300] [Info] [debug] BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Info] [debug] BS_New [2026-10-20T21:03:34+0300] [Info] [debug] BS_Delete [2026-10-20T21:03:34+0300] [Info] [debug] PR_RegHandler [2026-10-20T21:03:34+0300] [Info] [debug] BS_Reset [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] PC_RegAlias [2026-10-20T21:03:34+0300] [Info] Legacy Network started on ***.**.**.***:2717. Помогите пожалуйста