Иконка ресурса

[Shop] Fast Defuse C4 0.1

Илья Егоров

Участник
Сообщения
11
Реакции
3
Быстрое разминирование бомбы, за 1-2 секунды
attachment.php

Создает файл shop_s4.cfg (cstrike/cfg/shop/shop_s4.cfg)

sm_shop_s4_price 10000 // по умолчанию - Стоимость покупки.
sm_shop_s4_sellprice 8000 // по умолчанию - Стоимость продажи.
sm_shop_s4_duration 86400 //по умолчанию - Длительность в секундах после активации покупки

shop_fast_s4.smx (расположение cstrike/addons/sourcemod/plugins)
shop_fast_s4.sp (расположение css/1/cstrike/addons/sourcemod/scripting)

Расположение самой покупки в каталоге Доп. от Unnell

Пару строк скопировано с wS
За основу был взят плагин RIKO
 

Вложения

  • maxresdefault.jpg
    maxresdefault.jpg
    89.8 КБ · Просмотры: 563
Последнее редактирование модератором:

FlapJack

Участник
Сообщения
93
Реакции
2
Добавь еще для террористов что бы можно было за 1-2 сек. ставить бомбу будет круто
 

fallen1994

Участник
Сообщения
2,357
Реакции
538
public bomb_begindefuse(Handle:event, const String:name[], bool:silent)
{
if (g_bHasGrav[GetClientOfUserId(GetEventInt(event, "userid"))])
CreateTimer(0.5, wS_Timer, _, TIMER_FLAG_NO_MAPCHANGE);
}

public Action:wS_Timer(Handle:timer)
{
new c4 = EntRefToEntIndex(g_C4Ref);
if (c4 > 0) SetEntPropFloat(c4, Prop_Send, "m_flDefuseCountDown", 1.0);
return Plugin_Stop;
}
чего то я не догоняю
 
Последнее редактирование:

hirowatch

Живет ХЛмод`ом
Сообщения
2,722
Реакции
1,634
  • Автор ресурса
  • #6

Грозный

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

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Много переписывать там,если сделать на быструю установку бомбы?)
А то я подобного не находил просто,либо плохо искал)
 

babka68

Участник
Сообщения
2,124
Реакции
956
- Новый синтаксис - Переписал отлов изменения ConVar
Проверьте кто может на работоспособность
shop_fast_s4:
#include <sdktools_functions>
#include <shop>

#pragma semicolon 1
#pragma newdecls required

bool g_bHasGrav[MAXPLAYERS + 1];
ItemId g_iID;

// ConVar
int g_Price;
int g_iSellPrice;
int g_iDuration;
//
int g_C4Ref;

public Plugin myinfo =
{
    name = "[Shop] Fast Defuse C4",
    author = "unnell, (fix babka68)",
    version = "0.1",
    url = "http://www.unne.ru/"
};

public void OnPluginStart()
{
    ConVar cvar;
  
    cvar = CreateConVar("sm_shop_s4_price", "10000", "Стоимость покупки.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangePrice);
    g_Price = cvar.IntValue;
  
    cvar = CreateConVar("sm_shop_s4_sellprice", "8000", "Стоимость продажи.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangeSellprice);
    g_iSellPrice = cvar.IntValue;
  
    cvar = CreateConVar("sm_shop_s4_duration", "86400", "Длительность в секундах.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangeDuration);
    g_iDuration = cvar.IntValue;
  
    AutoExecConfig(true, "shop_s4", "shop");
  
    HookEvent("bomb_planted", bomb_planted, EventHookMode_PostNoCopy);
    HookEvent("bomb_begindefuse", bomb_begindefuse, EventHookMode_Post);
  
    if (Shop_IsStarted())Shop_Started();
}

public void OnConVarChangePrice(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_Price = cvar.IntValue;
  
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemPrice(g_iID, cvar.IntValue);
    }
}

public void OnConVarChangeSellprice(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_iSellPrice = cvar.IntValue;
  
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemSellPrice(g_iID, cvar.IntValue);
    }
}

public void OnConVarChangeDuration(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_iDuration = cvar.IntValue;
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemValue(g_iID, cvar.IntValue);
    }
}

public void OnPluginEnd()
{
    Shop_UnregisterMe();
}

public void Shop_Started()
{
    CategoryId category_id = Shop_RegisterCategory("unnell", "Доп. от Unnell", "");
  
    if (Shop_StartItem(category_id, "shop_s4"))
    {
        Shop_SetInfo("Быстр. обезвреживание С4", "Быстрое обезвреживание бомбы!", g_Price, g_iSellPrice, Item_Togglable, g_iDuration);
        Shop_SetCallbacks(OnItemRegistered, OnGravUsed);
        Shop_EndItem();
    }
}

public void OnItemRegistered(CategoryId category_id, char[] category, char[] item, ItemId item_id)
{
    g_iID = item_id;
}

public void Shop_OnAuthorized(int iClient)
{
    g_bHasGrav[iClient] = false;
}

public ShopAction OnGravUsed(int iClient, CategoryId category_id, const char[] category, ItemId item_id, const char[] item, bool isOn, bool elapsed)
{
    if (isOn || elapsed)
    {
        g_bHasGrav[iClient] = false;
        PrintToChat(iClient, "Быстрая рязрядка С4(бомбы) ВЫКЛючена!");
        return Shop_UseOff;
    }
    PrintToChat(iClient, "Быстрая рязрядка С4(бомбы) ВКЛючена!");
    g_bHasGrav[iClient] = true;
    return Shop_UseOn;
}


public void bomb_planted(Event event, const char[] name, bool silent)
{
    int c4 = FindEntityByClassname(-1, "planted_c4");
    if (c4 > 0)g_C4Ref = EntIndexToEntRef(c4);
}

public void bomb_begindefuse(Event event, const char[] name, bool silent)
{
    if (g_bHasGrav[GetClientOfUserId(event.GetInt("userid"))])
        CreateTimer(0.5, wS_Timer, _, TIMER_FLAG_NO_MAPCHANGE);
}

public Action wS_Timer(Handle timer)
{
    int c4 = EntRefToEntIndex(g_C4Ref);
    if (c4 > 0)SetEntPropFloat(c4, Prop_Send, "m_flDefuseCountDown", 1.0);
    return Plugin_Stop;
}
 

Грозный

Участник
Сообщения
60
Реакции
9
- Новый синтаксис - Переписал отлов изменения ConVar
Проверьте кто может на работоспособность
shop_fast_s4:
#include <sdktools_functions>
#include <shop>

#pragma semicolon 1
#pragma newdecls required

bool g_bHasGrav[MAXPLAYERS + 1];
ItemId g_iID;

// ConVar
int g_Price;
int g_iSellPrice;
int g_iDuration;
//
int g_C4Ref;

public Plugin myinfo =
{
    name = "[Shop] Fast Defuse C4",
    author = "unnell, (fix babka68)",
    version = "0.1",
    url = "http://www.unne.ru/"
};

public void OnPluginStart()
{
    ConVar cvar;
 
    cvar = CreateConVar("sm_shop_s4_price", "10000", "Стоимость покупки.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangePrice);
    g_Price = cvar.IntValue;
 
    cvar = CreateConVar("sm_shop_s4_sellprice", "8000", "Стоимость продажи.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangeSellprice);
    g_iSellPrice = cvar.IntValue;
 
    cvar = CreateConVar("sm_shop_s4_duration", "86400", "Длительность в секундах.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangeDuration);
    g_iDuration = cvar.IntValue;
 
    AutoExecConfig(true, "shop_s4", "shop");
 
    HookEvent("bomb_planted", bomb_planted, EventHookMode_PostNoCopy);
    HookEvent("bomb_begindefuse", bomb_begindefuse, EventHookMode_Post);
 
    if (Shop_IsStarted())Shop_Started();
}

public void OnConVarChangePrice(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_Price = cvar.IntValue;
 
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemPrice(g_iID, cvar.IntValue);
    }
}

public void OnConVarChangeSellprice(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_iSellPrice = cvar.IntValue;
 
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemSellPrice(g_iID, cvar.IntValue);
    }
}

public void OnConVarChangeDuration(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_iDuration = cvar.IntValue;
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemValue(g_iID, cvar.IntValue);
    }
}

public void OnPluginEnd()
{
    Shop_UnregisterMe();
}

public void Shop_Started()
{
    CategoryId category_id = Shop_RegisterCategory("unnell", "Доп. от Unnell", "");
 
    if (Shop_StartItem(category_id, "shop_s4"))
    {
        Shop_SetInfo("Быстр. обезвреживание С4", "Быстрое обезвреживание бомбы!", g_Price, g_iSellPrice, Item_Togglable, g_iDuration);
        Shop_SetCallbacks(OnItemRegistered, OnGravUsed);
        Shop_EndItem();
    }
}

public void OnItemRegistered(CategoryId category_id, char[] category, char[] item, ItemId item_id)
{
    g_iID = item_id;
}

public void Shop_OnAuthorized(int iClient)
{
    g_bHasGrav[iClient] = false;
}

public ShopAction OnGravUsed(int iClient, CategoryId category_id, const char[] category, ItemId item_id, const char[] item, bool isOn, bool elapsed)
{
    if (isOn || elapsed)
    {
        g_bHasGrav[iClient] = false;
        PrintToChat(iClient, "Быстрая рязрядка С4(бомбы) ВЫКЛючена!");
        return Shop_UseOff;
    }
    PrintToChat(iClient, "Быстрая рязрядка С4(бомбы) ВКЛючена!");
    g_bHasGrav[iClient] = true;
    return Shop_UseOn;
}


public void bomb_planted(Event event, const char[] name, bool silent)
{
    int c4 = FindEntityByClassname(-1, "planted_c4");
    if (c4 > 0)g_C4Ref = EntIndexToEntRef(c4);
}

public void bomb_begindefuse(Event event, const char[] name, bool silent)
{
    if (g_bHasGrav[GetClientOfUserId(event.GetInt("userid"))])
        CreateTimer(0.5, wS_Timer, _, TIMER_FLAG_NO_MAPCHANGE);
}

public Action wS_Timer(Handle timer)
{
    int c4 = EntRefToEntIndex(g_C4Ref);
    if (c4 > 0)SetEntPropFloat(c4, Prop_Send, "m_flDefuseCountDown", 1.0);
    return Plugin_Stop;
}
1724054145483.png
 

7pElllHuK

Участник
Сообщения
1,416
Реакции
465
привет!
Подправишь на быструю установку?
Если время конечно будет.
Раз по коду там немного)
Заранее благодарю
Проверяй, если работает, перепишу на новый синтаксис, старый не нравится мне 😢
 

Вложения

  • shop_fast_plant.smx
    5 КБ · Просмотры: 6
  • shop_fast_plant.sp
    2.9 КБ · Просмотры: 15

Synd1qate

Участник
Сообщения
745
Реакции
259
Сообщения автоматически склеены:

привет!
Подправишь на быструю установку?
Если время конечно будет.
Раз по коду там немного)
Заранее благодарю
Подключил км цвета, при установке будет писать в чате кто установил бомбу через фастплент

тык:
#include <sdktools_functions>
#include <shop>

#include <clientmod>        
#include <clientmod/multicolors>

#pragma semicolon 1
#pragma newdecls required

bool g_fastplant[MAXPLAYERS + 1];
ItemId g_iID;

// ConVar
int g_Price;
int g_iSellPrice;
int g_iDuration;
//

public Plugin myinfo =
{
    name = "[Shop] Fast Plant C4",
    author = "_ws, (shop Synd1qate)",
    version = "0.1",
    url = "https://vk.com/syndiqate"
};

public void OnPluginStart()
{
    ConVar cvar;
 
    cvar = CreateConVar("sm_shop_s4plant_price", "10000", "Стоимость покупки.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangePrice);
    g_Price = cvar.IntValue;
 
    cvar = CreateConVar("sm_shop_s4plant_sellprice", "8000", "Стоимость продажи.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangeSellprice);
    g_iSellPrice = cvar.IntValue;
 
    cvar = CreateConVar("sm_shop_s4plant_duration", "86400", "Длительность в секундах.", _, true, 0.0, true, 1000000.0);
    cvar.AddChangeHook(OnConVarChangeDuration);
    g_iDuration = cvar.IntValue;

    AutoExecConfig(true, "shop_s4plant", "shop");

    HookEvent("bomb_beginplant", BombBP, EventHookMode_Post);

    if (Shop_IsStarted())Shop_Started();
}

public void OnConVarChangePrice(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_Price = cvar.IntValue;
 
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemPrice(g_iID, cvar.IntValue);
    }
}

public void OnConVarChangeSellprice(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_iSellPrice = cvar.IntValue;
 
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemSellPrice(g_iID, cvar.IntValue);
    }
}

public void OnConVarChangeDuration(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    g_iDuration = cvar.IntValue;
    if (g_iID != INVALID_ITEM)
    {
        Shop_SetItemValue(g_iID, cvar.IntValue);
    }
}

public void OnPluginEnd()
{
    Shop_UnregisterMe();
}

public void Shop_Started()
{
    CategoryId category_id = Shop_RegisterCategory("stuff", "Способности", "");
 
    if (Shop_StartItem(category_id, "shop_s4plant"))
    {
        Shop_SetInfo("Быстр. установка С4", "Быстр. установка С4", g_Price, g_iSellPrice, Item_Togglable, g_iDuration);
        Shop_SetCallbacks(OnItemRegistered, OnGravUsed);
        Shop_EndItem();
    }
}

public void OnItemRegistered(CategoryId category_id, char[] category, char[] item, ItemId item_id)
{
    g_iID = item_id;
}

public void Shop_OnAuthorized(int iClient)
{
    g_fastplant[iClient] = false;
}

public ShopAction OnGravUsed(int iClient, CategoryId category_id, const char[] category, ItemId item_id, const char[] item, bool isOn, bool elapsed)
{
    if (isOn || elapsed)
    {
        g_fastplant[iClient] = false;

        //MC_PrintToChat(iClient, "{red}Быстрая установка {gold} C4 выключена");
        //C_PrintToChat(iClient, "{green}Быстрая установка {default} C4 выключена");
        return Shop_UseOff;
    }
    //MC_PrintToChat(iClient, "{red}Быстрая установка {gold} C4 включена");
    //C_PrintToChat(iClient, "{green}Быстрая установка {default} C4 включена");
    g_fastplant[iClient] = true;
    return Shop_UseOn;
}

public Action BombBP(Handle event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(GetEventInt(event, "userid"));
    if (g_fastplant[client])
    {
        int weapon = GetEntPropEnt(client, Prop_Send, "m_hActiveWeapon");
        if (weapon > 0)
        {
            char class[32];
            if (GetEntityClassname(weapon, class, sizeof(class) && !strcmp(class[7], "c4", false)))
            {
                SetEntPropFloat(weapon, Prop_Send, "m_fArmedTime", GetGameTime());
                MC_PrintToChatAll("{red}%N {gold}Использовал(а) фастплент!", client);
                C_PrintToChatAll("{green}%N {default}Использовал(а) фастплент!", client);
            }
        }
    }
}
 

Вложения

  • 1724072802276.png
    1724072802276.png
    27.6 КБ · Просмотры: 17
Последнее редактирование:

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Четко все,спасибо💪
Сообщения автоматически склеены:

Проверяй, если работает, перепишу на новый синтаксис, старый не нравится мне 😢
Ругался)
Все забываю писать,что 34 версия.
 

Вложения

  • ругался.png
    ругался.png
    11.2 КБ · Просмотры: 21
Сверху Снизу