Трябва ми stuck плъгин за BB 6.5

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
KARASKO
Извън линия
Потребител
Потребител
Мнения: 51
Регистриран на: 03 Яну 2021, 23:55
Се отблагодари: 1 път
Получена благодарност: 4 пъти

Трябва ми stuck плъгин за BB 6.5

Мнение от KARASKO » 18 Апр 2021, 15:25

Използвам unstuck плъгина, но също така ми трябва и stuck плъгина (да стъкне играча над предмета). Търсих из интернет, но намерих само unstuck. Използвам този код, ако някой може да го промени на stuck ще съм му благодарен. :gamer2:

Код за потвърждение: Избери целия код

/*  AMX Mod X
*   UnStuck Plugin
*
*   by the AMX Mod X Development Team
*
*   This file is part of AMX Mod X.
*   
*   
*   This program is free software; you can redistribute it and/or modify it
*   under the terms of the GNU General Public License as published by the
*   Free Software Foundation; either version 2 of the License, or (at
*   your option) any later version.
*   
*   This program is distributed in the hope that it will be useful, but
*   WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
*   General Public License for more details.
*   
*   You should have received a copy of the GNU General Public License
*   along with this program; if not, write to the Free Software Foundation,
*   Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*   
*   In addition, as a special exception, the author gives permission to
*   link the code of this program with the Half-Life Game Engine ("HL
*   Engine") and Modified Game Libraries ("MODs") developed by Valve,
*   L.L.C ("Valve"). You must obey the GNU General Public License in all
*   respects for all of the code used other than the HL Engine and MODs
*   from Valve. If you modify this file, you may extend this exception
*   to your version of the file, but you are not obligated to do so. If
*   you do not wish to do so, delete this exception statement from your
*   version.
*
*   Official Release Link and Changelog
*   http://www.extreamcs.com/forum/pluginuri-extream/amxx-untuck-t265448.html
*   
*/
 
#include < amxmodx >
#include < fakemeta >
 
// Defines should be first
#define MAX_CLIENTS     32
#define START_DISTANCE  32
#define MAX_ATTEMPTS    128
#define GetPlayerHullSize(%1)  ( ( pev ( %1, pev_flags ) & FL_DUCKING ) ? HULL_HEAD : HULL_HUMAN )
 
// Globals needed
new
    g_MsgSync;
 
// pCvars begins
new
    pCvar_Function,
    pCvar_UnstEff,
    pCvar_UnstWait,
    pCvar_Announce [ 5 ];
 
new Float:gf_LastCmdTime [ MAX_CLIENTS + 1 ];
 
enum Coord_e
{
    Float:x,
    Float:y,
    Float:z
};
 
/************************************************************************************/
// If you use a Zombie Mod and don't want zombies to cheat using untuck command
// Uncomment the Mod you Use
 
// Default NO Mod
#define USE_DEFAULT
 
// Zombie Plague 4.3 and 5.0
// #define USE_ZPMOD
 
// Biohazard [ALL Version]
// #define USE_BIOMOD
 
// Don't touch
#if defined USE_ZPMOD
    #tryinclude < zombieplague >
#endif
 
#if defined USE_BIOMOD
    #tryinclude < biohazard >
#endif
/************************************************************************************/
 
 
// Plugins begins
public plugin_init ( )
{
    register_plugin ( "AMXX Unstuck", "1.7.2", "AMXX Dev Builder" );    // & CryWolf
    
    // Main plugin
    pCvar_Function  = register_cvar ( "amx_unstuck", "1" );
    pCvar_UnstEff   = register_cvar ( "amx_autounstuckeffects", "1" );
    pCvar_UnstWait  = register_cvar ( "amx_autounstuckwait", "7.0" );
    
    // Message pCvars
    pCvar_Announce [ 0 ]    = register_cvar ( "amx_unst_announce", "1" );
    pCvar_Announce [ 1 ]    = register_cvar ( "amx_ann_time", "120" );
    pCvar_Announce [ 2 ]    = register_cvar ( "amx_ann_type", "1" );
    pCvar_Announce [ 3 ]    = register_cvar ( "amx_ann_hold", "15.0" );
    pCvar_Announce [ 4 ]    = register_cvar ( "amx_ann_effects", "0" );
    
    // Chat commands
    register_clcmd ( "say /unstuck", "FunC_CheckStuck", -1 );
    register_clcmd ( "say /stuck", "FunC_CheckStuck", -1 );
    register_clcmd ( "say /unblock", "FunC_CheckStuck", -1 );
    
    
    if ( get_pcvar_num ( pCvar_Announce [ 0 ] ) )
    {
        g_MsgSync = CreateHudSyncObj ( );
        set_task ( get_pcvar_float ( pCvar_Announce [ 1 ] ), "ShowMessage", 0, _, _, "b", _ );
    }
}
 
