Вопросы

R0m4ik
Новичок в PAWN

Всем привет, хочу сделать систему итогов по репортам и вопросам хелперов нужно сделать 2 типа (Обычные итоги которые подводиться каждые 2 минуты:

(ИТОГИ: All(Репортов за 2 минуты.): 0 / Ans(Вопросы хелперам): 0 / Неотв(Не отвеченные репорты).: 0 | Ответить(ИДшники тех кто не получил ответ.):

И итоги часа:

(ИТОГИ ЧАСА: Репортов: 0(Репортов за час) / Ответов: 0 (Ответы на репорты за час)/ Неотвечено: 0(Неотвеченные репорты))

 

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


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

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

  • 0
R0m4ik
Новичок в PAWN
6 минут назад, DEST сказал:

Этот текст просто в чат будет отправляться каждые 2 минуты и час соответственно? 

Да. И когда пробивает PayDay он будет писать итоги за этот час.

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

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


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

Наиболее простое решение завести под это дело переменные-счетчики (один для двухминутного отчета, второй для ежечасного), в месте, где задается вопрос прибавлять его к неотвеченным, и прибавлять единицу к количеству вопросов. В двухминутном таймере выводить текст и обнулять их, с ежечасным таймером аналогично. 

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@R0m4ik, ну, хорошо, попробую немного подробнее описать реализацию такой системы.

 

1. Создание счетчиков. Достаточно примитивный этап. Что есть счетчик? Счетчик - обычная переменная, которая хранит значение чего-либо. Поэтому создание счетчиков равносильно созданию обычной переменной. Сколько таких переменных (счетчиков) вам необходимо в данном случае, исходя из ваших задач?

  • Общее количество вопросов
  • Количество проигнорированных вопросов

Ну, и, поскольку вы хотите сохранять идентификаторы игроков, которые не получили ответ на свой вопрос, необходимо создать еще итератор (хранит массив, а также предоставляет функционал для удобной работы с ним). Выглядеть это может примерно так:

new questionsCounIn2Mins; // общее количество вопросов за последние 2 минуты
new ignoredQuestionsCountIn2Mins; // количество проигнорированных вопросов за последние 2 минуты
new Iterator:ignoredPlayers<MAX_PLAYERS>; // список игроков, не получивших ответ на свой вопрос

2. Заполнение значениями. Соответственно, в тех местах, где приходит новый вопрос, необходимо увеличивать значения счетчиков questionsCountIn2Mins и ignoredQuestionsCountIn2Mins, а также заносить идентификатор игрока, задавшего вопрос, в итератор ignoredPlayers.

questionsCounIn2Mins++; // увеличение questionsCountIn2Mins на 1
ignoredQuestionsCountIn2Mins++; // увеличение ignoredQuestionsCountIn2Mins на 1
Iter_Add(ignoredPlayers, playerid); // занесение идентификатора игрока, задавшего вопрос, в массив итератора
// при необходимости playerid поменять на свое значение

Ну, и, соответственно, когда администрация отвечает игрокам, необходимо уменьшить значение счетчика проигнорированных вопросов ignoredQuestionsCountIn2Mins и убрать игрока, которому дается ответ, из списка проигнорированных.

ignoredQuestionsCountIn2Mins--; // уменьшение значения на 1
Iter_Remove(ignoredPlayers, playerid); // удаление игрока playerid из списка проигнорированных
// при необходимости playerid поменять на свое значение

3. Реализация подсчета значений за час и вывода информации в чат. Для того, чтобы информация выводилась с нужным вам интервалом (раз в 2 минуты и раз в 1 час соответственно), следует использовать таймер, который будет обеспечивать выполнение необходимых нам действий с заданным интервалом. Наверняка в вашем моде уже есть такой таймер (секундный, минутный, или какой-нибудь еще). Используя его, следует, прежде всего, при необходимости, обеспечить выполнение нашего "куска" кода с нужной нам частотой. Что я имею в виду? Есть у вас, например, секундный таймер. Но нам не подходит вариант выводить информацию каждую секунду. Поэтому внутри этого таймера нужно реализовать "вычисление" двух минут и часа. Как вариант, это могло бы выглядеть так (при наличии секундного таймера).

Спойлер

@SecondPlayerTimer(playerid);
@SecondPlayerTimer(playerid) {
    static tick;
    tick++; // каждую секунду значение tick будет увеличиваться на 1

    if (tick % (2*60) == 0 && IsPlayerAdmin(playerid)) { // остаток от деления tick на 120 секунд (= 2 минуты) = 0 (прошло 2 минуты) и игрок - админ?
        new string[144];
        foreach (new i : ignoredPlayers) { // перебираем всех проигнорированных игроков
            strcat(string, valstr(i)); // и заносим их в строку вида 0, 2, 3, 15, ...
            strcat(string, ", ");
        }

        format(string, sizeof string, "Вопросов за 2 минуты: %d, проигнорированных: %d, нужно ответить: %s", questionsCounIn2Mins, ignoredQuestionsCountIn2Mins, string);
        SendClientMessage(playerid, -1, string);

        static questionsCount; // в количество вопросов за час добавляем вопросы за последние 2 минуты
        questionsCount += questionsCounIn2Mins;

        static ignoredQuestionsCount; // в количество проигнорированных вопросов за час добавляем последние за 2 минуты
        ignoredQuestionsCount += ignoredQuestionsCountIn2Mins;

        if (tick % (60*60) == 0) { // остаток от деления tick на 3600 секунд (= 1 час) = 0? (прошел час)

            new answeredQuestionsCount = questionsCount - ignoredQuestionsCount; // всего ответов = всего вопросов - количество проигнорированных

            format(string, sizeof string, "Вопросов за час: %d, не отвечено: %d, отвечено: %d", questionsCount, ignoredQuestionsCount, answeredQuestionsCount);
            SendClientMessage(playerid, -1, string);

            // коль уж час прошел, можем сбросить статистику
            questionsCount = 0;
            ignoredQuestionsCount = 0;
        }

        // сбрасываем статистику за последние 2 минуты
        questionsCounIn2Mins = 0;
        ignoredQuestionsCountIn2Mins = 0;
        Iter_Clear(ignoredPlayers); // очищаем список проигнорированных игроков
    }


}

 

 

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


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
51 минуту назад, Cawfee сказал:

@R0m4ik, ну, хорошо, попробую немного подробнее описать реализацию такой системы.

 

1. Создание счетчиков. Достаточно примитивный этап. Что есть счетчик? Счетчик - обычная переменная, которая хранит значение чего-либо. Поэтому создание счетчиков равносильно созданию обычной переменной. Сколько таких переменных (счетчиков) вам необходимо в данном случае, исходя из ваших задач?

  • Общее количество вопросов
  • Количество проигнорированных вопросов

Ну, и, поскольку вы хотите сохранять идентификаторы игроков, которые не получили ответ на свой вопрос, необходимо создать еще итератор (хранит массив, а также предоставляет функционал для удобной работы с ним). Выглядеть это может примерно так:


new questionsCounIn2Mins; // общее количество вопросов за последние 2 минуты
new ignoredQuestionsCountIn2Mins; // количество проигнорированных вопросов за последние 2 минуты
new Iterator:ignoredPlayers<MAX_PLAYERS>; // список игроков, не получивших ответ на свой вопрос

2. Заполнение значениями. Соответственно, в тех местах, где приходит новый вопрос, необходимо увеличивать значения счетчиков questionsCountIn2Mins и ignoredQuestionsCountIn2Mins, а также заносить идентификатор игрока, задавшего вопрос, в итератор ignoredPlayers.


questionsCounIn2Mins++; // увеличение questionsCountIn2Mins на 1
ignoredQuestionsCountIn2Mins++; // увеличение ignoredQuestionsCountIn2Mins на 1
Iter_Add(ignoredPlayers, playerid); // занесение идентификатора игрока, задавшего вопрос, в массив итератора
// при необходимости playerid поменять на свое значение

Ну, и, соответственно, когда администрация отвечает игрокам, необходимо уменьшить значение счетчика проигнорированных вопросов ignoredQuestionsCountIn2Mins и убрать игрока, которому дается ответ, из списка проигнорированных.


ignoredQuestionsCountIn2Mins--; // уменьшение значения на 1
Iter_Remove(ignoredPlayers, playerid); // удаление игрока playerid из списка проигнорированных
// при необходимости playerid поменять на свое значение

3. Реализация подсчета значений за час и вывода информации в чат. Для того, чтобы информация выводилась с нужным вам интервалом (раз в 2 минуты и раз в 1 час соответственно), следует использовать таймер, который будет обеспечивать выполнение необходимых нам действий с заданным интервалом. Наверняка в вашем моде уже есть такой таймер (секундный, минутный, или какой-нибудь еще). Используя его, следует, прежде всего, при необходимости, обеспечить выполнение нашего "куска" кода с нужной нам частотой. Что я имею в виду? Есть у вас, например, секундный таймер. Но нам не подходит вариант выводить информацию каждую секунду. Поэтому внутри этого таймера нужно реализовать "вычисление" двух минут и часа. Как вариант, это могло бы выглядеть так (при наличии секундного таймера).

  закрыть спойлер


@SecondPlayerTimer(playerid);
@SecondPlayerTimer(playerid) {
    static tick;
    tick++; // каждую секунду значение tick будет увеличиваться на 1

    if (tick % (2*60) == 0 && IsPlayerAdmin(playerid)) { // остаток от деления tick на 120 секунд (= 2 минуты) = 0 (прошло 2 минуты) и игрок - админ?
        new string[144];
        foreach (new i : ignoredPlayers) { // перебираем всех проигнорированных игроков
            strcat(string, valstr(i)); // и заносим их в строку вида 0, 2, 3, 15, ...
            strcat(string, ", ");
        }

        format(string, sizeof string, "Вопросов за 2 минуты: %d, проигнорированных: %d, нужно ответить: %s", questionsCounIn2Mins, ignoredQuestionsCountIn2Mins, string);
        SendClientMessage(playerid, -1, string);

        static questionsCount; // в количество вопросов за час добавляем вопросы за последние 2 минуты
        questionsCount += questionsCounIn2Mins;

        static ignoredQuestionsCount; // в количество проигнорированных вопросов за час добавляем последние за 2 минуты
        ignoredQuestionsCount += ignoredQuestionsCountIn2Mins;

        if (tick % (60*60) == 0) { // остаток от деления tick на 3600 секунд (= 1 час) = 0? (прошел час)

            new answeredQuestionsCount = questionsCount - ignoredQuestionsCount; // всего ответов = всего вопросов - количество проигнорированных

            format(string, sizeof string, "Вопросов за час: %d, не отвечено: %d, отвечено: %d", questionsCount, ignoredQuestionsCount, answeredQuestionsCount);
            SendClientMessage(playerid, -1, string);

            // коль уж час прошел, можем сбросить статистику
            questionsCount = 0;
            ignoredQuestionsCount = 0;
        }

        // сбрасываем статистику за последние 2 минуты
        questionsCounIn2Mins = 0;
        ignoredQuestionsCountIn2Mins = 0;
        Iter_Clear(ignoredPlayers); // очищаем список проигнорированных игроков
    }


}

 

 

C:\Users\Roma\Desktop\REVENT RP BY SOSED\gamemodes\justice.pwn(32526) : warning 202: number of arguments does not match definition
C:\Users\Roma\Desktop\REVENT RP BY SOSED\gamemodes\justice.pwn(32501) : warning 204: symbol is assigned a value that is never used: "string"
C:\Users\Roma\Desktop\REVENT RP BY SOSED\gamemodes\justice.pwn(50573) : error 035: argument type mismatch (argument 1)

 

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

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


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
        foreach (new i : ignoredPlayers)
        {
            strcat(string, valstr(i));//проблема тут
            strcat(string, ", ");
        }

 

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

Используйте кнопку "Ответить" вместо "Цитата" для ответа пользователям. Не в первый раз говорю это.

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


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

@Cawfee 20 минут нахожусь на сервере не появляется сообщение о итогах.

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

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


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

@Cawfee Скорее всего проблема в этом 

: warning 204: symbol is assigned a value that is never used: "string"

если я переменную убираю появляються ошибки

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


Ссылка на сообщение
  • 0
Mason
Постоянный

@Cawfee 

Это я добавил к переменным.

new questionsCounIn2Mins;
new ignoredQuestionsCountIn2Mins;
new Iterator:ignoredPlayers<MAX_PLAYERS>;
questionsCounIn2Mins++;
ignoredQuestionsCountIn2Mins++; 
Iter_Add(ignoredPlayers, playerid);

Это там где приходит репорт

ignoredQuestionsCountIn2Mins--;
Iter_Remove(ignoredPlayers, playerid);

Это когда админ ответил игроку в команду /an

 

@SecondPlayerTimer(playerid);
@SecondPlayerTimer(playerid)
{
        static tick;
        tick++; 
        if (tick % (2*60) == 0 && IsPlayerAdmin(playerid))
        {
            new string[144];
            foreach (new i : ignoredPlayers)
            {
            format(string, sizeof string, "%s%d, ", string, i);
        }
        format(string, sizeof string, "ИТОГИ: {009900}All:{FFFFFF} %d {009900}/ Ans: {FFFFFF}0 {009900}/ Неотв.: {ff0000}%d {ffffff} | Ответить:{ffff82} %d", questionsCounIn2Mins, ignoredQuestionsCountIn2Mins, string);
        SendClientMessage(playerid, -1, string);
        static questionsCount;
        questionsCount += questionsCounIn2Mins;
        static ignoredQuestionsCount;
        ignoredQuestionsCount += ignoredQuestionsCountIn2Mins;
        if (tick % (60*60) == 0)
        {
            new answeredQuestionsCount = questionsCount - ignoredQuestionsCount;
            format(string, sizeof string, "ИТОГИ ЧАСА: {009900}Репортов: {ffffff}%d {009900}/ Ответов: {ffffff}%d {009900}/ Неотвечено: {ff0000}%d {ffffff}", questionsCount, answeredQuestionsCount, ignoredQuestionsCount);
            SendClientMessage(playerid, -1, string);
            questionsCount = 0;
            ignoredQuestionsCount = 0;
        }
        questionsCounIn2Mins = 0;
        ignoredQuestionsCountIn2Mins = 0;
        Iter_Clear(ignoredPlayers);
    }


}

Это в конец мода P.S Там где итоги часа мне нужно это именно к PAYDAY добавить

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


Ссылка на сообщение
  • 0
Mason
Постоянный

Пишу с запасного т.к забыл пароль от старого аккаунта E-Mail для востановления не помню

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

Обратитесь в техническую поддержку форума по поводу восстановления доступа к утерянному аккаунту.

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


Ссылка на сообщение
  • 0
Mason
Постоянный

@Cawfee Допустим я сделал эту систему под себя, и теперь все появляется все работает но что делать если в PayDay я туда итоги часа вставил если я с другом на сервере почему в payday появляется 2 сообщения а когда я один на сервере то 1 сообщение еще вопрос как сделать так чтобы если 1 идшник не получил ответ то в конце писалась точка а если несколько то через запятую и если остался последний идшник то в конце точка, и как сделать так когда админ просто ответил репорт не приходил просто ответил число не отвеченных не уходило в -

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

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


Ссылка на сообщение
  • 0
Mason
Постоянный

@Cawfee Есть возможность ответить?

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

3.6. Запрещено поднимать (апать) свою тему чаще, чем 1 раз в 24 часа. 

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

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


Ссылка на сообщение
  • 0
Mason
Постоянный

@Cawfee 

    //ИТОГИ
    new answeredQuestionsCount = questionsCount - ignoredQuestionsCount;
    format(string, sizeof string, "ИТОГИ ЧАСА: {009900}Репортов: {ffffff}%d {009900}/ Ответов: {ffffff}%d {009900}/ Неотвечено: {ff0000}%d {ffffff}", questionsCount, answeredQuestionsCount, ignoredQuestionsCount);
    SendAdminMessage(0xb03131ff, string);
    questionsCount = 0;
    answeredQuestionsCount = 0;
    ignoredQuestionsCount = 0;
    questionsCounIn2Mins = 0;
    ignoredQuestionsCountIn2Mins = 0;
    Iter_Clear(ignoredPlayers);
    //

Это добавил после сообщения о payday.

    //ИТОГИ
    static questionsCount;
    questionsCount += questionsCounIn2Mins;
    static ignoredQuestionsCount;
    ignoredQuestionsCount += ignoredQuestionsCountIn2Mins;
    //

Это до сообщения.

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


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@Mason, у вас функция с PayDay имеет параметр playerid? Или внутри нее стоит цикл, перебирающий всех игроков в сети, чтобы вывести сообщение о PayDay?

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


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   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. Помогите пожалуйста