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

[VIP] Instruments 1.5.2

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #41
я отключил все плагины которые работают с оружием,проблема осталась
Я проверял у себя на сервере, нет ничего подобного, убери вообще все плагины, оставь только ядро випки и мой плагин и проверь (ну и тау если стоит)
 

Erik

Участник
Сообщения
67
Реакции
16
Было бы неплохо если бы добавил возможность поднимать предметы после того как их кинули
 

Tavian

Участник
Сообщения
1,184
Реакции
119
Все работает как часы. Единственное , сделать бы полёт более быстрым.
 

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #44
Было бы неплохо если бы добавил возможность поднимать предметы после того как их кинули
Уже сделано, сегодня выложу
Все работает как часы. Единственное , сделать бы полёт более быстрым.
Не представляю как это можно сделать...
 

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #47
Пользователь Faya™ обновил ресурс [VIP] Instruments новой записью:

Достаточно большое обновление

Оптимизация кода v5
Добавлена поддержка мультиязычной меню
Добавлено новое метательное оружие (метательный нож)
Добавлена возможность подобрать свой инструмент после выкидывания "Instruments_To_Lift"
Добавлена возможность заблокировать выкидывание инструмента "Instruments_Throw_Out" (ПКМ)

Узнать больше об этом обновлении...
--- Добавлено позже ---
Читайте заново главную страницу ресурса
 

Tavian

Участник
Сообщения
1,184
Реакции
119
Пользователь Faya™ обновил ресурс [VIP] Instruments новой записью:

Достаточно большое обновление



Узнать больше об этом обновлении...
--- Добавлено позже ---
Читайте заново главную страницу ресурса
А тут ставить значение 1 или 0 ? "Instruments_To_Lift" "n"//где n доступ к поднятию СВОЕГО инструмента

Все работает, но вот ставлю нож и просто появляется второй нож, который нельзя бросить. Тупо как то. в то же время топор можно бросить и подобрать
 
Последнее редактирование:

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #49
А тут ставить значение 1 или 0 ? "Instruments_To_Lift" "n"//где n доступ к поднятию СВОЕГО инструмента

Все работает, но вот ставлю нож и просто появляется второй нож, который нельзя бросить. Тупо как то. в то же время топор можно бросить и подобрать
1 разрешить / 0 запретить / если не будет параметра то будет запрещено
Метательный но работает так же как и остальные предметы, зажимаешь ПКМ потом отпускаешь
 

Tavian

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

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #51
нож или не работает, или работает но чень криво. у меня в инвентаре есть нож , я его вырубил. Но почему то через плагин он выбирает мой нж из ивента, и он не метается , а просто наносит удар правым кликом. Ни у 1 меня траблы, у половины или более сервера.....
Сейчас видос залью
--- Добавлено позже ---
Вот видос, но что то с качеством пока что плохо, обработаться будет лучше, если не интересно начало, можешь сразу с 3 минуты смотреть
--- Добавлено позже ---
Согласен то что оно не отражается в инвентаре и при киле не пишет оружие это не очень но это уже вопросы не ко мне а к разрабам, но все же это метательное оружие и оно имеет место быть.
 
Последнее редактирование:

skywalker

Участник
Сообщения
1,153
Реакции
263
Сейчас видос залью
--- Добавлено позже ---
Вот видос, но что то с качеством пока что плохо, обработаться будет лучше, если не интересно начало, можешь сразу с 3 минуты смотреть
--- Добавлено позже ---
Согласен то что оно не отражается в инвентаре и при киле не пишет оружие это не очень но это уже вопросы не ко мне а к разрабам, но все же это метательное оружие и оно имеет место быть.
А можно как-то вырезать метательный нож?
 

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #53
А можно как-то вырезать метательный нож?
PHP:
#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 [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;
    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;
    }
}

public void OnClientDisconnect(int iClient)
{
    if(g_szInstruments[iClient][0] != 0)
        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;
}
Ну и с файла перевода можешь убрать перевод "Метательный нож", но это не обязательно.
 

Вложения

  • VIP_Instruments.smx
    8.3 КБ · Просмотры: 5
Последнее редактирование:

SheMa

Участник
Сообщения
10
Реакции
0
@Faya™, Помоги
L 02/03/2019 - 02:38:16: SourceMod error session started
L 02/03/2019 - 02:38:16: Info (map "de_dust2") (file "errors_20190203.log")
L 02/03/2019 - 02:38:16: [SM] Exception reported: Feature "Instruments_Throw_Out" already defined/Функция "Instruments_Throw_Out" уже существует
L 02/03/2019 - 02:38:16: [SM] Blaming: vip/VIP_Core.smx
L 02/03/2019 - 02:38:16: [SM] Call stack trace:
L 02/03/2019 - 02:38:16: [SM] [0] ThrowNativeError
L 02/03/2019 - 02:38:16: [SM] [1] Line 784, vip/API.sp::Native_RegisterFeature
L 02/03/2019 - 02:38:16: [SM] [3] VIP_RegisterFeature
L 02/03/2019 - 02:38:16: [SM] [4] Line 73, VIP_Instruments.sp::VIP_OnVIPLoaded
L 02/03/2019 - 02:38:16: [SM] [5] Line 53, VIP_Instruments.sp::OnPluginStart
L 02/03/2019 - 02:38:16: [SM] Unable to load plugin "vip/VIP_Instruments.smx": Error detected in plugin startup (see error logs)
L 02/03/2019 - 02:48:55: Error log file session closed.
L 02/03/2019 - 03:11:02: SourceMod error session started
L 02/03/2019 - 03:11:02: Info (map "de_dust2") (file "errors_20190203.log")
L 02/03/2019 - 03:11:02: [SM] Exception reported: Plugin handle 1460146 is invalid (error 3)
L 02/03/2019 - 03:11:02: [SM] Blaming: vip/VIP_Core.smx
L 02/03/2019 - 03:11:02: [SM] Call stack trace:
L 02/03/2019 - 03:11:02: [SM] [0] Call_StartFunction
L 02/03/2019 - 03:11:02: [SM] [1] Line 221, vip/VipMenu.sp::Handler_VIPMenu
L 02/03/2019 - 03:35:44: Error log file session closed.
 

maks1mys

Добрая душа
Сообщения
176
Реакции
57
@SheMa, 2 плагина одинаковых. Возможно дублер находится в папке plugins.
 

Truyn

King of clowns
Сообщения
1,591
Реакции
749
Делал reload
И он не выгрузился (хз почему), сделай рестарт сервера и норм будет
Он к сожалению не всегда корректно подгружается.
У меня на некоторых картах не должно быть я выгружаю для всех mg_.cfg (sm plugins unload name.smx) и на которых нужно подгружаю типо mg_123.cfg(sm plugin load name.smx) и сыпет ошибки :(
Можно ли как то его подружить с перезагрузкой или сделать чтобы можно было как то по другому офать?
 

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #59
@Faya™, Помоги
L 02/03/2019 - 02:38:16: SourceMod error session started
L 02/03/2019 - 02:38:16: Info (map "de_dust2") (file "errors_20190203.log")
L 02/03/2019 - 02:38:16: [SM] Exception reported: Feature "Instruments_Throw_Out" already defined/Функция "Instruments_Throw_Out" уже существует
L 02/03/2019 - 02:38:16: [SM] Blaming: vip/VIP_Core.smx
L 02/03/2019 - 02:38:16: [SM] Call stack trace:
L 02/03/2019 - 02:38:16: [SM] [0] ThrowNativeError
L 02/03/2019 - 02:38:16: [SM] [1] Line 784, vip/API.sp::Native_RegisterFeature
L 02/03/2019 - 02:38:16: [SM] [3] VIP_RegisterFeature
L 02/03/2019 - 02:38:16: [SM] [4] Line 73, VIP_Instruments.sp::VIP_OnVIPLoaded
L 02/03/2019 - 02:38:16: [SM] [5] Line 53, VIP_Instruments.sp::OnPluginStart
L 02/03/2019 - 02:38:16: [SM] Unable to load plugin "vip/VIP_Instruments.smx": Error detected in plugin startup (see error logs)
L 02/03/2019 - 02:48:55: Error log file session closed.
L 02/03/2019 - 03:11:02: SourceMod error session started
L 02/03/2019 - 03:11:02: Info (map "de_dust2") (file "errors_20190203.log")
L 02/03/2019 - 03:11:02: [SM] Exception reported: Plugin handle 1460146 is invalid (error 3)
L 02/03/2019 - 03:11:02: [SM] Blaming: vip/VIP_Core.smx
L 02/03/2019 - 03:11:02: [SM] Call stack trace:
L 02/03/2019 - 03:11:02: [SM] [0] Call_StartFunction
L 02/03/2019 - 03:11:02: [SM] [1] Line 221, vip/VipMenu.sp::Handler_VIPMenu
L 02/03/2019 - 03:35:44: Error log file session closed.
Ой, извиняюсь, забыл что добавил еще параметры, и забыл их дописать на выгрузку, сейчас сделаю небольшое обновление
 

Faya™

Жуестер
Сообщения
867
Реакции
457
  • Автор ресурса
  • #60
Пользователь Faya™ обновил ресурс [VIP] Instruments новой записью:

Фикс ошибок при reload плагина

Дописана полная выгрузка модуля, для корректной выгрузки / загрузки модуля

Узнать больше об этом обновлении...
--- Добавлено позже ---
@Oligarx1488 @SheMa Фикс ваших проблем, 1.5.1
 
Сверху Снизу