Написание плагинов

danil253467

💘Italo-Disco & Neon One Love💘
Сообщения
90
Реакции
52
Всем доброго времени суток, подскажите пожалуйста, как проверить текущее значение команды r_screenoverlay у игрока? Решил сделать плагин который будет в начале раунда и до конца выводить оверлей через r_screenoverlay "путь к текстуре", но иногда бывает такое что значение команды переключается на 0. (Работу плагина ничего не перебивает, на сервере нет других плагинов которые в течении раунда выводят оверлеи)
Первое, что приходит на ум
 

Александр33333

Участник
Сообщения
46
Реакции
1
@Александр33333, в строке 210 видимо скобки забыли поставить
if(sCheckMapEndBy.IntValue == 3 && sWinLimit.IntValue == wincountct || sWinLimit.IntValue == wincountt && sWinLimit.IntValue != 0)
==>
if(sCheckMapEndBy.IntValue == 3 && (sWinLimit.IntValue == wincountct || sWinLimit.IntValue == wincountt) && sWinLimit.IntValue != 0)
Сообщения автоматически склеены:

@Александр33333, попробуй такой вариант
Не помогло также выходит
 

Вложения

  • Без имени.png
    Без имени.png
    68.6 КБ · Просмотры: 61

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Не помогло также выходит
Мои глаза
1704010013722.png
Сообщения автоматически склеены:

Не помогло также выходит
Попробуй так
UPD. Добавил выход из цикла при выводе текста об окончании карты
 

Вложения

  • CM_Advance_Stats 1.3.5_fix.sp
    15.1 КБ · Просмотры: 4
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
По идее не поможет: ты так только отрубишь повтор инфы за карту, а не за раунд.
изображение_2023-12-31_104206200.png
И не говори: человеку былго влом реализовать текст сообщений через файл переводов.
Ну и я не стал заморачиваться с этим.
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
По идее не поможет: ты так только отрубишь повтор инфы за карту, а не за раунд.

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

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Наоборот, break стоит в выводе текста конца раунда, а за карту я не ставил, не увидел этого
Блин, я всмотрелся в код: там стоит в цикле MC_PrintToChatAll() и C_PrintToChatAll() вместо MC_PrintToChat() и C_PrintToChat(). 🤪

Поэтому будет дублировать ровно столько, сколько игроков на сервере. А если одна часть с клиентмодом, а друга без него, то такая хрень на сервере в чате получится, что туши свет. 😆

@Александр33333, всё, теперь должно пофикситься.
 

Вложения

  • CM_Advance_Stats 1.3.5_fix2.sp
    15 КБ · Просмотры: 9
Последнее редактирование:

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Блин, я всмотрелся в код: там стоит в цикле MC_PrintToChatAll() и C_PrintToChatAll() вместо MC_PrintToChat() и C_PrintToChat(). 🤪

Поэтому будет дублировать ровно столько, сколько игроков на сервере. А если одна часть с клиентмодом, а друга без него, то такая хрень на сервере в чате получится, что туши свет. 😆

@Александр33333, всё, теперь должно пофикситься.
По идее если используется функция MC_PrintToChatAll и C_PrintToChatAll то проверка на игру не нужна
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@7pElllHuK, хз, у меня инклюда для вывода в чат сообщений для клиентмода нет, так что я хз что там MC_PrintToChatAll() умеет.
И там проверка не на игру, а на наличие установленного клиентмода (с ним доступны любые цвета, как и в CS:S OB, а без него - штуки три всего).
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
@7pElllHuK, хз, у меня инклюда для вывода в чат сообщений для клиентмода нет, так что я хз что там MC_PrintToChatAll() умеет.
И там проверка не на игру, а на наличие установленного клиентмода (с ним доступны любые цвета, как и в CS:S OB, а без него - штуки три всего).
MC_PrintToChatAll:
 */
stock void MC_PrintToChatAll(const char[] message, any ...) {
    MC_CheckTrie();
    char buffer[MAX_BUFFER_LENGTH], buffer2[MAX_BUFFER_LENGTH];
    MuCo_LoopClients(i) {
        if(i == 0 || !IsClientInGame(i) || MC_SkipList[i] || !CM_IsClientModUser(i, true)) {
            MC_SkipList[i] = false;
            continue;
        }
        SetGlobalTransTarget(i);
        Format(buffer, sizeof(buffer), "\x01%s", message);
        VFormat(buffer2, sizeof(buffer2), buffer, 2);
        MC_ReplaceColorCodes(buffer2);
        MC_SendMessage(i, buffer2);
    }
}
 

