The Night Fury

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

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

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

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

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

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

kylc

Не мир плох, плохи люди, обвиняющие во всем мир
Сообщения
924
Реакции
294

Mr_panica

XenForo one 💖
Сообщения
921
Реакции
436
Как вариант)

Да и прикольный плагин этот.
Может тебе в будущем нужна будет зона с другим эффектом при вхождении в неё)
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
@DevBT, а где готовое? На другом сервере?
 

kylc

Не мир плох, плохи люди, обвиняющие во всем мир
Сообщения
924
Реакции
294
Возможно, он. Мерси.
Я вроде скинул рефорк данного плагина)
Вы говорили про написание модуля. Поэтому, увы, думаю этот будет, в моем случае, лучше.
 

Le1T

Участник
Сообщения
247
Реакции
86
Публикация больших блоков текста/изображений
Подскажите, есть ли аналог AMXX плагина для SOURCEMODa?

Суть: обычный режим с закупом, например, спасение заложников. Но при каждом начале раунда выводится слева окно, где можно выбрать оружие (эмка+юсп+граната+флешки; ак47+глок+граната+флешки). Закупаться можно как и обычно. Не путать этот плагин с плагином дезматч.

20201220110837_1.jpg


В кс 1.6 не заходил лет 8. Вчера что-то дернуло, попал на этот сервер, 4 часа прошли незаметно. Плагин супер. Не нужно думать про экономику, а просто стреляться 16х16 :)
 
Последнее редактирование модератором:

Madness aka null138

Участник
Сообщения
713
Реакции
734
Подскажите, есть ли аналог AMXX плагина для SOURCEMODa?

Суть: обычный режим с закупом, например, спасение заложников. Но при каждом начале раунда выводится слева окно, где можно выбрать оружие (эмка+юсп+граната+флешки; ак47+глок+граната+флешки). Закупаться можно как и обычно. Не путать этот плагин с плагином дезматч.

Посмотреть вложение 69281

В кс 1.6 не заходил лет 8. Вчера что-то дернуло, попал на этот сервер, 4 часа прошли незаметно. Плагин супер. Не нужно думать про экономику, а просто стреляться 16х16 :)
это обычно плюшки для тех у кого лицензионная версия игры. так что конечно баланс немного хромает из за того, что больше половины игроков часто с пиратки играют.
но вот держи версию для всех.
ботам выдает рандомно.

C++:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

public void OnPluginStart()
{
    HookEvent("player_spawn", OnPlayerSpawn, EventHookMode_Post);
    HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
}

public void OnPlayerSpawn(Event event, const char[] name, bool broadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
 
    if(IsClientInGame(client) && GetClientTeam(client) > 1 && !IsFakeClient(client))
    {
        SendChooseMenu(client);
    }
}

public void OnRoundStart(Event event, const char[] name, bool broadcast)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if(IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) > 1)
        {
            if(!IsFakeClient(i)) SendChooseMenu(i);
            else GiveWeaponPackage(i, GetRandomInt(1, 2));
        }
    }
}

void SendChooseMenu(int client)
{
    Menu menu = new Menu(Menu_Handler);
 
    menu.SetTitle("Меню оружий");
 
    menu.AddItem("1", "AK47 - GLOCK");
    menu.AddItem("2", "M4A1 - USP");

    menu.Display(client, 10);
}

public int Menu_Handler(Menu menu, MenuAction action, int client, int choice)
{
    if (action == MenuAction_Select)
    {
        char menuItem[4];
        menu.GetItem(choice, menuItem, sizeof(menuItem));
        GiveWeaponPackage(client, StringToInt(menuItem));
    }
    else if (action == MenuAction_End) menu.Close();
}
     
void GiveWeaponPackage(int client, int value)
{
    int projectileSlot = GetPlayerWeaponSlot(client, 3);
    switch(value)
    {
        case 01:
        {
            if(GetPlayerWeaponSlot(client, 0) == -1) GivePlayerItem(client, "weapon_ak47");
            if(GetPlayerWeaponSlot(client, 1) == -1) GivePlayerItem(client, "weapon_glock");
        }
        case 02:
        {
            if(GetPlayerWeaponSlot(client, 0) == -1) GivePlayerItem(client, "weapon_m4a1");
            if(GetPlayerWeaponSlot(client, 1) == -1) GivePlayerItem(client, "weapon_usp");
        }
    }
   
    if(projectileSlot != -1)
    {
        RemovePlayerItem(client, projectileSlot);
        AcceptEntityInput(projectileSlot, "Kill");
    }
           
    GivePlayerItem(client, "weapon_hegrenade");
    GivePlayerItem(client, "weapon_flashbang");
    GivePlayerItem(client, "weapon_flashbang");
}
 
  • Мне нравится
Реакции: Le1T

Le1T

Участник
Сообщения
247
Реакции
86
это обычно плюшки для тех у кого лицензионная версия игры. так что конечно баланс немного хромает из за того, что больше половины игроков часто с пиратки играют.
но вот держи версию для всех.
ботам выдает рандомно.
Этот плагин на том сервере настроен для всех. То есть анбаланса нет, все играют с тем, с чем хотят. И я крайне был удивлен, что 95% игроков играют с пиратки, а не со стима. Так что навряд ли эти плюшки только для лицухи.

Благодарю за код. Плагин работает.
Есть ли желание этот плагин развивать? Потому что он работает, но работает не в совершенстве. Например, меню очень долго вылазит. То есть на него нажать можно, но оно как-то невидимо. Появляется спустя некоторое время. Или если уже в руках есть оружие (например, AWP), то после выбора в меню оружия (AK-47), оно не заменяется. И тд.

Монет бы пару закинул :)
 

Madness aka null138

Участник
Сообщения
713
Реакции
734
Этот плагин на том сервере настроен для всех. То есть анбаланса нет, все играют с тем, с чем хотят. И я крайне был удивлен, что 95% игроков играют с пиратки, а не со стима. Так что навряд ли эти плюшки только для лицухи.

Благодарю за код. Плагин работает.
Есть ли желание этот плагин развивать? Потому что он работает, но работает не в совершенстве. Например, меню очень долго вылазит. То есть на него нажать можно, но оно как-то невидимо. Появляется спустя некоторое время. Или если уже в руках есть оружие (например, AWP), то после выбора в меню оружия (AK-47), оно не заменяется. И тд.

Монет бы пару закинул :)
насчет меню не знаю, возможно какой то баг на стороне сервера или клиента, но вот то что не заменяются оружии - это специально было сделано.
все таки на всякий случай подправил немного код и сделал, чтобы заменяло.

C++:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

public void OnPluginStart()
{
    HookEvent("player_spawn", OnPlayerSpawn, EventHookMode_Post);
    HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
}

public void OnPlayerSpawn(Event event, const char[] name, bool broadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    
    if(IsClientInGame(client) && GetClientTeam(client) > 1 && !IsFakeClient(client))
    {
        SendChooseMenu(client);
    }
}

public void OnRoundStart(Event event, const char[] name, bool broadcast)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if(IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) > 1)
        {
            if(!IsFakeClient(i)) SendChooseMenu(i);
            else GiveWeaponPackage(i, GetRandomInt(1, 2));
        }
    }
}

void SendChooseMenu(int client)
{
    Menu menu = new Menu(Menu_Handler);
    
    menu.SetTitle("Меню оружий");
    
    menu.AddItem("1", "AK47 - GLOCK");
    menu.AddItem("2", "M4A1 - USP");
    
    menu.ExitButton = true;

    menu.Display(client, 10);
}

