Вопрос по плагину OverlaySystem

fs11

Участник
Сообщения
15
Реакции
3
Операционная система
Linux
Добрый вечер господа. Я к вам с таким вопросом. Поставил на сервере CS:GO данный плагин [OverlaySystem] никак не могу разобраться с параметрами чтобы оверлейка работала всегда. Не только в конце раунда.

Оффтоп
Сообщения автоматически склеены:

 
Последнее редактирование:

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Там нет такого, да и в любом случае, я думаю у Вас стоят другие плагины, которые могут "пускать" свои оверлее и перебивать. Так что тут придется дописывать таймер, который будет включать Ваш оверлей каждое N время.
1686774082671.png
 

fs11

Участник
Сообщения
15
Реакции
3
Там нет такого, да и в любом случае, я думаю у Вас стоят другие плагины, которые могут "пускать" свои оверлее и перебивать. Так что тут придется дописывать таймер, который будет включать Ваш оверлей каждое N время.
Посмотреть вложение 112494
можешь подсказать как это можно преобразовать? Я хочу чтобы оверлей работал всегда. Можно ли как то это образовать?
 

google>

oldgamers
Сообщения
373
Реакции
210
можешь подсказать как это можно преобразовать? Я хочу чтобы оверлей работал всегда. Можно ли как то это образовать?

миниплухен:
#pragma semicolon 1
#pragma newdecls required
#include <sdktools>

Handle g_iTimer;

public void OnPluginStart()
{
    HookEvent("round_start", EventRoundStart, EventHookMode_PostNoCopy);
    HookEvent("round_end", EventRoundEnd, EventHookMode_PostNoCopy);
}

public void OnMapStart()
{
    PrecacheDecal("dir_to/you_overlay.vmt", true);
    PrecacheDecal("dir_to/you_overlay.vtf", true);
    AddFileToDownloadsTable("materials/dir_to/you_overlay.vtf");
    AddFileToDownloadsTable("materials/dir_to/you_overlay.vmt");
}

public void EventRoundStart(Event event, const char[] name, bool dontBroadcast)
{
    delete g_iTimer;
    g_iTimer = CreateTimer(5.0, Timer_overlay, _, TIMER_REPEAT);
}

public void EventRoundEnd(Event event, const char[] name, bool dontBroadcast)
{
    delete g_iTimer;
   
    for (int i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && !IsFakeClient(i))
        {
            ClientCommand(i, "r_screenoverlay \"%s\"", "");
        }
    }
}

public Action Timer_overlay(Handle timer)
{  
    for (int i = 1; i <= MaxClients; i++)
    {
        if (IsClientInGame(i) && !IsFakeClient(i) /* GetClientTeam(i) > 1 && IsPlayerAlive(i)*/)
        {
            ClientCommand(i, "r_screenoverlay \"%s\"", "dir_to/you_overlay.vmt");
        }
    }
    return Plugin_Continue;
}

public void OnMapEnd()
{
    delete g_iTimer;
}
 
  • Мне нравится
Реакции: fs11

suremiur

♂ overlay master ♂
Сообщения
537
Реакции
585
Ставишь оверлей при смерти, указываешь во времени "0", что означает всегда, пока игрок мертв.
Ставишь оверлей при спавне, указываешь во времени "0", что означает всегда, пока игрок жив. (правда говорят что оверлей при спавне почему-то сломался в последнее время)
Если перебивающих оверлеев нет, то будет работать как задумывалось. Если есть перебивающие, то оверлей будет обновляться только при спавне и при смерти.
Почему так? Потому что я не могу продумать работу плагина. Он содержит в себе много видов оверлея (особенно новая, еще не выпущенная версия), кто-то использует всего один, кто-то использует все. Потому постоянно запущенный таймер будет перебивать какой-то из других. Сбивается логика плагина. Из вариантов вижу, создать в плагине еще один вид "Постоянный", который будет вот так с зацикленным таймером.
Используйте код сверху, потому что в ближайшее время не смогу обновить плагин. Ох уж этот завод и ночные смены.
 
Сверху Снизу