Добавить прогресс бар при спасении заложников на Е (для ксс34)

ifx

Участник
Сообщения
136
Реакции
79
Нужно допилить плагин чтобы спасении заложников было не моментальное при нажатии на Е (для ксс34)
а шла полоска как при дефузе бомбы, например в 5 секунд и дальше уже заложник спасался

100-150р

также тут где-то закомечены мои неудавшиеся правки добавить прогрессбар:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
//#include <vip_core>

public Plugin:myinfo =
{
    name = "Quick Hostage Rescue, without VIP na E",
    author = "R1KO",
    version = "1.1"
};

//static const String:g_sFeature[] = "QHR";

new bool:g_bEnabled = false;

public OnPluginStart()
{
    HookEvent("hostage_follows", Event_HostageFollows);

//    if(VIP_IsVIPLoaded())
//    {
//        VIP_OnVIPLoaded();
//    }
}

public OnPluginEnd()
{
//    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
//    {
//        VIP_UnregisterFeature(g_sFeature);
//    }
}

//public VIP_OnVIPLoaded()
//{
//    VIP_RegisterFeature(g_sFeature, BOOL, _, _, _, OnDrawItem);
//}

public OnDrawItem(iClient, const String:sFeatureName[], iStyle)
{
    return g_bEnabled ? iStyle:ITEMDRAW_RAWLINE;
}

public OnMapStart()
{
    decl String:sMap[128];
    GetCurrentMap(sMap, sizeof(sMap));

    if (strncmp(sMap, "workshop", 8) == 0)
    {
        strcopy(sMap, sizeof(sMap), sMap[19]);
    }

    g_bEnabled = (strncmp(sMap, "cs_", 3) == 0);
 
    if(g_bEnabled)
    {
        HookEvent("hostage_follows", Event_HostageFollows);
        PrecacheModel("models/props/cs_office/vending_machine.mdl", true);
    }
}

public OnMapEnd()
{
    if(g_bEnabled)
    {
        UnhookEvent("hostage_follows", Event_HostageFollows);
    }
}

public Event_HostageFollows(Handle:hEvent, const String:sEvName[], bool:bDontBroadcast)
{
     new iClient = GetClientOfUserId(GetEventInt(hEvent, "userid"));
    // if (VIP_IsClientVIP(iClient) && VIP_IsClientFeatureUse(iClient, g_sFeature))
    if (IsClientInGame(iClient))
    {
 
        //SetEntPropFloat(iClient, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); //начало
        //SetEntProp(iClient, Prop_Send, "m_iProgressBarDuration", 10); //длительность в данном случае 10 секунд
     
     
        new hostage = GetEventInt(hEvent, "hostage");
        if (hostage > 0 && IsValidEntity(hostage))
        {
            PrintToChatAll("\x03 Заложников спасают!!");
            new iEntity = CreateEntityByName("func_hostage_rescue");
            decl Float:fOrigin[3];
            GetEntPropVector(hostage, Prop_Send, "m_vecOrigin", fOrigin);
            DispatchSpawn(iEntity);
            ActivateEntity(iEntity);
            SetEntityModel(iEntity, "models/props/cs_office/vending_machine.mdl");
            SetEntPropVector(iEntity, Prop_Send, "m_vecMins", Float:{-100.0, -100.0, -10.0});
            SetEntPropVector(iEntity, Prop_Send, "m_vecMaxs", Float:{100.0, 100.0, 100.0});
            SetEntProp(iEntity, Prop_Send, "m_nSolidType", 2);
            SetEntProp(iEntity, Prop_Send, "m_fEffects", GetEntProp(iEntity, Prop_Send, "m_fEffects") | 32);
            TeleportEntity(iEntity, fOrigin, NULL_VECTOR, NULL_VECTOR);
            AcceptEntityInput(iEntity, "Enable");
            SetEntityMoveType(hostage, MOVETYPE_FLY);
            TeleportEntity(hostage, fOrigin, NULL_VECTOR, fOrigin);
            SetVariantString("OnUser1 !self:kill::0.2:1");
            AcceptEntityInput(iEntity, "AddOutput");
            AcceptEntityInput(iEntity, "FireUser1");
     
        //SetEntPropFloat(iClient, Prop_Send, "m_flProgressBarStartTime", 0.0);
        //SetEntProp(iClient, Prop_Send, "m_iProgressBarDuration", 0);
        }
    }
}
 
Последнее редактирование:

fl1ck

Участник
Сообщения
58
Реакции
0
Нужно допилить плагин чтобы спасение заложников было не моментальное при нажатии на Е
а шла полоска как при дефузе бомбы, например в 5 секунд и дальше уже заложник спасался

100-150р

также тут где-то закомечены мои неудавшиеся правки добавить прогрессбар:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
//#include <vip_core>

