- 听众
- 收听
- 积分
- 296
- 主题
- 回帖
- 0
- 精华
注册时间2008-4-20
最后登录1970-1-1
该用户从未签到
|
发表于 2012-9-8 01:52:54
|
显示全部楼层
SiMen.37 发表于 2012-9-3 18:28
好啊..那谢谢了
最近有点忙,少瑞!
#include <amxmodx>
#define MAX_PLAYERS 32
new iconstatus, pcv_iloc
new user_icons[MAX_PLAYERS+1][16]
public plugin_init()
{
register_plugin("Weapon Icon", "1.2", "hoboman313/Zenix")
register_event("CurWeapon", "update_icon", "be", "1=1")
register_event("AmmoX", "draw_icon", "be")
register_event("DeathMsg", "event_death", "a")
pcv_iloc = register_cvar("amx_weapon_location", "1")
check_icon_loc()
}
public update_icon(id)
{
remove_weapon_icon(id)
check_icon_loc()
if( get_pcvar_num(pcv_iloc) == 0 || is_user_bot(id) )
return
static sprite[16], iwpn, clip, ammo
iwpn = get_user_weapon(id, clip, ammo)
switch(iwpn)
{
case CSW_P228:
sprite = "d_p228"
case CSW_SCOUT:
sprite = "d_scout"
case CSW_HEGRENADE:
sprite = "d_grenade"
case CSW_XM1014:
sprite = "d_xm1014"
case CSW_MAC10:
sprite = "d_mac10"
case CSW_AUG:
sprite = "d_aug"
case CSW_SMOKEGRENADE:
sprite = "d_flashbang"
case CSW_ELITE:
sprite = "d_elite"
case CSW_FIVESEVEN:
sprite = "d_fiveseven"
case CSW_UMP45:
sprite = "d_ump45"
case CSW_SG550:
sprite = "d_sg550"
case CSW_GALIL:
sprite = "d_galil"
case CSW_FAMAS:
sprite = "d_famas"
case CSW_USP:
sprite = "d_usp"
case CSW_MP5NAVY:
sprite = "d_mp5navy"
case CSW_M249:
sprite = "d_m249"
case CSW_M3:
sprite = "d_m3"
case CSW_M4A1:
sprite = "d_m4a1"
case CSW_TMP:
sprite = "d_tmp"
case CSW_G3SG1:
sprite = "d_g3sg1"
case CSW_FLASHBANG:
sprite = "d_flashbang"
case CSW_DEAGLE:
sprite = "d_deagle"
case CSW_SG552:
sprite = "d_sg552"
case CSW_AK47:
sprite = "d_ak47"
case CSW_KNIFE:
sprite = "d_knife"
case CSW_P90:
sprite = "d_p90"
case CSW_GLOCK18:
sprite = "d_glock18"
case CSW_AWP:
sprite = "d_awp"
default:
return
}
user_icons[id] = sprite
draw_icon(id)
return
}
public draw_icon(id)
{
static iwpn, clip, ammo, icon_color[3]
iwpn = get_user_weapon(id, clip, ammo)
// ammo check, this is for the color of the icon
if ((ammo == 0 && clip == 0))
icon_color = {255, 0, 0} // outta ammo!
else if ( ammo==0 && iwpn!=CSW_KNIFE)
icon_color = {0, 100, 255} // last clip!
else
icon_color = {0, 160, 255}//green icon...decent ammo
// draw the sprite itself
message_begin(MSG_ONE,iconstatus,{0,0,0},id)
write_byte(1) // status (0=hide, 1=show, 2=flash)
write_string(user_icons[id]) // sprite name
write_byte(icon_color[0]) // red
write_byte(icon_color[1]) // green
write_byte(icon_color[2]) // blue
message_end()
}
public remove_weapon_icon(id)
{
message_begin(MSG_ONE,iconstatus,{0,0,0},id)
write_byte(0)
write_string(user_icons[id])
message_end()
}
public event_death()
{
new id = read_data(2) // the dead player's ID (1-32)
if (!is_user_bot(id))
remove_weapon_icon(id)
}
public check_icon_loc()
{
new value = get_pcvar_num(pcv_iloc)
if (value == 1)
iconstatus = get_user_msgid("StatusIcon")
else if (value == 2)
iconstatus = get_user_msgid("Scenario")
else
iconstatus = 0
return PLUGIN_CONTINUE
}
|
|