Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Anti Duble duck...


  • Zamknięty Temat jest zamknięty
4 odpowiedzi w tym temacie

#1 woda po parowkach

    Nowy

  • Nowy

Reputacja: 0
Nowy

  • Postów:4
  • Lokalizacja:mmz
Offline

Napisano 09.10.2010 14:30

Witam

Chodzi mi o coś takiego żeby blokowało Duble ducka.

Z góry dziękuje i pozdrawiam.
  • +
  • -
  • 0

#2 kamioool

    Profesjonalista

  • Zbanowany

Reputacja: 40
Pomocny

  • Postów:203
  • GG:
  • Steam:steam
  • Imię:Kamil
  • Lokalizacja:Wrocław
Offline

Napisano 09.10.2010 14:37

Znalezione w sieci.

/* Plugin modificado con el fix de DAM, by Linux 
*
* Solucionado : el problema que se traba en las escaleras
* Solucionado : ahora se puede spotear por detras de una caja con ctrl
*
*/

#include <amxmodx>
#include <fakemeta>
#include <engine>

#define PLUGIN_NAME "AntiDuck"
#define PLUGIN_VERSION "1.4b"
#define PLUGIN_AUTHOR "Numb modified"

new bool:g_bFakeDuck[33];
new g_iFakeEnt;
new const g_ciEntityName[] = "anti_doubleducker";
new const g_ciCustomInvisibleModel[] = "models/w_awp.mdl";

public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

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); // we are setting model so client-side trace line cold detect the entity
set_pev(g_iFakeEnt, pev_classname, g_ciEntityName); // lets register entity as non-standard
set_pev(g_iFakeEnt, pev_solid, SOLID_NOT); // why it shold be solid to the server engine?
set_pev(g_iFakeEnt, pev_movetype, MOVETYPE_NONE); // lets make it unmoveable
set_pev(g_iFakeEnt, pev_rendermode, kRenderTransAlpha); // we are starting to render it in invinsible mode
set_pev(g_iFakeEnt, pev_renderamt, 0.0); // setting visibility level to zero (invinsible)
}
}


public plugin_cfg()
{
server_cmd("amx_pausecfg add ^"AntiDuck^"")
return PLUGIN_CONTINUE
}

public client_disconnect(id)
g_bFakeDuck[id] = false;

public FM_PlayerPreThink_Pre(id)
{
if( !is_user_alive(id) )
return FMRES_IGNORED;

{ if(get_speed(id) == 0)
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( 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( ent==g_iFakeEnt && is_user_alive(host) )
{
static Float:s_fMaxs[3];
pev(host, pev_velocity, s_fMaxs);
if( s_fMaxs[2]<=0.0 ) // vertical speed is always 0.0 if user is on ground, so we aren't checking FL_ONGROUND existence. Plus we need a check if user falls
{
g_bFakeDuck[0] = true; // we are saving the check to this varible, so we won't need to check it again in post event

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 // if user is falling down we are teleporting anti-doubleducker right on hes head to avoid fast doubleduck (else it's +9 units for cliff eadges)
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); // here we are setting entity origin a bit higher than player (set_es origin is bugged)
// I'm using pre event and currect brush entity origin set, so it sholdn't have problems
}
}
}

public FM_AddToFullPack_Post(es_handle, e, ent, host, hostflags, player, pset)
{
if( g_bFakeDuck[0] )
{
g_bFakeDuck[0] = false;

set_es(es_handle, ES_Solid, SOLID_BBOX); // now finaly we are making it solid to the client engine
}
}

Użytkownik Abes Mapper edytował ten post 09.10.2010 14:39


#3 woda po parowkach

    Nowy

  • Autor tematu
  • Nowy

Reputacja: 0
Nowy

  • Postów:4
  • Lokalizacja:mmz
Offline

Napisano 09.10.2010 14:55

A nie da rady tak w pliku amxx ? Bo jestem łysy w te sprawy :D

Dodano 09 październik 2010 - 15:04:
I jeszcze Jak by ktoś dał taki plugin żeby he nie zadawało dmg :P
  • +
  • -
  • 0

#4 Abes Mapper

    Repulsion Gel

  • Przyjaciel

Reputacja: 2 017
Godlike

  • Postów:7 356
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Sulejówek
Offline

Napisano 09.10.2010 15:27

1. Kompilator pluginów AMXX - Nieoficjalny polski support AMX Mod X
2. Damage Control - Nieoficjalny polski support AMX Mod X
  • +
  • -
  • 0

#5 woda po parowkach

    Nowy

  • Autor tematu
  • Nowy

Reputacja: 0
Nowy

  • Postów:4
  • Lokalizacja:mmz
Offline

Napisano 09.10.2010 17:15

Wielkie dzięki.

Pozdrawiam
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych