CS改後備子彈(pass)

Home Home
引用 | 編輯 s922197
2009-04-22 10:39
樓主
推文 x0
既然 惡魔大大已經把前子彈的用法弄出來了

可以告訴我後備子彈的改法嗎!?


獻花 x0
引用 | 編輯 A8153906
2009-04-22 11:31
1樓
  
......

不知道我有沒有說錯

記得好像有那個插件

但是我不知道怎改XD

獻花 x0
引用 | 編輯 s922197
2009-04-22 11:42
2樓
  
下面是引用 A8153906 於 2009-04-22 11:31 發表的 : 到引言文
......

不知道我有沒有說錯

記得好像有那個插件

但是我不知道怎改XD



那就幫忙找一下吧^^"
我在插件區爬了好久沒找到表情

獻花 x0
引用 | 編輯 牙京
2009-04-22 12:04
3樓
  
複製程式
#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define BUY_BPAMMO "items/9mmclip1.wav"

new cvar_bpcost, cvar_admin
new g_msgAmmoPickup

new const PLUGIN_NAME[] = "BP Ammo"
new const PLUGIN_VERSION[] = "v0.4"
new const AUTHOR[] = "YKH =]"

// Admin
const ACCESS_FLAG = ADMIN_LEVEL_A

// Admin Amount of ammo to give when buying additional clips for weapons
new const MAXBPAMMO[] = { -1, 104, -1, 180, -1, 64, 1, 200, 180, -1, 240, 200, 200, 180, 180, 180, 200, 240,
                 60, 240, 600, 64, 180, 240, 180, -1, 70, 180, 180, -1, 200 }

// Max BP ammo for weapons(player)
new const MAXBPAMMO2[] = { -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, -1, 35, 90, 90, -1, 100 }

// Admin Amount of ammo to give when buying additional clips for weapons
new const BUYAMMO[] = { -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, -1, 36, 90, 90, -1, 100 }

// Amount of ammo to give when buying additional clips for weapons
new const BUYAMMO2[] = { -1, 13, -1, 30, -1, 8, -1, 12, 30, -1, 30, 50, 12, 30, 30, 30, 12, 30,
                 10, 30, 30, 8, 30, 30, 30, -1, 7, 30, 30, -1, 50 }

// Ammo IDs for weapons
new const AMMOID[] = { -1, 9, -1, 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, -1, 7 }


const PRIMARY_WEAPONS_BIT_SUM = (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)
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)

public plugin_init()
{
     register_plugin(PLUGIN_NAME, PLUGIN_VERSION, AUTHOR)
     register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
     cvar_bpcost = register_cvar("bpammo_cost", "30")
     cvar_admin = register_cvar("bp_admin", "0")
     register_clcmd("buyammo1", "clcmd_buyammo1")
     register_clcmd("buyammo2", "clcmd_buyammo2")
     g_msgAmmoPickup = get_user_msgid("AmmoPickup")

     // Round Start display message
     set_task(1.0, "event_round_start")

}
public plugin_precache()
{
     precache_sound(BUY_BPAMMO);
}