Вложения

  • morecolors.inc
    31.8 КБ · Просмотры: 4
  • colors.inc
    11 КБ · Просмотры: 3

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@7pElllHuK, раскраска клиентмода не шлёт сообщения простым клиентам?
Хм...
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
@7pElllHuK, раскраска клиентмода не шлёт сообщения простым клиентам?
Хм...
Не могу ничего сказать по этому поводу, знаю только то что MC_PrintToChat - выводит сообщение только игроку с CM, а C_PrintToChat - только игроку с ксс
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
MC_PrintToChat - выводит сообщение только игроку с CM, а C_PrintToChat - только игроку с ксс
Глянул инклюды
Выглядит как говнокод, лишь бы быстро приспособить к клиентмоду.

Я бы, наверное, сделал один инклюд, который бы слал каждому типа клиентов либо одинаковый текст, либо каждому свой (в первом параметре для %t использовался бы один из предложенных переводов, либо только первый универсальный, если не задан второй).
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Глянул инклюды
Выглядит как говнокод, лишь бы быстро приспособить к клиентмоду.

Я бы, наверное, сделал один инклюд, который бы слал каждому типа клиентов либо одинаковый текст, либо каждому свой (в первом параметре для %t использовался бы один из предложенных переводов, либо только первый универсальный, если не задан второй).
Хорошая идея, но на это время надо, видимо автор решил не запариваться над этим
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Всем доброго времени суток, подскажите пожалуйста, как исправить ошибку:
L 01/02/2024 - 21:47:11: [SM] Exception reported: Handle 720507b2 is invalid (error 1)
L 01/02/2024 - 21:47:11: [SM] Blaming: Bomp_PlantEffect.smx
L 01/02/2024 - 21:47:11: [SM] Call stack trace:
L 01/02/2024 - 21:47:11: [SM] [0] CloseHandle
L 01/02/2024 - 21:47:11: [SM] [1] Line 36, D:\ONEdRIVE\Desktop\VS_CODE ꮯ远1.11 scripting\Bomp_PlantEffect.sp::Event_Round
L 01/02/2024 - 21:47:11: [SM] [3] CS_TerminateRound
L 01/02/2024 - 21:47:11: [SM] [4] Line 86, C:\Users\Admin\Desktop\kac_new\delayroundend.sp::CS_OnTerminateRound
L 01/02/2024 - 21:58:41: Error log file session closed.
 

Вложения

  • Bomp_PlantEffect.sp
    1.9 КБ · Просмотры: 11

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
Всем доброго времени суток, подскажите пожалуйста, как исправить ошибку:
L 01/02/2024 - 21:47:11: [SM] Exception reported: Handle 720507b2 is invalid (error 1)
L 01/02/2024 - 21:47:11: [SM] Blaming: Bomp_PlantEffect.smx
L 01/02/2024 - 21:47:11: [SM] Call stack trace:
L 01/02/2024 - 21:47:11: [SM] [0] CloseHandle
L 01/02/2024 - 21:47:11: [SM] [1] Line 36, D:\ONEdRIVE\Desktop\VS_CODE ꮯ远1.11 scripting\Bomp_PlantEffect.sp::Event_Round
L 01/02/2024 - 21:47:11: [SM] [3] CS_TerminateRound
L 01/02/2024 - 21:47:11: [SM] [4] Line 86, C:\Users\Admin\Desktop\kac_new\delayroundend.sp::CS_OnTerminateRound
L 01/02/2024 - 21:58:41: Error log file session closed.
ебаный таймер от см, не навижу его, уже не кто его не использует
 

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
А как по другому быть?
Если есть другие альтернативы таймеру, то был бы рад ответу
Используйте обычный GetGameTime(), таймер сурсмода тоже использую внутри свой функции такой же, получение времени, просто сравнивайте и все
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Используйте обычный GetGameTime(), таймер сурсмода тоже использую внутри свой функции такой же, получение времени, просто сравнивайте и все
Можете пожалуйста исправить в моем плагине таймер с использованием функции GetGameTime для примера?
 
Сверху Снизу