Her saat başı yazarak bir yere varamazsınız. Kuralları gözden geçirin.
PHP- Kodu:
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <engine>
#include <fakemeta>

new g_MaxBPAmmo[31] = {
    
0,
    
52,  //CSW_P228
    
0,
    
90,  //CSW_SCOUT
    
1,   //CSW_HEGRENADE
    
32,  //CSW_XM1014
    
1,   //CSW_C4
    
100//CSW_MAC10
    
90,  //CSW_AUG
    
1,   //CSW_SMOKEGRENADE
    
120//CSW_ELITE
    
100//CSW_FIVESEVEN
    
100//CSW_UMP45
    
90,  //CSW_SG550
    
90,  //CSW_GALIL
    
90,  //CSW_FAMAS
    
100//CSW_USP
    
120//CSW_GLOCK18
    
30,  //CSW_AWP
    
120//CSW_MP5NAVY
    
200//CSW_M249
    
21,  //CSW_M3
    
90,  //CSW_M4A1
    
120//CSW_TMP
    
90,  //CSW_G3SG1
    
2,   //CSW_FLASHBANG
    
35,  //CSW_DEAGLE
    
90,  //CSW_SG552
    
90,  //CSW_AK47
    
0,   //CSW_KNIFE
    
100  //CSW_P90
}

new 
g_MaxClips[31] = {
    
0,
    
4//CSW_P228
    
0,
    
3//CSW_SCOUT
    
0//CSW_HEGRENADE
    
4//CSW_XM1014
    
0//CSW_C4
    
9//CSW_MAC10
    
3//CSW_AUG
    
0//CSW_SMOKEGRENADE
    
4//CSW_ELITE
    
2//CSW_FIVESEVEN
    
9//CSW_UMP45
    
3//CSW_SG550
    
3//CSW_GALIL
    
3//CSW_FAMAS
    
9//CSW_USP
    
4//CSW_GLOCK18
    
3//CSW_AWP
    
4//CSW_MP5NAVY
    
7//CSW_M249
    
4//CSW_M3
    
3//CSW_M4A1
    
4//CSW_TMP
    
3//CSW_G3SG1
    
0//CSW_FLASHBANG
    
5//CSW_DEAGLE
    
3//CSW_SG552
    
3//CSW_AK47
    
0//CSW_KNIFE
    
2  //CSW_P90
}

new 
g_ClipSize[31] = {
    
0,
    
13,  //CSW_P228
    
0,
    
10,  //CSW_SCOUT
    
0,   //CSW_HEGRENADE
    
7,   //CSW_XM1014
    
0,   //CSW_C4
    
30,  //CSW_MAC10
    
30,  //CSW_AUG
    
0,   //CSW_SMOKEGRENADE
    
30,  //CSW_ELITE
    
20,  //CSW_FIVESEVEN
    
25,  //CSW_UMP45
    
30,  //CSW_SG550
    
35,  //CSW_GALIL
    
25,  //CSW_FAMAS
    
12,  //CSW_USP
    
20,  //CSW_GLOCK18
    
10,  //CSW_AWP
    
30,  //CSW_MP5NAVY
    
100//CSW_M249
    
8,   //CSW_M3
    
30,  //CSW_M4A1
    
30,  //CSW_TMP
    
20,  //CSW_G3SG1
    
0,   //CSW_FLASHBANG
    
7,   //CSW_DEAGLE
    
30,  //CSW_SG552
    
30,  //CSW_AK47
    
0,   //CSW_KNIFE
    
50   //CSW_P90
}

new 
g_AmmoType[31] = {
    
0,
    
9,  //CSW_P228
    
0,
    
2,  //CSW_SCOUT
    
12//CSW_HEGRENADE
    
5,  //CSW_XM1014
    
14//CSW_C4
    
6,  //CSW_MAC10
    
4,  //CSW_AUG
    
13//CSW_SMOKEGRENADE
    
10//CSW_ELITE
    
7,  //CSW_FIVESEVEN
    
6,  //CSW_UMP45
    
4,  //CSW_SG550
    
4,  //CSW_GALIL
    
4,  //CSW_FAMAS
    
6,  //CSW_USP
    
10//CSW_GLOCK18
    
1,  //CSW_AWP
    
10//CSW_MP5NAVY
    
3,  //CSW_M249
    
5,  //CSW_M3
    
4,  //CSW_M4A1
    
10//CSW_TMP
    
2,  //CSW_G3SG1
    
11//CSW_FLASHBANG
    
8,  //CSW_DEAGLE
    
4,  //CSW_SG552
    
2,  //CSW_AK47
    
0,  //CSW_KNIFE
    
7   //CSW_P90
}

