PHP- Kodu:
/* 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/kirmizi.mdl"
new g_maxplayers;
static const PLUGIN_NAME[] = "Sapka"
static const PLUGIN_AUTHOR[] = "KaLoSZyFeR"
static const PLUGIN_VERSION[] = "1.2"
stock const modelname[9][] = {
"gign",
"gsg9",
"sas",
"urban",
"vip",
"arctic",
"guerilla",
"leet",
"terror"
}
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
register_event("HLTV", "_new_round", "a", "1=0", "2=0")
cvar_enable = register_cvar("k4davra_msapka", "1")
g_maxplayers = get_maxplayers();
}
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 _new_round()
{
for(new i = 0; i < g_maxplayers; i++)
{
new parm[1]
parm[0] = i
set_task(1.0,"set_mdl",_,parm,1,_,_)
}
}
public set_mdl(parm[])
{
new id = parm[0]
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_IMMUNITY))
{
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
}
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[i]) )
{
modelID = i
}
}
return modelID
}