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

[VIP] Quick Defuse 1.2

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • Автор ресурса
  • #1
[VIP] Quick Defuse

Версия: 1.0.0

Требование:
[VIP] Core версии не ниже 1.1.0 R

Описание:
Позволяет VIP-игрокам моментально обезвреживать бомбу.

Парметры:
C-подобный:
"QuickDefuse"        "1"
В vip_modules.phrases.txt добавить
C-подобный:
    "QuickDefuse"
    {
        "ru"        "Моментальное обезвреживание"
        "en"        "Quick Defuse"
        "fi"        "Nopea Purkaus"
    }
C-подобный:
1.0.0 - Релиз
 

Вложения

  • VIP_QuickDefuse_1.0.0.zip
    5.6 КБ · Просмотры: 1,520
Последнее редактирование модератором:

T1MOXA

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

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #3
шикарно. скоро можно будет полностью на твою вип переходить)
 

hanson

Участник
Сообщения
303
Реакции
15
September, Оффтоп
R1KO, сделайте, пожалуйста, чтобы разминирование происходило моментально, в тот же момент как только нажал кнопку "е". Сейчас проходит где то 0.2 сек
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • Автор ресурса
  • #5
hanson, Попробуй так, но думаю не будет работать.
 

Вложения

  • VIP_Quick_Defuse_1.0.0_2.smx
    3.8 КБ · Просмотры: 31

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #6

master117

Участник
Сообщения
275
Реакции
10
[vip/VIP_Quick_Defuse_1.0.0.smx] Find offset: "CPlantedC4::m_flDefuseCountDown" == 1324
 

Сережа Никитин

Участник
Сообщения
11
Реакции
0
R1KO, приветствую. не знаешь как устранить подобное сообщение в консоли
Find offset: "CPlantedC4::m_flDefuseCountDown

появляется исключительно после запуска сервера
 

MIV

Участник
Сообщения
613
Реакции
32
это же дебаг просто!? Добавь эту строчку в cleaner.cfg в Sourcemod\configs. Она будет удаляться с консоли.
 

виктор787

Участник
Сообщения
143
Реакции
6
Сделай фикс пожалуйста:ab:
Модуль работает, но ошибки..
[VIP] Core (2.1.1 R)
SM 1.7.3
CSS v34
eror log:
L 01/24/2017 - 17:57:33: [SM] Native "SetEntDataFloat" reported: Entity -1 (-1) is invalid
L 01/24/2017 - 17:57:33: [SM] Displaying call stack trace for plugin "vip/VIP_Quick_Defuse_1.0.0.smx":
L 01/24/2017 - 17:57:33: [SM] [0] Line 52, VIP_Quick_Defuse_1.0.0.sp::Timer_Delay()
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • Автор ресурса
  • #13
Пользователь R1KO разместил новый ресурс:

[VIP] Quick Defuse - Позволяет VIP-игрокам моментально обезвреживать бомбу.

Позволяет VIP-игрокам моментально обезвреживать бомбу.

C-подобный:
1.0.0 - Релиз
1.1 - Обновлено для совместимости с версией ядра 2.1.1 R
Исправлена ошибка Native "SetEntDataFloat" reported: Entity -1 (-1) is invalid
Удалено сообщение в лог Find offset: "CPlantedC4::m_flDefuseCountDown

Узнать больше об этом ресурсе...
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • Автор ресурса
  • #16
@life, открой исходник и сделай
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • Автор ресурса
  • #18

Vagabond

Участник
Сообщения
43
Реакции
1
можно ли модуль запилить так чтобы он включался, тогда когда игроков на сервере 8 и более?
 

Rostu

Добрая душа
Сообщения
986
Реакции
622
@Vagabond, Попробуй (Запусти плагин и измени значение в файле cfg/vip/Vip_QuickDefuse, либо перекомпиль, изменив кол-во)
PHP:
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <vip_core>

#pragma newdecls required

public Plugin myinfo =
{
    name = "[VIP] Quick Defuse",
    author = "R1KO",
    version = "1.2"
};

#define MENU_INFO     1     // Отображать ли информацию в меню

static const char g_sFeature[] = "QuickDefuse";

int m_flDefuseCountDown;
int m_iProgressBarDuration;

bool g_bAllowUse;

ConVar g_hPlayers;

public void OnPluginStart()
{
    #if MENU_INFO 1
    LoadTranslations("vip_modules.phrases");
    #endif

    g_hPlayers = CreateConVar("sm_quick_defuse_players","0", "Количество игроков, при которых разрешается использование функции плагина", _, true, 0.0, true, 64.0);
    
    m_flDefuseCountDown = FindSendPropInfo("CPlantedC4", "m_flDefuseCountDown");
    m_iProgressBarDuration = FindSendPropInfo("CCSPlayer", "m_iProgressBarDuration");
    
    HookEvent("round_start",Event_RoundStart);
    HookEvent("bomb_begindefuse", Event_BeginDefuse);

    if(VIP_IsVIPLoaded())
    {
        VIP_OnVIPLoaded();
    }
    
    AutoExecConfig(true,"Vip_QuickDefuse","vip");
}

public void VIP_OnVIPLoaded()
{
    #if MENU_INFO 1
    VIP_RegisterFeature(g_sFeature, INT, _, _, OnItemDisplay);
    #else
    VIP_RegisterFeature(g_sFeature, INT);
    #endif
}

public void OnPluginEnd()
{
    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
    {
        VIP_UnregisterFeature(g_sFeature);
    }
}
public Action Event_RoundStart(Event hEvent, char[] szEvName, bool bDontBroadcast)
{
    int count;
    for(int x = 1; x <= MaxClients;x++)
        if(IsClientInGame(x))
            count++;

    g_bAllowUse = count >= g_hPlayers.IntValue; // Интересно, побьют ли меня за такое
}
public void Event_BeginDefuse(Event hEvent, const char[] sEvName, bool bDontBroadcast)
{
    int iClient = GetClientOfUserId(hEvent.GetInt("userid"));

    if (g_bAllowUse && VIP_IsClientVIP(iClient) && VIP_IsClientFeatureUse(iClient, g_sFeature))
    {
        RequestFrame(OnRequestFrame, iClient);
    }
}

public void OnRequestFrame(any iClient)
{
    if(IsClientInGame(iClient))
    {
        int iBombEntity = FindEntityByClassname(-1, "planted_c4");
        if (iBombEntity > 0)
        {
            int iValue = VIP_GetClientFeatureInt(iClient, g_sFeature);
            float fGameTime = GetGameTime();
            float fCountDown = GetEntDataFloat(iBombEntity, m_flDefuseCountDown) - fGameTime;
            fCountDown -= fCountDown/100.0*float(iValue);
            SetEntDataFloat(iBombEntity, m_flDefuseCountDown, fGameTime+fCountDown, true);
            SetEntData(iClient, m_iProgressBarDuration, RoundToCeil(fCountDown));
        }
    }
}

#if MENU_INFO 1
public bool OnItemDisplay(int iClient, const char[] sFeatureName, char[] sDisplay, int iMaxLen)
{
    if(VIP_IsClientFeatureUse(iClient, g_sFeature))
    {
        FormatEx(sDisplay, iMaxLen, "%T [+%d %%]", g_sFeature, iClient, VIP_GetClientFeatureInt(iClient, g_sFeature));

        return true;
    }

    return false;
}
#endif
 

Вложения

  • VIP_QuickDefuse_1.2.smx
    6.3 КБ · Просмотры: 8
Сверху Снизу