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

alexnet

Участник
Сообщения
82
Реакции
3
ребят может есть у кого другой вариант решение этого вопроса 7pElllHuK спасибо тебе что пытался помочь
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@7pElllHuK, вообще я про первые версии кода.

Ну и получение счёта - неудачный вариант: счёт же сбрасывается после рестарта, емнип.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
Я этот скрипт проверил
видимо так себе проверил потому, что при рестарте раунда счётчик сбрасывается, а он не должен сбрасываться до смены карты

Вот такой вариант пробуй:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

static const int ROUND_RESTART = 1;

int iRoundCount;

public void OnMapStart()
{
    iRoundCount = 0;
    HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
}

public void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast)
{
    if(++iRoundCount < ROUND_RESTART)
        return;

    UnhookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
    ServerCommand("mp_restartgame 1");
}
 

alexnet

Участник
Сообщения
82
Реакции
3
видимо так себе проверил потому, что при рестарте раунда счётчик сбрасывается, а он не должен сбрасываться до смены карты

Вот такой вариант пробуй:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

static const int ROUND_RESTART = 1;

int iRoundCount;

public void OnMapStart()
{
    iRoundCount = 0;
    HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
}

public void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast)
{
    if(++iRoundCount < ROUND_RESTART)
        return;

    UnhookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
    ServerCommand("mp_restartgame 1");
}
сейчас проверил к сожалению все так же после каждого раунда происходит рестарт
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
сейчас проверил к сожалению все так же после каждого раунда происходит рестарт
Что-то мне подсказывает что даже без этих плагинов будет рестарт после 1 раунда и в дальнейшем. Проверь. мб старую версию не удалил или какой-то другой плагин это делает
 

alexnet

Участник
Сообщения
82
Реакции
3
Что-то мне подсказывает что даже без этих плагинов будет рестарт после 1 раунда и в дальнейшем. Проверь. мб старую версию не удалил или какой-то другой плагин это делает
да вот сам смотрю ничего такого не вижу кроме того что стоит плагин рестарта игры ну когда в чат пишешь !rr или sm_rr но до этого такое не было еще отключил разминку в weapon restrict ну это еще до установки плагина (короче до установки этого плагина каждый раунд ничего не перезапускалось)
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
после каждого раунда происходит рестарт
либо ты не удалил старый плагин (или не выгрузил его после удаления файла)
либо SM рестарт считает как старт карты

можно проверить добавив сообщения для дебага:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

static const int ROUND_RESTART = 1;

int iRoundCount;

public void OnMapStart()
{
    iRoundCount = 0;
    HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);

    LogMessage("[Restart] Map start");
}

public void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast)
{
    if(++iRoundCount < ROUND_RESTART)
        return;

    LogMessage("[Restart] Round #%i end", iRoundCount);

    ServerCommand("mp_restartgame 1");
    UnhookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
}
 

alexnet

Участник
Сообщения
82
Реакции
3
либо ты не удалил старый плагин (или не выгрузил его после удаления файла)
либо SM рестарт считает как старт карты

можно проверить добавив сообщения для дебага:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

static const int ROUND_RESTART = 1;

int iRoundCount;

public void OnMapStart()
{
    iRoundCount = 0;
    HookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);

    LogMessage("[Restart] Map start");
}

public void Event_RoundEnd(Event event, const char[] name, bool dontBroadcast)
{
    if(++iRoundCount < ROUND_RESTART)
        return;

    LogMessage("[Restart] Round #%i end", iRoundCount);

    ServerCommand("mp_restartgame 1");
    UnhookEvent("round_end", Event_RoundEnd, EventHookMode_PostNoCopy);
}
вот текст из файла лога
[sm_restart_round.smx] [Restart] Map start
L 03/10/2025 - 16:21:43: [sm_restart_round.smx] [Restart] Round #1 end
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@alexnet, и всё? Карта менялась? Сколько раундов с установки плагина сыграно?
 

alexnet

Участник
Сообщения
82
Реакции
3
@alexnet, и всё? Карта менялась? Сколько раундов с установки плагина сыграно?
да немного раундов карту не менял как первая включилась так и игралась у меня только стоит плагин от ws map config и там параметр Перезагрузить карту через 'x' секунд после включения сервера (0 = откл)
mc_restart_map "10"
Сообщения автоматически склеены:

