DUCK ACMA / KAPAMA
plugin_init üstüne
PHP- Kodu:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
/* Duck */
new bool:g_bFakeDuck[33];
new g_iFakeEnt;
new const g_ciEntityName[] = "anti_doubleducker";
new const g_ciCustomInvisibleModel[] = "models/w_awp.mdl";
new g_duck;
plugin_init içine
PHP- Kodu:
register_concmd("say !duck", "cmdDuckNoduck", ADMIN_CVAR)
register_concmd("say /duck", "cmdDuckNoduck", ADMIN_CVAR)
register_concmd("say .duck", "cmdDuckNoduck", ADMIN_CVAR)
register_concmd("say_team !duck", "cmdDuckNoduck", ADMIN_CVAR)
register_concmd("say_team /duck", "cmdDuckNoduck", ADMIN_CVAR)
register_concmd("say_team .duck", "cmdDuckNoduck", ADMIN_CVAR)
register_concmd("sch_duck", "cmdDuckNoduck", ADMIN_CVAR)
g_duck = register_cvar("mt_duck","0")
// Forwadlar
register_forward( FM_GetGameDescription, "GameDesc" )
register_forward(FM_PlayerPreThink, "FM_PlayerPreThink_Pre", 0);
register_forward(FM_PlayerPostThink, "FM_PlayerPostThink_Pre", 0);
register_forward(FM_AddToFullPack, "FM_AddToFullPack_Pre", 0);
register_forward(FM_AddToFullPack, "FM_AddToFullPack_Post", 1);
if( (g_iFakeEnt=engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, "func_wall")))>0 )
{
engfunc(EngFunc_SetModel, g_iFakeEnt, g_ciCustomInvisibleModel);
set_pev(g_iFakeEnt, pev_classname, g_ciEntityName);
set_pev(g_iFakeEnt, pev_solid, SOLID_NOT);
set_pev(g_iFakeEnt, pev_movetype, MOVETYPE_NONE);
set_pev(g_iFakeEnt, pev_rendermode, kRenderTransAlpha);
set_pev(g_iFakeEnt, pev_renderamt, 0.0);
}
sma sonuna
PHP- Kodu:
/*-------------------------- SCH - Duck Ayarları --------------------------*/
public FM_PlayerPreThink_Pre(id) {
if(get_pcvar_num(g_duck) == 1) {
if( !is_user_alive(id) )
return FMRES_IGNORED;
if( pev(id, pev_oldbuttons)&IN_DUCK && !(pev(id, pev_button)&IN_DUCK) )
{
static Float:s_fSize[3];
pev(id, pev_size, s_fSize);
if( s_fSize[2]==72.0 )
{
g_bFakeDuck[id] = true;
set_pev(id, pev_flags, (pev(id, pev_flags)|FL_DUCKING));
}
}
}
return FMRES_IGNORED;
}
public FM_PlayerPostThink_Pre(id) {
if(get_pcvar_num(g_duck) == 1) {
if( g_bFakeDuck[id] )
{
g_bFakeDuck[id] = false;
set_pev(id, pev_flags, (pev(id, pev_flags)&~FL_DUCKING));
}
}
}
public FM_AddToFullPack_Pre(es_handle, e, ent, host, hostflags, player, pset) {
if(get_pcvar_num(g_duck) == 1) {
if( ent==g_iFakeEnt && is_user_alive(host) )
{
static Float:s_fMaxs[3];
pev(host, pev_velocity, s_fMaxs);
if( s_fMaxs[2]<=0.0 )
{
g_bFakeDuck[0] = true;
static Float:s_fMins[3];
pev(host, pev_origin, s_fMins);
s_fMins[0] -= 16.0;
s_fMins[1] -= 16.0;
if( pev(host, pev_flags)&FL_DUCKING )
s_fMins[2] += (s_fMaxs[2]<0.0)?55.0:71.0;
else
s_fMins[2] += (s_fMaxs[2]<0.0)?37.0:53.0;
s_fMaxs[0] = s_fMins[0]+32.0;
s_fMaxs[1] = s_fMins[1]+32.0;
s_fMaxs[2] = s_fMins[2]+2.0;
engfunc(EngFunc_SetSize, g_iFakeEnt, s_fMins, s_fMaxs);
}
}
}
}
public FM_AddToFullPack_Post(es_handle, e, ent, host, hostflags, player, pset) {
if(get_pcvar_num(g_duck) == 1) {
if( g_bFakeDuck[0] )
{
g_bFakeDuck[0] = false;
set_es(es_handle, ES_Solid, SOLID_BBOX);
}
}
}
public cmdDuckNoduck(id,level,cid) {
if( !cmd_access( id, level, cid, 1 ) )
return PLUGIN_HANDLED
if(get_pcvar_num(g_duck) == 0 && set_pcvar_num(g_duck,1))
{
client_print(0, print_chat, "[CSPlague.com] Duck Kapatildi.")
}
else if(get_pcvar_num(g_duck) == 1 && set_pcvar_num(g_duck,0))
client_print(0, print_chat,"[CSPLague.com] Duck Acildi.")
return PLUGIN_HANDLED
}