PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Title"
#define VERSION "1.0"
#define AUTHOR "DavidJr"
#define TE_PLAYERATTACHMENT 124 // Attaches a TENT to a player (this is a high-priority tent)
#define ASSAULT_WEAPONS (1 << CSW_GALIL | 1 << CSW_FAMAS | 1 << CSW_AK47 | 1 << CSW_SG552 << CSW_AUG)
#define SMG_WEAPONS (1 << CSW_MAC10 | 1 << CSW_TMP | 1 << CSW_MP5NAVY | 1 << CSW_UMP45 | 1 << CSW_P90)
#define SNIPER_WEAPONS (1 << CSW_AWP | 1 << CSW_SCOUT | 1 << CSW_G3SG1 | 1 << CSW_SG550)
#define SHOTGUN_WEAPONS (1 << CSW_M3 | 1 << CSW_XM1014)
#define HANDGUN_WEAPONS (1 << CSW_GLOCK18 | 1 << CSW_USP | 1 << CSW_P228 | 1 << CSW_DEAGLE << CSW_ELITE | 1 << CSW_FIVESEVEN)
#define MACHINEGUN_WEAPONS (1 | << CSW_M249)
#define EXPLOSIVE_ITEM (1 << CSW_C4 | 1 << CSW_HEGRENADE | 1 << CSW_SMOKEGRENADE | 1 << CSW_FLASHBANG)
new sync
new assault
new smg
new sniper
new shotgun
new handgun
new machinegun
new explosive
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
sync = CreateHudSyncObj() // HUD sync object
new ent = create_entity("info_target")
entity_set_string(ent,EV_SZ_classname,"title_weapon") // classname
entity_set_float(ent,EV_FL_nextthink,get_gametime() + 1.0) // think every second
register_think("title_weapon","title") // call "cross_crosshair_think" function on think
}
public plugin_precache()
{
assault = precache_model("sprites/title/assault.spr")
smg = precache_model("sprites/title/smg.spr")
sniper = precache_model("sprites/title/sniper.spr")
shotgun = precache_model("sprites/title/shotgun.spr")
handgun = precache_model("sprites/title/handgun.spr")
machinegun = precache_model("sprites/title/machinegun.spr")
explsive = precache_model("sprites/title/explosive.spr")
return PLUGIN_CONTINUE
}
public title(id){
new wpnid, wpnclip, wpnammo
wpnid = get_user_weapon(id, wpnclip , wpnammo)
entity_set_float(ent,EV_FL_nextthink,get_gametime() + 1.0) // continue thinking every second
if(!get_playersnum()) return // server is empty, there's no need to show Sprite
static players[32],num, i,id
get_players(players,num,"a") // get all alive players in the server
for(i=0;i<num;i++) // loop trough them...
{
id = players[i] // store player index in a more convenient variable
if(1 << get_user_weapon(id) & ASSAULT_WEAPONS) continue // if this player is holding an assault - continue with the next player
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_short(TE_PLAYERATTACHMENT)
write_entity(id)
write_coord(32)
write_short(assault)
write_short(100)
message_end()
if(!get_playersnum()) return // server is empty, there's no need to show Sprite
static players[32],num, i,id
get_players(players,num,"a") // get all alive players in the server
for(i=0;i<num;i++) // loop trough them...
{
id = players[i] // store player index in a more convenient variable
if(1 << get_user_weapon(id) & SMG_WEAPONS) continue // if this player is holding a sniper - continue with the next player
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_short(TE_PLAYERATTACHMENT)
write_entity(id)
write_coord(32)
write_short(smg)
write_short(100)
message_end()
if(!get_playersnum()) return // server is empty, there's no need to show Sprite
static players[32],num, i,id
get_players(players,num,"a") // get all alive players in the server
for(i=0;i<num;i++) // loop trough them...
{
id = players[i] // store player index in a more convenient variable
if(1 << get_user_weapon(id) & SNIPER_WEAPONS) continue // if this player is holding a sniper - continue with the next player
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_short(TE_PLAYERATTACHMENT)
write_entity(id)
write_coord(32)
write_short(sniper)
write_short(100)
message_end()
if(!get_playersnum()) return // server is empty, there's no need to show Sprite
static players[32],num, i,id
get_players(players,num,"a") // get all alive players in the server
for(i=0;i<num;i++) // loop trough them...
{
id = players[i] // store player index in a more convenient variable
if(1 << get_user_weapon(id) & SHOTGUN_WEAPONS) continue // if this player is holding a sniper - continue with the next player
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_short(TE_PLAYERATTACHMENT)
write_entity(id)
write_coord(32)
write_short(shotgun)
write_short(100)
message_end()
if(!get_playersnum()) return // server is empty, there's no need to show Sprite
static players[32],num, i,id
get_players(players,num,"a") // get all alive players in the server
for(i=0;i<num;i++) // loop trough them...
{
id = players[i] // store player index in a more convenient variable
if(1 << get_user_weapon(id) & HANDGUN_WEAPONS) continue // if this player is holding a sniper - continue with the next player
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_short(TE_PLAYERATTACHMENT)
write_entity(id)
write_coord(32)
write_short(handgun)
write_short(100)
message_end()
if(!get_playersnum()) return // server is empty, there's no need to show Sprite
static players[32],num, i,id
get_players(players,num,"a") // get all alive players in the server
for(i=0;i<num;i++) // loop trough them...
{
id = players[i] // store player index in a more convenient variable
if(1 << get_user_weapon(id) & MACHINEGUN_WEAPONS) continue // if this player is holding a sniper - continue with the next player
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_short(TE_PLAYERATTACHMENT)
write_entity(id)
write_coord(32)
write_short(machinegun)
write_short(100)
message_end()
if(!get_playersnum()) return // server is empty, there's no need to show Sprite
static players[32],num, i,id
get_players(players,num,"a") // get all alive players in the server
for(i=0;i<num;i++) // loop trough them...
{
id = players[i] // store player index in a more convenient variable
if(1 << get_user_weapon(id) & EXPLOSIVE_WEAPONS) continue // if this player is holding a sniper - continue with the next player
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
write_short(TE_PLAYERATTACHMENT)
write_entity(id)
write_coord(32)
write_short(explosive)
write_short(100)
message_end()
}