|
发表于 2008-10-30 20:37:31
|
显示全部楼层
来自 中国–重庆–重庆
回复: 求OP进F带帽子插件源码。
/* AMX Mod X
* Admin Mark
*
* (c) Copyright 2007 by KaLoSZyFeR
*
* This file is provided as is (no warranties)
*
* DESCRIPTION
* Plugin marks admin by adding on his head special helmet or beret. Size of model
* is less than 60kb, so player don't have to extra download whole admin model (size: 2Mb)
* like in other plugins such as KaOs' "Admin Models".
*
* FEATURES
* - if admin is CT, he wears special helmet
* - if admin is T, he wears special beret
*
*
* CVARS
* amx_admin_mark (0: OFF, 1: ON, default: 1) - disables/enables plugin
*
* VERSIONS
* 1.0 first release
* 1.1 added forcing standard models, optimized some code
* 1.2 changed really smart part of code (1 word...)
*
*/
#include <amxmodx>
#include <cstrike>
#include <engine>
new g_adminmarkEnt[33]
new cvar_enable
new MODEL_MARK[] = "models/BaoZhaTOuFa.mdl"
static const PLUGIN_NAME[] = "10wMaoZi"
static const PLUGIN_AUTHOR[] = "KaLoSZyFeR"
static const PLUGIN_VERSION[] = "1.2"
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
cvar_enable = register_cvar("amx_admin_mark", "1")
}
public plugin_precache()
{
precache_model(MODEL_MARK)
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/gign/gign.mdl")
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/gsg9/gsg9.mdl")
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/sas/sas.mdl")
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/urban/urban.mdl")
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/vip/vip.mdl")
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/arctic/arctic.mdl")
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/guerilla/guerilla.mdl")
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/leet/leet.mdl")
force_unmodified(force_model_samebounds,{0,0,0},{0,0,0},"models/player/terror/terror.mdl")
}
public client_connect(id)
{
if(g_adminmarkEnt[id] > 0)
remove_entity(g_adminmarkEnt[id])
g_adminmarkEnt[id] = 0
}
public client_disconnect(id)
{
if(g_adminmarkEnt[id] > 0)
remove_entity(g_adminmarkEnt[id])
g_adminmarkEnt[id] = 0
}
public client_PreThink(id)
{
if(!is_user_connected(id))
return PLUGIN_CONTINUE
if(!is_user_alive(id) && g_adminmarkEnt[id] > 0)
{
remove_entity(g_adminmarkEnt[id])
g_adminmarkEnt[id] = 0
return PLUGIN_CONTINUE
}
if (!(get_user_flags(id) & ADMIN_KICK))
{
remove_entity(g_adminmarkEnt[id])
g_adminmarkEnt[id] = 0
return PLUGIN_CONTINUE
}
if(!get_pcvar_num(cvar_enable))
return PLUGIN_CONTINUE
if(!is_user_alive(id))
return PLUGIN_CONTINUE
if(g_adminmarkEnt[id] < 1)
{
g_adminmarkEnt[id] = create_entity("info_target")
if(g_adminmarkEnt[id] > 0)
{
entity_set_int(g_adminmarkEnt[id], EV_INT_movetype, MOVETYPE_FOLLOW)
entity_set_edict(g_adminmarkEnt[id], EV_ENT_aiment, id)
entity_set_model(g_adminmarkEnt[id], MODEL_MARK)
}
}
if (g_adminmarkEnt[id] > 0)
{
new modelID = get_model_id(id)
entity_set_int(g_adminmarkEnt[id], EV_INT_body, modelID)
}
if(g_adminmarkEnt[id] < 1)
return PLUGIN_CONTINUE
return PLUGIN_CONTINUE
}
new modelname[9][] ={
"gign",
"gsg9",
"sas",
"urban",
"vip",
"arctic",
"guerilla",
"leet",
"terror"
}
public get_model_id(id)
{
new modelStr[32], iNum=32, modelID
get_user_info(id,"model",modelStr,iNum)
for(new i = 0; i < 9; i++)
{
if (equali (modelStr, modelname) )
{
modelID = i
}
}
return modelID
} |
|