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

[VIP] Instruments 1.5.2

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #81
Так что нить про кулаки известно?
Есть ли вообще модуль для VIP с кулаками?
Я вроде писал же...
1. Добавлять в этот модуль не буду
2. ПКМ кулаков выбивает оружие из рук (даже у союзников) (это не столь проблема как 3 пункт)
3. Может произойти так что игроку выдадутся кулаки а нож нет, не могу придумать решение этого
 

Helfu

Участник
Сообщения
20
Реакции
2
Что в groups.ini именно написать надо чтоб включалось?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #83
@RaudFlex123,
upload_2019-3-18_21-50-59.png
 

DismoraL

Участник
Сообщения
183
Реакции
47
Иногда проходит дамаг, если метнуть инструмент в тиммейта, даже при переменной mp_friendlyfire "0" на сервере.

"[VIP] Instruments" (1.5.2 [PUBLIC]) by Faya
 

Tavian

Участник
Сообщения
1,184
Реакции
119
Иногда проходит дамаг, если метнуть инструмент в тиммейта, даже при переменной mp_friendlyfire "0" на сервере.

"[VIP] Instruments" (1.5.2 [PUBLIC]) by Faya
Да тут ряд багов. Кинь вверх и можно убить себя, частые застревания оружие в текстурах и после не выбирается нож. Нельзя выключить модуль навсегда, каждую карту он включается автоматически. При броске всегда показывает 35хп (хз почему) даже урон ставишь 100 хп , сносит 100 хп а в худе пишет 35.
 

m9c0

Участник
Сообщения
159
Реакции
72
@Faya™, подскажите, как метать нож?
в инвентаре появляются 2 ножа. Первый - обычный, второй - от плагина. Но ни один из них не получается метать или выбросить. Пробовал нажимать G,E,ПКМ - не получается.
А топор, молоток и гаечный ключ выбрасываются
 

Erik

Участник
Сообщения
67
Реакции
16
@Faya™, подскажите, как метать нож?
в инвентаре появляются 2 ножа. Первый - обычный, второй - от плагина. Но ни один из них не получается метать или выбросить. Пробовал нажимать G,E,ПКМ - не получается.
А топор, молоток и гаечный ключ выбрасываются
Этот плагин выдаёт только топор, молоток и гаечный ключ, но не разрешает их метать, в кс по стандарту можно метать только топор, молоток и гаечный ключ
 

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #88
@Faya™, подскажите, как метать нож?
в инвентаре появляются 2 ножа. Первый - обычный, второй - от плагина. Но ни один из них не получается метать или выбросить. Пробовал нажимать G,E,ПКМ - не получается.
А топор, молоток и гаечный ключ выбрасываются
Я по-моему записывал видео с метательным ножом, он кидается так же как и остальные инструменты, только у него нет анимации (это уже не ко мне)
Пкм задерживаешь и отпускаешь потом
 

CodeName47

Мажор
Сообщения
154
Реакции
30
Есть рабочая версия без "Instruments_Throw_Out" ? Из за этого нельзя метать оружия dz от плагина для "shop"
 

DarkEssence

Участник
Сообщения
206
Реакции
3
а можно сделать, чтобы выброшенный топор или другой инструмент могли подбирать все? Xd
Сообщения автоматически склеены:

Разделение делать я не буду, не хочу, и не хочу:D
--- Добавлено позже ---
Версия 1.5.2 без метательного ножа
PHP:
/*
/    Версия 1.0
/        Релиз
/    Версия 1.1
/        Оптимизация кода
/        Убрана поддержка изменения урона
/    Версия 1.2
/        Оптимизация кода v2
/        Добавлена поддержка изменения урона
/    Версия 1.3
/        Оптимизация кода v3
/    Версия 1.4
/        Оптимизация кода v4
/        Исправлен баг когда не вип игрок метая инструмент наносил измененный урон
/    Версия 1.5
/        Оптимизация кода v5
/        Добавлена поддержка мультиязычной меню
/        Добавлено новое метательное оружие (метательный нож)
/        Добавлена возможность подобрать свой инструмент после выкидывания "Instruments_To_Lift"
/        Добавлена возможность заблокировать выкидывание инструмента "Instruments_Throw_Out"
/        Исправлен баг когда не вип игрок метая инструмент наносил измененный урон
/    Версия 1.5.1
/        Дописана полная выгрузка модуля, для корректной выгрузки загрузки модуля
/    Версия 1.5.2
/        Исправлен "баг" если установить параметр "ничего" то при перезаходе выдает предыдущее оружие.
*/

#include <vip_core>
#include <sdktools>
#include <sdkhooks>
#include <clientprefs>

#pragma semicolon 1
#pragma newdecls required

static const char g_szFeature[][] = {"Instruments", "Instruments_Throw_Out", "Instruments_To_Lift"};

int m_hMyWeapons, m_iItemDefinitionIndex, g_iInstruments[MAXPLAYERS + 1];
char g_szInstruments[MAXPLAYERS + 1][24];
Handle hCookie;

public Plugin myinfo =
{
    name        = "[VIP] Instruments",
    author        = "Faya™ (DS: Faya™#8514)",
    version        = "1.5.2 [PUBLIC]",
    url            = "http://hlmod.ru"
};

public void OnPluginStart()
{
    HookEvent("player_spawn", ePS);
    hCookie = RegClientCookie("VIP_Instruments_test", "VIP_Instruments_test", CookieAccess_Protected);

    m_hMyWeapons = FindSendPropInfo("CBasePlayer", "m_hMyWeapons");
    m_iItemDefinitionIndex = FindSendPropInfo("CEconEntity", "m_iItemDefinitionIndex");

    if(VIP_IsVIPLoaded()) VIP_OnVIPLoaded();

    for(int i = 1; i <= MaxClients; i++)
        if(IsClientInGame(i) && !IsClientSourceTV(i))
        {
            OnClientPutInServer(i);
            VIP_OnVIPClientLoaded(i);
        }

    LoadTranslations("vip_instruments.phrases");
}

public void OnPluginEnd()
{
    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
    {
        VIP_UnregisterFeature(g_szFeature[0]);
        VIP_UnregisterFeature(g_szFeature[1]);
        VIP_UnregisterFeature(g_szFeature[2]);
    }
}

public void VIP_OnVIPLoaded()
{
    VIP_RegisterFeature(g_szFeature[0], FLOAT, SELECTABLE, OnSelectItem);
    VIP_RegisterFeature(g_szFeature[1], BOOL, HIDE);
    VIP_RegisterFeature(g_szFeature[2], BOOL, HIDE);
}

public void OnClientPutInServer(int iClient)
{
    g_szInstruments[iClient][0] = 0;
    g_szInstruments[iClient][7] = 0;
    if(!IsFakeClient(iClient)) SDKHook(iClient, SDKHook_WeaponCanUse, CallBack_SDKHook_WCU);
    SDKHook(iClient, SDKHook_OnTakeDamageAlive, CallBack_SDKHook_OTDA);
}

public void VIP_OnVIPClientLoaded(int iClient)
{
    if(VIP_GetClientFeatureStatus(iClient, g_szFeature[0]))
    {
        char szBuffer[24];
        GetClientCookie(iClient, hCookie, szBuffer, sizeof szBuffer);
        if(szBuffer[0]) strcopy(g_szInstruments[iClient], sizeof g_szInstruments[], szBuffer);
        else
        {
            g_szInstruments[iClient][0] = 0;
            g_szInstruments[iClient][7] = 0;
        }
    }
}

public void OnClientDisconnect(int iClient)
{
    if(!IsFakeClient(iClient)) SetClientCookie(iClient, hCookie, g_szInstruments[iClient]);
}

public bool OnSelectItem(int iClient, const char[] szFeature)
{
    OpenMenu(iClient);

    return false;
}

