BlockingZones

MyP3uk

Ничего не знающий
Сообщения
145
Реакции
30
Господа, у вас корректно работает плагин ? Закрыл я значит один плент когда игроков меньше 10. Поставил в конфиге квоту 10, включил подсчёт игроков.
Итог: сейчас играют 6х6 а пропсы не пропадают
мне помогла банальная переустановка
 

Tavian

Участник
Сообщения
1,184
Реакции
119
Уже пол года стоит , и не разу не было ошибок и багов . Лучший плагин.
 

l.st

Участник
Сообщения
198
Реакции
68
Может кому пригодится.
Для 2 плентов сделано.
Карты:
1.de_dust2
2.de_cache
3.de_inferno
4.de_overpass
5.de_mirage

Вот за это большое спасибо. Сам плагин, кстати, так и не работает с сохранением зон. И его аналог на аленях не компилируется.
 

Tavian

Участник
Сообщения
1,184
Реакции
119
Не знал, что куча свободного времени называется прямыми руками.
Ты пишешь то что плагин не работает должным образом , но это не так.
На каждую карту уходит 2-3 минуты для установки и настройки. В чём твои проблемы ?
 

l.st

Участник
Сообщения
198
Реакции
68
Ты пишешь то что плагин не работает должным образом , но это не так.
На каждую карту уходит 2-3 минуты для установки и настройки. В чём твои проблемы ?
Плагин не сохраняет спавны.
SourceMod Version: 1.10.0.6392

А вот спавны, которые тут выкладывали, он подгружает, но и то, чудеса на виражах:
C:
public void RoundFreezeEnd(Event event, const char[] name, bool dbc)
{
    if(!g_bActive) return;
    else if(GetEngineVersion() == Engine_CSGO) if(GameRules_GetProp("m_bWarmupPeriod")) return;
    
    if(g_bUsePlayers)
    {
        int iTt = 0, iCt = 0;
        for(int i = 1; i <= MaxClients; i++)
        {
            if(IsClientInGame(i) && IsPlayerAlive(i))
            {
                switch(GetClientTeam(i))
                {
                    case 2: iTt++;
                    case 3: iCt++;
                }
            }
        }
        
        g_iNowPlayers = iTt + iCt;
        SpawnItems();
            
        if(g_hArray.Length > 0)
        {
            switch(g_iMessage)
            {
                case 1:
                {
                    FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Notification in hud");
                    SetHudTextParams(0.005, 0.45, 5.0, 255, 255, 255, 255, 0, 1.0, 1.0, 1.0);
                        
                    for(int i = 1; i <= MaxClients; i++)
                    {
                        if(IsClientInGame(i) && !IsFakeClient(i)) ShowHudText(i, -1, g_sTranslite);
                    }
                }
                case 2: PrintToChatAll("%t", "Notification in chat");
            }
        }
    }
    else SpawnItems();
}

То есть проверяем что плагин включен, проверяем, что включена проверка игроков, далее считаем игроков ииии...... за каким-то художником выполняем код:
C:
void SpawnItems()
{
    g_hArray.Clear();
    
    if(g_hKv.GotoFirstSubKey())
    {
        char sModel[128]; float fPos[3], fAng[3]; int iColor, iQuota;
        do
        {
            g_hKv.GetVector("Pos", fPos);
            g_hKv.GetVector("Ang", fAng);
            iColor = g_hKv.GetNum("Invisibility");
            g_hKv.GetString("Model", sModel, sizeof(sModel));
            iQuota = g_hKv.GetNum("Quota");

            CreateItem(sModel, fPos, fAng, iColor, iQuota, _);
        }
        while(g_hKv.GotoNextKey());
    }
    
    g_hKv.Rewind();
}

Из которого на каждый созданные проп вызываем функцию

C:
void CreateItem(const char[] sModel, float fPos[3], float fAng[3], int iColor, int iQuota, int iClient = -1)
{
    if(g_bUsePlayers && iQuota <= g_iNowPlayers) return;
    if(!IsModelPrecached(sModel)) PrecacheModel(sModel, true);

    int iEntity = CreateEntityByName("prop_dynamic_override");
    if(iEntity > 0)
    {
        char sBuffer[32];
        FormatEx(sBuffer, sizeof(sBuffer), "BZMODELID%i_%i", iEntity, iQuota);
        DispatchKeyValue(iEntity, "targetname", sBuffer);
        
        DispatchKeyValue(iEntity, "model", sModel);
        DispatchKeyValue(iEntity, "solid", "6");
        DispatchSpawn(iEntity);
        
        TeleportEntity(iEntity, fPos, fAng, NULL_VECTOR);
        
        SetEntityRenderMode(iEntity, RENDER_TRANSCOLOR);
        SetEntityRenderColor(iEntity, 255, 255, 255, iColor);
        
        g_hArray.Push(iEntity);
        
        if(iClient != -1) PrintToChat(iClient, "%t", "Item successfully created");
    }
}

В которой проверяем на количество игроков столько раз, сколько создано пропов....

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

Tavian

Участник
Сообщения
1,184
Реакции
119
Плагин не сохраняет спавны.
SourceMod Version: 1.10.0.6392

А вот спавны, которые тут выкладывали, он подгружает, но и то, чудеса на виражах:
C:
public void RoundFreezeEnd(Event event, const char[] name, bool dbc)
{
    if(!g_bActive) return;
    else if(GetEngineVersion() == Engine_CSGO) if(GameRules_GetProp("m_bWarmupPeriod")) return;
   
    if(g_bUsePlayers)
    {
        int iTt = 0, iCt = 0;
        for(int i = 1; i <= MaxClients; i++)
        {
            if(IsClientInGame(i) && IsPlayerAlive(i))
            {
                switch(GetClientTeam(i))
                {
                    case 2: iTt++;
                    case 3: iCt++;
                }
            }
        }
       
        g_iNowPlayers = iTt + iCt;
        SpawnItems();
           
        if(g_hArray.Length > 0)
        {
            switch(g_iMessage)
            {
                case 1:
                {
                    FormatEx(g_sTranslite, sizeof(g_sTranslite), "%t", "Notification in hud");
                    SetHudTextParams(0.005, 0.45, 5.0, 255, 255, 255, 255, 0, 1.0, 1.0, 1.0);
                       
                    for(int i = 1; i <= MaxClients; i++)
                    {
                        if(IsClientInGame(i) && !IsFakeClient(i)) ShowHudText(i, -1, g_sTranslite);
                    }
                }
                case 2: PrintToChatAll("%t", "Notification in chat");
            }
        }
    }
    else SpawnItems();
}

То есть проверяем что плагин включен, проверяем, что включена проверка игроков, далее считаем игроков ииии...... за каким-то художником выполняем код:
C:
void SpawnItems()
{
    g_hArray.Clear();
   
    if(g_hKv.GotoFirstSubKey())
    {
        char sModel[128]; float fPos[3], fAng[3]; int iColor, iQuota;
        do
        {
            g_hKv.GetVector("Pos", fPos);
            g_hKv.GetVector("Ang", fAng);
            iColor = g_hKv.GetNum("Invisibility");
            g_hKv.GetString("Model", sModel, sizeof(sModel));
            iQuota = g_hKv.GetNum("Quota");

            CreateItem(sModel, fPos, fAng, iColor, iQuota, _);
        }
        while(g_hKv.GotoNextKey());
    }
   
    g_hKv.Rewind();
}

Из которого на каждый созданные проп вызываем функцию

C:
void CreateItem(const char[] sModel, float fPos[3], float fAng[3], int iColor, int iQuota, int iClient = -1)
{
    if(g_bUsePlayers && iQuota <= g_iNowPlayers) return;
    if(!IsModelPrecached(sModel)) PrecacheModel(sModel, true);

    int iEntity = CreateEntityByName("prop_dynamic_override");
    if(iEntity > 0)
    {
        char sBuffer[32];
        FormatEx(sBuffer, sizeof(sBuffer), "BZMODELID%i_%i", iEntity, iQuota);
        DispatchKeyValue(iEntity, "targetname", sBuffer);
       
        DispatchKeyValue(iEntity, "model", sModel);
        DispatchKeyValue(iEntity, "solid", "6");
        DispatchSpawn(iEntity);
       
        TeleportEntity(iEntity, fPos, fAng, NULL_VECTOR);
       
        SetEntityRenderMode(iEntity, RENDER_TRANSCOLOR);
        SetEntityRenderColor(iEntity, 255, 255, 255, iColor);
       
        g_hArray.Push(iEntity);
       
        if(iClient != -1) PrintToChat(iClient, "%t", "Item successfully created");
    }
}

