Uzywamy glownie id broni lub id broni (jako enum :F)
Cod:CSW_P228 1
CSW_SCOUT 3
CSW_HEGRENADE 4
CSW_XM1014 5
CSW_C4 6
CSW_MAC10 7
CSW_AUG 8
CSW_SMOKEGRENADE 9
CSW_ELITE 10
CSW_FIVESEVEN 11
CSW_UMP45 12
CSW_SG550 13
CSW_GALIL 14
CSW_FAMAS 15
CSW_USP 16
CSW_GLOCK18 17
CSW_AWP 18
CSW_MP5NAVY 19
CSW_M249 20
CSW_M3 21
CSW_M4A1 22
CSW_TMP 23
CSW_G3SG1 24
CSW_FLASHBANG 25
CSW_DEAGLE 26
CSW_SG552 27
CSW_AK47 28
CSW_KNIFE 29
CSW_P90 30
#include <amxmodx> #include <amxmisc> #include <fakemeta> #include <cstrike> #define weapon_num 30 #define ammo_num 14 new weapon_name[weapon_num+1][]={"none","weapon_p228","weapon_shield","weapon_scout", "weapon_hegrenade","weapon_xm1014","weapon_c4","weapon_mac10","weapon_aug", "weapon_smokegrenade","weapon_elite","weapon_fiveseven","weapon_ump45", "weapon_sg550","weapon_galil","weapon_famas","weapon_usp","weapon_glock18", "weapon_awp","weapon_mp5navy","weapon_m249","weapon_m3","weapon_m4a1", "weapon_tmp","weapon_g3sg1","weapon_flashbang","weapon_deagle","weapon_sg552", "weapon_ak47","weapon_knife","weapon_p90"} new ammo_name[ammo_num+1][]={"none","ammo_338magnum","ammo_762nato","ammo_556natobox","ammo_556nato"," ammo_buckshot","ammo_45acp","ammo_57mm","ammo_50ae","ammo_357sig","ammo_9mm", "weapon_flashbang","weapon_hegrenade","weapon_smokegrenade","weapon_c4"} new weapon_ammo[weapon_num+1]={0,9,0,2,12,5,14,6,4,13,10,7,6,4,4,4,6,10,1,10,3,5,4,10,2,11,8,4,2,0,7} new weapon_cost[weapon_num+1]={0,600,2200,2750,300,3000,0,1400,3500,300,800,750,1700,4200,2000,2250,500,400,4750,1500,5750,1700,3100,1250,5000,200,650,3500,2500,0,2350} new ammo_cost[ammo_num+1]={0,125,80,60,60,65,25,50,40,50,20,200,300,300,0} new weapon_clip[weapon_num+1]={0,13,0,10,0,7,0,30,30,0,30,20,25,30,35,25,12,20,10,30,100,8,30,30,20,0,7,30,30,0,50} new weapon_ammo_max[weapon_num+1]={0,52,0,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,0,100} new weapon_speed_max[weapon_num+1]={0,250,0,260,250,240,250,250,240,250,250,250,250,210,240,240,250,250,210,250,220,230,230,250,210,250,250,235,221,250,245} stock give_weapon(id,wid,ammo) { if(!is_user_alive(id)) return 0 if(wid<1||wid>weapon_num) return 0 fm_give_item(id,weapon_name[wid]) for(new i=0;i<ammo,i++) fm_give_item(id,ammo_name[weapon_ammo[wid]] ) return 1 } stock sell_weapon(id,wid,ammo,Float:multi) { if(!is_user_alive(id)) return -1 if(wid<1||wid>weapon_num) return -1 new w_cost = floatround(weapon_cost[wid]*multi) new a_cost = floatround(ammo_cost[weapon_ammo[wid]]*multi) if(cs_get_user_money(id)<w_cost) return -1 cs_set_user_money(id,cs_get_user_money(id)-w_cost) fm_give_item(id,weapon_name[wid]) for(new i=0;i<ammo,i++) { if(cs_get_user_money(id)<a_cost) return i cs_set_user_money(id,cs_get_user_money(id)-a_cost) fm_give_item(id,ammo_name[weapon_ammo[wid]] ) } return ammo } stock get_weapon_full_name(wid,name,size) { if(wid<1||wid>weapon_num) return -1 copy(name,size,weapon_name[wid]) } stock get_ammo_full_name(aid,name,size) { if(aid<1||aid>ammo_num) return -1 copy(name,size,ammo_name[wid]) } stock get_weapon_ammo_name(wid,name,size) { if(wid<1||wid>weapon_num) return -1 copy(name,size,ammo_name[weapon_ammo[wid]]) } stock get_weapon_ammo_id(wid) { if(wid<1||wid>weapon_num) return -1 return weapon_ammo[wid] } stock get_weapon_cost(wid) { if(wid<1||wid>weapon_num) return -1 return weapon_cost[wid] } stock get_ammo_cost(aid) { if(aid<1||aid>ammo_num) return -1 return ammo_cost[aid] } stock get_weapon_clip(wid) { if(wid<1||wid>weapon_num) return -1 return weapon_clip[wid] } stock get_weapon_ammo_max(wid) { if(wid<1||wid>weapon_num) return -1 return weapon_ammo_max[wid] } stock fm_give_item(id, const item[]) { if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10)) return 0 new ent = fm_create_entity(item) if (!pev_valid(ent)) return 0 new Float:origin[3] pev(index, pev_origin, origin) set_pev(ent, pev_origin, origin) set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN) dllfunc(DLLFunc_Spawn, ent) new save = pev(ent, pev_solid) dllfunc(DLLFunc_Touch, ent, index) if (pev(ent, pev_solid) != save) return ent engfunc(EngFunc_RemoveEntity, ent) return -1 }
Pozniej zrobie z tego include (jak bedzie mi sie jeszcze jutro chcialo).