public clcmd_buyammo1(id)
{
     // Not alive or infinite ammo setting enabled
     if (!is_user_alive(id) || !cs_get_user_buyzone(id))
           return PLUGIN_HANDLED;

     new money = cs_get_user_money(id)
     new cost = get_pcvar_num(cvar_bpcost)

     // Get user weapons
     static weapons[32], num, i, currentammo, weaponid
     num = 0 // reset passed weapons count (bugfix)
     get_user_weapons(id, weapons, num)

     // Not enoungh Money ?
     if (money < cost)
           return PLUGIN_HANDLED;
     
     // Loop through them and give the right ammo type
     for (i = 0; i < num; i++)
     {
           // Prevents re-indexing the array
           weaponid = weapons[i]
           
           if ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM) // primary
           {
                 // Get current ammo of the weapon
                 currentammo = cs_get_user_bpammo(id, weaponid)

                 if (get_pcvar_num(cvar_admin) == 1)
                 {
                       if (get_user_flags(id) & ACCESS_FLAG)
                       {
                             // Check if we are close to the BP ammo limit
                             if (currentammo <= MAXBPAMMO[weaponid]-BUYAMMO[weaponid])
                             {
                                   // Flash ammo in hud
                                   message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                                   write_byte(AMMOID[weaponid]) // ammo id
                                   write_byte(BUYAMMO[weaponid]) // ammo amount
                                   message_end()
                                   
                                   // Increase BP ammo
                                   emit_sound(id, CHAN_VOICE, BUY_BPAMMO, 0.9, ATTN_STATIC, 0, PITCH_NORM)// Play sounds
                                   cs_set_user_bpammo(id, weaponid, currentammo + BUYAMMO[weaponid])
                                   cs_set_user_money(id, money - cost)
                             }
                             else
                             {
                                   // Flash ammo in hud
                                   message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                                   write_byte(AMMOID[weaponid]) // ammo id
                                   write_byte(MAXBPAMMO[weaponid]-currentammo) // ammo amount
                                   message_end()
                                   
                                   // Reached the limit
                                   cs_set_user_bpammo(id, weaponid, MAXBPAMMO[weaponid])
                             }
                       }      
                       else
                       {
                             // Check if we are close to the BP ammo limit
                             if (currentammo <= MAXBPAMMO2[weaponid]-BUYAMMO2[weaponid])
                             {
                                   // Flash ammo in hud
                                   message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                                   write_byte(AMMOID[weaponid]) // ammo id
                                   write_byte(BUYAMMO2[weaponid]) // ammo amount
                                   message_end()
                                   
                                   // Increase BP ammo
                                   emit_sound(id, CHAN_VOICE, BUY_BPAMMO, 0.9, ATTN_STATIC, 0, PITCH_NORM)// Play sounds
                                   cs_set_user_bpammo(id, weaponid, currentammo + BUYAMMO[weaponid])
                                   cs_set_user_money(id, money - cost)
                             }
                             else
                             {
                                   // Flash ammo in hud
                                   message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                                   write_byte(AMMOID[weaponid]) // ammo id
                                   write_byte(MAXBPAMMO2[weaponid]-currentammo) // ammo amount
                                   message_end()
                                   
                                   // Reached the limit
                                   cs_set_user_bpammo(id, weaponid, MAXBPAMMO2[weaponid])
                             }
                       }
                 }
                 else
                 {
                       // Check if we are close to the BP ammo limit
                       if (currentammo <= MAXBPAMMO[weaponid]-BUYAMMO[weaponid])
                       {
                             // Flash ammo in hud
                             message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                             write_byte(AMMOID[weaponid]) // ammo id
                             write_byte(BUYAMMO[weaponid]) // ammo amount
                             message_end()
                             
                             // Increase BP ammo
                             emit_sound(id, CHAN_VOICE, BUY_BPAMMO, 0.9, ATTN_STATIC, 0, PITCH_NORM)// Play sounds
                             cs_set_user_bpammo(id, weaponid, currentammo + BUYAMMO[weaponid])
                             cs_set_user_money(id, money - cost)
                       }
                       else
                       {
                             // Flash ammo in hud
                             message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                             write_byte(AMMOID[weaponid]) // ammo id
                             write_byte(MAXBPAMMO[weaponid]-currentammo) // ammo amount
                             message_end()
                             
                             // Reached the limit
                             cs_set_user_bpammo(id, weaponid, MAXBPAMMO[weaponid])
                       }
                 }
           }
     }
     return PLUGIN_HANDLED;      
}
public clcmd_buyammo2(id)
{
     // Not alive or infinite ammo setting enabled
     if (!is_user_alive(id) || !cs_get_user_buyzone(id))
           return PLUGIN_HANDLED;

     new money = cs_get_user_money(id)
     new cost = get_pcvar_num(cvar_bpcost)

     // Get user weapons
     static weapons[32], num, i, currentammo, weaponid
     num = 0 // reset passed weapons count (bugfix)
     get_user_weapons(id, weapons, num)

     // Not enoungh Money ?
     if (money < cost)
           return PLUGIN_HANDLED;
     
     // Loop through them and give the right ammo type
     for (i = 0; i < num; i++)
     {
           // Prevents re-indexing the array
           weaponid = weapons[i]

           if ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM) // secondary
           {
                 // Get current ammo of the weapon
                 currentammo = cs_get_user_bpammo(id, weaponid)

                 if (get_pcvar_num(cvar_admin) == 1)
                 {      
                       if (get_user_flags(id) & ACCESS_FLAG)
                       {
                             // Check if we are close to the BP ammo limit
                             if (currentammo <= MAXBPAMMO[weaponid]-BUYAMMO[weaponid])
                             {
                                   // Flash ammo in hud
                                   message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                                   write_byte(AMMOID[weaponid]) // ammo id
                                   write_byte(BUYAMMO[weaponid]) // ammo amount
                                   message_end()
                                   
                                   // Increase BP ammo
                                   emit_sound(id, CHAN_VOICE, BUY_BPAMMO, 0.9, ATTN_STATIC, 0, PITCH_NORM)// Play sounds
                                   cs_set_user_bpammo(id, weaponid, currentammo + BUYAMMO[weaponid])
                                   cs_set_user_money(id, money - cost)
                             }
                             else
                             {
                                   // Flash ammo in hud
                                   message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                                   write_byte(AMMOID[weaponid]) // ammo id
                                   write_byte(MAXBPAMMO[weaponid]-currentammo) // ammo amount
                                   message_end()
                                   
                                   // Reached the limit
                                   cs_set_user_bpammo(id, weaponid, MAXBPAMMO[weaponid])
                             }
                       }
                       else
                       {
                             // Check if we are close to the BP ammo limit
                             if (currentammo <= MAXBPAMMO2[weaponid]-BUYAMMO2[weaponid])
                             {
                                   // Flash ammo in hud
                                   message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                                   write_byte(AMMOID[weaponid]) // ammo id
                                   write_byte(BUYAMMO2[weaponid]) // ammo amount
                                   message_end()
                                   
                                   // Increase BP ammo
                                   emit_sound(id, CHAN_VOICE, BUY_BPAMMO, 0.9, ATTN_STATIC, 0, PITCH_NORM)// Play sounds
                                   cs_set_user_bpammo(id, weaponid, currentammo + BUYAMMO[weaponid])
                                   cs_set_user_money(id, money - cost)
                             }
                             else
                             {
                                   // Flash ammo in hud
                                   message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                                   write_byte(AMMOID[weaponid]) // ammo id
                                   write_byte(MAXBPAMMO2[weaponid]-currentammo) // ammo amount
                                   message_end()
                                   
                                   // Reached the limit
                                   cs_set_user_bpammo(id, weaponid, MAXBPAMMO2[weaponid])
                             }
                       }
                 }
                 else
                 {
                       // Check if we are close to the BP ammo limit
                       if (currentammo <= MAXBPAMMO[weaponid]-BUYAMMO[weaponid])
                       {
                             // Flash ammo in hud
                             message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                             write_byte(AMMOID[weaponid]) // ammo id
                             write_byte(BUYAMMO[weaponid]) // ammo amount
                             message_end()
                             
                             // Increase BP ammo
                             emit_sound(id, CHAN_VOICE, BUY_BPAMMO, 0.9, ATTN_STATIC, 0, PITCH_NORM)// Play sounds
                             cs_set_user_bpammo(id, weaponid, currentammo + BUYAMMO[weaponid])
                             cs_set_user_money(id, money - cost)
                       }
                       else
                       {
                             // Flash ammo in hud
                             message_begin(MSG_ONE_UNRELIABLE, g_msgAmmoPickup, _, id)
                             write_byte(AMMOID[weaponid]) // ammo id
                             write_byte(MAXBPAMMO[weaponid]-currentammo) // ammo amount
                             message_end()
                             
                             // Reached the limit
                             cs_set_user_bpammo(id, weaponid, MAXBPAMMO[weaponid])
                       }
                 }
           }
     }
     return PLUGIN_HANDLED;
}
public event_round_start()
{
     set_task(5.0, "welcome_msg")
}
public welcome_msg()
{
     // Show mod info
     client_print(0, print_chat, "[BP] **** %s %s by %s ****", PLUGIN_NAME, PLUGIN_VERSION, AUTHOR)
}


獻花 x0
引用 | 編輯 s922197
2009-04-22 12:09
4樓
  
回覆*3的帖子
請問那個檔案在哪呢!?
還有
是改哪個?

獻花 x0
引用 | 編輯 惡魔之槍
2009-04-22 12:57
5樓
  
喪屍插件只能改

改的話改zombie_plague.sma

獻花 x0
引用 | 編輯 s922197
2009-04-22 13:48
6樓
  
下面是引用 惡魔之槍 於 2009-04-22 12:57 發表的 : 到引言文
喪屍插件只能改

改的話改zombie_plague.sma



請問檔案在哪 - -|||

獻花 x0
引用 | 編輯 惡魔之槍
2009-04-22 17:32
7樓
  
喪屍插件在cstrike\addons\amxmodx\scripting

獻花 x1
引用 | 編輯 稱名
2010-11-10 18:10
8樓
  
啦恩恩

獻花 x0
引用 | 編輯 黃太龍
2010-11-13 15:18
9樓
  
想問改好zombie_plague.sma !

用不用轉檔

獻花 x0
引用 | 編輯 march0520
2010-11-22 21:23
10樓
  
我想要呀.....

獻花 x0