В которой проверяем на количество игроков столько раз, сколько создано пропов....

А то, что не сохраняет, я даже разбираться не стал, спасибо тому человеку, который выложил готовые конфиги. Я просто поправил логику проверки на количество игроков и всё.
Возможно, когда найдётся время, я сделаю рандом между плантами А и Б при недостаточном количестве игроков.
Чувак , я им пользуюсь год , сурс мод последний стабильный. Ставил на 3 разных сервера и везде работает. Вы вообще жали сохранить ?
 

l.st

Участник
Сообщения
198
Реакции
68
Чувак , я им пользуюсь год , сурс мод последний стабильный. Ставил на 3 разных сервера и везде работает. Вы вообще жали сохранить ?
При сохранении плагин генерирует пустой файл с заданной структурой, но без инфы по пропам.
На карте держит, каждый раунд спавнит, но в конфиг не пишет.
 

Tavian

Участник
Сообщения
1,184
Реакции
119
При сохранении плагин генерирует пустой файл с заданной структурой, но без инфы по пропам.
На карте держит, каждый раунд спавнит, но в конфиг не пишет.
Ну ты же понимаешь , если работает у меня значит плагин рабочий.
 

Innomeni

Участник
Сообщения
320
Реакции
42
Ну ты же понимаешь , если работает у меня значит плагин рабочий.
он не одинок. у меня тоже пропсы сохраняются только для текущей карты, если карту перезапустить - всё пропадает. конфиги не создаются, ошибок нет.
PS: плагин переустанавливал, перекомпилировал и т.д., смысла никакого, итог один: оно не работает.
 
Последнее редактирование:

l.st

Участник
Сообщения
198
Реакции
68
он не одинок. у меня тоже пропсы сохраняются только для текущей карты, если карту перезапустить - всё пропадает. конфиги не создаются, ошибок нет.
PS: плагин переустанавливал, перекомпилировал и т.д., смысла никакого, итог один: оно не работает.
У меня, кстати, заработало, только вот не знаю, что именно помогло. Я скинул конфиги в папку. Потом перезапускал сервер полностью. Потом заметил, что школьники на дд2 начали за теров подсаживаться в тёмку, чтобы плантить на Б, и решил в порядке бреда добавить ещё одну сетку, и вот она сохранилась. То есть помог либо принудительно созданный чужой конфиг, либо рестарт.
 

MyP3uk

Ничего не знающий
Сообщения
145
Реакции
30
он не одинок. у меня тоже пропсы сохраняются только для текущей карты, если карту перезапустить - всё пропадает. конфиги не создаются, ошибок нет.
PS: плагин переустанавливал, перекомпилировал и т.д., смысла никакого, итог один: оно не работает.
не знаю, просто скажу. Вы пропы расставляете во время раундов или делаете бесконечную разминку? Потому что на разминке у меня тоже не хотели сохраняться
 

Innomeni

Участник
Сообщения
320
Реакции
42
не знаю, просто скажу. Вы пропы расставляете во время раундов или делаете бесконечную разминку? Потому что на разминке у меня тоже не хотели сохраняться
фиолетово. и так, и так не сохранялись.
даже права на папку 777 поставил - никакого толку.

UPD: если карта находится в папке ./maps/<any>/, то конфиг автоматически не создается. Чтобы конфиг всё таки создался, надо аналогичную папку создать в папке конфигураций плагина ./configs/blockingzones/maps/<any>/.
Можно считать, что проблема решена (по крайней мере, для меня), и плагин признан рабочим.
 
Последнее редактирование:

vb

Участник
Сообщения
385
Реакции
31
Подскажите, как добавить тег к чату "цветной" ?
Пробывал : "ru" "{GREEN}[БЛОК] {DEFAULT}Недостаточно игроков, чтобы играть на всей карте!"
ничего не получилось.
 

MyP3uk

Ничего не знающий
Сообщения
145
Реакции
30
есть у кого-нибудь знак "Стоп"?
 

tsementox

Участник
Сообщения
13
Реакции
1
Возникла проблема. Когда спавню проп, они спавняться во мне. Как это исправить?
 
Сверху Снизу