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).


Dodatki SourceMod













