Каким образом можно скрыть перчатки? (Сделать их невидимыми)

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Собственно:

Counter-strike  Global Offensive 03.11.2017 - 05.05.20.06.png

А если убрать перчатки, то вроде как все нормально :ab:.

Counter-strike  Global Offensive 03.11.2017 - 05.19.36.08.png

@komashchenko , помоги :beer:.

Есть у кого какие варианты?

Нет, персонажа конечно полностью скрыть можно, используя...

PHP:
SDKHook(client, SDKHook_SetTransmit, Hook_SetTransmit);

А вот как быть если ты не хочешь полностью скрывать игрока.

PHP:
#include <sdktools_functions>

public OnPluginStart()
{
   RegAdminCmd("sm_inviz", InvizCmd, ADMFLAG_ROOT);
}

public Action:InvizCmd(client, args)
{
   if (client > 0 && args < 1)
   {
       Inviz(client);
   }
   return Plugin_Handled;
}

public Inviz(client)
{
   SetEntityRenderMode(client, RENDER_TRANSCOLOR);
   SetEntityRenderColor(client, 255, 255, 255, 100);
 
   new IK = GetPlayerWeaponSlot(client, 2)
   if (IK != -1)
   {
       new IKM = GetEntPropEnt(IK, Prop_Send, "m_hWeaponWorldModel")
       if (IKM != -1)
       {
           SetEntProp(IKM, Prop_Send, "m_nModelIndex", 0)
       }
   }
}
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #2
Смотря, каким образом перчатки созданы.
У нас в TF есть такой костыль для скрытия всего персонажа полностью:
PHP:
// Copied from C:\SourceMod_18\ASH_Core.sp, lines 5173-5191
                    SetEntityRenderMode(client, RENDER_TRANSCOLOR);
               
                    switch (g_iBeggarBazaarState)
                    {
                        /*
                         * 17:06 - CrazyHackGUT: 100% - 255
                         * 17:07 - CrazyHackGUT: 85% - 216
                         * 17:07 - CrazyHackGUT: 70% - 157
                         * 17:07 - CrazyHackGUT: 55% - 140
                         * 17:07 - CrazyHackGUT: 50% - 127
                         * 17:07 - NITROUIH: Максимум, какой результат может выжать эта винтовка - 50%.
                         */
                   
                        case 0:             SetPlayerRenderAlpha(client, 255);
                        case 1:             SetPlayerRenderAlpha(client, 216);
                        case 2:             SetPlayerRenderAlpha(client, 157);
                        case 3:             SetPlayerRenderAlpha(client, 140);
                        default:            SetPlayerRenderAlpha(client, 127);
                    }

// Copied from C:\SourceMod_18\ASH_Core.sp, lines 12076-12095
stock void SetPlayerRenderAlpha(int client, int alpha) {
    int Temp = -1;
    // Собственно, сам игрок.
    SetEntityRenderColor(client, 255, 255, 255, alpha);
 
    // Оружие
    for (int i = 0; i <= 5; i++) {
        if ((Temp = GetPlayerWeaponSlot(client, i)) != -1) {
            SetEntityRenderColor(Temp, 255, 255, 255, alpha);
        }
    }
 
    // Шмотки
    Temp = -1;
    while ((Temp = FindEntityByClassname(Temp, "tf_wearable")) != -1) {
        if (GetEntPropEnt(Temp, Prop_Send, "m_hOwnerEntity" ) == client) {
            SetEntityRenderColor(Temp, 255, 255, 255, alpha);
        }
    }
}
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Стандартные перчатки скрываются вместе с скином, а эти(кастомные) - нет.
Только оружие нужно костылем скрывать в CS:GO.Черт его дери...

Поэтому буду ждать ответа от Феникса, создателя плагина перчаток.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #4
Там перчатки в кач-ве энтити создаются? Если да, то и им меняй RenderColor.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Там перчатки в кач-ве энтити создаются? Если да, то и им меняй RenderColor.
Если бы я знал и видел бы исходник, наверное бы не создавал тему :ab:
Феникс в скайпе ответил...

PHP:
#include <sdktools_functions>

public OnPluginStart()
{
   RegAdminCmd("sm_inviz", invizcmd, ADMFLAG_ROOT);
}

public Action:invizcmd(client, args)
{
   if (client > 0 && args < 1)
   {
       Inviz(client);
   }
   return Plugin_Handled;
}

