The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
Я прекрасно понимаю, что часто названия плагинов можно очень просто забыть. Однако это становится причиной постоянного создания тем рода "помогите найти плагин X".

Так вот, чтобы содержать форум в порядке и чистоте, поступим следующим образом:
  1. В дальнейшем создаваемые темы с "помогите найти плагин" будут удаляться, а авторам — выдаваться предупреждения
  2. Если Вы захотите найти плагин, то сначала воспользуйтесь поиском

Если всё же не удалось найти плагин, заполните следующую форму и ответьте в этой теме:

  • Функции плагина
  • Мод/Игра, которая использует этот плагин

Прежде чем отвечать в теме, воспользуйтесь поиском гугла, который почти всегда находит нужное.

Старые темы будут перемещены в корзину.
 
Последнее редактирование модератором:

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@purple, я когда-то писал разделение на команды
PHP:
void RandomColor(int iClient)
{
    Panel randomcolor = new Panel();
    randomcolor.SetTitle("Меню командира\n \n");
    randomcolor.DrawItem("Снять разделение\n \n");
    randomcolor.DrawItem("Разделить на 2 команды");
    randomcolor.DrawItem("Разделить на 3 команды");
    randomcolor.DrawItem("Разделить на 4 команды");
    randomcolor.Send(iClient, Select_Randomcolor, 9);
    delete randomcolor;

    ClientCommand(iClient, "playgamesound items/nvg_off.wav");
}

public int Select_Randomcolor(Menu panel, MenuAction action, int iClient, int option)
{
    if(iClient == Warden && IsPlayerAlive(iClient) && action == MenuAction_Select && 0 < option < 6)
    {
        switch(option)
        {
            case 1:
            {
                SetClientColorAll(RENDER_TRANSCOLOR);
                RandomColor(iClient);
            }
            case 5:    CommanderPanel2(iClient);
            default:
            {
                DataPack dp = new DataPack();
                int count = GetTeamPlayerCount(dp, 2, 1, true);
                dp.Reset();

                if(!count)
                {
                    PrintToChat(iClient, "\x07FFFFFFGA:Jail » \x07EC002FНедостаточно игроков в команде террористов");
                    return;
                }
                if(count % option)
                {    // может сразу это в панельке писать?
                    PrintToChatAll("\x07FFFFFFGA:Jail » \x07EC002FНельзя поделить не ровное количество");
                    return;
                }

                int color, index;
                for(int i; i <= count; i++)
                {
                    if(!IsClientInGame((index = dp.ReadCell())) || !IsPlayerAlive(index)) continue;

                    switch(color % option)
                    {
                        case 0:
                        {
                            SetClientColor(index, RENDER_TRANSCOLOR, _, 0, 0);
                            PrintToChat(index, "\x07FFFFFFGA:Jail » \x07EC002FВы в красной команде!");
                        }
                        case 1:
                        {
                            SetClientColor(index, RENDER_TRANSCOLOR, 23, 0, _);
                            PrintToChat(index, "\x07FFFFFFGA:Jail » \x072FCFC4Вы в синий команде!");
                        }
                        case 2:
                        {
                            SetClientColor(index, RENDER_TRANSCOLOR, _, _, 0);
                            PrintToChat(index, "\x07FFFFFFGA:Jail » \x07FFFC00Вы в жёлтой команде!");
                        }
                        case 3:
                        {
                            SetClientColor(index, RENDER_TRANSCOLOR, 250, 128, 114);
                            PrintToChat(index, "\x07FFFFFFGA:Jail » \x0720ff00Вы в зеленой команде!");
                        }
                    }
                    color++;
                }

                delete dp;
                RandomColor(iClient);
                PrintToChatAll("Командир %N разделил на %d команд", iClient, option);
            }
        }
    }
}

int GetTeamPlayerCount(DataPack dp, int team, int alive = 2, bool bot = false)
{
    if(!(0 < team < 4)) return 0;

    dp.Reset();

    int count;
    for(int i = 1; i <= MaxClients; i++)
    {
        if(!IsClientInGame(i) || (!bot && IsFakeClient(i)) || (!alive && IsPlayerAlive(i)) || (alive == 1 && !IsPlayerAlive(i)) || GetClientTeam(i) != team)
        continue;

        dp.WriteCell(i);
        count++;
    }

    return count;
}

stock void SetClientColorAll(RenderMode mode, int r = 255, int g = 255, int b = 255, int a = 255)
{
    for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && IsPlayerAlive(i)) SetClientColor(i, mode, r, g, b, a);
}
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Плагин, способный имитировать реальное кол-во людей на сервере в браузере серверов.
 

gtixon

Участник
Сообщения
1,078
Реакции
401
@purple, я когда-то писал разделение на команды
PHP:
void RandomColor(int iClient)
{
    Panel randomcolor = new Panel();
    randomcolor.SetTitle("Меню командира\n \n");
    randomcolor.DrawItem("Снять разделение\n \n");
    randomcolor.DrawItem("Разделить на 2 команды");
    randomcolor.DrawItem("Разделить на 3 команды");
    randomcolor.DrawItem("Разделить на 4 команды");
    randomcolor.Send(iClient, Select_Randomcolor, 9);
    delete randomcolor;

    ClientCommand(iClient, "playgamesound items/nvg_off.wav");
}

public int Select_Randomcolor(Menu panel, MenuAction action, int iClient, int option)
{
    if(iClient == Warden && IsPlayerAlive(iClient) && action == MenuAction_Select && 0 < option < 6)
    {
        switch(option)
        {
            case 1:
            {
                SetClientColorAll(RENDER_TRANSCOLOR);
                RandomColor(iClient);
            }
            case 5:    CommanderPanel2(iClient);
            default:
            {
                DataPack dp = new DataPack();
                int count = GetTeamPlayerCount(dp, 2, 1, true);
                dp.Reset();

                if(!count)
                {
                    PrintToChat(iClient, "\x07FFFFFFGA:Jail » \x07EC002FНедостаточно игроков в команде террористов");
                    return;
                }
                if(count % option)
                {    // может сразу это в панельке писать?
                    PrintToChatAll("\x07FFFFFFGA:Jail » \x07EC002FНельзя поделить не ровное количество");
                    return;
                }

                int color, index;
                for(int i; i <= count; i++)
                {
                    if(!IsClientInGame((index = dp.ReadCell())) || !IsPlayerAlive(index)) continue;

                    switch(color % option)
                    {
                        case 0:
                        {
                            SetClientColor(index, RENDER_TRANSCOLOR, _, 0, 0);
                            PrintToChat(index, "\x07FFFFFFGA:Jail » \x07EC002FВы в красной команде!");
                        }
                        case 1:
                        {
                            SetClientColor(index, RENDER_TRANSCOLOR, 23, 0, _);
                            PrintToChat(index, "\x07FFFFFFGA:Jail » \x072FCFC4Вы в синий команде!");
                        }
                        case 2:
                        {
                            SetClientColor(index, RENDER_TRANSCOLOR, _, _, 0);
                            PrintToChat(index, "\x07FFFFFFGA:Jail » \x07FFFC00Вы в жёлтой команде!");
                        }
                        case 3:
                        {
                            SetClientColor(index, RENDER_TRANSCOLOR, 250, 128, 114);
                            PrintToChat(index, "\x07FFFFFFGA:Jail » \x0720ff00Вы в зеленой команде!");
                        }
                    }
                    color++;
                }

                delete dp;
                RandomColor(iClient);
                PrintToChatAll("Командир %N разделил на %d команд", iClient, option);
            }
        }
    }
}

int GetTeamPlayerCount(DataPack dp, int team, int alive = 2, bool bot = false)
{
    if(!(0 < team < 4)) return 0;

    dp.Reset();

    int count;
    for(int i = 1; i <= MaxClients; i++)
    {
        if(!IsClientInGame(i) || (!bot && IsFakeClient(i)) || (!alive && IsPlayerAlive(i)) || (alive == 1 && !IsPlayerAlive(i)) || GetClientTeam(i) != team)
        continue;

        dp.WriteCell(i);
        count++;
    }

    return count;
}

stock void SetClientColorAll(RenderMode mode, int r = 255, int g = 255, int b = 255, int a = 255)
{
    for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && IsPlayerAlive(i)) SetClientColor(i, mode, r, g, b, a);
}
Так просто? Я его еще 2 месяца назад искал))) Темы делал, тут писал...

А как в меню кмд добавить? И как в файле jwp.modul... изменять?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Я его еще 2 месяца назад искал
хм, не заметил
но я этот код писал в ноябре 2017 года
--- Добавлено позже ---
А как в меню кмд добавить?
дописать в плагин (и нужно делать доп. пункт в основном меню, здесь этой части кода нет, т.к. я хз какое у вас меню)
 

DismoraL

Участник
Сообщения
183
Реакции
47
Ищу актуальный АdminSentinel или его аналоги с другим названием, ибо он сам не обновлялся с 2012 года, судя по темам что есть на форуме и аллиде.
Старая версия работает не совсем корректно (пишет перед ником лишний код цвета).
 

Вложения

  • kdlp-adminsentinel.sp
    2.7 КБ · Просмотры: 7

DismoraL

Участник
Сообщения
183
Реакции
47

Вложения

  • iKRhV_UaD-U[1].jpg
    iKRhV_UaD-U[1].jpg
    37.4 КБ · Просмотры: 58

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@DismoraL, цвета можно пофиксить (перекачай пофикшенный файл, перезалил уже), а вот с переводом будет сложнее
 

Redddactor

Участник
Сообщения
67
Реакции
2
Ищу плагин который будет автоматически выдавать админам префиксы, в зависимости от их флага
 

41kg

Участник
Сообщения
165
Реакции
24
Нужен плагин, считающий онлайн админов.
Так же видел плагин, учитывающий время прохождения карты(mg)
Помогите пожалуйста найти :)
 
Сверху Снизу