В общем есть скриптик, который выдает юзверу пак оружки, из этого пака ID первичного и вторичного (автомта и пекаля) записываются в переменную. Затем уже циклом обрабатываются. Смысл весь в том что я несилен в тонкостях этих махинаций. Код нарыл на оленях, дописало под себя. Но встал в тупик когда заметил что игроки порой не видят скинов на оружии. Как это проявляется? Игрок берёт два ствола, обоим присваивается скин градиент. Но часто игроки с противоположной команды не видят этот скин. Пробовали со знакомым перевзять скины, подходили к друк другу в игре, еще раз брали оружку - тогда скин уже было видно обоим. Не пойму из-за чего..
P.S. лично думаю что pack надо создавать для каждого юзера в отдельности. Не пробовал.
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 надо создавать для каждого юзера в отдельности. Не пробовал.