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

sladerev

Участник
Сообщения
323
Реакции
29
Попробуй такой вариант
C-подобный:
L 10/22/2023 - 22:32:44: [SM] Exception reported: Game event "round_freeze_time" does not exist
L 10/22/2023 - 22:32:44: [SM] Blaming: OCslaylosers.smx
L 10/22/2023 - 22:32:44: [SM] Call stack trace:
L 10/22/2023 - 22:32:44: [SM]   [0] HookEvent
L 10/22/2023 - 22:32:44: [SM]   [1] Line 86, D:\sourcemod 1.10 6545\addons\sourcemod\scripting\OCslaylosers 1.4.1.sp::OnPluginStart
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
не зависимо есть террористы или нет, после обезвреживании бомбы, пишет террористы уничтожены)
Game event "round_freeze_time" does not exist
пофиксил
Сообщения автоматически склеены:

Продублировал в теме плагина:
 

Вложения

  • OCslaylosers 1.4.1.sp
    6.2 КБ · Просмотры: 9
Последнее редактирование:

khood

Участник
Сообщения
214
Реакции
51
C-подобный:
L 10/21/2023 - 03:49:34: [SM] Exception reported: Entity 1 (1) is invalid
L 10/21/2023 - 03:49:34: [SM] Blaming: Botsplugin.smx
L 10/21/2023 - 03:49:34: [SM] Call stack trace:
L 10/21/2023 - 03:49:34: [SM]   [0] SetEntData
L 10/21/2023 - 03:49:34: [SM]   [1] Line 283, D:\server47\orangebox\cstrike\addons\sourcemod\scripting\Botsplugin.sp::IfHumansArmorChanged
 

Вложения

  • Botsplugin.sp
    45.8 КБ · Просмотры: 9

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Здравствуйте, нужно добавить строчку в конфиг плагина чтобы выглядело как на фото ниже, надо чтобы она тоже выводила сообщение. Надо еще убрать сообщение при самоубийстве (Если переходишь в спектаторы и ты живой, то игрок погибнет) У вас сняли за убийство (Себя) и вы заработали монеты. Надеюсь нормально объяснил)

Все еще нужна помощь?
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
C-подобный:
L 10/21/2023 - 03:49:34: [SM] Exception reported: Entity 1 (1) is invalid
L 10/21/2023 - 03:49:34: [SM] Blaming: Botsplugin.smx
L 10/21/2023 - 03:49:34: [SM] Call stack trace:
L 10/21/2023 - 03:49:34: [SM]   [0] SetEntData
L 10/21/2023 - 03:49:34: [SM]   [1] Line 283, D:\server47\orangebox\cstrike\addons\sourcemod\scripting\Botsplugin.sp::IfHumansArmorChanged
Пробуй
 

Вложения

  • Botsplugin.smx
    19.4 КБ · Просмотры: 1
  • Botsplugin.sp
    45.8 КБ · Просмотры: 2

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@khood, какой ужасный код (не настолько, как в FSA, конечно) и ещё отступы выставлены абы как.
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
@khood, какой ужасный код (не настолько, как в FSA, конечно) и ещё отступы выставлены абы как.
Есть такое, я пока разобрался что и где должно стоять, минут 10 прошло)
Сообщения автоматически склеены:

Подскажите пожалуйста, почему не блокируются команды, когда игроки остались 1 на 1
ошибок нет
 

Вложения

  • Duel.sp
    1.9 КБ · Просмотры: 10
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
Исправил это, почистил и упорядочил код.
Заодно пофиксил утечку памяти из-за менюшек.
SM1.11:
//// Botsplugin 2.0_fix.sp
//
// Code size:         53808 bytes
// Data size:         13960 bytes
// Stack/heap size:      16836 bytes
// Total requirements:   84604 bytes
//
// Compilation Time: 2,28 sec
// ----------------------------------------

//// Botsplugin 2.0.sp
//
// Z:\Botsplugin 2.0.sp(76) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
// Z:\Botsplugin 2.0.sp(109) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(110) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(111) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(112) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(113) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(127) : warning 234: symbol "GetMaxClients" is marked as deprecated: Use MaxClients variable instead.
// Code size:         54548 bytes
// Data size:         14040 bytes
// Stack/heap size:      16836 bytes
// Total requirements:   85424 bytes
//
// 7 Warnings.
//
// Compilation Time: 2,98 sec
// ----------------------------------------
Сообщения автоматически склеены:

почему не блокируются команды
потому что ты создал (точнее пытаешься присвоить значения как такому) двумерный строковый массив, а используешь как одномерный
Сообщения автоматически склеены:

попробуй такой вариант
 

Вложения

  • Botsplugin 2.0_fix.sp
    44 КБ · Просмотры: 8
Последнее редактирование:

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
Исправил это, почистил и упорядочил код.
Заодно пофиксил утечку памяти из-за менюшек.
SM1.11:
//// Botsplugin 2.0_fix.sp
//
// Code size:         53808 bytes
// Data size:         13960 bytes
// Stack/heap size:      16836 bytes
// Total requirements:   84604 bytes
//
// Compilation Time: 2,28 sec
// ----------------------------------------

//// Botsplugin 2.0.sp
//
// Z:\Botsplugin 2.0.sp(76) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
// Z:\Botsplugin 2.0.sp(109) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(110) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(111) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(112) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(113) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(127) : warning 234: symbol "GetMaxClients" is marked as deprecated: Use MaxClients variable instead.
// Code size:         54548 bytes
// Data size:         14040 bytes
// Stack/heap size:      16836 bytes
// Total requirements:   85424 bytes
//
// 7 Warnings.
//
// Compilation Time: 2,98 sec
// ----------------------------------------
Сообщения автоматически склеены:


потому что ты создал (точнее пытаешься присвоить значения как такому) двумерный строковый массив, а используешь как одномерный
Сообщения автоматически склеены:


попробуй такой вариант
Учится мне еще и учится) Я думал это одно и тоже) Спасибо за подсказку, плагин чуть позхже проверю и отпишусь
Сообщения автоматически склеены:

Исправил это, почистил и упорядочил код.
Заодно пофиксил утечку памяти из-за менюшек.
SM1.11:
//// Botsplugin 2.0_fix.sp
//
// Code size:         53808 bytes
// Data size:         13960 bytes
// Stack/heap size:      16836 bytes
// Total requirements:   84604 bytes
//
// Compilation Time: 2,28 sec
// ----------------------------------------

//// Botsplugin 2.0.sp
//
// Z:\Botsplugin 2.0.sp(76) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
// Z:\Botsplugin 2.0.sp(109) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(110) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(111) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(112) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(113) : warning 234: symbol "FindSendPropOffs" is marked as deprecated: Use FindSendPropInfo instead, or HasEntProp if you just want to check for existence.
// Z:\Botsplugin 2.0.sp(127) : warning 234: symbol "GetMaxClients" is marked as deprecated: Use MaxClients variable instead.
// Code size:         54548 bytes
// Data size:         14040 bytes
// Stack/heap size:      16836 bytes
// Total requirements:   85424 bytes
//
// 7 Warnings.
//
// Compilation Time: 2,98 sec
// ----------------------------------------
Сообщения автоматически склеены:


потому что ты создал (точнее пытаешься присвоить значения как такому) двумерный строковый массив, а используешь как одномерный
Сообщения автоматически склеены:


попробуй такой вариант
Не работает, 1 на 1 остался, команды доступны
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
@7pElllHuK, а в плагине медика каким образом команды проверяются?
Если через отлов say и say_team, то может и не заблочатся.

И ещё у меня на 81-й строке перед IsFakeClient() нужно поставить ! (тогда админам не должно будет блочить команды, сейчас должно блочить, если команду пишет не бот ^_^).
 
Последнее редактирование:

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
@7pElllHuK, а в плагине медика каким образом команды проверяются?
Если через отлов say и say_team, то может и не заблочатся.

И ещё у меня на 81-й строке перед IsFakeClient() нужно поставить ! (тогда админам не должно будет блочить команды, сейчас должно блочить, если команду пишет не бот ^_^).
В плагине медика команда регистрируется через RegConsoleCmd, а проверял я на ксс где нет прав администратора
Сообщения автоматически склеены:

В плагине медика команда регистрируется через RegConsoleCmd, а проверял я на ксс где нет прав администратора
Добавил текст в GetCount для проверки на работоспособность. В итоге текст выводится только когда остается только 1 игрок (не 1 на 1 , а просто 1 игрок)

Код:
void GetCount()
{
    int t, ct;
    for(int i = 1, team; i <= MaxClients; i++) if(IsClientInGame(i) && (team = GetClientTeam(i)) > 1)
    {
        if(team == 2)
        {
            if(++t > 1) return;
        }
        else if(++ct > 1) return;
    }

    if(t == 1 && ct == 1) bDuel = true;
    PrintToChatAll("Вы остались 1 на 1 с соперником");
    PrintToChatAll("Команды %s заблокированы", CMDS);
}
 
Последнее редактирование:

khood

Участник
Сообщения
214
Реакции
51
C-подобный:
L 10/22/2023 - 19:01:40: [SM] Exception reported: Client index 0 is invalid
L 10/22/2023 - 19:01:40: [SM] Blaming: sm_killmessage_overlays_basicsupport.smx
L 10/22/2023 - 19:01:40: [SM] Call stack trace:
L 10/22/2023 - 19:01:40: [SM]   [0] IsFakeClient
L 10/22/2023 - 19:01:40: [SM]   [1] Line 83, sm_killmessage_overlays_basicsupport.sp::Event_PlayerDeath
 

Вложения

  • sm_killmessage_overlays_basicsupport.sp
    5.5 КБ · Просмотры: 5

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
C-подобный:
L 10/22/2023 - 19:01:40: [SM] Exception reported: Client index 0 is invalid
L 10/22/2023 - 19:01:40: [SM] Blaming: sm_killmessage_overlays_basicsupport.smx
L 10/22/2023 - 19:01:40: [SM] Call stack trace:
L 10/22/2023 - 19:01:40: [SM]   [0] IsFakeClient
L 10/22/2023 - 19:01:40: [SM]   [1] Line 83, sm_killmessage_overlays_basicsupport.sp::Event_PlayerDeath
попробуй так
 

Вложения

  • sm_killmessage_overlays_basicsupport.sp
    5.5 КБ · Просмотры: 4

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,981
Добавил текст в GetCount для проверки на работоспособность. В итоге текст выводится только когда остается только 1 игрок (не 1 на 1 , а просто 1 игрок)
это потому что нужно было делать вот так:
C-подобный:
    if(t == 1 && ct == 1)
    {
        bDuel = true;

        PrintToChatAll("Вы остались 1 на 1 с соперником");
        char buffer[PLATFORM_MAX_PATH];
        for(t=0; t < sizeof(CMDS); t++) ct = Format(buffer, sizeof(buffer), "%s, %s", buffer, CMDS[t]);
        buffer[ct-1] = 0;
        PrintToChatAll("Команды %s заблокированы", buffer);
    }
Сообщения автоматически склеены:

Line 83, sm_killmessage_overlays_basicsupport.sp::Event_PlayerDeath
у тебя исходник не соответствует ошибке (в прикреплённом тобой такой ошибки не может возникнуть, кстати)
Сообщения автоматически склеены:

В плагине медика команда регистрируется через RegConsoleCmd
Может плагин слишком рано пытается зарегать команду, когда медик ещё не загрузился. Попробуй такой вариант.
 
Последнее редактирование:

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
это потому что нужно было делать вот так:
C-подобный:
    if(t == 1 && ct == 1)
    {
        bDuel = true;

        PrintToChatAll("Вы остались 1 на 1 с соперником");
        char buffer[PLATFORM_MAX_PATH];
        for(t=0; t < sizeof(CMDS); t++) ct = Format(buffer, sizeof(buffer), "%s, %s", buffer, CMDS[t]);
        buffer[ct-1] = 0;
        PrintToChatAll("Команды %s заблокированы", buffer);
    }
Сообщения автоматически склеены:


у тебя исходник не соответствует ошибке (в прикреплённом тобой такой ошибки не может возникнуть, кстати)
Сообщения автоматически склеены:


Может плагин слишком рано пытается зарегать команду, когда медик ещё не загрузился. Попробуй такой вариант.
Опять текст выводится о дуэле только тогда, когда остался 1 игрок в 1 из команд (За ТТ: 1, за КТ: 0, если в обеех командах по 1 человеку осталось то ничего не выводится) и команды так же не блокируются
 
Сверху Снизу