public Plugin:myinfo =
{
    name = "Quick Hostage Rescue, without VIP na E",
    author = "R1KO",
    version = "1.1"
};

//static const String:g_sFeature[] = "QHR";

new bool:g_bEnabled = false;

public OnPluginStart()
{
    HookEvent("hostage_follows", Event_HostageFollows);

//    if(VIP_IsVIPLoaded())
//    {
//        VIP_OnVIPLoaded();
//    }
}

public OnPluginEnd()
{
//    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
//    {
//        VIP_UnregisterFeature(g_sFeature);
//    }
}

//public VIP_OnVIPLoaded()
//{
//    VIP_RegisterFeature(g_sFeature, BOOL, _, _, _, OnDrawItem);
//}

public OnDrawItem(iClient, const String:sFeatureName[], iStyle)
{
    return g_bEnabled ? iStyle:ITEMDRAW_RAWLINE;
}

public OnMapStart()
{
    decl String:sMap[128];
    GetCurrentMap(sMap, sizeof(sMap));

    if (strncmp(sMap, "workshop", 8) == 0)
    {
        strcopy(sMap, sizeof(sMap), sMap[19]);
    }

    g_bEnabled = (strncmp(sMap, "cs_", 3) == 0);
  
    if(g_bEnabled)
    {
        HookEvent("hostage_follows", Event_HostageFollows);
        PrecacheModel("models/props/cs_office/vending_machine.mdl", true);
    }
}

public OnMapEnd()
{
    if(g_bEnabled)
    {
        UnhookEvent("hostage_follows", Event_HostageFollows);
    }
}

public Event_HostageFollows(Handle:hEvent, const String:sEvName[], bool:bDontBroadcast)
{
     new iClient = GetClientOfUserId(GetEventInt(hEvent, "userid"));
    // if (VIP_IsClientVIP(iClient) && VIP_IsClientFeatureUse(iClient, g_sFeature))
    if (IsClientInGame(iClient))
    {
  
        //SetEntPropFloat(iClient, Prop_Send, "m_flProgressBarStartTime", GetGameTime()); //начало
        //SetEntProp(iClient, Prop_Send, "m_iProgressBarDuration", 10); //длительность в данном случае 10 секунд
      
      
        new hostage = GetEventInt(hEvent, "hostage");
        if (hostage > 0 && IsValidEntity(hostage))
        {
            PrintToChatAll("\x03 Заложников спасают!!");
            new iEntity = CreateEntityByName("func_hostage_rescue");
            decl Float:fOrigin[3];
            GetEntPropVector(hostage, Prop_Send, "m_vecOrigin", fOrigin);
            DispatchSpawn(iEntity);
            ActivateEntity(iEntity);
            SetEntityModel(iEntity, "models/props/cs_office/vending_machine.mdl");
            SetEntPropVector(iEntity, Prop_Send, "m_vecMins", Float:{-100.0, -100.0, -10.0});
            SetEntPropVector(iEntity, Prop_Send, "m_vecMaxs", Float:{100.0, 100.0, 100.0});
            SetEntProp(iEntity, Prop_Send, "m_nSolidType", 2);
            SetEntProp(iEntity, Prop_Send, "m_fEffects", GetEntProp(iEntity, Prop_Send, "m_fEffects") | 32);
            TeleportEntity(iEntity, fOrigin, NULL_VECTOR, NULL_VECTOR);
            AcceptEntityInput(iEntity, "Enable");
            SetEntityMoveType(hostage, MOVETYPE_FLY);
            TeleportEntity(hostage, fOrigin, NULL_VECTOR, fOrigin);
            SetVariantString("OnUser1 !self:kill::0.2:1");
            AcceptEntityInput(iEntity, "AddOutput");
            AcceptEntityInput(iEntity, "FireUser1");
      
        //SetEntPropFloat(iClient, Prop_Send, "m_flProgressBarStartTime", 0.0);
        //SetEntProp(iClient, Prop_Send, "m_iProgressBarDuration", 0);
        }
    }
}
Мне кажется твоим игрокам не по нраву будет когда вип за 5 секунд выигрывает раунд
 

Temlik

Участник
Сообщения
668
Реакции
174
Так там и без плагинов вроде шкала идёт при спасении
 

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
все еще актуально
Все еще актуально?

Описание: При удерживание кнопки Е появляется прогресс бар (спасения заложника).
При окончания, заложник моментально спасется. Если отпустить кнопку то прогресс сбросится и заложник пойдет за вами как по стандарту. Если снова зажать Е на заложнике то вы его отпустите и снова можете нажать Е дабы начать прогресс спасения заложника.

P.s сделал так, или как хотите чтобы сделать?

1640410602776.png
 
Последнее редактирование:
Сверху Снизу