hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2025.07.15. 22:35



Jelenlévő felhasználók

Jelenleg 335 felhasználó van jelen :: 1 regisztrált, 0 rejtett és 334 vendég

A legtöbb felhasználó (2761 fő) 2025.01.09. 20:06-kor tartózkodott itt.

Regisztrált felhasználók: Google [Bot]az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása Hozzászólás a témához  [11 hozzászólás ]  OldalElőző12
Szerző Üzenet
 Hozzászólás témája: Re: Vedelem...Tamadas ellen
HozzászólásElküldve:2016.01.09. 22:07 
Offline
Tiszteletbeli
Avatar

Csatlakozott:2014.09.08. 22:21
Hozzászólások:3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <amxmisc>
  4.  
  5. #define IMMUNITY_FLAG ADMIN_IMMUNITY
  6. #define ACCESS_FLAG ADMIN_BAN
  7. #define TID 9982
  8.  
  9. new const g_iTimes[] = {5, 10, 20, 30};
  10. new g_iMenuPage[33], g_aMenuPlayers[33][32], g_iUserTime[33], g_iGagged[33], dbSteam[64][32], dbGag[64], db_slot_i;
  11.  
  12. public plugin_init()
  13. {
  14.     register_plugin("AmxGag", "1.0", "AndrewZ / DUKKHAZ0R");
  15.     register_forward(FM_Voice_SetClientListening, "fwdVoiceSetClientListening");
  16.     register_clcmd("amx_gagmenu", "show_gag_main_menu");
  17.     register_clcmd("say", "hook_say");
  18.     register_clcmd("say_team", "hook_say");
  19.     register_menu("gag_players_menu", 1023, "handler_gag_players_menu");
  20.     register_menu("gag_time_menu", -1, "handler_gag_time_menu");
  21. }
  22.  
  23. public client_putinserver(id) load_gag(id);
  24. public client_disconnect(id)
  25. {
  26.     save_gag(id);
  27.     _remove_user_gag(id);
  28. }
  29.  
  30. _remove_user_gag(id)
  31. {
  32.     g_iUserTime[id] = g_iTimes[0];
  33.     g_iGagged[id] = 0;
  34.     if(task_exists(TID + id)) remove_task(TID + id);
  35. }
  36.  
  37. public fwdVoiceSetClientListening(receiver, sender, listen)
  38. {
  39.     if(receiver != sender)
  40.     {
  41.         if(g_iGagged[sender])
  42.         {
  43.             engfunc( EngFunc_SetClientListening, receiver, sender, 0 )
  44.             return FMRES_SUPERCEDE
  45.         }
  46.     }
  47.     return FMRES_IGNORED
  48. }
  49.  
  50. public hook_say(id)
  51. {
  52.     if(g_iGagged[id]) {
  53.         ChatColor(id, "^4[ProKillers]^1 Le lett tiltva számodra a chat.");
  54.         return PLUGIN_HANDLED;
  55.     }
  56.     return PLUGIN_CONTINUE
  57. }
  58.  
  59. public show_gag_main_menu(id, page)
  60. {
  61.     if(~get_user_flags(id) & ACCESS_FLAG) return 1;
  62.     if(page < 0) return 1;
  63.    
  64.     new players[ 32 ], num
  65.     get_players( players, num, "ch" )
  66.    
  67.     new i = min( page * 7, num )
  68.     new start = i - ( i % 7 )
  69.     new end = min( start + 7, num )
  70.     page = start / 7
  71.    
  72.     g_iMenuPage[ id ] = page
  73.     g_aMenuPlayers[ id ] = players
  74.    
  75.     new menu[ 512 ]
  76.     new len = formatex( menu, 511, "\yJátékos némítása\R%d/%d^n^n", page + 1, ( ( num - 1 ) / 7 ) + 1 )
  77.     new keys = MENU_KEY_0 + MENU_KEY_8
  78.    
  79.     new item
  80.    
  81.     for( i = start; i < end; i ++ )
  82.     {
  83.         new name[ 32 ]
  84.         new g_id = players[ i ]
  85.        
  86.         get_user_name( g_id, name, 31 )
  87.        
  88.         if( id == g_id )
  89.         len += formatex( menu[ len ], 511 - len, "\d%d. \d%s^n", ++ item, name )
  90.        
  91.         else
  92.         {
  93.             if( get_user_flags( g_id ) & IMMUNITY_FLAG )
  94.             len += formatex( menu[ len ], 511 - len, "\r%d. \w%s \r*^n", ++ item, name )
  95.            
  96.             else
  97.             {
  98.                 keys |= ( 1 << item )
  99.                
  100.                 if( g_iGagged[ g_id ] )
  101.                 len += formatex( menu[ len ], 511 - len, "\r%d. \w%s \r[Némítva]^n", ++ item, name )
  102.                 else
  103.                 len += formatex( menu[ len ], 511 - len, "\r%d. \w%s^n", ++ item, name )
  104.             }
  105.         }
  106.     }
  107.    
  108.     len += formatex( menu[ len ], 511 - len, "^n\r8. \wIdő: \y%d perc^n", g_iUserTime[ id ] )
  109.    
  110.     if( end < num )
  111.     {  
  112.         keys |= MENU_KEY_9
  113.         formatex( menu[ len ], 511 - len, "^n\r9. \wKövetkező^n0. %s", page ? "Vissza" : "Kilépés" )
  114.     }
  115.    
  116.     else  formatex( menu[ len ], 511 - len, "^n\r0. \w%s", page ? "Vissza" : "Kilépés" )
  117.    
  118.     show_menu( id, keys, menu, -1, "gag_players_menu" )
  119.    
  120.     return PLUGIN_HANDLED
  121. }
  122.  
  123. public handler_gag_players_menu(id, key)
  124. {
  125.     switch(key)
  126.     {
  127.         case 0..6:
  128.         {
  129.             new g_id = g_aMenuPlayers[ id ][ g_iMenuPage[ id ] * 7 + key ]
  130.            
  131.             if( is_user_connected( g_id ) )
  132.             {
  133.                 if( !( get_user_flags( g_id ) & IMMUNITY_FLAG ) )
  134.                 {
  135.                     new name[ 32 ]; get_user_name( id, name, 31 )
  136.                     new g_name[ 32 ]; get_user_name( g_id, g_name, 31 )
  137.                    
  138.                     if( !g_iGagged[ g_id ] )
  139.                     {
  140.                         new time = g_iUserTime[ id ]
  141.                         g_iGagged[ g_id ] = 1
  142.                         ChatColor(0,"^4[ProKillers]^4 %s ^1lenémította^3 %s^1-t ^3%d^1 percre.", name, g_name, time )
  143.                         set_task( float( time ) * 60.0, "task_ungag", g_id + TID )
  144.                     }
  145.                     else
  146.                     {
  147.                         _remove_user_gag( g_id )
  148.                         ChatColor(0, "^4[ProKillers]^4 %s ^1levette a némítást ^3%s^1-ról.", name, g_name )
  149.                     }
  150.                 }
  151.                
  152.                 else ChatColor(id, "^4[ProKillers]^1 Ezt a játékost nem lehet némítani." )
  153.             }
  154.            
  155.             else ChatColor(id, "^4[ProKillers]^1 A játékos lecsatlakozott a szerverről." )
  156.            
  157.             show_gag_main_menu( id, 0 )
  158.         }
  159.        
  160.         case 7: show_gag_time_menu( id )
  161.         case 8: show_gag_main_menu( id, ++g_iMenuPage[ id ] )
  162.         case 9: show_gag_main_menu( id, --g_iMenuPage[ id ] )
  163.     }
  164. }
  165.  
  166. public task_ungag( task_id )
  167. {
  168.    new id = task_id - TID
  169.    
  170.    _remove_user_gag( id )
  171.    
  172.    new name[ 32 ]; get_user_name( id, name, 31 )
  173.    ChatColor(0, "^4[ProKillers]^3 %s^1-nak lejárt a némítása.", name )
  174. }
  175.  
  176. public show_gag_time_menu( id )
  177. {
  178.    new menu[ 256 ], len, keys = MENU_KEY_0
  179.    
  180.    len = formatex( menu, charsmax( menu ), "\yIdő kiválasztása a némításhoz^n\w" )
  181.  
  182.    new item
  183.  
  184.    for( new i; i < sizeof g_iTimes; i ++ )
  185.    {
  186.       keys |= ( 1 << item )
  187.       len += formatex( menu[ len ], charsmax( menu ) - len, "^n%d. %d perc", ++ item, g_iTimes[ i ] )
  188.    }
  189.    
  190.    len += formatex( menu[ len ], charsmax( menu ) - len, "^n^n0. Kilépés" )
  191.  
  192.    show_menu( id, keys, menu, _, "gag_time_menu" )
  193. }
  194.  
  195. public handler_gag_time_menu( id, key )
  196. {
  197.    switch( key )
  198.    {
  199.       case 0..4:
  200.       {
  201.          g_iUserTime[ id ] = g_iTimes[ key ]
  202.          show_gag_main_menu( id, 0 )
  203.       }
  204.    }
  205. }
  206.  
  207. save_gag(id)
  208. {
  209.    new g_steamid[32]
  210.    get_user_authid(id, g_steamid, charsmax(g_steamid))
  211.    if (dbSteam[id][0] && !equal(g_steamid, dbSteam[id]))
  212.    {
  213.       if (db_slot_i >= sizeof dbSteam)
  214.          db_slot_i = get_maxplayers()+1
  215.        
  216.       copy(dbSteam[db_slot_i], charsmax(dbSteam[]), dbSteam[id])
  217.       dbGag[db_slot_i] = dbGag[id]
  218.       db_slot_i++
  219.    }
  220.    
  221.    copy(dbSteam[id], charsmax(dbSteam[]), g_steamid)
  222.    dbGag[id] = g_iGagged[id]
  223. }
  224.  
  225. load_gag(id)
  226. {
  227.    new g_steamid[32]
  228.    get_user_authid(id, g_steamid, charsmax(g_steamid))
  229.    
  230.    static i
  231.    for (i = 0; i < sizeof dbSteam; i++)
  232.    {
  233.       if (equal(g_steamid, dbSteam[i]))
  234.       {
  235.          g_iGagged[id] = dbGag[i]
  236.          return;
  237.       }
  238.    }
  239. }
  240.  
  241. stock ChatColor(const id, const szMessage[], any:...) {
  242.     static pnum, players[32], szMsg[190], IdMsg;
  243.     vformat(szMsg, charsmax(szMsg), szMessage, 3);
  244.    
  245.     if(!IdMsg) IdMsg = get_user_msgid("SayText");
  246.    
  247.     if(id) {
  248.         if(!is_user_connected(id)) return;
  249.         players[0] = id;
  250.         pnum = 1;
  251.     }
  252.     else get_players(players, pnum, "ch");
  253.    
  254.     for(new i; i < pnum; i++) {
  255.         message_begin(MSG_ONE, IdMsg, .player = players[i]);
  256.         write_byte(players[i]);
  257.         write_string(szMsg);
  258.         message_end();
  259.     }
  260. }

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése: Rendezés 
Új téma nyitása Hozzászólás a témához  [11 hozzászólás ]  OldalElőző12


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 19 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole