stock const WA_PRI_WEAPONS = ((1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90));
stock const WA_SEC_WEAPONS = ((1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE));
stock const WA_GRENADES = ((1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG));
stock const WA_NO_WEAPONS = ((1<<0)|(1<<2)|(1<<CSW_VEST)|(1<<CSW_VESTHELM));
stock const maxClip[] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, 1, 50, 0, 0 };
stock const maxAmmo[] = { -1, 52, -1, 90, 1, 32, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 32, 90, 120, 90, 2, 35, 90, 90, 1, 100, 0, 0 };
enum WeaponType {
WTEmpty = 0,
WTPistol,
WTPrimary,
WTGrenade,
WTBomb,
WTKnife
}
stock const WeaponType:g_weapons[] = {
WTEmpty,
WTPistol,
WTEmpty,
WTPrimary,
WTGrenade,
WTPrimary,
WTBomb,
WTPrimary, WTPrimary,
WTGrenade,
WTPistol, WTPistol,
WTPrimary, WTPrimary, WTPrimary, WTPrimary,
WTPistol, WTPistol,
WTPrimary, WTPrimary, WTPrimary, WTPrimary, WTPrimary, WTPrimary, WTPrimary,
WTGrenade,
WTPistol,
WTPrimary, WTPrimary,
WTKnife,
WTPrimary
};
stock give_weapon(id, weap = 0, ammo = 0, clip = -1) {
if(!is_user_alive(id))
return;
if(weap <= 0 || weap > 30) weap = random_num(1,30);
if(!((1<<weap) & (WA_PRI_WEAPONS|WA_SEC_WEAPONS))) {
give_weapon(id, _, ammo, clip);
return;
}
new weaponname[32];
get_weaponname(weap, weaponname, 31);
give_item(id, weaponname);
if(ammo != 0) cs_set_user_bpammo(id, weap, ammo < 0 ? maxAmmo[weap] : ammo);
if(clip >= 0 && clip < maxClip[weap]) {
new went = find_ent_by_owner(-1, weaponname, id);
if(is_valid_ent(went)) cs_set_weapon_ammo(went, clip);
}
}
I teraz chcąc dać komuś jakąś broń robimy to tak
give_weapon(id, CSW_M4A1); // gracz dostanie m4 bez dodatkowej amunicji
give_weapon(id, CSW_USP, 20); // gracz dostanie usp i 20 dodatkowej amunicji
give_weapon(id, CSW_AWP, 20, 1); // gracz dostanie awp i 20 dodatkowej amunicji oraz 1 nabojem w magazynku
give_weapon(id, CSW_FAMAS, -1); // gracz dostanie famasa i max dodatkowej amunicji dla tej broni
give_weapon(id, CSW_MP5NAVY, _, 2); // gracz dostanie mp5 bez dodatkowej amunicji z 2 nabojami w magazynku
give_weapon(id, _, -1); // gracz dostanie losową broń i max dodatkowej amunicji dla tej broni
give_weapon(id); // gracz dostanie losową broń bez dodatkowej amunicji
Wymagane biblioteki:
- fun
- cstrike
- engine