void OpenMenu(int iClient)
{
    Handle hMenu = CreateMenu(CallBack_Menu, MenuAction_End|MenuAction_Cancel|MenuAction_Select);
    char szBuffer[64];
    FormatEx(szBuffer, sizeof szBuffer, "%t\n ", "MENU_TITLE");
    SetMenuTitle(hMenu, szBuffer);
    SetMenuExitBackButton(hMenu, true);

    FormatEx(szBuffer, sizeof szBuffer, "%t\n ", "MENU_NOTHING", g_szInstruments[iClient][0] == 0 ? "MENU_ON" : "MENU_OFF");
    AddMenuItem(hMenu, "", szBuffer);

    FormatEx(szBuffer, sizeof szBuffer, "%t", "MENU_AXE", g_szInstruments[iClient][7] == 'a' ? "MENU_ON" : "MENU_OFF");
    AddMenuItem(hMenu, "weapon_axe", szBuffer);

    FormatEx(szBuffer, sizeof szBuffer, "%t", "MENU_HAMMER", g_szInstruments[iClient][7] == 'h' ? "MENU_ON" : "MENU_OFF");
    AddMenuItem(hMenu, "weapon_hammer", szBuffer);

    FormatEx(szBuffer, sizeof szBuffer, "%t", "MENU_SPANNER", g_szInstruments[iClient][7] == 's' ? "MENU_ON" : "MENU_OFF");
    AddMenuItem(hMenu, "weapon_spanner", szBuffer);

    DisplayMenu(hMenu, iClient, MENU_TIME_FOREVER);
}

public int CallBack_Menu(Menu hMenu, MenuAction eAction, int iClient, int iItem)
{
    switch(eAction)
    {
        case MenuAction_End: CloseHandle(hMenu);
        case MenuAction_Cancel: if(iItem == MenuCancel_ExitBack) VIP_SendClientVIPMenu(iClient);
        case MenuAction_Select:
        {
            if(iItem == 0) g_szInstruments[iClient][7] = 0;
            GetMenuItem(hMenu, iItem, g_szInstruments[iClient], sizeof g_szInstruments[]);

            OpenMenu(iClient);
        }
    }

    return 0;
}

public void ePS(Event event, const char[] name, bool dontBroadcast)
{
    int iClient = GetClientOfUserId(GetEventInt(event, "userid"));
    if(VIP_IsClientFeatureUse(iClient, g_szFeature[0]))
    {
        int iWeapon;
        for(int i; i < 64; i++)
        {
            iWeapon = GetEntDataEnt2(iClient, m_hMyWeapons+i*4);
            if(iWeapon != -1 && IsValidEntity(iWeapon))
                switch(GetEntData(iWeapon, m_iItemDefinitionIndex))
                {
                    case 75, 76, 78: return;
                }
        }
        if(g_szInstruments[iClient][0] != 0)
        {
            g_iInstruments[iClient] = GivePlayerItem(iClient, g_szInstruments[iClient]);
            EquipPlayerWeapon(iClient, g_iInstruments[iClient]);
        }
    }
}

public Action CallBack_SDKHook_OTDA(int iVictim, int& iAttacker, int& iInflictor, float& fDamage, int& iDamagetype, int& iWeapon, float fDamageForce[3], float fDamagePosition[3])
{
    if(iVictim > 0 && iVictim <= MaxClients && iAttacker > 0 && iAttacker <= MaxClients && iWeapon == -1 && VIP_IsClientVIP(iAttacker) && g_szInstruments[iAttacker][0] != 0 && (fDamage == 60.0 || fDamage == 30.0) && iDamagetype & 4224)
    {
        fDamage = VIP_GetClientFeatureFloat(iAttacker, g_szFeature[0]);

        return Plugin_Changed;
    }

    return Plugin_Continue;
}