public ShowMessage ( )
{
    switch ( get_pcvar_num ( pCvar_Announce [ 2 ] ) )
    {
        case 1:
        {
            client_print ( 0, print_chat, "[Unstuck] If you are stucked type /unstuck in chat to unstuck" );
        }
        case 2:
        {
            set_hudmessage ( 170, 255, 127, 0.02, 0.17, get_pcvar_num ( pCvar_Announce [ 4 ] ), 6.0, get_pcvar_float ( pCvar_Announce [ 3 ] ) );
            ShowSyncHudMsg ( 0, g_MsgSync, "If you are stucked type /unstuck in chat to unstuck" );
        }
        default: return;
    }
}
            
            
public FunC_CheckStuck ( const iPlayer)
{
    if ( !get_pcvar_num ( pCvar_Function ) )
        return 1;
    
    new Float:f_MinFrequency    = get_pcvar_float ( pCvar_UnstWait );
    new Float:f_ElapsedCmdTime  = get_gametime ( ) - gf_LastCmdTime [ iPlayer ];
        
    if ( f_ElapsedCmdTime < f_MinFrequency ) 
    {
        client_print ( iPlayer, print_chat, "[AMXX] You must wait %.1f seconds before trying to free yourself.", f_MinFrequency - f_ElapsedCmdTime );
        return 1;
    }
    
    gf_LastCmdTime [ iPlayer ] = get_gametime ( );
    new i_Value;
    
    if ( ( i_Value = UnstuckPlayer ( iPlayer, START_DISTANCE, MAX_ATTEMPTS ) ) != 1 )
    {
        switch ( i_Value )
        {
            case 0  : {
                client_print ( iPlayer, print_chat, "[Unstuck] Couldn't find a free spot to move you too" );
            }
            case -1 : {
                client_print ( iPlayer, print_chat, "[Unstuck] You cannot free yourself as dead player" );
            }
        }
    }
    
    return 1;
}
 
public UnstuckPlayer ( const id, const i_StartDistance, const i_MaxAttempts )
{   
    #if defined USE_DEFAULT
    if ( is_user_alive ( id ) )
    {
    #endif
    
    #if defined USE_ZPMOD
    if ( is_user_alive ( id ) && !zp_get_user_zombie ( id ) )
    {
    #endif
    
    #if defined USE_BIOMOD
    if ( is_user_alive ( id ) && !is_user_zombie ( id ) )
    {
    #endif
        static Float:vf_OriginalOrigin [ Coord_e ], Float:vf_NewOrigin [ Coord_e ];
        static i_Attempts, i_Distance;
        
        pev ( id, pev_origin, vf_OriginalOrigin );
        i_Distance = i_StartDistance;
        
        while ( i_Distance < 1000 )
        {
            i_Attempts = i_MaxAttempts;
        
            while ( i_Attempts-- )
            {
                vf_NewOrigin [ x ] = random_float ( vf_OriginalOrigin [ x ] - i_Distance, vf_OriginalOrigin [ x ] + i_Distance );
                vf_NewOrigin [ y ] = random_float ( vf_OriginalOrigin [ y ] - i_Distance, vf_OriginalOrigin [ y ] + i_Distance );
                vf_NewOrigin [ z ] = random_float ( vf_OriginalOrigin [ z ] - i_Distance, vf_OriginalOrigin [ z ] + i_Distance );
                
                engfunc ( EngFunc_TraceHull, vf_NewOrigin, vf_NewOrigin, DONT_IGNORE_MONSTERS, GetPlayerHullSize ( id ), id, 0 );
                
                if ( get_tr2 ( 0, TR_InOpen ) && !get_tr2 ( 0, TR_AllSolid ) && !get_tr2 ( 0, TR_StartSolid ) )
                {
                    engfunc ( EngFunc_SetOrigin, id, vf_NewOrigin );
                    effects ( id );
                    client_print ( id, print_chat, "[Unstuck] You have been teleported to a new location." );
                    
                    return 1;
                }
            }
            i_Distance += i_StartDistance;
        }
    }
        return 0;
}
    
public effects ( id )
{
    if ( get_pcvar_num ( pCvar_UnstEff ) )
    {
        message_begin ( MSG_ONE_UNRELIABLE, 105, { 0, 0, 0 }, id );    
        write_short(1<<10);     // fade lasts this long duration
        write_short(1<<10);     // fade lasts this long hold time
        write_short(1<<1);      // fade type (in / out)
        write_byte(20);         // fade red
        write_byte(255);        // fade green
        write_byte(255);        // fade blue
        write_byte(255);        // fade alpha
        message_end ( );
        client_cmd ( id, "spk fvox/blip.wav" );
    }
}

Аватар
kitin.dll
Извън линия
Потребител
Потребител
Мнения: 20
Регистриран на: 05 Апр 2021, 22:34
Се отблагодари: 1 път
Получена благодарност: 2 пъти
Обратна връзка:

Трябва ми stuck плъгин за BB 6.5

Мнение от kitin.dll » 18 Апр 2021, 16:11

Пробвай...
Прикачени файлове
semistuck.sma
Този е ако ползваш Semiclip
(5.51 KiB) Свалено 74 пъти
semistuck.sma
Този е ако ползваш Semiclip
(5.51 KiB) Свалено 74 пъти
stuck.sma
(3.68 KiB) Свалено 72 пъти
stuck.sma
(3.68 KiB) Свалено 72 пъти
45.144.155.98:27027 - CS.BLACK-GAMING.NET # DeathRun 4FUN (RANKS|RTD|RACE|VIP)

Аватар
KARASKO
Извън линия
Потребител
Потребител
Мнения: 51
Регистриран на: 03 Яну 2021, 23:55
Се отблагодари: 1 път
Получена благодарност: 4 пъти

Трябва ми stuck плъгин за BB 6.5

Мнение от KARASKO » 18 Апр 2021, 16:50

kitin.dll написа: 18 Апр 2021, 16:11 Пробвай...
Не става... :headbang:

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 7 госта