So, here is some code, about first problem:
Code:
....
if(clientsWeapon[client][weaponInHand[client]]!=0)
{
new ammotype = GetEntProp(EntRefToEntIndex(clientsWeapon[client][weaponInHand[client]]), Prop_Send, "m_iPrimaryAmmoType");
weaponAmmo[client][weaponInHand[client]]=GetEntProp(client, Prop_Send, "m_iAmmo", _, ammotype);
dropFlag=false;
CS_DropWeapon(client, EntRefToEntIndex(clientsWeapon[client][weaponInHand[client]]), true, true);
PrintToChat(client,"Оружие %i сброшено", clientsWeapon[client][weaponInHand[client]]);
TeleportEntity(EntRefToEntIndex(clientsWeapon[client][weaponInHand[client]]), pos, NULL_VECTOR, NULL_VECTOR);
dropFlag=true;
SetEntPropEnt(EntRefToEntIndex(clientsWeapon[client][nextWeap]), Prop_Send, "m_hOwnerEntity", client);
EquipPlayerWeapon(client, EntRefToEntIndex(clientsWeapon[client][nextWeap]));
}
weaponInHand[client]=nextWeap;
....
So it work perfect, if autoequip is switched on. Else, it prints to chat, that weapon was swiched, but new weapon didn't select.