new 
g_AmmoName[15][] = {
    
"",
    
"ammo_338magnum",
    
"ammo_762nato",
    
"ammo_556natobox",
    
"ammo_556nato",
    
"ammo_buckshot",
    
"ammo_45acp",
    
"ammo_57mm",
    
"ammo_50ae",
    
"ammo_357sig",
    
"ammo_9mm",
    
"",
    
"",
    
"",
    
""
}

new 
bool:g_restart_attempt[33]
new 
bool:g_HideGiveClips[33]
new 
bool:g_FirstSpawn[33]
new 
g_LastMessageID
new g_LastMessageType
new g_LastMessage[33]
new 
g_LastWeapPickup[33]
new 
bool:g_Spawned[33]
new 
g_BoughtWeapon[33]

new 
g_WeapPickupMsg
new g_MoneyMsg

new pv_fa_enable
new pv_fa_altclips

public plugin_init()
{
    
register_plugin("Free ammo""1.4""asstolavista")
    
register_event("ResetHUD""event_hud_reset""be")
    
register_clcmd("fullupdate""clcmd_fullupdate"
    
register_event("TextMsg""event_restart_attempt""a""2=#Game_will_restart_in")
    
register_event("HLTV""event_new_round""a""1=0""2=0")
    
register_message(get_user_msgid("AmmoPickup"), "message_ammo_pickup")
    
    
g_WeapPickupMsg get_user_msgid("WeapPickup")
    
g_MoneyMsg get_user_msgid("Money")
    
register_forward(FM_MessageBegin"forward_message_begin"1)
    
register_forward(FM_WriteByte"forward_write_byte"1)
    
    
pv_fa_enable register_cvar("fa_enable""1")
    
pv_fa_altclips register_cvar("fa_altclips""0")
}

public 
client_connect(id)
{
    
g_restart_attempt[id] = false
    g_HideGiveClips
[id] = false
    g_FirstSpawn
[id] = true
    g_LastMessage
[id] = 0
    g_LastWeapPickup
[id] = 0
    g_Spawned
[id] = false
    g_BoughtWeapon
[id] = 0
}

public 
client_disconnect(id)
{
    
g_restart_attempt[id] = false
    g_HideGiveClips
[id] = false
    g_FirstSpawn
[id] = true
    g_LastMessage
[id] = 0
    g_LastWeapPickup
[id] = 0
    g_Spawned
[id] = false
    g_BoughtWeapon
[id] = 0
}

public 
clcmd_fullupdate()
{
    return 
PLUGIN_HANDLED
}

public 
event_restart_attempt()
{
    new 
players[32], num_players
    get_players
(playersnum_players"a")
    for (new 
inum_players; ++i)
        
g_restart_attempt[players[i]] = true
}

public 
event_hud_reset(id)
{
    if (
g_restart_attempt[id]) {
        
g_restart_attempt[id] = false
        
return
    }
    
event_player_spawn(id)
}

public 
event_player_spawn(id)
{
    if (
get_pcvar_num(pv_fa_enable) == 1) {
        
g_HideGiveClips[id] = true
        g_Spawned
[id] = true
    
}
}

public 
do_player_spawn(id)
{
    new 
weap_ids[32], num_weaps
    get_user_weapons
(idweap_idsnum_weaps)
    for (new 
0num_weapsi++) {
        new 
weap_id weap_ids[i]
        if (
fill_weapon(idweap_id)) {
            if (
g_FirstSpawn[id]) {
                if (
get_pcvar_num(pv_fa_altclips) != 1)
                    
cs_set_user_bpammo(idweap_id0)
                
fill_bpammo_show(idweap_id)
            }
            else
                
fill_bpammo(idweap_id)
        }
    }
    
give_item(id,"weapon_hegrenade")
    
set_user_armor(id,100)
    
g_FirstSpawn[id] = false
}

public 
event_new_round()
{
    if (
get_pcvar_num(pv_fa_enable) == 1) {
        new 
players[32], num_players
        get_players
(playersnum_players"a")
        for (new 
0num_playersj++) {
            new 
id players[j]
            new 
weap_ids[32], num_weaps
            get_user_weapons
(idweap_idsnum_weaps)
            for (new 
0num_weapsi++)
                if (
fill_weapon(idweap_ids[i]))
                
fill_bpammo(idweap_ids[i])
        }
    }
}

public 
message_ammo_pickup(msg_idident)
{
    if (
get_pcvar_num(pv_fa_enable) == 1) {
        if (
g_HideGiveClips[id]) {
            
g_HideGiveClips[id] = false
            
return PLUGIN_HANDLED
        
}
    }
    return 
PLUGIN_CONTINUE
}

public 
forward_message_begin(msg_destmsg_type, const Float:ORIGIN[3], const ED)
{
    if (
ED || ED 32)
        return
    new 
id ED
    
if (msg_type == g_MoneyMsg && g_LastMessage[id] == g_WeapPickupMsg)
        
event_weapon_buy(idg_LastWeapPickup[id])
    
g_LastMessageID id
    g_LastMessageType 
msg_type
    g_LastMessage
[id] = msg_type
}

public 
forward_write_byte(value)
{
    if (
g_LastMessageType == g_WeapPickupMsg)
        
g_LastWeapPickup[g_LastMessageID] = value
}

public 
event_weapon_buy(idweap_id)
{
    
g_BoughtWeapon[id] = weap_id
}

public 
do_weapon_buy(idweap_id)
{
    if (
fill_weapon(idweap_id))
        
fill_bpammo_show(idweap_id)
}

public 
client_PreThink(id)
{
    if (
get_pcvar_num(pv_fa_enable) == 1) {
        if (
g_Spawned[id]) {
            
g_Spawned[id] = false
            do_player_spawn
(id)
        }
        if (
g_BoughtWeapon[id] != 0) {
            new 
weap_id g_BoughtWeapon[id]
            
g_BoughtWeapon[id] = 0
            do_weapon_buy
(idweap_id)
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
bool:weapon_has_ammo(weap_id)
{
    return 
g_AmmoName[g_AmmoType[weap_id]][0] != 0
}

public 
bool:fill_bpammo(idweap_id)
{
    if (
get_pcvar_num(pv_fa_altclips) == 1) {
        new 
ammo_clips g_MaxClips[weap_id]
        if (
weapon_has_ammo(weap_id)) {
            for (new 
1<= ammo_clipsi++) {
                
g_HideGiveClips[id] = true
                give_item
(idg_AmmoName[g_AmmoType[weap_id]])
            }
            
g_HideGiveClips[id] = false
            
return true
        
}
    }
    else {
        new 
ammo g_MaxBPAmmo[weap_id]
        if (
weapon_has_ammo(weap_id)) {
            
cs_set_user_bpammo(idweap_idammo)
            
g_HideGiveClips[id] = false
            
return true
        
}
    }
    return 
false
}

public 
bool:fill_weapon(idweap_id)
{
    new 
clip_size g_ClipSize[weap_id]
    if (
clip_size != 0) {
        new 
weap_name[41]
        
get_weaponname(weap_idweap_name40)
        new 
wpn find_ent_by_owner(-1weap_nameid)
        if (
wpn != 0) {
            
cs_set_weapon_ammo(wpnclip_size)
            return 
true
        
}
    }
    return 
false
}

public 
show_given_bpammo(idweap_idammount)
{
    
g_HideGiveClips[id] = false
    
if (ammount <= 0)
        return
    
message_begin(MSG_ONEget_user_msgid("AmmoPickup"), {0,0,0}, id)
    
write_byte(g_AmmoType[weap_id])
    
write_byte(ammount)
    
message_end()
}

public 
bool:fill_bpammo_show(idweap_id)
{
    new 
given_ammo g_MaxBPAmmo[weap_id]
    if (
get_pcvar_num(pv_fa_altclips) != && weapon_has_ammo(weap_id))
        
given_ammo -= cs_get_user_bpammo(idweap_id)
    if (
fill_bpammo(idweap_id)) {
        
show_given_bpammo(idweap_idgiven_ammo)
        return 
true
    
}
    return 
false