[CSGO] Не корректное измиенение скина для оружки

KGB1st

Участник
Сообщения
60
Реакции
0
В общем есть скриптик, который выдает юзверу пак оружки, из этого пака ID первичного и вторичного (автомта и пекаля) записываются в переменную. Затем уже циклом обрабатываются. Смысл весь в том что я несилен в тонкостях этих махинаций. Код нарыл на оленях, дописало под себя. Но встал в тупик когда заметил что игроки порой не видят скинов на оружии. Как это проявляется? Игрок берёт два ствола, обоим присваивается скин градиент. Но часто игроки с противоположной команды не видят этот скин. Пробовали со знакомым перевзять скины, подходили к друк другу в игре, еще раз брали оружку - тогда скин уже было видно обоим. Не пойму из-за чего..

PHP:
...
{
        Weapons[ client ][ 0 ] = GivePlayerItem( client, "weapon_ak47" );
        Weapons[ client ][ 1 ] = GivePlayerItem( client, "weapon_p250" );
        for( int x; x < 2; x++ )
        {
            int m_iItemIDHigh = GetEntProp( Weapons[ client ][ x ], Prop_Send, "m_iItemIDHigh" );
            int m_iItemIDLow = GetEntProp( Weapons[ client ][ x ], Prop_Send, "m_iItemIDLow" );

            SetEntProp( Weapons[ client ][ x ], Prop_Send, "m_iItemIDLow", 2048 );
            SetEntProp( Weapons[ client ][ x ], Prop_Send, "m_iItemIDHigh", 0 );
            SetEntProp( Weapons[ client ][ x ], Prop_Send, "m_nFallbackPaintKit", 38 );
            
            Handle pack;
            
            CreateDataTimer( 2.0, RestoreItemID, pack );
            
            WritePackCell( pack, Weapons[ client ][ x ] );
            WritePackCell( pack, m_iItemIDHigh );
            WritePackCell( pack, m_iItemIDLow );
        }
        return Plugin_handled;
}

public Action RestoreItemID( Handle timer, Handle pack )
{
    int entity;
    int m_iItemIDHigh;
    int m_iItemIDLow;
    
    ResetPack( pack );
    
    entity = ReadPackCell( pack );
    m_iItemIDHigh = ReadPackCell( pack );
    m_iItemIDLow = ReadPackCell( pack );
    
    if( IsValidEdict( entity ) )
    {
        SetEntProp( entity, Prop_Send, "m_iItemIDHigh", m_iItemIDHigh );
        SetEntProp( entity, Prop_Send, "m_iItemIDLow", m_iItemIDLow );
    }

}

P.S. лично думаю что pack надо создавать для каждого юзера в отдельности. Не пробовал.
 

komashchenko

Идиот
Сообщения
916
Реакции
2,570
PHP:
{
        Weapons[ client ][ 0 ] = GivePlayerItem( client, "weapon_ak47" );
        Weapons[ client ][ 1 ] = GivePlayerItem( client, "weapon_p250" );
        for( int x; x < 2; x++ )
        {
            SetEntProp( Weapons[ client ][ x ], Prop_Send, "m_iItemIDHigh", -1);
            SetEntProp( Weapons[ client ][ x ], Prop_Send, "m_nFallbackPaintKit", 38 );
        }
        return Plugin_handled;
}
 

KGB1st

Участник
Сообщения
60
Реакции
0
PHP:
{
        Weapons[ client ][ 0 ] = GivePlayerItem( client, "weapon_ak47" );
        Weapons[ client ][ 1 ] = GivePlayerItem( client, "weapon_p250" );
        for( int x; x < 2; x++ )
        {
            SetEntProp( Weapons[ client ][ x ], Prop_Send, "m_iItemIDHigh", -1);
            SetEntProp( Weapons[ client ][ x ], Prop_Send, "m_nFallbackPaintKit", 38 );
        }
        return Plugin_handled;
}
Спасибо. Попробую после работы.

Оффтоп
 

komashchenko

Идиот
Сообщения
916
Реакции
2,570
Спасибо. Попробую после работы.

Оффтоп
Оффтоп
 

KGB1st

Участник
Сообщения
60
Реакции
0

KGB1st

Участник
Сообщения
60
Реакции
0
У меня впорос, а что каждый новый раунд ID оружия сбрасывается. А то бывает бежишь с фейк оружием, и игрок все равно подбирает другое, как буд-то у тебя нет вообще оружия.
 
Сверху Снизу