Code:
PickupWeapon(player, weaponbox) {
if ((pev(weaponbox, pev_flags) & FL_ONGROUND) == 0) {
return;
}
new slot = GetWeaponboxSlot(weaponbox);
if (slot == 0) {
return;
}
const m_rgpPlayerItems = 1468/4;
const m_rgpPlayerItems_diff = 1488/4 - m_rgpPlayerItems;
new weapon = get_pdata_cbase(player, m_rgpPlayerItems + slot, m_rgpPlayerItems_diff);
if (weapon > 0) {
if (!bool:ExecuteHamB(Ham_CS_Item_CanDrop, weapon)) {
return;
}
new classname[32];
pev(weapon, pev_classname, classname, charsmax(classname));
engclient_cmd(player, "drop", classname);
}
ExecuteHamB(Ham_Touch, weaponbox, player);
}
GetWeaponboxSlot(weaponbox) {
const SlotCount = 6;
for (new i = 1; i < SlotCount; i++) {
const m_rgpPlayerItems = 136/4;
const m_rgpPlayerItems_diff = 152/4 - m_rgpPlayerItems;
if (get_pdata_cbase(weaponbox, m_rgpPlayerItems + i, m_rgpPlayerItems_diff) > 0) {
return i;
}
}
return 0;
}
__________________