Привет. Написал небольшой плагин который должен выдавать оружие только в том случае если нет основного, что бы не заменял например AWP. Работает не корректно, выдает оружие даже если есть основное. Что я сделал не так?
Код:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
public plugin_init()
{
register_plugin("Your Plugin Name", "1.0", "Your Name");
RegisterHam(Ham_Spawn, "player", "OnPlayerSpawn_Post", 1);
}
public OnPlayerSpawn_Post(id)
{
if (!is_user_alive(id)) // если игрок мертв, не выполняем код ниже
return HAM_IGNORED;
strip_user_weapons(id);
give_item(id, "weapon_knife");
give_item(id, "weapon_deagle");
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
if (!cs_get_user_hasprim(id) && !is_weapon_primary(get_user_weapon(id)))
{
if (cs_get_user_team(id) == CS_TEAM_T)
{
give_item(id, "weapon_ak47"); // Выдаем AK-47 террористам
cs_set_user_bpammo(id, CSW_AK47, 90); // Выдача патронов для AK-47
}
else if (cs_get_user_team(id) == CS_TEAM_CT)
{
give_item(id, "weapon_m4a1"); // Выдаем M4A1 спецназу
cs_set_user_bpammo(id, CSW_M4A1, 90); // Выдача патронов для M4A1
cs_set_user_defuse(id, 1); // Выдаем дефузер
}
}
give_item(id, "weapon_smokegrenade"); // Выдаем дымовую гранату всем игрокам
return HAM_IGNORED;
}
public is_weapon_primary(weaponid)
{
switch(weaponid)
{
case CSW_AK47, CSW_M4A1, CSW_SG552, CSW_AUG, CSW_SCOUT, CSW_AWP, CSW_G3SG1, CSW_SG550, CSW_GALIL, CSW_FAMAS, CSW_M249, CSW_P90:
{
return true;
}
}
return false;
}