Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #define LOG_FILE "addons/amxmodx/logs/emu_logs.log"
- new PLUGIN[][]={
- "Anti Forwards Emulator",
- "1.0",
- "Seroff"
- };
- new eDeafault[][]={
- "+forward",
- "-forward",
- "+jump",
- "-jump",
- "+duck",
- "-duck",
- "+back",
- "-back",
- "+left",
- "-left",
- "+right",
- "-right",
- "+showscores",
- "-showscores",
- "-attack",
- "+attack",
- "-attack2",
- "+attack2",
- "+movedown",
- "-movedown",
- "+mlook",
- "-mlook",
- "+moveleft",
- "-moveleft",
- "+moveright",
- "-moveright",
- "+reload",
- "-reload",
- "+klook",
- "-klook",
- "+speed",
- "-speed",
- "m_pitch"
- }
- new i_logs,i_banreason,i_banmess,i_bantime,sLen,Trie:sConsole,sFileText[512],is_banned[33];
- public plugin_init(){
- register_plugin(PLUGIN[0],PLUGIN[1],PLUGIN[2]);
- i_logs=register_cvar("fe_logs_enabled","1");
- i_banreason=register_cvar("fe_reason","ForwardEmulator");
- i_banmess=register_cvar("fe_banmess","amx_ban [time] [userid] [reason]");
- i_bantime=register_cvar("fe_bantime","10080");
- sConsole=TrieCreate();
- }
- public plugin_cfg(){
- new szCFG[64],sLine[10];
- get_configsdir(szCFG, charsmax(szCFG));
- formatex(szCFG, charsmax(szCFG), "%s/Guard",szCFG);
- if(!dir_exists(szCFG))mkdir(szCFG);
- formatex(sFileText,charsmax(sFileText),"%s/emu_console.ini",szCFG);
- formatex(szCFG,charsmax(szCFG),"%s/emu_main.cfg",szCFG);
- if(!file_exists(szCFG)){
- new fileid = fopen(szCFG,"at");
- if(fileid){
- fprintf(fileid, "fe_logs_enabled ^"1^" // включить логи?^n");
- fprintf(fileid, "fe_reason ^"ForwardEmulator^" // причина наказания^n");
- fprintf(fileid, "fe_banmess ^"amx_ban [time] [userid] [reason]^" // способ наказания^n");
- fprintf(fileid, "fe_bantime ^"10080^" // время наказания^n");
- fprintf(fileid, "^necho ^"^"^n");
- fprintf(fileid, "echo ^"Anti Emulator CONFIG Active^"");
- fprintf(fileid, "^necho ^"^"^n");
- }
- fclose(fileid);
- }
- server_cmd("exec %s",szCFG); server_exec();
- if(!file_exists(sFileText)){
- new fileid = fopen(sFileText,"at");
- if(fileid){
- fprintf(fileid, "[AntiCheat] Вы наказаны!^n");
- fprintf(fileid, "[AntiCheat] Использование эмулятора запрещается^n");
- fprintf(fileid, "[AntiCheat] Большая просьба отключить эмулятор^n");
- fprintf(fileid, "[AntiCheat] Жаль, что ты используешь такой бред!^n");
- }
- fclose(fileid);
- }
- if(file_exists(sFileText)){
- new iFilePointer = fopen( sFileText, "r");
- if(iFilePointer != 0){
- new szData[128];
- while(fgets(iFilePointer, szData, 127)){
- remove_quotes(szData);
- trim(szData);
- if(strlen(szData)){
- sLen++
- num_to_str ( sLen-1, sLine, charsmax(sLine) );
- TrieSetString(sConsole,sLine,szData);
- }
- }
- fclose(iFilePointer);
- }
- }
- }
- public client_putinserver(id) is_banned[id]=0;
- public client_command(id){
- if(!is_user_connected(id) || is_banned[id]) return;
- new temp[128];
- read_argv(0, temp, 127);
- for(new i=0;i<sizeof(eDeafault);i++){
- if(equal(temp,eDeafault[i])){
- PunishPlayer(id,temp);
- }
- }
- }
- public plugin_end() {
- TrieDestroy(sConsole);
- }
- stock get_configsdir(name[],len){
- return get_localinfo("amxx_configsdir",name,len);
- }
- stock PunishPlayer(id, const Value[]){
- if(is_user_alive(id)) user_kill(id,1);
- is_banned[id]=1;
- new szUserId[10], szSteam[33], szIp[17], szTime[10], szBanString[128],izReason[128],sName[32],s_Buffer[512],sLine[10];
- formatex(szUserId, charsmax(szUserId), "#%d", get_user_userid(id));
- get_pcvar_string(i_banmess,szBanString,charsmax(szBanString));
- get_pcvar_string(i_banreason,izReason,charsmax(izReason));
- get_user_authid(id, szSteam, charsmax(szSteam));
- get_user_ip(id, szIp, charsmax(szIp), 1);
- get_user_name(id,sName,31);
- get_pcvar_string(i_bantime, szTime, charsmax(szTime));
- replace_string(szBanString, charsmax(szBanString), "[userid]", szUserId);
- replace_string(szBanString, charsmax(szBanString), "[steam]", szSteam);
- replace_string(szBanString, charsmax(szBanString), "[ip]", szIp);
- replace_string(szBanString, charsmax(szBanString), "[reason]", izReason);
- replace_string(szBanString, charsmax(szBanString), "[time]", szTime);
- if(get_pcvar_num(i_logs))log_to_file(LOG_FILE,"%s >> %s: [%s]", sName, Value, izReason);
- for(new i=0;i<sLen;i++){
- num_to_str ( i, sLine, charsmax(sLine) );
- TrieGetString(sConsole,sLine,s_Buffer,charsmax(s_Buffer));
- user_console(id,s_Buffer);
- }
- ChatColor(0, "^4Внимание:^1 Игрок ^3%s^1 наказан по причине ^3[^4%s^3]^1!", sName, izReason);
- server_cmd("%s", szBanString);
- }
- stock user_console(id,const msg_content[],any:...){
- new msg[192];
- vformat(msg, sizeof(msg)-1, msg_content, 3);
- format(msg,sizeof(msg)-1,"%s^n",msg);
- message_begin(MSG_ONE, 8, {0,0,0}, id);
- write_string(msg);
- message_end();
- }
- /* Сток цветного чата */
- stock ChatColor(const id, const input[], any:...)
- {
- new count = 1, players[32]
- static msg[191]
- vformat(msg, 190, input, 3)
- replace_all(msg, 190, "!g", "^4") // Зелёный
- replace_all(msg, 190, "!y", "^1") // Стандартный
- replace_all(msg, 190, "!t", "^3") // Цвет команды
- if (id) players[0] = id; else get_players(players, count, "ch")
- {
- for (new i = 0; i < count; i++)
- {
- if (is_user_connected(players[i]))
- {
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
- write_byte(players[i]);
- write_string(msg);
- message_end();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement