Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include < amxmodx >
- #include < fakemeta > // to get players teams.
- #include < colorchat > // To use the basic chat (when a ct writes it's in blue).
- enum _:Teams
- {
- FM_TEAM_UNASSIGNED,
- FM_TEAM_T,
- FM_TEAM_CT,
- FM_TEAM_SPECTATOR
- }
- enum _:g_ePasteData { g_mColor, g_mTag[ 18 ], g_mTeam[ 10 ] }
- enum _:g_eLanguage { g_mHebrew[ 5 ], g_mEnglish[ 5 ] }
- new const szPasteData[ Teams ][ g_ePasteData ] =
- {
- { NORMAL, "Unassigned", "" },
- { RED, "Terrorist", "TERRORIST" },
- { BLUE, "Counter-Terrorist", "CT" },
- { GREY, "Spectator", "SPEC" }
- };
- new const szChars[ ][ g_eLanguage ] =
- {
- { "/", "q" }, { "'", "w" }, { "׳§", "e" }, { "׳¨", "r" }, { "׳", "t" }, { "׳˜", "y" }, { "׳•", "u" },{ "׳", "i" },
- { "׳", "o" },{ "׳₪", "p" },{ "׳©", "a" },{ "׳“", "s" },{ "׳’", "d" },{ "׳›", "f" },{ "׳¢", "g" },{ "׳™", "h" },
- { "׳—", "j" },{ "׳", "k" },{ "׳", "l" },{ "׳£", ";" },{ "׳–", "z" },{ "׳¡", "x" },{ "׳‘", "c" },{ "׳”", "v" },
- { "׳ ", "b" },{ "׳", "n" },{ "׳¦", "m" },{ "׳×", "<" },{ "׳¥", ">" },{ "׳×", "," },{ "׳¥", "." }
- };
- new const szPrefix[ ] = "AMXX";
- new bool:bLang[ 33 ];
- public plugin_init()
- {
- register_plugin( "Hebrew Chat", "1.2", "Rejack" );
- register_clcmd( "say", "CmdSay" );
- register_clcmd( "say_team", "CmdSayTeam" );
- }
- /* Client Side */
- public client_disconnect( client )
- bLang[ client ] = false;
- public CmdSay( client )
- {
- static szMsg[ 512 ];
- read_args( szMsg, charsmax( szMsg ) );
- remove_quotes( szMsg );
- if ( equali( szMsg, "/heb" ) || equali( szMsg, "/eng" ) )
- {
- bLang[ client ] = !bLang[ client ];
- ColorChat( client, GREEN, "^4[%s]^1 Your current language is now:^3 %s^1.", szPrefix, bLang[ client ] ? "Hebrew" : "English" );
- return 1;
- }
- if ( !szMsg[ 0 ] )
- return 0;
- if ( bLang[ client ] && szMsg[ 0 ] != '/' && szMsg[ 0 ] != '!' && szMsg[ 0 ] != ' ' )
- {
- ClientSay( client, szMsg, false );
- return 1;
- }
- return 0;
- }
- public CmdSayTeam( client )
- {
- static szMsg[ 512 ];
- read_args( szMsg, charsmax( szMsg ) );
- remove_quotes( szMsg );
- if ( !szMsg[ 0 ] )
- return 1;
- if ( bLang[ client ] && szMsg[ 0 ] != '/' && szMsg[ 0 ] != '!' && szMsg[ 0 ] != ' ' )
- {
- ClientSay( client, szMsg, true );
- return 1;
- }
- return 0;
- }
- /* Stocks */
- stock ClientSay( const index, szMsg[], bool: bTeam = false )
- {
- static szMessage[ 512 ], szName[ 32 ], szTeam[ 21 ], szTFlags[ 10 ], szAlive[ 7 ], szFlags[ 5 ], Players[ 32 ], iNum;
- new i, j;
- for( i = strlen( szMsg ) - 1, j = 0; i >= 0; i--, j++ )
- szMessage[ j ] = szMsg[ i ];
- szMessage[ j ] = '^0';
- for ( new z; z < sizeof szChars; z++ )
- replace_all( szMessage, charsmax( szMessage ), szChars[ z ][ g_mEnglish ], szChars[ z ][ g_mHebrew ] );
- szTeam = "";
- szTFlags = "";
- szAlive = "";
- szFlags = "";
- get_user_name( index, szName, charsmax( szName ) );
- if ( !is_user_alive( index ) )
- add( szFlags, charsmax( szFlags ), "b" ),
- szAlive = "*DEAD*";
- else if ( is_user_alive( index ) ) add( szFlags, 4, "a" );
- if ( bTeam )
- add( szFlags, 4, "e" ),
- formatex( szTFlags, charsmax( szTFlags ), szPasteData[ iTeam( index ) ][ g_mTeam ] ),
- formatex( szTeam, charsmax( szTeam ), "(%s)", szPasteData[ iTeam( index ) ][ g_mTag ] );
- get_players( Players, iNum, szFlags, szTFlags );
- for ( new i; i < iNum; i++ )
- ColorChat( Players[ i ], szPasteData[ iTeam( index ) ][ g_mColor ], "^1%s%s^3 %s^1 : %s", szAlive, szTeam, szName, szMessage );
- }
- stock iTeam( client )
- return get_pdata_int( client, 114 );
Advertisement
Add Comment
Please, Sign In to add comment