Преработка на Hook

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
Zedong
Извън линия
Потребител
Потребител
Мнения: 5
Регистриран на: 16 Окт 2021, 14:24
Обратна връзка:

Преработка на Hook

Мнение от Zedong » 17 Окт 2021, 10:11

Здравейте, искам да попитам дали е възможно да се направи този Hook за BaseBuilder 4.3 by VeCo и само да е за BuildTime и всички играчи да имат достъп до hook-a.

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

#include <amxmodx>
#include <engine>


/* Tirant Zombie Base Builder or Veco Zombie Base Builder */
 
#define USE_TIRANT_ZBB
//#define USE_VECO_ZBB
 
#if defined USE_TIRANT_ZBB
    #include <basebuilder>
    #define IsBuildPhase() bb_is_build_phase()
#endif
 
#if defined USE_VECO_ZBB
    #include <vzbb_mod>
    #define IsBuildPhase() user_can_build()
#endif
 
new bool:g_bHook[ 33 ];
 
new gHookOrigins[ 33 ][ 3 ];
 
new g_iHook;
 
new const g_szPrefix[ ] = "Your Prefix Here";
 
public plugin_init( )
{
    register_plugin( "[ ZBB Addon ] Hook", "1.0", "One Above All" );
   
    register_clcmd( "+hook", "hook_on" );
    register_clcmd( "-hook", "hook_off" );
}
public plugin_precache( )
{  
    g_iHook = precache_model( "sprites/zbb/hook.spr" );
}
public hook_on( id )
{
    if ( !(get_user_flags( id ) & ADMIN_RCON) && !IsBuildPhase( ) )
    {
        ColorMessage( id, "Only^3 Admins^1 can use hook after build phase." );
        return PLUGIN_HANDLED;
    }
    if ( get_user_team( id ) != 2 )
    {
        ColorMessage( id, "Only^3 Counter-Terrorists^1 can use hook!" );
        return PLUGIN_HANDLED;
    }
    if ( IsBuildPhase() || get_user_flags( id ) & ADMIN_RCON && !IsBuildPhase())
    {
        get_user_origin( id, gHookOrigins[ id ], 3 );
        g_bHook[ id ] = true;
        set_task( 0.1, "hook_task", id, "", 0, "ab" );
        hook_task( id );
    }
    return PLUGIN_HANDLED;
}
public hook_off( id )
{
    remove_hook( id );
    return PLUGIN_HANDLED;
}
public hook_task( id )
{
    if( !is_user_connected( id ) || !is_user_alive( id ) )
        remove_hook( id );
   
    remove_beam( id );
    draw_hook( id );
    new iOrigin[ 3 ], Float:fVelocity[ 3 ];
   
    get_user_origin( id, iOrigin );
    new iDistance = get_distance( gHookOrigins[ id ], iOrigin);
    if ( iDistance > 25 )
    {
        fVelocity[ 0 ] = ( gHookOrigins[ id ][ 0 ] - iOrigin[ 0 ] ) * ( 2.0 * 300 / iDistance );
        fVelocity[ 1 ] = ( gHookOrigins[ id ][ 1 ] - iOrigin[ 1 ] ) * ( 2.0 * 300 / iDistance );
        fVelocity[ 2 ] = ( gHookOrigins[ id ][ 2 ] - iOrigin[ 2 ] ) * ( 2.0 * 300 / iDistance );
        entity_set_vector( id, EV_VEC_velocity, fVelocity );
    }
    else
    {
        entity_set_vector( id, EV_VEC_velocity, Float:{0.0,0.0,0.0} );
        remove_hook( id );
    }
}
public draw_hook( id )
{
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( 1 );                // TE_BEAMENTPOINT
    write_short( id );          // Entity index
    write_coord( gHookOrigins[ id ][ 0 ] );     // Origin
    write_coord( gHookOrigins[ id ][ 1 ] );     // Origin
    write_coord( gHookOrigins[ id ][ 2 ] );     // Origin
    write_short( g_iHook );             // Sprite index
    write_byte( 0 );                // Start frame
    write_byte( 0 );                // Framerate
    write_byte( 100 );          // Life
    write_byte( 10 );           // Width
    write_byte( 0 );                // Noise
    write_byte( random_num(0, 255) );       // Red
    write_byte( random_num(0, 255) );       // Green
    write_byte( random_num(0, 255) );       // Blue
    write_byte( 250 );          // Brightness
    write_byte( 1 );                // Speed
    message_end( );
}
public remove_hook( id )
{
    if( task_exists( id ) )
        remove_task( id );
       
    remove_beam(id);
    g_bHook[ id ] = false;
}
public remove_beam(id)
{
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( 99 );
    write_short( id );
    message_end( );
}
stock ColorMessage( const id, const input[ ], any:... )
{
    new iCount = 1, iPlayers[ 32 ];
    static szMessage[ 191 ];
    new iLen = formatex( szMessage, 190, "^4[%s]^1 ", g_szPrefix );
    vformat( szMessage[ iLen ], 190-iLen, input, 3 );
    if ( id ) iPlayers[ 0 ] = id;
    else get_players( iPlayers , iCount , "ch" );
   
    for ( new i = 0; i < iCount; i++ )
    {
        if ( is_user_connected( iPlayers[ i ] ) )
        {
            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, iPlayers[ i ] );
            write_byte( iPlayers[ i ] );
            write_string( szMessage );
            message_end( );
        }
    }
}

Аватар
zolfeca
Извън линия
Модератор
Модератор
Мнения: 316
Регистриран на: 10 Окт 2016, 23:48
Се отблагодари: 23 пъти
Получена благодарност: 65 пъти

Преработка на Hook

Мнение от zolfeca » 17 Окт 2021, 14:25

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

#define USE_TIRANT_ZBB
//#define USE_VECO_ZBB
>>

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

//#define USE_TIRANT_ZBB
#define USE_VECO_ZBB

Аватар
Zedong
Извън линия
Потребител
Потребител
Мнения: 5
Регистриран на: 16 Окт 2021, 14:24
Обратна връзка:

Преработка на Hook

Мнение от Zedong » 17 Окт 2021, 17:30

След Build и Prep Time hook-a пак се изпозлва. Аз искам само BuildTime да се използва hook-a

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7001
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 116 пъти
Получена благодарност: 1193 пъти
Обратна връзка:

Преработка на Hook

Мнение от OciXCrom » 18 Окт 2021, 00:11

Махни си администраторските флагове и тествай пак.
Подпис.

Аватар
Zedong
Извън линия
Потребител
Потребител
Мнения: 5
Регистриран на: 16 Окт 2021, 14:24
Обратна връзка:

Преработка на Hook

Мнение от Zedong » 18 Окт 2021, 01:17

Може ли да ми ги махнете?Защото аз не успях да ги махна.

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

#include <amxmodx>
#include <engine>


/* Tirant Zombie Base Builder or Veco Zombie Base Builder */
 
//#define USE_TIRANT_ZBB
#define USE_VECO_ZBB
 
#if defined USE_TIRANT_ZBB
    #include <basebuilder>
    #define IsBuildPhase() bb_is_build_phase()
#endif
 
#if defined USE_VECO_ZBB
    #include <vzbb_mod>
    #define IsBuildPhase() user_can_build()
#endif
 
new bool:g_bHook[ 33 ];
 
new gHookOrigins[ 33 ][ 3 ];
 
new g_iHook;
 
new const g_szPrefix[ ] = "bg-bb";
 
public plugin_init( )
{
    register_plugin( "[ ZBB Addon ] Hook", "1.0", "One Above All" );
   
    register_clcmd( "+hook", "hook_on" );
    register_clcmd( "-hook", "hook_off" );
}
public plugin_precache( )
{  
    g_iHook = precache_model( "sprites/zbb/lgtning.spr" );
}
public hook_on( id )
{
    if ( !(get_user_flags( id ) & ADMIN_RCON) && !IsBuildPhase( ) )
    {
        ColorMessage( id, "Only^3 Admins^1 can use hook after build phase." );
        return PLUGIN_HANDLED;
    }
    if ( get_user_team( id ) != 2 )
    {
        ColorMessage( id, "Only^3 humans^1 can use hook!" );
        return PLUGIN_HANDLED;
    }
    if ( IsBuildPhase() || get_user_flags( id ) & ADMIN_RCON && !IsBuildPhase() )
    {
        get_user_origin( id, gHookOrigins[ id ], 3 );
        g_bHook[ id ] = true;
        set_task( 0.1, "hook_task", id, "", 0, "ab" );
        hook_task( id );
    }
    return PLUGIN_HANDLED;
}
public hook_off( id )
{
    remove_hook( id );
    return PLUGIN_HANDLED;
}
public hook_task( id )
{
    if( !is_user_connected( id ) || !is_user_alive( id ) )
        remove_hook( id );
   
    remove_beam( id );
    draw_hook( id );
    new iOrigin[ 3 ], Float:fVelocity[ 3 ];
   
    get_user_origin( id, iOrigin );
    new iDistance = get_distance( gHookOrigins[ id ], iOrigin);
    if ( iDistance > 25 )
    {
        fVelocity[ 0 ] = ( gHookOrigins[ id ][ 0 ] - iOrigin[ 0 ] ) * ( 2.0 * 300 / iDistance );
        fVelocity[ 1 ] = ( gHookOrigins[ id ][ 1 ] - iOrigin[ 1 ] ) * ( 2.0 * 300 / iDistance );
        fVelocity[ 2 ] = ( gHookOrigins[ id ][ 2 ] - iOrigin[ 2 ] ) * ( 2.0 * 300 / iDistance );
        entity_set_vector( id, EV_VEC_velocity, fVelocity );
    }
    else
    {
        entity_set_vector( id, EV_VEC_velocity, Float:{0.0,0.0,0.0} );
        remove_hook( id );
    }
}
public draw_hook( id )
{
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( 1 );                // TE_BEAMENTPOINT
    write_short( id );          // Entity index
    write_coord( gHookOrigins[ id ][ 0 ] );     // Origin
    write_coord( gHookOrigins[ id ][ 1 ] );     // Origin
    write_coord( gHookOrigins[ id ][ 2 ] );     // Origin
    write_short( g_iHook );             // Sprite index
    write_byte( 0 );                // Start frame
    write_byte( 0 );                // Framerate
    write_byte( 100 );          // Life
    write_byte( 10 );           // Width
    write_byte( 0 );                // Noise
    write_byte( random_num(0, 255) );       // Red
    write_byte( random_num(0, 255) );       // Green
    write_byte( random_num(0, 255) );       // Blue
    write_byte( 250 );          // Brightness
    write_byte( 1 );                // Speed
    message_end( );
}
public remove_hook( id )
{
    if( task_exists( id ) )
        remove_task( id );
       
    remove_beam(id);
    g_bHook[ id ] = false;
}
public remove_beam(id)
{
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( 99 );
    write_short( id );
    message_end( );
}
stock ColorMessage( const id, const input[ ], any:... )
{
    new iCount = 1, iPlayers[ 32 ];
    static szMessage[ 191 ];
    new iLen = formatex( szMessage, 190, "^4[%s]^1 ", g_szPrefix );
    vformat( szMessage[ iLen ], 190-iLen, input, 3 );
    if ( id ) iPlayers[ 0 ] = id;
    else get_players( iPlayers , iCount , "ch" );
   
    for ( new i = 0; i < iCount; i++ )
    {
        if ( is_user_connected( iPlayers[ i ] ) )
        {
            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, iPlayers[ i ] );
            write_byte( iPlayers[ i ] );
            write_string( szMessage );
            message_end( );
        }
    }
}

Аватар
zolfeca
Извън линия
Модератор
Модератор
Мнения: 316
Регистриран на: 10 Окт 2016, 23:48
Се отблагодари: 23 пъти
Получена благодарност: 65 пъти

Преработка на Hook

Мнение от zolfeca » 18 Окт 2021, 13:26

Не можеш да си махнеш правата в сървъра ? Това ли казваш ?

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 358
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 68 пъти
Получена благодарност: 13 пъти
Обратна връзка:

Преработка на Hook

Мнение от Siska » 18 Окт 2021, 13:47

Zedong написа:
18 Окт 2021, 01:17
Може ли да ми ги махнете? Защото аз не успях да ги махна.
Здравей приятел :)
Доколкото разбирам тук са ти казали да си махнеш админските права , за да станеш като всички играчи и да можеш да тестваш дали работи както ти искаш , а именно за всички играчи.
Правата ти трябва да са добавени в този файл - amxmodx/configs/users.ini , а ти трябва да ги махнеш от там.
След това тествай пак плъгина...
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
bg-bb
Извън линия
Потребител
Потребител
Мнения: 7
Регистриран на: 19 Окт 2021, 19:09
Обратна връзка:

Преработка на Hook

Мнение от bg-bb » 19 Окт 2021, 19:12

Незнам за човека който пусна тая заявка но искам да попитам. Може ли hook-a да се изпозлва само във BuildTime?Защото при мен играчите,админите могат да позлват на PrepTime и след тях пак могат да го позлват.
Ето и кода. Става въпрос за BaseBuilder 4.3 by VeCo

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

#include <amxmodx>
#include <engine>


/* Tirant Zombie Base Builder or Veco Zombie Base Builder */
 
//#define USE_TIRANT_ZBB
#define USE_VECO_ZBB
 
#if defined USE_TIRANT_ZBB
    #include <basebuilder>
    #define IsBuildPhase() bb_is_build_phase()
#endif
 
#if defined USE_VECO_ZBB
    #include <vzbb_mod>
    #define IsBuildPhase() user_can_build()
#endif
 
new bool:g_bHook[ 33 ];
 
new gHookOrigins[ 33 ][ 3 ];
 
new g_iHook;
 
new const g_szPrefix[ ] = "bb";
 
public plugin_init( )
{
    register_plugin( "[ ZBB Addon ] Hook", "1.0", "One Above All" );
   
    register_clcmd( "+hook", "hook_on" );
    register_clcmd( "-hook", "hook_off" );
}
public plugin_precache( )
{  
    g_iHook = precache_model( "sprites/zbb/lgtning.spr" );
}
public hook_on( id )
{
    if ( !(get_user_flags( id ) & ADMIN_LEVEL_H) && !IsBuildPhase( ) )
    {
        ColorMessage( id, "Only^3 Admins^1 can use hook after build phase." );
        return PLUGIN_HANDLED;
    }
    if ( get_user_team( id ) != 2 )
    {
        ColorMessage( id, "Only^3 humans^1 can use hook!" );
        return PLUGIN_HANDLED;
    }
    if ( IsBuildPhase() || get_user_flags( id ) & ADMIN_LEVEL_H && !IsBuildPhase() )
    {
        get_user_origin( id, gHookOrigins[ id ], 3 );
        g_bHook[ id ] = true;
        set_task( 0.1, "hook_task", id, "", 0, "t" );
        hook_task( id );
    }
    return PLUGIN_HANDLED;
}
public hook_off( id )
{
    remove_hook( id );
    return PLUGIN_HANDLED;
}
public hook_task( id )
{
    if( !is_user_connected( id ) || !is_user_alive( id ) )
        remove_hook( id );
   
    remove_beam( id );
    draw_hook( id );
    new iOrigin[ 3 ], Float:fVelocity[ 3 ];
   
    get_user_origin( id, iOrigin );
    new iDistance = get_distance( gHookOrigins[ id ], iOrigin);
    if ( iDistance > 25 )
    {
        fVelocity[ 0 ] = ( gHookOrigins[ id ][ 0 ] - iOrigin[ 0 ] ) * ( 2.0 * 300 / iDistance );
        fVelocity[ 1 ] = ( gHookOrigins[ id ][ 1 ] - iOrigin[ 1 ] ) * ( 2.0 * 300 / iDistance );
        fVelocity[ 2 ] = ( gHookOrigins[ id ][ 2 ] - iOrigin[ 2 ] ) * ( 2.0 * 300 / iDistance );
        entity_set_vector( id, EV_VEC_velocity, fVelocity );
    }
    else
    {
        entity_set_vector( id, EV_VEC_velocity, Float:{0.0,0.0,0.0} );
        remove_hook( id );
    }
}
public draw_hook( id )
{
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( 1 );                // TE_BEAMENTPOINT
    write_short( id );          // Entity index
    write_coord( gHookOrigins[ id ][ 0 ] );     // Origin
    write_coord( gHookOrigins[ id ][ 1 ] );     // Origin
    write_coord( gHookOrigins[ id ][ 2 ] );     // Origin
    write_short( g_iHook );             // Sprite index
    write_byte( 0 );                // Start frame
    write_byte( 0 );                // Framerate
    write_byte( 100 );          // Life
    write_byte( 10 );           // Width
    write_byte( 0 );                // Noise
    write_byte( random_num(0, 255) );       // Red
    write_byte( random_num(0, 255) );       // Green
    write_byte( random_num(0, 255) );       // Blue
    write_byte( 250 );          // Brightness
    write_byte( 1 );                // Speed
    message_end( );
}
public remove_hook( id )
{
    if( task_exists( id ) )
        remove_task( id );
       
    remove_beam(id);
    g_bHook[ id ] = false;
}
public remove_beam(id)
{
    message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
    write_byte( 99 );
    write_short( id );
    message_end( );
}
stock ColorMessage( const id, const input[ ], any:... )
{
    new iCount = 1, iPlayers[ 32 ];
    static szMessage[ 191 ];
    new iLen = formatex( szMessage, 190, "^4[%s]^1 ", g_szPrefix );
    vformat( szMessage[ iLen ], 190-iLen, input, 3 );
    if ( id ) iPlayers[ 0 ] = id;
    else get_players( iPlayers , iCount , "ch" );
   
    for ( new i = 0; i < iCount; i++ )
    {
        if ( is_user_connected( iPlayers[ i ] ) )
        {
            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, iPlayers[ i ] );
            write_byte( iPlayers[ i ] );
            write_string( szMessage );
            message_end( );
        }
    }
}

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

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

Кой е на линия

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