Rejack

Hebrew Chat v1.2 by Rejack

May 2nd, 2013 (edited)
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.61 KB | None | 0 0
  1. #include < amxmodx >
  2. #include < fakemeta >   // to get players teams.
  3. #include < colorchat >  // To use the basic chat (when a ct writes it's in blue).
  4.  
  5. enum _:Teams
  6. {
  7.     FM_TEAM_UNASSIGNED,
  8.     FM_TEAM_T,
  9.     FM_TEAM_CT,
  10.     FM_TEAM_SPECTATOR
  11. }
  12.  
  13. enum _:g_ePasteData { g_mColor, g_mTag[ 18 ], g_mTeam[ 10 ] }
  14.  
  15. enum _:g_eLanguage { g_mHebrew[ 5 ], g_mEnglish[ 5 ] }
  16.  
  17. new const szPasteData[ Teams ][ g_ePasteData ] =
  18. {
  19.     { NORMAL,   "Unassigned",       "" },
  20.     { RED,      "Terrorist",        "TERRORIST" },
  21.     { BLUE,     "Counter-Terrorist",    "CT" },
  22.     { GREY,     "Spectator",        "SPEC" }
  23. };
  24.  
  25. new const szChars[ ][ g_eLanguage ] =
  26. {
  27.     { "/", "q" }, { "'", "w" }, { "׳§", "e" }, { "׳¨", "r" }, { "׳", "t" }, { "׳˜", "y" }, { "׳•", "u" },{ "׳Ÿ", "i" },
  28.     { "׳", "o" },{ "׳₪", "p" },{ "׳©", "a" },{ "׳“", "s" },{ "׳’", "d" },{ "׳›", "f" },{ "׳¢", "g" },{ "׳™", "h" },
  29.     { "׳—", "j" },{ "׳œ", "k" },{ "׳š", "l" },{ "׳£", ";" },{ "׳–", "z" },{ "׳¡", "x" },{ "׳‘", "c" },{ "׳”", "v" },
  30.     { "׳ ", "b" },{ "׳ž", "n" },{ "׳¦", "m" },{ "׳×", "<" },{ "׳¥", ">" },{ "׳×", "," },{ "׳¥", "." }
  31. };
  32.  
  33. new const szPrefix[ ] = "AMXX";
  34.  
  35. new bool:bLang[ 33 ];
  36.  
  37. public plugin_init()
  38. {
  39.     register_plugin( "Hebrew Chat", "1.2", "Rejack" );
  40.    
  41.     register_clcmd( "say", "CmdSay" );
  42.    
  43.     register_clcmd( "say_team", "CmdSayTeam" );
  44. }
  45.  
  46. /* Client Side */
  47.  
  48. public client_disconnect( client )
  49.     bLang[ client ] = false;
  50.  
  51. public CmdSay( client )
  52. {
  53.     static szMsg[ 512 ];
  54.    
  55.     read_args( szMsg, charsmax( szMsg ) );
  56.    
  57.     remove_quotes( szMsg );
  58.    
  59.     if ( equali( szMsg, "/heb" ) || equali( szMsg, "/eng" ) )
  60.     {
  61.         bLang[ client ] = !bLang[ client ];
  62.        
  63.         ColorChat( client, GREEN, "^4[%s]^1 Your current language is now:^3 %s^1.", szPrefix, bLang[ client ] ? "Hebrew" : "English" );
  64.        
  65.         return 1;
  66.     }
  67.    
  68.     if ( !szMsg[ 0 ] )
  69.         return 0;
  70.        
  71.     if ( bLang[ client ] && szMsg[ 0 ] != '/' && szMsg[ 0 ] != '!' && szMsg[ 0 ] != ' '  )
  72.     {
  73.         ClientSay( client, szMsg, false );
  74.        
  75.         return 1;
  76.     }
  77.    
  78.     return 0;
  79. }
  80.  
  81. public CmdSayTeam( client )
  82. {
  83.     static szMsg[ 512 ];
  84.    
  85.     read_args( szMsg, charsmax( szMsg ) );
  86.    
  87.     remove_quotes( szMsg );
  88.    
  89.     if ( !szMsg[ 0 ] )
  90.         return 1;
  91.    
  92.     if ( bLang[ client ] && szMsg[ 0 ] != '/' && szMsg[ 0 ] != '!' && szMsg[ 0 ] != ' '  )
  93.     {
  94.         ClientSay( client, szMsg, true );
  95.        
  96.         return 1;
  97.     }
  98.    
  99.     return 0;
  100. }
  101.  
  102. /* Stocks */
  103.  
  104. stock ClientSay( const index, szMsg[], bool: bTeam = false )
  105. {
  106.     static szMessage[ 512 ], szName[ 32 ], szTeam[ 21 ], szTFlags[ 10 ], szAlive[ 7 ], szFlags[ 5 ], Players[ 32 ], iNum;
  107.    
  108.     new i, j;
  109.    
  110.     for( i = strlen( szMsg ) - 1, j = 0; i >= 0; i--, j++ )
  111.         szMessage[ j ] = szMsg[ i ];
  112.    
  113.     szMessage[ j ] = '^0';
  114.    
  115.     for ( new z; z < sizeof szChars; z++ )
  116.         replace_all( szMessage, charsmax( szMessage ), szChars[ z ][ g_mEnglish ], szChars[ z ][ g_mHebrew ] );
  117.    
  118.     szTeam      = "";
  119.     szTFlags    = "";
  120.     szAlive     = "";
  121.     szFlags     = "";
  122.    
  123.     get_user_name( index, szName, charsmax( szName ) );
  124.    
  125.     if ( !is_user_alive( index ) )
  126.         add( szFlags, charsmax( szFlags ), "b" ),
  127.         szAlive = "*DEAD*";
  128.    
  129.     else if ( is_user_alive( index ) )  add( szFlags, 4, "a" );
  130.    
  131.     if ( bTeam )
  132.         add( szFlags, 4, "e" ),
  133.         formatex( szTFlags, charsmax( szTFlags ), szPasteData[ iTeam( index ) ][ g_mTeam ] ),
  134.         formatex( szTeam, charsmax( szTeam ), "(%s)", szPasteData[ iTeam( index ) ][ g_mTag ]  );
  135.    
  136.     get_players( Players, iNum, szFlags, szTFlags );
  137.    
  138.     for ( new i; i < iNum; i++ )
  139.         ColorChat( Players[ i ], szPasteData[ iTeam( index ) ][ g_mColor ], "^1%s%s^3 %s^1 :  %s", szAlive, szTeam, szName, szMessage );
  140. }
  141.  
  142. stock iTeam( client )
  143.     return get_pdata_int( client, 114 );
Advertisement
Add Comment
Please, Sign In to add comment