Page 1 of 1

Modificare sunete si altele

Posted: 27 Feb 2019, 18:43
by TaNNuTzZu
Buna seara!
In primul rand nu sunt scripter sau ceva de genul acesta, dar doresc sa-mi fac un server de cs.
Am vazut pe unele servere de cs ca are sunete modificate radio acel meniu cu chose team etc, si as dori sa fac si eu asta dar nu stiu cum.
Am bagat sunetele in format wav si le-am pus acelasi nume ca cel original al serverului, dar tot nu merge...pentru ca acele sunete tine de clientul fiecaruia si nu de server in sine.
Dar ma gândeam ca poate exista un plugin ceva care poate forta playerul la intrarea pe server sa descarce si acele sunete...in genul altor resurse necesare.
Si ceva cu care sa pot modifica meniul ala de selectie când intri pe server si când schimbi echipa...gen sa nu mai scrie cs-force sa scrie Politia Romaniei sau ceva de genul...ati prins voi ideea
Multumesc celor ce isi vor da interesul pentru citirea acestui thread

Re: Modificare sunete si altele

Posted: 28 Feb 2019, 08:23
by Laurentiu P.
Mutat in probleme-servere/

Schimbare nume echipa https://forums.alliedmods.net/showthread.php?t=224906
Sunete win ct/t http://forum.cs16.ro/topic/275770-reque ... -rezolvat/

In mare nu am inteles mai nimic ... :D

Re: Modificare sunete si altele

Posted: 28 Feb 2019, 12:36
by levin

Re: Modificare sunete si altele

Posted: 28 Feb 2019, 21:17
by TaNNuTzZu
partea cu sunetele am rezolvat-o dar nu imi dau seama unde ar trebui sa introduc codul acela referitor la echipa...ca nu specifica in tutorial... :sob:

Re: Modificare sunete si altele

Posted: 28 Feb 2019, 22:13
by levin

Code: Select all

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

const m_iMenuCode = 205;

new const JOIN_TEAM_MENU_FIRST[ ] = "#Team_Select";
new const JOIN_TEAM_MENU_FIRST_SPEC[ ] = "#Team_Select_Spect";
new const JOIN_TEAM_VGUI_MENU = 2;

new bool:g_bValidated[ 33 ];

new g_iMsgShowMenu;
new g_iMsgVGUI;

enum ( += 1 )
{
    CLASS_TYPE_NONE = -1,
    CLASS_TYPE_A,
    CLASS_TYPE_B,
    CLASS_TYPE_C
};

new g_iClass[ 33 ];

public plugin_init( )
{
    g_iMsgVGUI = get_user_msgid( "VGUIMenu" );
    g_iMsgShowMenu = get_user_msgid( "ShowMenu" );

    register_message( g_iMsgShowMenu, "OnOpenTextMenu" );
    register_message( g_iMsgVGUI, "OnOpenVGUIMenu" );

    register_clcmd( "chooseteam", "OnJoinAttempt" );
    register_clcmd( "jointeam", "OnJoinAttempt" );
    register_clcmd( "joinclass", "OnJoinAttempt" );
}

public client_putinserver( iClient )
{ 
    g_bValidated[ iClient ] = false;

    g_iClass[ iClient ] = CLASS_TYPE_NONE;
}

public OnJoinAttempt( iClient )
{
    return ( g_bValidated[ iClient ] ? PLUGIN_CONTINUE : PLUGIN_HANDLED );
}

public OnOpenTextMenu( iMsgId, iDest, iClient ) // MESSAGE SHOWMENU
{
    if( !is_user_connected( iClient ) )
        return PLUGIN_CONTINUE;

    static szText[ 64 ];

    get_msg_arg_string( 4, szText, charsmax( szText ) );

    if( equal( szText, JOIN_TEAM_MENU_FIRST ) || equal( szText, JOIN_TEAM_MENU_FIRST_SPEC ) )
    {
        if( !g_bValidated[ iClient ] )
        {
            set_task( 1.0, "TaskOpenMenu", iClient + 1537 );

            log_amx( "CALLED" );

            set_pdata_int( iClient, m_iMenuCode, 0 ); // Reset CS menu behavior

            return PLUGIN_HANDLED;
        }
     }

    return PLUGIN_CONTINUE;
}

public OnOpenVGUIMenu( iMsgId, iDest, iClient )
{
    if( !is_user_connected( iClient ) )
        return PLUGIN_CONTINUE;
    
    new iOption = get_msg_arg_int( 1 );

    if( iOption != JOIN_TEAM_VGUI_MENU )
        return PLUGIN_CONTINUE;

    if( !g_bValidated[ iClient ] )
    {
        OnJoinMenuOpen( iClient );

        return PLUGIN_HANDLED;
    }

    return PLUGIN_CONTINUE;
}

public TaskOpenMenu( iClient )
{
    iClient -= 1537;

    if( !is_user_connected( iClient ) )
        return PLUGIN_CONTINUE;

    OnJoinMenuOpen( iClient );

    return PLUGIN_CONTINUE;
}

public OnJoinMenuOpen( iClient )
{
    new hMenu = menu_create( "\r[ Menu ]\wJoin Menu", "JoinMenuHandler" );
    
    menu_additem( hMenu, "Team CT", "", 0 );
    menu_additem( hMenu, "Team TR", "", 0 );
    menu_additem( hMenu, "Random", "", 0 );
    
    menu_setprop( hMenu, MPROP_EXIT, MEXIT_NEVER );
    
    menu_display( iClient, hMenu, 0 );
}

public JoinMenuHandler( iClient, hMenu, iItem )
{
    if( iItem < 0 )
    {
        menu_destroy( hMenu );
    
        return PLUGIN_HANDLED;
    }

    if(iItem!=2)	cs_set_user_team( iClient, ( iItem == 0 ? CS_TEAM_CT : CS_TEAM_T ) );
    else	cs_set_user_team(iClient,random_num(1,2))

    new hSubMenu = menu_create( "\r[ Menu ] \wChoose the class", "TeamClassMenuHandler" );

    menu_additem( hSubMenu, "Class 1", "", 0 );
    menu_additem( hSubMenu, "Class 2", "", 0 );
    menu_additem( hSubMenu, "Class 3", "", 0 );
    menu_additem( hSubMenu, "Class 4", "", 0 );
    menu_additem( hSubMenu, "Class 5", "", 0 );

    menu_setprop( hSubMenu, MPROP_EXIT, MEXIT_NEVER );

    menu_display( iClient, hSubMenu, 0 );

    menu_destroy( hMenu );
    
    return PLUGIN_HANDLED;
}

public TeamClassMenuHandler( iClient, hMenu, iItem )
{
    if( iItem < 0 )
    {
        menu_destroy( hMenu );

        return PLUGIN_HANDLED;
    }

    switch(iItem)
    {
	case 0: engclient_cmd(iClient,"joinclass","1")
	case 1: engclient_cmd(iClient,"joinclass","2")
	case 2: engclient_cmd(iClient,"joinclass","3")
	case 3: engclient_cmd(iClient,"joinclass","4")
	case 4: engclient_cmd(iClient,"joinclass","random_num(1,4)")
    }
    g_iClass[ iClient ] = iItem;

    g_bValidated[ iClient ] = true;

    menu_destroy( hMenu );

    return PLUGIN_HANDLED;
}