public Action CallBack_SDKHook_WCU(int iClient, int iWeapon)
{
    if(iWeapon != 1 && VIP_IsClientFeatureUse(iClient, g_szFeature[2]) && g_iInstruments[iClient] == iWeapon)
        switch(GetEntData(iWeapon, m_iItemDefinitionIndex))
        {
            case 75, 76, 78: EquipPlayerWeapon(iClient, iWeapon);
        }

    return Plugin_Continue;
}

public Action OnPlayerRunCmd(int iClient, int& iButtons)
{
    if(iButtons & IN_ATTACK2)
        if(!VIP_IsClientFeatureUse(iClient, g_szFeature[1]))
        {
            static int iWeapon; static char szWeapon[24];
            iWeapon = GetEntPropEnt(iClient, Prop_Send, "m_hActiveWeapon");
            if(iWeapon != 1 && IsValidEdict(iWeapon))
            {
                GetEdictClassname(iWeapon, szWeapon, sizeof szWeapon);
                if(!strcmp(szWeapon[7], "melee"))
                {
                    iButtons &= ~IN_ATTACK2;
                    return Plugin_Changed;
                }
            }
        }

    return Plugin_Continue;
}
взял эту, спасибо что сделали без ножа, но по вопросу с подбором для всех открыт)
 

Tavian

Участник
Сообщения
1,184
Реакции
119
Напишу ещё раз, вдруг автор увидит и поможет!
Проблема первая и самая главная , нельзя выбрать на цифру нож если есть метательное оружие.
Проблема вторая , нельзя выключить данный модуль , на некст карте снова появляется метательное оружие.
 

I_ExtaZzZ_I

Участник
Сообщения
168
Реакции
57
Как сделать что бы вместо всех инструментов просто выдавались доп. руки?
 

D1fox

Просто люблю чай
Сообщения
902
Реакции
212
Частенько выписывает в лог
L 12/26/2020 - 00:49:00: [SM] Exception reported: Client 3 is not connected/Игрок 3 не подключен
L 12/26/2020 - 00:49:00: [SM] Blaming: vip/VIP_Core.smx
L 12/26/2020 - 00:49:00: [SM] Call stack trace:
L 12/26/2020 - 00:49:00: [SM] [0] ThrowNativeError
L 12/26/2020 - 00:49:00: [SM] [1] Line 1266, vip/API.sp::CheckValidClient
L 12/26/2020 - 00:49:00: [SM] [2] Line 310, vip/API.sp::Native_IsClientVIP
L 12/26/2020 - 00:49:00: [SM] [4] VIP_IsClientVIP
L 12/26/2020 - 00:49:00: [SM] [5] Line 191, VIP_Instruments.sp::CallBack_SDKHook_OTDA
L 12/26/2020 - 00:53:15: Error log file session closed.
L 12/26/2020 - 04:32:38: SourceMod error session started
 

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #95
Частенько выписывает в лог
L 12/26/2020 - 00:49:00: [SM] Exception reported: Client 3 is not connected/Игрок 3 не подключен
L 12/26/2020 - 00:49:00: [SM] Blaming: vip/VIP_Core.smx
L 12/26/2020 - 00:49:00: [SM] Call stack trace:
L 12/26/2020 - 00:49:00: [SM] [0] ThrowNativeError
L 12/26/2020 - 00:49:00: [SM] [1] Line 1266, vip/API.sp::CheckValidClient
L 12/26/2020 - 00:49:00: [SM] [2] Line 310, vip/API.sp::Native_IsClientVIP
L 12/26/2020 - 00:49:00: [SM] [4] VIP_IsClientVIP
L 12/26/2020 - 00:49:00: [SM] [5] Line 191, VIP_Instruments.sp::CallBack_SDKHook_OTDA
L 12/26/2020 - 00:53:15: Error log file session closed.
L 12/26/2020 - 04:32:38: SourceMod error session started
Пробуй
 

Вложения

  • VIP_Instruments.sp
    7.7 КБ · Просмотры: 8

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #99
Сверху Снизу