The Night Fury

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

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

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

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

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

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

Vagabond

Участник
Сообщения
43
Реакции
1
Ищу плагин WarShop от godlike. Я нашел его поставил он при вводе команды каждый раз пишет "Ещё не время!". Изменял время, потом компилил, ничего не менялось. Может найдется у кого рабочий.=)
 

andreik

Участник
Сообщения
285
Реакции
53
@Grey83, чот плагин на половину работает, определяет что игрок не застрял, а когда игрок застрял пишет что не может сменить позицию
 

Вложения

  • zastral.sp
    9.4 КБ · Просмотры: 7

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@andreik, ну попробуй так
 

Вложения

  • zastral.sp
    8.4 КБ · Просмотры: 9
  • zastral.smx
    7.6 КБ · Просмотры: 6

Vagabond

Участник
Сообщения
43
Реакции
1
PHP:
#include<sourcemod>
#include<sdktools>
#include<sdkhooks>
#include<csgo_colors>

#pragma semicolon 1
#pragma tabsize 0

#define TIME_READY 120 //Кол-во секунд до разрешения покупки

//Создаем массив названий, classname'ов и цен всех оружий (т.к. плагин для мода Hunger Games, я не стал добавлять сюда AWP, G3SG1 и SCAR-20, но вы можете добавить при желании)


new Time; //создаем глобальную переменную, отвечающую за время
new bool:IsReady = false; //Создаем bool переменную, отвечающую за готовность магазина к покупке.
new String:WeaponName[30][20] = {"Ak-47", "M4A1-S", "M4A4", "Famas", "Galil-AR", "SG-553", "Aug", "Scout", "Mac-10", "Mp9", "Mp7", "Ump45", "P90", "Bizon", "Nova", "XM1014", "MAG-7", "Sawed-Off", "Negev", "M249", "USP", "P2000", "Glock-18", "P250", "Tec9", "Deagle", "Dual Berettas", "Fiveseven", "Cz-75", "Revolver"};
new String:Weapon[30][40] = {"weapon_ak47", "weapon_m4a1_silencer", "weapon_m4a1", "weapon_famas", "weapon_galilar", "weapon_sg556", "weapon_aug", "weapon_ssg08", "weapon_mac10", "weapon_mp9", "weapon_mp7", "weapon_ump45", "weapon_p90", "weapon_bizon", "weapon_nova", "weapon_xm1014", "weapon_mag7", "weapon_sawedoff", "weapon_negev", "weapon_m249", "weapon_usp_silencer", "weapon_hkp2000", "weapon_glock", "weapon_p250", "weapon_tec9", "weapon_deagle", "weapon_elite", "weapon_fiveseven", "weapon_cz75a", "weapon_revolver"};
new Prise[30] = {10000, 11000, 10000, 8000, 8000, 9000, 9000, 16000, 5000, 5000, 6000, 8000, 8000, 7000, 6000, 8000, 7000, 6000, 14000, 14000, 6000, 4000, 4000, 4000, 6000, 7000, 6000, 8000, 7000, 7000};

public Plugin:myinfo =
{
    name    = "WarShop",
    author    = "GodlikE",
    version = "1.1"
};

public OnPluginStart()
{
  RegConsoleCmd("sm_warshop", WarShop);
  RegConsoleCmd("sm_wshop", WarShop);
  RegConsoleCmd("sm_war", WarShop);
  HookEvent("round_start", round_start);
  HookEvent("round_end", round_end);
}