public int Menu_Handler(Menu menu, MenuAction action, int client, int choice)
{
    if (action == MenuAction_Select)
    {
        char menuItem[4];
        menu.GetItem(choice, menuItem, sizeof(menuItem));
        GiveWeaponPackage(client, StringToInt(menuItem));
    }
    else if (action == MenuAction_End) menu.Close();
}
        
void GiveWeaponPackage(int client, int value)
{
    int slot;
    for(int i = 0; i < 4; ++i)
    {
        slot = GetPlayerWeaponSlot(client, i);
        if(slot != -1)
        {
            if(i == 2) continue;
            
            RemovePlayerItem(client, slot);
            AcceptEntityInput(slot, "Kill");
        }
    }   
    
    GivePlayerItem(client, "weapon_hegrenade");
    GivePlayerItem(client, "weapon_flashbang");
    GivePlayerItem(client, "weapon_flashbang");
    
    switch(value)
    {
        case 01:
        {
            GivePlayerItem(client, "weapon_ak47");
            GivePlayerItem(client, "weapon_glock");
        }
        case 02:
        {
            GivePlayerItem(client, "weapon_m4a1");
            GivePlayerItem(client, "weapon_usp");
        }
    }
}
 
  • Мне нравится
Реакции: Le1T

Harsh USSR ☭

Участник
Сообщения
104
Реакции
2
Привет ребят помогите найти плагин для блокировки клан тегов что бы их совсем не было есть плагин для ксс а для ксго вижу только от частой смены клантега что то такое (сервер csgo steam)
 

Le1T

Участник
Сообщения
247
Реакции
86
насчет меню не знаю, возможно какой то баг на стороне сервера или клиента, но вот то что не заменяются оружии - это специально было сделано.
все таки на всякий случай подправил немного код и сделал, чтобы заменяло.

C++:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

public void OnPluginStart()
{
    HookEvent("player_spawn", OnPlayerSpawn, EventHookMode_Post);
    HookEvent("round_start", OnRoundStart, EventHookMode_PostNoCopy);
}

public void OnPlayerSpawn(Event event, const char[] name, bool broadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));

    if(IsClientInGame(client) && GetClientTeam(client) > 1 && !IsFakeClient(client))
    {
        SendChooseMenu(client);
    }
}

public void OnRoundStart(Event event, const char[] name, bool broadcast)
{
    for (int i = 1; i <= MaxClients; ++i)
    {
        if(IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) > 1)
        {
            if(!IsFakeClient(i)) SendChooseMenu(i);
            else GiveWeaponPackage(i, GetRandomInt(1, 2));
        }
    }
}

void SendChooseMenu(int client)
{
    Menu menu = new Menu(Menu_Handler);

    menu.SetTitle("Меню оружий");

    menu.AddItem("1", "AK47 - GLOCK");
    menu.AddItem("2", "M4A1 - USP");

    menu.ExitButton = true;

    menu.Display(client, 10);
}

public int Menu_Handler(Menu menu, MenuAction action, int client, int choice)
{
    if (action == MenuAction_Select)
    {
        char menuItem[4];
        menu.GetItem(choice, menuItem, sizeof(menuItem));
        GiveWeaponPackage(client, StringToInt(menuItem));
    }
    else if (action == MenuAction_End) menu.Close();
}
  
void GiveWeaponPackage(int client, int value)
{
    int slot;
    for(int i = 0; i < 4; ++i)
    {
        slot = GetPlayerWeaponSlot(client, i);
        if(slot != -1)
        {
            if(i == 2) continue;
      
            RemovePlayerItem(client, slot);
            AcceptEntityInput(slot, "Kill");
        }
    }

    GivePlayerItem(client, "weapon_hegrenade");
    GivePlayerItem(client, "weapon_flashbang");
    GivePlayerItem(client, "weapon_flashbang");

    switch(value)
    {
        case 01:
        {
            GivePlayerItem(client, "weapon_ak47");
            GivePlayerItem(client, "weapon_glock");
        }
        case 02:
        {
            GivePlayerItem(client, "weapon_m4a1");
            GivePlayerItem(client, "weapon_usp");
        }
    }
}