public Inviz(client)
{
   SetEntityRenderMode(client, RENDER_TRANSCOLOR);
   SetEntityRenderColor(client, 255, 255, 255, 100);
 
   new IK = GetPlayerWeaponSlot(client, 2)
   if (IK != -1)
   {
       new IKM = GetEntPropEnt(IK, Prop_Send, "m_hWeaponWorldModel");
       if (IKM != -1)
       {
           SetEntProp(IKM, Prop_Send, "m_nModelIndex", 0)
       }
   }
 
   int iEnt = GetEntPropEnt(client, Prop_Send, "m_hMyWearables");
   if(iEnt != -1)
   {
       SetEntityRenderMode(iEnt, RENDER_TRANSCOLOR);
       SetEntityRenderColor(iEnt, 255, 255, 255, 100);
   }
}

Но при тесте я кое что заметил, с какого-то перепуга два плагина между собой не совместимы...
Если я включаю инвиз и вид от третьего лица то у всех вокруг закроется CS:GO :diablo:


Бугага! Тема больше не актуальна для меня. Спасибо.
 
Последнее редактирование:

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
Крутое средство от читеров. Ну-ка, поделись, что там натворил. :biggrin:

Включил невидимку и активировал вид от третьего лица, тобишь использовал два плагина...
Видимо конфликт между ними какой-то произошел и они решили уничтожить все вокруг :biggrin:

sm_inviz:

PHP:
#include <sdktools_functions>

public OnPluginStart()
{
   RegAdminCmd("sm_inviz", invizcmd, ADMFLAG_ROOT);
}

public Action:invizcmd(client, args)
{
   if (client > 0 && args < 1)
   {
       Inviz(client);
   }
   return Plugin_Handled;
}

public Inviz(client)
{
   SetEntityRenderMode(client, RENDER_TRANSCOLOR);
   SetEntityRenderColor(client, 255, 255, 255, 100);
 
   new IK = GetPlayerWeaponSlot(client, 2)
   if (IK != -1)
   {
       new IKM = GetEntPropEnt(IK, Prop_Send, "m_hWeaponWorldModel");
       if (IKM != -1)
       {
           SetEntProp(IKM, Prop_Send, "m_nModelIndex", 0)
       }
   }
 
   int iEnt = GetEntPropEnt(client, Prop_Send, "m_hMyWearables");
   if(iEnt != -1)
   {
       SetEntityRenderMode(iEnt, RENDER_TRANSCOLOR);
       SetEntityRenderColor(iEnt, 255, 255, 255, 100);
   }
}

sm_mirror:
PHP:
#pragma semicolon 1
#include <sourcemod>

#define PLUGIN_VERSION "1.0"

public Plugin myinfo = {
   name       = "Mirror",
   author       = "Franc1sco franug and Nanochip",
   description = "Rotational Thirdperson View",
   version       = PLUGIN_VERSION,
   url           = "https://forums.alliedmods.net/showthread.php?t=274639"
};

bool mirror[MAXPLAYERS + 1] = { false, ... };
Handle mp_forcecamera;

public void OnPluginStart()
{
   CreateConVar("sm_mirror_version", PLUGIN_VERSION, "Mirror Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_UNLOGGED|FCVAR_DONTRECORD|FCVAR_REPLICATED|FCVAR_NOTIFY);
   mp_forcecamera = FindConVar("mp_forcecamera");
   RegConsoleCmd("sm_mirror", Cmd_Mirror, "Toggle Rotational Thirdperson view");
}

public Action Cmd_Mirror(int client, int args)
{
   if (!IsPlayerAlive(client))
   {
       ReplyToCommand(client, "[SM] You may not use this command while dead.");
       return Plugin_Handled;
   }
   
   if (!mirror[client])
   {
       SetEntPropEnt(client, Prop_Send, "m_hObserverTarget", 0);
       SetEntProp(client, Prop_Send, "m_iObserverMode", 1);
       SetEntProp(client, Prop_Send, "m_bDrawViewmodel", 0);
       SetEntProp(client, Prop_Send, "m_iFOV", 120);
       SendConVarValue(client, mp_forcecamera, "1");
       mirror[client] = true;
       ReplyToCommand(client, "[SM] Enabled Mirror.");
   }
   else
   {
       SetEntPropEnt(client, Prop_Send, "m_hObserverTarget", -1);
       SetEntProp(client, Prop_Send, "m_iObserverMode", 0);
       SetEntProp(client, Prop_Send, "m_bDrawViewmodel", 1);
       SetEntProp(client, Prop_Send, "m_iFOV", 90);
       decl String:valor[6];
       GetConVarString(mp_forcecamera, valor, 6);
       SendConVarValue(client, mp_forcecamera, valor);
       mirror[client] = false;
       ReplyToCommand(client, "[SM] Disabled Mirror.");
   }
   return Plugin_Handled;
}
 
Сверху Снизу