public Action:round_start(Handle:event, const String:name[], bool:dontBroadcast)
{
  
    IsReady = false;
    CreateTimer(1.0, Wait_Timer, TIMER_FLAG_NO_MAPCHANGE); //Создаем таймер, который вызывает сам себя, и отсчитываем по секундам время разрешения покупки в магазине
}
public Action:Wait_Timer(Handle:timer)
{
    if(Time == TIME_READY)
    {
        if(!IsReady)
        {
            new flags;
            for(new i = 1; i<=MaxClients; i++)
            {
                if(IsClientInGame(i) && IsPlayerAlive(i))
                {
                    flags = GetUserFlagBits(i);
                    if((flags & ADMFLAG_ROOT) || (flags & ADMFLAG_CUSTOM5)) //проверяем флаги игрока (машазин доступен только випам и рут-админам). В данном плагине випка настроена на флаг CUSTOM5
                    {
                        CGOPrintToChat(i, "{LIGHTRED}[WarShop] {GREEN}Теперь вы можете использовать магазин!"); //Если вип или админ - оповещаем об "открытии" магазина
                    }
                }
            }
            IsReady = true;
        }
        else IsReady = false;
    }
    else CreateTimer(1.0, Wait_Timer, TIMER_FLAG_NO_MAPCHANGE);
}

public Action:round_end(Handle:event, const String:name[], bool:dontBroadcast)
{
    IsReady = true;  //Ставим значение переменной Time = время_открытия-1, чтобы таймер не дублировался, когда раунд кончается до открытия магазина.
    Time = TIME_READY-1;     //Получится так, что таймер проработает еще одну итерацию и закроется, не выдав ничего в чат                     
}

 
public Action:WarShop(client, args)
{
    if(IsClientInGame(client))
    {
        new flags = GetUserFlagBits(client);
        if((client) && ((flags & ADMFLAG_CUSTOM5) || (flags & ADMFLAG_ROOT))) //Если у игрока есть випка или админка и магазин открыт, то создаем панель
        {
            if(IsReady)
            {
                WarMenu(client);
            }
            else CGOPrintToChat(client, "{LIGHTRED}[WarShop] {RED}Еще не время!");
        }
    }
}

public WarMenu(client) //Создаем главную панель
{
    new Handle:panel = CreatePanel();
    SetPanelTitle(panel, "War Shop\n \n");
    DrawPanelItem(panel, "Купить\n");
    DrawPanelItem(panel, "Выход");
    SendPanelToClient(panel, client, Select_Main, 0);
    CloseHandle(panel);
}

public Select_Main(Handle:mainmenu, MenuAction:action, client, option)
{
    if (action == MenuAction_Select && IsClientInGame(client))
    {
        if(option == 1)
        {
            WarList(client);            //Если тыкнули кнопку "Купить", то создаем меню
            CloseHandle(mainmenu);
        }
        if(option == 2)
        {
            CloseHandle(mainmenu);
        }
    }
}

public WarList(client)
{
    new Handle:menu = CreateMenu(Select_WarList); //Создаем меню, параметром функции является ответный блок
    SetMenuTitle(menu, "War Shop\n");
    for (new i = 0; i <= 29; i++)     //Пробегаем в цикле по всем элементам наших массивов с оружиями
    {
        new String:buf[25], String:param[3];
        Format(buf, 25, "%s [$%d]", WeaponName[i], Prise[i]);        //Формируем строку типа "Название_оружия [цена_оружия]"
        IntToString(i, param, 3); 
        AddMenuItem(menu, param, buf);    //Создаем итем в меню, передаем в него индекс текущего оружия (индекс массива) и называем его нашей формированной строкой
    }
    DisplayMenu(menu, client, 0); //отправляем меню клиенту
}

public Select_WarList(Handle:menu, MenuAction:action, client, option)
{
    if (action == MenuAction_End)
    {
        CloseHandle(menu);     //Если нажата кнопка выхода, закрываем handle, чтобы не произошло утечки памяти
        return;
    }
    if (action != MenuAction_Select) return;
    new count, String:param[3];
    GetMenuItem(menu, option, param, 30);  //Получаем итем, на который тыкнули
    count = StringToInt(param, 10); //Т.к. элемент (индекс нашего оружия), который передается вместе с итемом, является строкой, нужно перевести его в число
    new cash = GetEntProp(client, Prop_Send, "m_iAccount"); //получаем количество денег игрока
  
    if(cash >= Prise[count]) //Если у игрока достаточно денег, выдаем ему оружие по индексу массива
    {
        GivePlayerItem(client,Weapon[count]);
      
        cash-=Prise[count];                                        // Отнимаем у игрока деньги
        SetEntProp(client, Prop_Send, "m_iAccount", cash);        //
      
        new String:buf2[200];
        Format(buf2, 200, "{LIGHTRED}[WarShop] {GREEN}Вы успешно купили оружие {LIGHTBLUE}%s{GREEN}!", WeaponName[count]);
        CGOPrintToChat(client, buf2);
    }
    else
    {
        CGOPrintToChat(client, "{LIGHTRED}[WarShop] {RED}У вас недостаточно денег!");
    } 
}

