- #include <amxmodx> 
-   
- /*  Ami előtt // van az le van tiltva, ami előtt nincs, az aktív. Itt tudsz mindent módosítani. */ 
-   
- #define PREFIXEK                // Alap prefixek engedélyezése. 
- #if defined PREFIXEK 
-     //#define EGYEDI_PREFIXEK       // Egyedi prefixek engedélyezése "addons/amxmodx/configs/egyedi_prefixek.ini" 
- #endif 
- //#define STEAM_PREFIX              // Steam prefix engedélyezése. 
- #define ZOLD_IRAS           // Zöld írás az Adminoknak és a VIP-nek. 
- #define TULAJ_JOG   ADMIN_RCON  // Tulaj jog a Tulaj prefixhez. (alap: "l") 
- #define ADMIN_JOG       ADMIN_BAN   // Admin jog az Admin prefixhez. (alap: "d") 
- #define VIP_JOG     ADMIN_LEVEL_H   // VIP jog a VIP prefixhez. (alap: "t") 
- //#define ANTI_FLOOD            // Anti-flood bekapcsolása (ki kell törölni a plugins.ini-ből az alap "antiflood.amxx"-et.) 
- #define IDOKOZ      0.75        // Flood időköz 
- #define ADMIN_LAT           // Az Admin látja az élő és a halott, és a két csapat írását egyaránt. 
- //#define ALAP_CHAT     // Élő nem látja a halott írását, kivéve az Admin,ha az ADMIN_LAT aktív. (alap: mindenki látja a halottat is.) 
-   
- #if defined STEAM_PREFIX 
- new bool:steames[33]; 
- #endif 
- #if defined EGYEDI_PREFIXEK 
- enum _:ADATOK  
- {  
-     TIPUS[2],  
-     ELLENORZES[32],  
-     PREFIX[64]  
- }; 
- new Array:adat, jatekosadat[ADATOK]; 
- new prefix[33][64]; 
- #endif 
-   
- #define GetBit(%1,%2)       (%1 & (1 << (%2 & 31))) 
- #define SetBit(%1,%2)       %1 |= (1 << (%2 & 31)) 
- #define ResetBit(%1,%2)     %1 &= ~(1 << (%2 & 31)) 
- #if defined ADMIN_LAT 
- new bitadmin; 
- #endif 
- new bitelo; 
-   
- public plugin_init() 
- { 
-     #define AUTHOR "neygomon, mforce" 
-     register_plugin("Lite Chat", "1.0", AUTHOR); 
-     register_cvar("lite_chat", AUTHOR, FCVAR_SERVER | FCVAR_SPONLY); 
-   
-     register_clcmd("say", "HandlerSay"); 
-     register_clcmd("say_team", "HandlerSayTeam"); 
-   
-     register_event("ResetHUD", "eResetHUD", "be"); 
-     register_event("DeathMsg", "eDeathMsg", "a", "1>0"); 
- } 
-   
- #if defined EGYEDI_PREFIXEK 
- public plugin_cfg() 
- { 
-     adat = ArrayCreate(ADATOK); 
-   
-     new betolt[256], fp = fopen("addons/amxmodx/configs/egyedi_prefixek.ini", "rt"); 
-     if(!fp) return set_fail_state("A fajlt ^"addons/amxmodx/configs/egyedi_prefixek.ini^" nem talaltuk"); 
-   
-     while(!feof(fp)) 
-     { 
-         fgets(fp, betolt, charsmax(betolt)); 
-         if(betolt[0] && betolt[0] != ';' && parse(betolt, jatekosadat[TIPUS], charsmax(jatekosadat[TIPUS]), jatekosadat[ELLENORZES], charsmax(jatekosadat[ELLENORZES]), jatekosadat[PREFIX], charsmax(jatekosadat[PREFIX]))) 
-             ArrayPushArray(adat, jatekosadat); 
-     } 
-     return fclose(fp); 
- } 
- #endif 
- public client_putinserver(id) 
- { 
- #if defined EGYEDI_PREFIXEK 
-     kereses(id); 
- #endif   
- #if defined STEAM_PREFIX 
-     steames[id] = is_user_steam(id) ? true : false; 
- #endif 
- #if defined ADMIN_LAT 
-     if(get_user_flags(id) & ADMIN_CHAT) SetBit(bitadmin, id); 
-     else ResetBit(bitadmin, id); 
- #endif 
- } 
-   
- public client_disconnect(id)    ResetBit(bitelo, id); 
- public eResetHUD(id)        SetBit(bitelo, id); 
- public eDeathMsg()      ResetBit(bitelo, read_data(2));  
-   
- public HandlerSay(id) return uzenetformazas(id, false); 
- public HandlerSayTeam(id) return uzenetformazas(id, true); 
-   
- uzenetformazas(id, bool:csapat) 
- { 
- #define MAX_BIT 180 
-     static uzenet[MAX_BIT], stringkonvertalas[charsmax(uzenet) * 2 + 1];  
-     read_args(uzenet, charsmax(uzenet)); 
-     remove_quotes(uzenet); 
-   
-     if(uzenet[0] == EOS || uzenet[0] == '/' || equal(uzenet, " ")) 
-         return PLUGIN_HANDLED_MAIN; 
- #if defined ANTI_FLOOD 
-     static Float:floodido[33], Float:jatekido, figyelmeztetes[33]; 
-   
-     if(floodido[id] > (jatekido = get_gametime())) 
-     { 
-         if(++figyelmeztetes[id] > 2) 
-         {            
-             client_print(id, print_chat, "NE FLOODOLJ!"); 
-             floodido[id] = jatekido + IDOKOZ + 3.0; 
-             return PLUGIN_HANDLED; 
-         } 
-     } 
-     else if(figyelmeztetes[id]) figyelmeztetes[id]--; 
-     floodido[id] = jatekido + IDOKOZ; 
- #endif 
-     static fullos, tagek[MAX_BIT], team_lekeres, sTeam[16]; 
-     team_lekeres  = get_user_team(id, sTeam, charsmax(sTeam)); 
-   
-     switch(team_lekeres) 
-     { 
-         case 1: fullos = formatex(tagek, charsmax(tagek), "%s%s", GetBit(bitelo, id) ? "^1" : "^1*Halott* ", csapat ? "^1[T] " : ""); 
-         case 2: fullos = formatex(tagek, charsmax(tagek), "%s%s", GetBit(bitelo, id) ? "^1" : "^1*Halott* ", csapat ? "^1[CT] " : ""); 
-         default:fullos = formatex(tagek, charsmax(tagek), "^1*Spec* "); 
-     } 
- #if defined ZOLD_IRAS || (defined PREFIXEK && !defined EGYEDI_PREFIXEK) 
-     static hozzaferes; hozzaferes = jogellenorzes(id); 
- #endif   
- #if defined STEAM_PREFIX 
-     if(steames[id]) 
-         fullos += formatex(tagek[fullos], charsmax(tagek) - fullos, "^1[^4Steam^1] "); 
- #endif 
- #if defined PREFIXEK     
-     #if defined EGYEDI_PREFIXEK 
-     if(prefix[id][0]) 
-     { 
-         replace_all(prefix[id], charsmax(prefix[]), "!n", "^1"); 
-         replace_all(prefix[id], charsmax(prefix[]), "!t", "^3"); 
-         replace_all(prefix[id], charsmax(prefix[]), "!g", "^4"); 
-         fullos += formatex(tagek[fullos], charsmax(tagek) - fullos, "%s ", prefix[id]); 
-     }    
-     #else 
-     static const adminprefixek[][] = { "", "^4[Tulaj] ", "^4[Admin] ", "^4[VIP] " }; 
-     fullos += formatex(tagek[fullos], charsmax(tagek) - fullos, "%s", adminprefixek[hozzaferes]); 
-     #endif 
- #endif   
- #if defined ZOLD_IRAS 
-     switch(hozzaferes) 
-     { 
-         case 0: fullos += formatex(tagek[fullos], charsmax(tagek) - fullos, "^3%%s1^1 :  %%s2"); 
-         default:fullos += formatex(tagek[fullos], charsmax(tagek) - fullos, "^4%%s1^1 :  ^3%%s2"); 
-     } 
- #else 
-     fullos += formatex(tagek[fullos], charsmax(tagek) - fullos, "^3%%s1^1 :  %%s2"); 
- #endif  
-     stringkonvertalas = uzenet; 
-     replace_all( stringkonvertalas, charsmax( stringkonvertalas ), "", " " ); 
-     replace_all( stringkonvertalas, charsmax( stringkonvertalas ), "", " " );  
-   
-     static bitlimit; bitlimit = MAX_BIT; 
-     while(fullos + strlen(stringkonvertalas) > MAX_BIT) stringkonvertalas[bitlimit -= 10] = 0; 
-   
-     static players[32], pcount; get_players(players, pcount, "c"); 
-     switch(csapat) 
-     { 
-         case true: 
-         { 
-             for(new i; i < pcount; i++) 
-             { 
- #if defined ADMIN_LAT                
-                 if(GetBit(bitadmin, players[i]) || (GetBit(bitelo, id) == GetBit(bitelo, players[i]) && team_lekeres == get_user_team(players[i]))) 
- #else 
-                 if(GetBit(bitelo, id) == GetBit(bitelo, players[i]) && team_lekeres == get_user_team(players[i])) 
- #endif 
-                     PrintChat(players[i], id, tagek, stringkonvertalas); 
-             }                                
-         } 
-         case false: 
-         {    
-             for(new i; i < pcount; i++) 
- #if defined ALAP_CHAT            
-     #if defined ADMIN_LAT            
-                 if(GetBit(bitadmin, players[i]) || GetBit(bitelo, id) == GetBit(bitelo, players[i])) 
-     #else 
-                 if(GetBit(bitelo, id) == GetBit(bitelo, players[i])) 
-     #endif               
-                     PrintChat(players[i], id, tagek, stringkonvertalas); 
- #else 
-                 PrintChat(players[i], id, tagek, stringkonvertalas); 
- #endif   
-         } 
-     } 
-     static sAuthId[25], sName[32]; 
-     get_user_name(id, sName, charsmax(sName));  
-     get_user_authid(id, sAuthId, charsmax(sAuthId)); 
-     log_message("^"%s<%d><%s><%s>^" %s ^"%s^"", sName, get_user_userid(id), sAuthId, sTeam, csapat ? "say_team" : "say" , stringkonvertalas);    
-     return PLUGIN_HANDLED; 
- } 
-   
- PrintChat(iReceiver, iSender, const tagek[], const uzenet[]) 
- { 
-     message_begin(MSG_ONE, 76, .player=iReceiver); 
-     write_byte(iSender); 
-     write_string(tagek); 
-     write_string(""); 
-     write_string(uzenet); 
-     message_end(); 
- } 
-   
- stock kereses(const id) 
- { 
-     for(new i; i < ArraySize(adat); i++) 
-     { 
-         ArrayGetArray(adat, i, jatekosadat); 
-         switch(jatekosadat[TIPUS]) 
-         { 
-             case 'j':  
-             { 
-                 if(get_user_flags(id) & read_flags(jatekosadat[ELLENORZES])) 
-                     return copy(prefix[id], charsmax(prefix[]), jatekosadat[PREFIX]); 
-             }    
-             case 'i':  
-             { 
-                 static sIP[16]; get_user_ip(id, sIP, charsmax(sIP), 1); 
-                 if(!strcmp(jatekosadat[ELLENORZES], sIP))  
-                     return copy(prefix[id], charsmax(prefix[]), jatekosadat[PREFIX]); 
-             }        
-             case 's':  
-             { 
-                 static sAuthid[25]; get_user_authid(id, sAuthid, charsmax(sAuthid)); 
-                 if(!strcmp(jatekosadat[ELLENORZES], sAuthid))  
-                     return copy(prefix[id], charsmax(prefix[]), jatekosadat[PREFIX]); 
-             }        
-         } 
-     } 
-     return prefix[id][0] = 0; 
- } 
-   
- stock jogellenorzes(id) 
- { 
-     static flagek; flagek = get_user_flags(id); 
-     if(flagek & TULAJ_JOG)  return 1; 
-     else if(flagek & ADMIN_JOG) return 2; 
-     else if(flagek & VIP_JOG)   return 3; 
-     return 0; 
- } 
-   
- stock bool:is_user_steam(id) 
- { 
-     static dp_pointer; 
-     if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider"))) 
-     { 
-         server_cmd("dp_clientinfo %d", id); 
-         server_exec(); 
-         return (get_pcvar_num(dp_pointer) == 2) ? true : false; 
-     } 
-     return false; 
- }