Напишу уже все хотелки :)

1. Плагин из второго кода начал заменять оружия. Все ок. Но кроме USP. Почему-то когда выбираешь эмку, то на эмку заменяется, а вот USP не появляется. Даже если другой пистолет был уже в руках, этот пистолет исчезает, а USP не появляется. (в логах ошибки нет, но вот в консоле сервера пишет NULL Ent in GiveNamedItem!)
2. Можно ли добавить в меню три пункта на выбор оружия:
  1. M4A1-S + USP
  2. AK47 + GLOCK
  3. M4A4 + USP
3. Можно ли сделать так, чтобы плагин включался только на 3-ем раунде? (чтобы дать возможно сыграть без плагина пистолетный раунд и после пистолетного)
4. Сделать так, что если нажать на клавишу закупки (по-умолчанию "b"), то окно с меню закрывалось. Так как можно сначала закупиться, а потом нечаянно нажать на клавишу 1 или 2, то все купленное оружие заменяется на выбранное в окне меню.

Вот видео, где меню долго появляется после респауна и не дается USP.
 
Последнее редактирование:

Madness aka null138

Участник
Сообщения
713
Реакции
734
Напишу уже все хотелки :)

1. Плагин из второго кода начал заменять оружия. Все ок. Но кроме USP. Почему-то когда выбираешь эмку, то на эмку заменяется, а вот USP не появляется. Даже если другой пистолет был уже в руках, этот пистолет исчезает, а USP не появляется. (в логах ошибки нет, но вот в консоле сервера пишет NULL Ent in GiveNamedItem!)
2. Можно ли добавить в меню три пункта на выбор оружия:
  1. M4A1-S + USP
  2. AK47 + GLOCK
  3. M4A4 + USP
3. Можно ли сделать так, чтобы плагин включался только на 3-ем раунде? (чтобы дать возможно сыграть без плагина пистолетный раунд и после пистолетного)
4. Сделать так, что если нажать на клавишу закупки (по-умолчанию "b"), то окно с меню закрывалось. Так как можно сначала закупиться, а потом нечаянно нажать на клавишу 1 или 2, то все купленное оружие заменяется на выбранное в окне меню.

Вот видео, где меню долго появляется после респауна и не дается USP.
я думал игра CS:S. там названии оружии отличаются, от чего и не выдается usp. поставил P2000, ибо вроде это и есть тот USP без глушителя. если что поставлю usp-s.
отследить нажатие кнопки "b" никак, так что просто уменьшил время до автозакрытие меню на 5 секунд.
-
вроде понял почему баг с меню. подправил код.

C++:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

#pragma newdecls required

int iRound = 0;

public void OnPluginStart()
{
    HookEvent("player_spawn", OnPlayerSpawn, EventHookMode_Post);
    HookEvent("round_start", OnRoundStart, EventHookMode_Pre);
}

public void OnPlayerSpawn(Event event, const char[] name, bool broadcast)
{
    if(iRound < 3) return;
    int client = GetClientOfUserId(event.GetInt("userid"));

    if(IsClientInGame(client) && GetClientTeam(client) > 1 && !IsFakeClient(client))
    {
        SendChooseMenu(client);
    }
}

public void OnRoundStart(Event event, const char[] name, bool broadcast)
{
    ++iRound;
}

void SendChooseMenu(int client)
{
    Menu menu = new Menu(Menu_Handler);

    menu.SetTitle("Меню оружий");
    menu.AddItem("1", "M4A1-S - USP");
    menu.AddItem("2", "AK47 - GLOCK");
    menu.AddItem("3", "M4A1 - USP");

    menu.ExitButton = true;

    menu.Display(client, 10);
}

public int Menu_Handler(Menu menu, MenuAction action, int client, int choice)
{
    if (action == MenuAction_Select)
    {
        char menuItem[4];
        menu.GetItem(choice, menuItem, sizeof(menuItem));
        GiveWeaponPackage(client, StringToInt(menuItem));
    }
    else if (action == MenuAction_End) menu.Close();
}

void GiveWeaponPackage(int client, int value)
{
    int slot;
    for(int i = 0; i < 4; ++i)
    {
        slot = GetPlayerWeaponSlot(client, i);
        if(slot != -1)
        {
            if(i == 2) continue;
    
            RemovePlayerItem(client, slot);
            AcceptEntityInput(slot, "Kill");
        }
    }

    GivePlayerItem(client, "weapon_hegrenade");
    GivePlayerItem(client, "weapon_flashbang");
    GivePlayerItem(client, "weapon_flashbang");

    switch(value)
    {
        case 01:
        {
            GivePlayerItem(client, "weapon_m4a1_silencer");
            GivePlayerItem(client, "weapon_usp_silencer");
        }
        case 02:
        {
            GivePlayerItem(client, "weapon_ak47");
            GivePlayerItem(client, "weapon_glock");
        }
        case 03:
        {
            GivePlayerItem(client, "weapon_m4a1");
            GivePlayerItem(client, "weapon_usp_silencer");
        }
    }
}
 
Последнее редактирование:
  • Мне нравится
Реакции: Le1T

Le1T

Участник
Сообщения
247
Реакции
86
вроде понял почему баг с меню. подправил код.

Проверил на чистом сервере. Все равно после 3-4 секунд появляется почему-то.
Лучше пускай меню будет как и было, секунд 10, а то после того как окно вылезло, становится через пару секунд неактивной, не успеваешь нажать :)

1. Плагин включается с первого раунда, а не с третьего, т.е. работает всегда.
2. Вместо USP SILENCER выдается P2000. (очень важно выдать USP, так как с P2000 никто не играет :) )

Если сложно реализовать включение плагина с третьего раунда, может быть, проще сделать так, чтобы первые два раунда плагин предлагал выбрать только пистолет (USP или GLOCK и плюс граната и флешки), а вот начиная с третьего предлагал выбрать эмки или калаш + usp или glock + флешки и гранаты?
 
Последнее редактирование:

Madness aka null138

Участник
Сообщения
713
Реакции
734
Проверил на чистом сервере. Все равно после 3-4 секунд появляется почему-то.
Лучше пускай меню будет как и было, секунд 10, а то после того как окно вылезло, становится через пару секунд неактивной, не успеваешь нажать :)

1. Плагин включается с первого раунда, а не с третьего, т.е. работает всегда.
2. Вместо USP SILENCER выдается P2000. (очень важно выдать USP, так как с P2000 никто не играет :) )

Если сложно реализовать включение плагина с третьего раунда, может быть, проще сделать так, чтобы первые два раунда плагин предлагал выбрать только пистолет (USP или GLOCK и плюс граната и флешки), а вот начиная с третьего предлагал выбрать эмки или калаш + usp или glock + флешки и гранаты?
попробуй измененную версию. выше пост обновил. кое что изменил и в меню.
 

Le1T

Участник
Сообщения
247
Реакции
86
попробуй измененную версию. выше пост обновил. кое что изменил и в меню.
Заработало почти прекрасно :)
Сначала полупрозрачное несколько секунд меню, потом становится нормальным. Я думаю, пойдет :)

Но все равно плагин включается на первом раунде.

Еще баг вылез: если у игрока уже имеются флешки, то в новом раунде, если выбрать оружие, они заново выдаются и падают на пол.
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
если у игрока уже имеются флешки, то в новом раунде, если выбрать оружие, они заново выдаются и падают на пол
Можно в начале раунда очищать все пушки переменной:
mp_equipment_reset_rounds 1
Но это если они не нужны будут.
 
Сверху Снизу