Или посоветуйте что-ли как исправить чтобы открывало магазин. А то каждый раз пишет "Еще не время" И все.
 

Вложения

  • WarShop.smx
    8 КБ · Просмотры: 3
  • WarShop.sp
    8.2 КБ · Просмотры: 4

andreik

Участник
Сообщения
285
Реакции
53
@Grey83, нет все также было бы не плохо чтоб когда застрял тебя телепортировало в начало карты на респавн
 

dimahail

Участник
Сообщения
101
Реакции
5
Мод: Deathrun
Как сделать чтобы террористу предлагалось пропустить контр-террористов ?
Пример : Пропустить контр-террористов? Да Нет
И если он выбирает да , то он не может нажимать на кнопки(активировать ловушки )
или есть плагин такой ?
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Мод: Deathrun
Как сделать чтобы террористу предлагалось пропустить контр-террористов ?
Пример : Пропустить контр-террористов? Да Нет
И если он выбирает да , то он не может нажимать на кнопки(активировать ловушки )
или есть плагин такой ?
[DR] Skip
 

WodiX

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

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Vagabond, всё правильно: ты не изменяешь значение переменной Time в каллбэке таймера Wait_Timer (и почему не сделать просто повторяющийся таймер?), поэтому так и пишет
 

Vagabond

Участник
Сообщения
43
Реакции
1
@Vagabond, всё правильно: ты не изменяешь значение переменной Time в каллбэке таймера Wait_Timer (и почему не сделать просто повторяющийся таймер?), поэтому так и пишет
Action:Wait_Timer(Handle:timer). Вместо (Handle:timer) ставить секунды? Прости что нагружаю, просто не особо шарю.:D
 

Vagabond

Участник
Сообщения
43
Реакции
1
Решил проблему =)
 
Последнее редактирование:

dimahail

Участник
Сообщения
101
Реакции
5
там нужно писать !skip или !propusk в чат , но ни кто не знает о том , что можно пропустить .
А в чате писать что есть пропуск не резон . Как сделать менюшку для этого плагина ? чтоб Т предлагалось пропустить кт и там были варианты ответа : да нет
и когда он жал на да , чтоб в чат писалось !propusk или !skip
а если нет , то ничего не происходило .
Как это сделать ?
 

Djgadzilla

Участник
Сообщения
14
Реакции
0
Ребят помогите поправить ошибку в логах
Displaying call stack trace for plugin "screenoverlay.smx": L 01/11/2018 - 00:11:10: [SM] [0] Line 20, screenoverlay.sp::off() L 01/11/2018 - 00:17:42: Error log file session closed.

#include <sourcemod>

public OnPluginStart()
{
HookEvent("player_death",PlayerDeath);
}

public Action:PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
new client;
client = GetClientOfUserId(GetEventInt(event, "userid"));

ClientCommand(client, "r_screenoverlay debug/yuv.vmt");
CreateTimer(3.0, off, client);
return Plugin_Continue;
}

public Action:off(Handle:timer, any:client)
{
ClientCommand(client, "r_screenoverlay 0");
}
 

Вложения

  • screenoverlay.sp
    497 байт · Просмотры: 7

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Djgadzilla, а где ещё штук 5 строк основной информации об ошибке?
 
Сверху Снизу