да немного раундов карту не менял как первая включилась так и игралась у меня только стоит плагин от ws map config и там параметр Перезагрузить карту через 'x' секунд после включения сервера (0 = откл)
mc_restart_map "10"
ну в общем сервер включается потом 10 сек и он перезапускает а то конфиги от weapon restrict не начинают сразу работать после перезагрузки ну или просто старта сервера вот давно заметил и вот включил это и когда вот меняет карту они начинают работать (например на 2000 запрещал поднять авп а оно все равно поднимается а как только вот перезапустился после 10 сек то уже не берет и все работает)
 
Последнее редактирование:

alexnet

Участник
Сообщения
82
Реакции
3
значит плагин работает как положено и все последующие рестарты не он производит
спасибо тебе сейчас еще разок все перепроверю
Сообщения автоматически склеены:

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

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@alexnet, он вообще в списке плагинов виден?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,519
Реакции
4,979
@alexnet, карту менял?
в логах (и в консоли сервера) отладочные сообщения должны быть видны
Сообщения автоматически склеены:

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

alexnet

Участник
Сообщения
82
Реакции
3
@alexnet, карту менял?
в логах (и в консоли сервера) отладочные сообщения должны быть видны
Сообщения автоматически склеены:

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

L 03/10/2025 - 17:10:19: -------- Mapchange to de_dust2 --------
L 03/10/2025 - 17:10:20: [sm_restart_round.smx] [Restart] Map start
L 03/10/2025 - 17:10:20: [sm_restart_round.smx] [Restart] Round #1 end
L 03/10/2025 - 17:10:20: [basecommands.smx] "Console<0><Console><Console>" changed cvar (cvar "spec_freeze_time") (value "0.8")
L 03/10/2025 - 17:10:20: [mapchooser.smx] Voting for next map has started.
L 03/10/2025 - 17:10:25: [randomcycle.smx] RandomCycle has chosen de_aztec_spx for the nextmap.
L 03/10/2025 - 17:48:36: [mapchooser.smx] Voting for next map has started.
L 03/10/2025 - 17:48:56: [mapchooser.smx] Voting for next map has finished. Nextmap: de_frost_spx.
L 03/10/2025 - 17:51:37: [SM] Changed map to "de_frost_spx"
L 03/10/2025 - 17:51:38: -------- Mapchange to de_frost_spx --------
L 03/10/2025 - 17:51:39: [sm_restart_round.smx] [Restart] Map start
L 03/10/2025 - 17:51:39: [sm_restart_round.smx] [Restart] Round #1 end
L 03/10/2025 - 17:51:39: [basecommands.smx] "Console<0><Console><Console>" changed cvar (cvar "spec_freeze_time") (value "0.8")
L 03/10/2025 - 17:51:44: [randomcycle.smx] RandomCycle has chosen de_red_roofs_spx for the nextmap.
 

Synd1qate

Участник
Сообщения
744
Реакции
259
вот

L 03/10/2025 - 17:10:19: -------- Mapchange to de_dust2 --------
L 03/10/2025 - 17:10:20: [sm_restart_round.smx] [Restart] Map start
L 03/10/2025 - 17:10:20: [sm_restart_round.smx] [Restart] Round #1 end
L 03/10/2025 - 17:10:20: [basecommands.smx] "Console<0><Console><Console>" changed cvar (cvar "spec_freeze_time") (value "0.8")
L 03/10/2025 - 17:10:20: [mapchooser.smx] Voting for next map has started.
L 03/10/2025 - 17:10:25: [randomcycle.smx] RandomCycle has chosen de_aztec_spx for the nextmap.
L 03/10/2025 - 17:48:36: [mapchooser.smx] Voting for next map has started.
L 03/10/2025 - 17:48:56: [mapchooser.smx] Voting for next map has finished. Nextmap: de_frost_spx.
L 03/10/2025 - 17:51:37: [SM] Changed map to "de_frost_spx"
L 03/10/2025 - 17:51:38: -------- Mapchange to de_frost_spx --------
L 03/10/2025 - 17:51:39: [sm_restart_round.smx] [Restart] Map start
L 03/10/2025 - 17:51:39: [sm_restart_round.smx] [Restart] Round #1 end
L 03/10/2025 - 17:51:39: [basecommands.smx] "Console<0><Console><Console>" changed cvar (cvar "spec_freeze_time") (value "0.8")
L 03/10/2025 - 17:51:44: [randomcycle.smx] RandomCycle has chosen de_red_roofs_spx for the nextmap.
А можно вопрос, а для чего тебе перезагружать раунд?
 
Сверху Снизу