Antiduck please

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
43
Реакции
1
Ошибка
Duck
ОС
Linux
Amx Mod X
1.9.0
Билд
Protocol version 48
Exe version 1.1.2.7/Stdio (cstrike)
ReHLDS version: 3.11.0.767-
ReGamedll
ReGameDLL version: 5.21.0.540-de
Версия Metamod
Metamod-r v1.3.0.128, API (5:13
Список метамодулей
[ 1] // <b>NONSTEAM(CONNECT)</b>               RUN   -    reunion.so                v0.1.75          ini  Start Never
[ 2] // <b>NONSTEAM(VOICE)</b> RUN - revoice.so v0.1.0.34 ini Start Never
[ 3] // <b>AMXMODX(CORE)</b> RUN - amxmodx_mm_i386.so v1.9.0.5271 ini Start ANY
[ 4] // <b>SAFEANDNAME(SPECIAL CHARACTER)</b> RUN - namechat.so v1.1 ini ANY ANY
[ 5] // <b>SEMICLIP(REAPI)</b> RUN - resemiclip.so v2.3.9 ini Chlvl ANY
[ 7] // <b>ANTI-WALL(Resources Checker)</b> RUN - rechecker.so v2.5 ini Chlvl ANY
[ 8] // <b>ANTI-WALL(SPRUN-NAMESPAM)</b> RUN - resrdetector_mm_i386.so v0.1.0 ini Chlvl ANY
[11] Fun RUN - fun_amxx_i386.so v1.9.0.5271 pl3 ANY ANY
[12] Engine RUN - engine_amxx_i386.so v1.9.0.5271 pl3 ANY ANY
[13] FakeMeta RUN - fakemeta_amxx_i386.so v1.9.0.5271 pl3 ANY ANY

[14] GeoIP RUN - geoip_amxx_i386.so v1.9.0.5271 pl3 ANY ANY
[15] CStrike RUN - cstrike_amxx_i386.so v1.9.0.5271 pl3 ANY ANY
[16] Ham Sandwich RUN - hamsandwich_amxx_i386.so v1.9.0.5271 pl3 ANY ANY
[17] CSX RUN - csx_amxx_i386.so v1.9.0.5271 pl3 ANY ANY
[18] ReAPI RUN - reapi_amxx_i386.so v5.21.0.248-dev pl3 ANY Never
[42] // <b>ANTI-WALL(OPENGL)</b> badf load csbot_enabler_mm_i386.so v -
Список плагинов
[  1] Admin Base              1.9.0.5271  AMXX Dev Team     admin.amxx       running  
[ 2] Admin Commands 1.9.0.5271 AMXX Dev Team admincmd.amxx running
[ 3] Admin Help 1.9.0.5294 AMXX Dev Team adminhelp.amxx running
[ 4] Slots Reservation 1.9.0.5271 AMXX Dev Team adminslots.amxx running
[ 5] Multi-Lingual System 1.9.0.5271 AMXX Dev Team multilingual.am running
[ 6] Menus Front-End 1.9.0.5271 AMXX Dev Team menufront.amxx running
[ 7] Players Menu 1.9.0.5271 AMXX Dev Team plmenu.amxx running
[ 8] Teleport Menu 1.9.0.5271 AMXX Dev Team telemenu.amxx running
[ 9] Maps Menu 1.9.0.5271 AMXX Dev Team mapsmenu.amxx running
[ 10] Admin Chat 1.9.0.5271 AMXX Dev Team adminchat.amxx running
[ 11] All Chat 1.1 Ian Cammarata allchat.amxx running
[ 12] AdminListen 2.5 /dev/ urandom V amx_adminlisten running
[ 13] Admin Votes 1.9.0.5271 AMXX Dev Team adminvote.amxx running
[ 14] NextMap 1.9.0.5271 AMXX Dev Team nextmap.amxx running

[ 15] Nextmap Chooser 1.9.0.5271 AMXX Dev Team mapchooser.amxx running
[ 16] Stats Configuration 1.9.0.5271 AMXX Dev Team statscfg.amxx running
[ 17] Restrict Weapons 1.8.1.3746 AMXX Dev Team restmenu.amxx running
[ 18] StatsX 1.9.0.5271 AMXX Dev Team statsx.amxx running
[ 19] Amx_Super 1.0 PurposeLess akinsuper.amxx running
[ 20] Client Autoexec on Con 1.0 Torch autoexec.amxx running
[ 21] Dynamic Time Plugin 1.0 Fatih ~ EjderYa connect_time.am running
[ 22] TimeLeft 1.10.0.539 AMXX Dev Team normal_timeleft debug
[ 23] Say Kayit v1 soldierarda normal_saylog.a debug
[ 24] Loglanan Oyuncu 1.0 Yek'-ta forum.cs normal_giriscik debug
[ 25] RESET SKOR / REAPI 1 SOLDIER.ARDA reapi_scorerese debug
[ 26] MAC PLUGINI V1 SOLDIERARDA macbotu.amxx running
[ 27] Map Spawns Editor 1.0.16 iG_os normal_spawnedi running
[ 28] Anti DD Scroll 1.0 Empower axd.amxx runn
Автор плагина
Numb
Версия плагина
1.4
Исходный код
https://forums.alliedmods.net/showthread.php?p=619219
Hello good day


I have onet match server.
I want to use duck on my server, but I should only be able to duck with the ctrl key.
With the mouse rotation button, ducks should not be made, the player should not move.
In the plugin I have thrown, the player does not move with the rotation button of the mouse, but duck is not made with the ctrl button.


2 plugins that can help you

In the plugin just below, the player can duck with the ctrl key.
but
When the mouse rotates the spin button, the player should not move.
Код:
/* Plugin specialy made for best server in the world ukr-games.com
If you find any bugs, please sent me icq:60-500-400/skype empower-666.         */

#include <amxmodx>
#include <fakemeta>

new last_stand[33],Float:duck_start_time[33],Float:last_origin[33][3]

public plugin_init() {
    register_plugin("Anti DD Scroll", "1.0", "Empower")
    register_forward(FM_CmdStart, "pfw_CmdStart", 1)
   
    register_cvar("adds_version", "1.0", FCVAR_SERVER | FCVAR_SPONLY)
}

public pfw_CmdStart(id, pUC, seed)
{
    new iButtons = get_uc(pUC, UC_Buttons)
   
    // just ducked
    if(iButtons & IN_DUCK)
    {
        client_print(id,print_chat,"egiliyorsun")
        if(last_stand[id])
        {
            pev(id,pev_origin,last_origin[id])
           
            duck_start_time[id] = get_gametime()   
            last_stand[id] = false;
        }
       
    }
    // just got up
    else
    {
        if(!last_stand[id])
        {
            new Float:fGameTime = get_gametime()
           
            // So low time, this is scroll for sure, block duck.
            if((fGameTime-duck_start_time[id])<0.02)
            {
                engfunc(EngFunc_SetOrigin, id, last_origin[id])
                set_pev(id, pev_bInDuck, false);
            }
        }
        last_stand[id] = true;
    }
   
}
Код:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN_NAME "Anti DoubleDuck"
#define PLUGIN_VERSION "1.4"
#define PLUGIN_AUTHOR "Numb"

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-standart
        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 client_disconnect(id)
    g_bFakeDuck[id] = false;

public FM_PlayerPreThink_Pre(id)
{
    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( 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
    }
}

/*
I know that client-side doubleduck blocking is wierd and can look a bit stupid (unpro-scripted)... but belive me this is the only way to do it currectly
I was searching for this block way about a month and finaly... So please, don't ask questions why what is where (but I added some comments in the code if you are interested).
I'm realy tired after this search...

P.S. The best game is the game with no bugs. Gl & hf. =)
*/
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу