Raised This Month: $ Target: $400
 0% 

Voice plugin


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Barlap
Senior Member
Join Date: Apr 2016
Location: Romania
Old 05-24-2021 , 18:32   Re: Voice plugin
Reply With Quote #1

Try this
Code:
#include < amxmodx >
#include < fakemeta >

enum _:Teams
{
    FM_TEAM_UNASSIGNED,
    FM_TEAM_T,
    FM_TEAM_CT,
    FM_TEAM_SPECTATOR
};

new const szPrefix[ ] = "JB";

new bool:Voice[ 33 ], pCvar[ 2 ];

public plugin_init()
{
    register_plugin( "Voice menu", "1.1", "Barlap" );
    
    register_clcmd( "say /vmanager", "CmdVoice" );
    
    register_forward( FM_Voice_SetClientListening, "FwdVoiceSetClientListening" );
    
    register_logevent( "evRoundStart", 2, "1=Round_Start" );
    
    pCvar[ 0 ] = register_cvar( "vmanager_toggle", "1" );
    pCvar[ 1 ] = register_cvar( "vmanager_deadvoice", "1" );        // Dead players can talk to each other
}

public CmdVoice( client )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    if ( !(get_user_flags( client ) & ADMIN_IMMUNITY) )
        return ColorPrint( client, "You have no access to this command." );
    
    static szItem[ 128 ], Menu, Players[ 32 ], iNum, szTempid[ 10 ];
    
    formatex( szItem, charsmax( szItem ), "\r[%s]\w Voice Menu", szPrefix );
    
    Menu = menu_create( szItem, "SubVoice" );
    
    get_players( Players, iNum, "ce", "TERRORIST" );
    
    for ( new i; i < iNum; i++ )
    {
        new iPlayer = Players[ i ];
        
        num_to_str( iPlayer, szTempid, charsmax( szTempid ) );
        
        formatex( szItem, charsmax( szItem ), "%s%s", szName( iPlayer ), Voice[ iPlayer ] ? " - \d[\r Voice \d]" : "" );
        
        menu_additem( Menu, szItem, szTempid );
    }
    
    menu_display( client, Menu );
    
    return 1;
}

public SubVoice( client, Menu, Item )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    if ( Item == MENU_EXIT )
    {
        menu_destroy( Menu );
        
        return 1;
    }
    
    new Access, Callback, Name[ 64 ], Data[ 6 ];
    
    menu_item_getinfo( Menu, Item, Access, Data, charsmax( Data ), Name, charsmax( Name ),Callback );
    
    new iPlayer = str_to_num( Data );
    
    if ( fm_get_user_team( iPlayer ) != FM_TEAM_T )
        return ColorPrint( client, "Invalid player was chosen." );
    
    ColorPrint( 0, "^4%s^1 %s^4 %s^1 the abillity to speak.", szName( client ), Voice[ iPlayer ] ? "took" : "gave", szName( iPlayer ) );
    
    Voice[ iPlayer ] = !Voice[ iPlayer ];
    
    menu_destroy( Menu );
    
    CmdVoice( client );
    
    return 1;
}
    

public FwdVoiceSetClientListening( Rec, Sender, bool:bListen ) 
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) || get_user_flags( Sender ) & ADMIN_BAN || fm_get_user_team( Sender ) == FM_TEAM_CT && is_user_alive( Sender ) || Voice[ Sender ] ||
    get_pcvar_num( pCvar[ 1 ] ) != 0 && !is_user_alive( Sender ) && !is_user_alive( Rec ) || !is_user_connected( Sender ) || !is_user_connected( Rec ) )
        return 1;
    
    engfunc( EngFunc_SetClientListening, Rec, Sender, 0 );
    
    return FMRES_SUPERCEDE;
}

public evRoundStart( )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    for ( new i = 1; i < get_maxplayers(); i++ )
    {
        if ( !is_user_connected( i ) || !Voice[ i ] )
            continue;
        
        Voice[ i ] = false;
    }
    
    return 0;
}

stock ColorPrint( const client, const szString[], any:... )
{
    new szMsg[ 191 ], Players[ 32 ], PNum = 1;
    
    static Len; Len = formatex( szMsg, charsmax( szMsg ), "^4[%s]^1 ", szPrefix );
    
    vformat( szMsg[ Len ], charsmax ( szMsg ) - Len, szString, 3 );
    
    if ( client )    Players[ 0 ] = client;
    
    else    get_players( Players, PNum, "ch" );
    
    for ( new i; i < PNum; i++ )
    {
        if ( is_user_connected( Players[ i ] ) )
        {
            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ) ,_, Players[ i ] );
            
            write_byte( Players[ i ] );
            
            write_string( szMsg );
            
            message_end( );
        }
    }
    
    return 1;
}

stock szName( const index )
{
    static g_szName[ 32 ];
    
    get_user_name( index, g_szName, charsmax( g_szName ) );
    
    return g_szName;
}

stock fm_get_user_team( const index )
    return get_pdata_int( index, 114 );
Barlap is offline
Send a message via ICQ to Barlap Send a message via Skype™ to Barlap
NarutoAzores
Junior Member
Join Date: Sep 2018
Old 05-26-2021 , 18:12   Re: Voice plugin
Reply With Quote #2

Quote:
Originally Posted by Barlap View Post
Try this
Code:
#include < amxmodx >
#include < fakemeta >

enum _:Teams
{
    FM_TEAM_UNASSIGNED,
    FM_TEAM_T,
    FM_TEAM_CT,
    FM_TEAM_SPECTATOR
};

new const szPrefix[ ] = "JB";

new bool:Voice[ 33 ], pCvar[ 2 ];

public plugin_init()
{
    register_plugin( "Voice menu", "1.1", "Barlap" );
    
    register_clcmd( "say /vmanager", "CmdVoice" );
    
    register_forward( FM_Voice_SetClientListening, "FwdVoiceSetClientListening" );
    
    register_logevent( "evRoundStart", 2, "1=Round_Start" );
    
    pCvar[ 0 ] = register_cvar( "vmanager_toggle", "1" );
    pCvar[ 1 ] = register_cvar( "vmanager_deadvoice", "1" );        // Dead players can talk to each other
}

public CmdVoice( client )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    if ( !(get_user_flags( client ) & ADMIN_IMMUNITY) )
        return ColorPrint( client, "You have no access to this command." );
    
    static szItem[ 128 ], Menu, Players[ 32 ], iNum, szTempid[ 10 ];
    
    formatex( szItem, charsmax( szItem ), "\r[%s]\w Voice Menu", szPrefix );
    
    Menu = menu_create( szItem, "SubVoice" );
    
    get_players( Players, iNum, "ce", "TERRORIST" );
    
    for ( new i; i < iNum; i++ )
    {
        new iPlayer = Players[ i ];
        
        num_to_str( iPlayer, szTempid, charsmax( szTempid ) );
        
        formatex( szItem, charsmax( szItem ), "%s%s", szName( iPlayer ), Voice[ iPlayer ] ? " - \d[\r Voice \d]" : "" );
        
        menu_additem( Menu, szItem, szTempid );
    }
    
    menu_display( client, Menu );
    
    return 1;
}

public SubVoice( client, Menu, Item )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    if ( Item == MENU_EXIT )
    {
        menu_destroy( Menu );
        
        return 1;
    }
    
    new Access, Callback, Name[ 64 ], Data[ 6 ];
    
    menu_item_getinfo( Menu, Item, Access, Data, charsmax( Data ), Name, charsmax( Name ),Callback );
    
    new iPlayer = str_to_num( Data );
    
    if ( fm_get_user_team( iPlayer ) != FM_TEAM_T )
        return ColorPrint( client, "Invalid player was chosen." );
    
    ColorPrint( 0, "^4%s^1 %s^4 %s^1 the abillity to speak.", szName( client ), Voice[ iPlayer ] ? "took" : "gave", szName( iPlayer ) );
    
    Voice[ iPlayer ] = !Voice[ iPlayer ];
    
    menu_destroy( Menu );
    
    CmdVoice( client );
    
    return 1;
}
    

public FwdVoiceSetClientListening( Rec, Sender, bool:bListen ) 
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) || get_user_flags( Sender ) & ADMIN_BAN || fm_get_user_team( Sender ) == FM_TEAM_CT && is_user_alive( Sender ) || Voice[ Sender ] ||
    get_pcvar_num( pCvar[ 1 ] ) != 0 && !is_user_alive( Sender ) && !is_user_alive( Rec ) || !is_user_connected( Sender ) || !is_user_connected( Rec ) )
        return 1;
    
    engfunc( EngFunc_SetClientListening, Rec, Sender, 0 );
    
    return FMRES_SUPERCEDE;
}

public evRoundStart( )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    for ( new i = 1; i < get_maxplayers(); i++ )
    {
        if ( !is_user_connected( i ) || !Voice[ i ] )
            continue;
        
        Voice[ i ] = false;
    }
    
    return 0;
}

stock ColorPrint( const client, const szString[], any:... )
{
    new szMsg[ 191 ], Players[ 32 ], PNum = 1;
    
    static Len; Len = formatex( szMsg, charsmax( szMsg ), "^4[%s]^1 ", szPrefix );
    
    vformat( szMsg[ Len ], charsmax ( szMsg ) - Len, szString, 3 );
    
    if ( client )    Players[ 0 ] = client;
    
    else    get_players( Players, PNum, "ch" );
    
    for ( new i; i < PNum; i++ )
    {
        if ( is_user_connected( Players[ i ] ) )
        {
            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ) ,_, Players[ i ] );
            
            write_byte( Players[ i ] );
            
            write_string( szMsg );
            
            message_end( );
        }
    }
    
    return 1;
}

stock szName( const index )
{
    static g_szName[ 32 ];
    
    get_user_name( index, g_szName, charsmax( g_szName ) );
    
    return g_szName;
}

stock fm_get_user_team( const index )
    return get_pdata_int( index, 114 );
thank you i will test that
NarutoAzores is offline
NarutoAzores
Junior Member
Join Date: Sep 2018
Old 05-27-2021 , 16:08   Re: Voice plugin
Reply With Quote #3

Quote:
Originally Posted by Barlap View Post
Try this
Code:
#include < amxmodx >
#include < fakemeta >

enum _:Teams
{
    FM_TEAM_UNASSIGNED,
    FM_TEAM_T,
    FM_TEAM_CT,
    FM_TEAM_SPECTATOR
};

new const szPrefix[ ] = "JB";

new bool:Voice[ 33 ], pCvar[ 2 ];

public plugin_init()
{
    register_plugin( "Voice menu", "1.1", "Barlap" );
    
    register_clcmd( "say /vmanager", "CmdVoice" );
    
    register_forward( FM_Voice_SetClientListening, "FwdVoiceSetClientListening" );
    
    register_logevent( "evRoundStart", 2, "1=Round_Start" );
    
    pCvar[ 0 ] = register_cvar( "vmanager_toggle", "1" );
    pCvar[ 1 ] = register_cvar( "vmanager_deadvoice", "1" );        // Dead players can talk to each other
}

public CmdVoice( client )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    if ( !(get_user_flags( client ) & ADMIN_IMMUNITY) )
        return ColorPrint( client, "You have no access to this command." );
    
    static szItem[ 128 ], Menu, Players[ 32 ], iNum, szTempid[ 10 ];
    
    formatex( szItem, charsmax( szItem ), "\r[%s]\w Voice Menu", szPrefix );
    
    Menu = menu_create( szItem, "SubVoice" );
    
    get_players( Players, iNum, "ce", "TERRORIST" );
    
    for ( new i; i < iNum; i++ )
    {
        new iPlayer = Players[ i ];
        
        num_to_str( iPlayer, szTempid, charsmax( szTempid ) );
        
        formatex( szItem, charsmax( szItem ), "%s%s", szName( iPlayer ), Voice[ iPlayer ] ? " - \d[\r Voice \d]" : "" );
        
        menu_additem( Menu, szItem, szTempid );
    }
    
    menu_display( client, Menu );
    
    return 1;
}

public SubVoice( client, Menu, Item )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    if ( Item == MENU_EXIT )
    {
        menu_destroy( Menu );
        
        return 1;
    }
    
    new Access, Callback, Name[ 64 ], Data[ 6 ];
    
    menu_item_getinfo( Menu, Item, Access, Data, charsmax( Data ), Name, charsmax( Name ),Callback );
    
    new iPlayer = str_to_num( Data );
    
    if ( fm_get_user_team( iPlayer ) != FM_TEAM_T )
        return ColorPrint( client, "Invalid player was chosen." );
    
    ColorPrint( 0, "^4%s^1 %s^4 %s^1 the abillity to speak.", szName( client ), Voice[ iPlayer ] ? "took" : "gave", szName( iPlayer ) );
    
    Voice[ iPlayer ] = !Voice[ iPlayer ];
    
    menu_destroy( Menu );
    
    CmdVoice( client );
    
    return 1;
}
    

public FwdVoiceSetClientListening( Rec, Sender, bool:bListen ) 
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) || get_user_flags( Sender ) & ADMIN_BAN || fm_get_user_team( Sender ) == FM_TEAM_CT && is_user_alive( Sender ) || Voice[ Sender ] ||
    get_pcvar_num( pCvar[ 1 ] ) != 0 && !is_user_alive( Sender ) && !is_user_alive( Rec ) || !is_user_connected( Sender ) || !is_user_connected( Rec ) )
        return 1;
    
    engfunc( EngFunc_SetClientListening, Rec, Sender, 0 );
    
    return FMRES_SUPERCEDE;
}

public evRoundStart( )
{
    if ( !get_pcvar_num( pCvar[ 0 ] ) )
        return 0;
    
    for ( new i = 1; i < get_maxplayers(); i++ )
    {
        if ( !is_user_connected( i ) || !Voice[ i ] )
            continue;
        
        Voice[ i ] = false;
    }
    
    return 0;
}

stock ColorPrint( const client, const szString[], any:... )
{
    new szMsg[ 191 ], Players[ 32 ], PNum = 1;
    
    static Len; Len = formatex( szMsg, charsmax( szMsg ), "^4[%s]^1 ", szPrefix );
    
    vformat( szMsg[ Len ], charsmax ( szMsg ) - Len, szString, 3 );
    
    if ( client )    Players[ 0 ] = client;
    
    else    get_players( Players, PNum, "ch" );
    
    for ( new i; i < PNum; i++ )
    {
        if ( is_user_connected( Players[ i ] ) )
        {
            message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ) ,_, Players[ i ] );
            
            write_byte( Players[ i ] );
            
            write_string( szMsg );
            
            message_end( );
        }
    }
    
    return 1;
}

stock szName( const index )
{
    static g_szName[ 32 ];
    
    get_user_name( index, g_szName, charsmax( g_szName ) );
    
    return g_szName;
}

stock fm_get_user_team( const index )
    return get_pdata_int( index, 114 );
failed compile im using amx version 1.7 i think , what version you use?
NarutoAzores is offline
iceeedr
Veteran Member
Join Date: Apr 2017
Location: Brazil
Old 05-27-2021 , 16:44   Re: Voice plugin
Reply With Quote #4

Quote:
Originally Posted by NarutoAzores View Post
failed compile im using amx version 1.7 i think , what version you use?
1.7? WTF
__________________


Quote:
Originally Posted by fysiks View Post
Please stop trying to help. You appear to just be posting random stuff. Wait until you actually understand more about AMX Mod X and how the game works.
https://iceeedr.com.br/
iceeedr is offline
Send a message via Skype™ to iceeedr
fysiks
Veteran Member
Join Date: Sep 2007
Location: Flatland, USA
Old 05-27-2021 , 20:42   Re: Voice plugin
Reply With Quote #5

Quote:
Originally Posted by NarutoAzores View Post
failed compile im using amx version 1.7 i think , what version you use?
You should be using 1.9.0+.
__________________
fysiks is offline
Old 06-09-2021, 07:00
SoulWeaver16
This message has been deleted by SoulWeaver16. Reason: I already saw where to download it
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 19:57.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode