Csd Admin chat icinde gelirse iyi olabilir.Yek'-ta yazdı: Cmt Mar 21, 2020 2:19 pm Eskiden eklentiler sıra ile çalışıyordu, fakat değişen mimariler sonucu tek bir bütün olarak çalışmaya başlayınca eski eklentiler de böyle bozulmaya başlamış. Eski sürüm amxmodx sürümü kullanırsanız eklentiler sırası ile çalışacağı için sorun olmayacaktır. Neyse, ben eklentileri birleştirdim.Admin tag eklentisinin içine swear filtre gömülü. ini dosyasını config klasörüne atıp kullanabilirsiniz.Kod: Tümünü seç
#include <amxmodx> #include <amxmisc> #define PLUGIN "Admin Yesil Yazi & Adminlerde Tag" #define VERSION "2.2" #define AUTHOR "EDITLEYEN: qurteisa" #define ACCESS_LEVEL ADMIN_IMMUNITY #define ADMIN_LISTEN ADMIN_LEVEL_C new message[192] new sayText new teamInfo new maxPlayers new g_MessageColor new g_NameColor new g_AdminListen new strName[191] new strText[191] new alive[11] new const g_szTag[][] = { "[DestanGaming]", "[DestanGaming]", "[DestanGaming]", "[DestanGaming]" } new const g_iTagFlag[sizeof(g_szTag)] = { ADMIN_RCON, ADMIN_RCON, ADMIN_BAN, ADMIN_RESERVATION } #define MAX_WORDS 192 new g_swearsNames[MAX_WORDS][32]; new g_swearsNum; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_MessageColor = register_cvar("amx_color", "2") g_NameColor = register_cvar("amx_namecolor", "6") g_AdminListen = register_cvar("amx_listen", "1") sayText = get_user_msgid("SayText") teamInfo = get_user_msgid("TeamInfo") maxPlayers = get_maxplayers() register_message(sayText, "avoid_duplicated") register_concmd("amx_color", "set_color", ACCESS_LEVEL, "<color>") register_concmd("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>") register_concmd("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>") register_clcmd("say", "hook_say") register_clcmd("say_team", "hook_teamsay") readList(); } public avoid_duplicated(msgId, msgDest, receiver) { return PLUGIN_HANDLED } get_tag_index(id) { new flags = get_user_flags(id) for(new i = 1; i < sizeof(g_iTagFlag); i++) { if(check_admin_flag(flags, g_iTagFlag[i])) { return i } } return 0 } check_admin_flag(flags, flag) { if(flag == ADMIN_ADMIN) { return ((flags & ~ADMIN_USER) > 0) } else if(flag == ADMIN_ALL) { return 1 } return (flags & flag) } readList() { new filename[64]; get_localinfo("amxx_configsdir", filename, charsmax(filename)); format(filename, charsmax(filename), "%s/kufur_listesi.ini", filename); if(!file_exists(filename)) { log_message("Swear Filter: %s dosyasi bulunamadi.", filename); return; } new iLen; while(g_swearsNum < MAX_WORDS && read_file(filename, g_swearsNum ,g_swearsNames[g_swearsNum][1],30,iLen)) { if(g_swearsNames[g_swearsNum][0] == ';') continue; g_swearsNames[g_swearsNum][0] = iLen; ++g_swearsNum; } log_message("Swear Filter: %d adet engellenecek kufur eklendi.", g_swearsNum); } public hook_say(id) { read_args(message, 191) remove_quotes(message) if(message[0] == '@' || message[0] == '/' || message[0] == '!' || equal(message, "")) return PLUGIN_CONTINUE new pos, i = 0; while(i < g_swearsNum) { if((pos = containi(message,g_swearsNames[i][1])) != -1) { new len = g_swearsNames[i][0]; while(len--) message[pos++] = '*'; continue; } ++i; } new name[32] get_user_name(id, name, 31) new admin = get_tag_index(id) new isAlive if(is_user_alive(id)) { isAlive = 1 alive = "^x01" } else { isAlive = 0 alive = "^x01*DEAD* " } static color[10] if(admin) { // İsim switch(get_pcvar_num(g_NameColor)) { case 1: format(strName, 191, "^x04%s %s%s", g_szTag[admin], alive, name) case 2: format(strName, 191, "^x04%s %s^x04%s ", g_szTag[admin], alive, name) case 3: { color = "SPECTATOR" format(strName, 191, "^x04%s %s^x03%s ", g_szTag[admin], alive, name) } case 4: { color = "CT" format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } case 5: { color = "TERRORIST" format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } case 6: { get_user_team(id, color, 9) format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } } // Mesaj switch(get_pcvar_num(g_MessageColor)) { case 1: // Sari format(strText, 191, "%s", message) case 2: // Yesil format(strText, 191, "^x04%s", message) case 3: // Beyaz { copy(color, 9, "SPECTATOR") format(strText, 191, "^x03%s", message) } case 4: // Mavi { copy(color, 9, "CT") format(strText, 191, "^x03%s", message) } case 5: // Kirmizi { copy(color, 9, "TERRORIST") format(strText, 191, "^x03%s", message) } } } else { get_user_team(id, color, 9) format(strName, 191, "%s^x03%s", alive, name) format(strText, 191, "%s", message) } format(message, 191, "%s^x01 : %s", strName, strText) sendMessage(color, isAlive) return PLUGIN_CONTINUE } public hook_teamsay(id) { new playerTeam = get_user_team(id) new playerTeamName[19] switch(playerTeam) { case 1: copy(playerTeamName, 11, "Terrorists") case 2: copy(playerTeamName, 18, "Counter-Terrorists") default: copy(playerTeamName, 9, "Spectator") } read_args(message, 191) remove_quotes(message) if(message[0] == '@' || message[0] == '/' || message[0] == '!' || equal(message, "")) return PLUGIN_CONTINUE new name[32] get_user_name(id, name, 31) new admin = get_tag_index(id) new isAlive if(is_user_alive(id)) { isAlive = 1 alive = "^x01" } else { isAlive = 0 alive = "^x01*DEAD* " } static color[10] if(admin) { // İsim switch(get_pcvar_num(g_NameColor)) { case 1: format(strName, 191, "%s(%s)^x04%s %s", alive, playerTeamName, g_szTag[admin], name) case 2: format(strName, 191, "%s(%s)^x04%s ^x04%s", alive, playerTeamName, g_szTag[admin], name) case 3: { color = "SPECTATOR" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 4: { color = "CT" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 5: { color = "TERRORIST" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 6: { get_user_team(id, color, 9) format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } } // Message switch(get_pcvar_num(g_MessageColor)) { case 1: // Sari format(strText, 191, "%s", message) case 2: // Yesil format(strText, 191, "^x04%s", message) case 3: // Beyaz { copy(color, 9, "SPECTATOR") format(strText, 191, "^x03%s", message) } case 4: // Mavi { copy(color, 9, "CT") format(strText, 191, "^x03%s", message) } case 5: // Kirmizi { copy(color, 9, "TERRORIST") format(strText, 191, "^x03%s", message) } } } else { get_user_team(id, color, 9) format(strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name) format(strText, 191, "%s", message) } format(message, 191, "%s ^x01: %s", strName, strText) sendTeamMessage(color, isAlive, playerTeam) return PLUGIN_CONTINUE } public set_color(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newColor read_argv(1, arg, 1) newColor = str_to_num(arg) if(newColor >= 1 && newColor <= 5) { set_pcvar_num(g_MessageColor, newColor) if(get_pcvar_num(g_NameColor) != 1 && ((newColor == 3 && get_pcvar_num(g_NameColor) != 3) ||(newColor == 4 && get_pcvar_num(g_NameColor) != 4) ||(newColor == 5 && get_pcvar_num(g_NameColor) != 5))) { set_pcvar_num(g_NameColor, 2) } } return PLUGIN_HANDLED } public set_name_color(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newColor read_argv(1, arg, 1) newColor = str_to_num(arg) if(newColor >= 1 && newColor <= 6) { set_pcvar_num(g_NameColor, newColor) if((get_pcvar_num(g_MessageColor) != 1 &&((newColor == 3 && get_pcvar_num(g_MessageColor) != 3) ||(newColor == 4 && get_pcvar_num(g_MessageColor) != 4) ||(newColor == 5 && get_pcvar_num(g_MessageColor) != 5))) || get_pcvar_num(g_NameColor) == 6) { set_pcvar_num(g_MessageColor, 2) } } return PLUGIN_HANDLED } public set_listen(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newListen read_argv(1, arg, 1) newListen = str_to_num(arg) set_pcvar_num(g_AdminListen, newListen) return PLUGIN_HANDLED } public sendMessage(color[], alive) { new teamName[10] for(new player = 1; player < maxPlayers; player++) { if(!is_user_connected(player)) continue if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { get_user_team(player, teamName, 9) changeTeamInfo(player, color) writeMessage(player, message) changeTeamInfo(player, teamName) } } } public sendTeamMessage(color[], alive, playerTeam) { new teamName[10] for(new player = 1; player < maxPlayers; player++) { if(!is_user_connected(player)) continue if(get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { get_user_team(player, teamName, 9) changeTeamInfo(player, color) writeMessage(player, message) changeTeamInfo(player, teamName) } } } } public changeTeamInfo(player, team[]) { message_begin(MSG_ONE, teamInfo, _, player) write_byte(player) write_string(team) message_end() } public writeMessage(player, message[]) { message_begin(MSG_ONE, sayText, {0, 0, 0}, player) write_byte(player) write_string(message) message_end() } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */
Küfür engelleyen plugin ‼️
Moderatör: Moderatörler
-
Kaybetmeyen
- Mesajlar: 254
- Kayıt: Prş Ağu 22, 2019 11:12 pm
- Clan İsmi: RedDawn
Küfür engelleyen plugin ‼️
| Link: | |
| Linklerini gizle |
-
talhasendag
Konu Sahibi - Mesajlar: 3
- Kayıt: Cum Mar 20, 2020 7:12 am
Küfür engelleyen plugin ‼️
kusura bakma kodlama işinde iyi değilim biraz daha açıklayıcı şekilde yardım edebilirmisin bu arada baktım admin tag eklentisi yok server da [kurucu]yazıyor fakat eklentinin adı sanırım admin tag değilYek'-ta yazdı: Cmt Mar 21, 2020 2:19 pm Eskiden eklentiler sıra ile çalışıyordu, fakat değişen mimariler sonucu tek bir bütün olarak çalışmaya başlayınca eski eklentiler de böyle bozulmaya başlamış. Eski sürüm amxmodx sürümü kullanırsanız eklentiler sırası ile çalışacağı için sorun olmayacaktır. Neyse, ben eklentileri birleştirdim.Admin tag eklentisinin içine swear filtre gömülü. ini dosyasını config klasörüne atıp kullanabilirsiniz.Kod: Tümünü seç
#include <amxmodx> #include <amxmisc> #define PLUGIN "Admin Yesil Yazi & Adminlerde Tag" #define VERSION "2.2" #define AUTHOR "EDITLEYEN: qurteisa" #define ACCESS_LEVEL ADMIN_IMMUNITY #define ADMIN_LISTEN ADMIN_LEVEL_C new message[192] new sayText new teamInfo new maxPlayers new g_MessageColor new g_NameColor new g_AdminListen new strName[191] new strText[191] new alive[11] new const g_szTag[][] = { "[DestanGaming]", "[DestanGaming]", "[DestanGaming]", "[DestanGaming]" } new const g_iTagFlag[sizeof(g_szTag)] = { ADMIN_RCON, ADMIN_RCON, ADMIN_BAN, ADMIN_RESERVATION } #define MAX_WORDS 192 new g_swearsNames[MAX_WORDS][32]; new g_swearsNum; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_MessageColor = register_cvar("amx_color", "2") g_NameColor = register_cvar("amx_namecolor", "6") g_AdminListen = register_cvar("amx_listen", "1") sayText = get_user_msgid("SayText") teamInfo = get_user_msgid("TeamInfo") maxPlayers = get_maxplayers() register_message(sayText, "avoid_duplicated") register_concmd("amx_color", "set_color", ACCESS_LEVEL, "<color>") register_concmd("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>") register_concmd("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>") register_clcmd("say", "hook_say") register_clcmd("say_team", "hook_teamsay") readList(); } public avoid_duplicated(msgId, msgDest, receiver) { return PLUGIN_HANDLED } get_tag_index(id) { new flags = get_user_flags(id) for(new i = 1; i < sizeof(g_iTagFlag); i++) { if(check_admin_flag(flags, g_iTagFlag[i])) { return i } } return 0 } check_admin_flag(flags, flag) { if(flag == ADMIN_ADMIN) { return ((flags & ~ADMIN_USER) > 0) } else if(flag == ADMIN_ALL) { return 1 } return (flags & flag) } readList() { new filename[64]; get_localinfo("amxx_configsdir", filename, charsmax(filename)); format(filename, charsmax(filename), "%s/kufur_listesi.ini", filename); if(!file_exists(filename)) { log_message("Swear Filter: %s dosyasi bulunamadi.", filename); return; } new iLen; while(g_swearsNum < MAX_WORDS && read_file(filename, g_swearsNum ,g_swearsNames[g_swearsNum][1],30,iLen)) { if(g_swearsNames[g_swearsNum][0] == ';') continue; g_swearsNames[g_swearsNum][0] = iLen; ++g_swearsNum; } log_message("Swear Filter: %d adet engellenecek kufur eklendi.", g_swearsNum); } public hook_say(id) { read_args(message, 191) remove_quotes(message) if(message[0] == '@' || message[0] == '/' || message[0] == '!' || equal(message, "")) return PLUGIN_CONTINUE new pos, i = 0; while(i < g_swearsNum) { if((pos = containi(message,g_swearsNames[i][1])) != -1) { new len = g_swearsNames[i][0]; while(len--) message[pos++] = '*'; continue; } ++i; } new name[32] get_user_name(id, name, 31) new admin = get_tag_index(id) new isAlive if(is_user_alive(id)) { isAlive = 1 alive = "^x01" } else { isAlive = 0 alive = "^x01*DEAD* " } static color[10] if(admin) { // İsim switch(get_pcvar_num(g_NameColor)) { case 1: format(strName, 191, "^x04%s %s%s", g_szTag[admin], alive, name) case 2: format(strName, 191, "^x04%s %s^x04%s ", g_szTag[admin], alive, name) case 3: { color = "SPECTATOR" format(strName, 191, "^x04%s %s^x03%s ", g_szTag[admin], alive, name) } case 4: { color = "CT" format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } case 5: { color = "TERRORIST" format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } case 6: { get_user_team(id, color, 9) format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } } // Mesaj switch(get_pcvar_num(g_MessageColor)) { case 1: // Sari format(strText, 191, "%s", message) case 2: // Yesil format(strText, 191, "^x04%s", message) case 3: // Beyaz { copy(color, 9, "SPECTATOR") format(strText, 191, "^x03%s", message) } case 4: // Mavi { copy(color, 9, "CT") format(strText, 191, "^x03%s", message) } case 5: // Kirmizi { copy(color, 9, "TERRORIST") format(strText, 191, "^x03%s", message) } } } else { get_user_team(id, color, 9) format(strName, 191, "%s^x03%s", alive, name) format(strText, 191, "%s", message) } format(message, 191, "%s^x01 : %s", strName, strText) sendMessage(color, isAlive) return PLUGIN_CONTINUE } public hook_teamsay(id) { new playerTeam = get_user_team(id) new playerTeamName[19] switch(playerTeam) { case 1: copy(playerTeamName, 11, "Terrorists") case 2: copy(playerTeamName, 18, "Counter-Terrorists") default: copy(playerTeamName, 9, "Spectator") } read_args(message, 191) remove_quotes(message) if(message[0] == '@' || message[0] == '/' || message[0] == '!' || equal(message, "")) return PLUGIN_CONTINUE new name[32] get_user_name(id, name, 31) new admin = get_tag_index(id) new isAlive if(is_user_alive(id)) { isAlive = 1 alive = "^x01" } else { isAlive = 0 alive = "^x01*DEAD* " } static color[10] if(admin) { // İsim switch(get_pcvar_num(g_NameColor)) { case 1: format(strName, 191, "%s(%s)^x04%s %s", alive, playerTeamName, g_szTag[admin], name) case 2: format(strName, 191, "%s(%s)^x04%s ^x04%s", alive, playerTeamName, g_szTag[admin], name) case 3: { color = "SPECTATOR" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 4: { color = "CT" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 5: { color = "TERRORIST" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 6: { get_user_team(id, color, 9) format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } } // Message switch(get_pcvar_num(g_MessageColor)) { case 1: // Sari format(strText, 191, "%s", message) case 2: // Yesil format(strText, 191, "^x04%s", message) case 3: // Beyaz { copy(color, 9, "SPECTATOR") format(strText, 191, "^x03%s", message) } case 4: // Mavi { copy(color, 9, "CT") format(strText, 191, "^x03%s", message) } case 5: // Kirmizi { copy(color, 9, "TERRORIST") format(strText, 191, "^x03%s", message) } } } else { get_user_team(id, color, 9) format(strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name) format(strText, 191, "%s", message) } format(message, 191, "%s ^x01: %s", strName, strText) sendTeamMessage(color, isAlive, playerTeam) return PLUGIN_CONTINUE } public set_color(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newColor read_argv(1, arg, 1) newColor = str_to_num(arg) if(newColor >= 1 && newColor <= 5) { set_pcvar_num(g_MessageColor, newColor) if(get_pcvar_num(g_NameColor) != 1 && ((newColor == 3 && get_pcvar_num(g_NameColor) != 3) ||(newColor == 4 && get_pcvar_num(g_NameColor) != 4) ||(newColor == 5 && get_pcvar_num(g_NameColor) != 5))) { set_pcvar_num(g_NameColor, 2) } } return PLUGIN_HANDLED } public set_name_color(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newColor read_argv(1, arg, 1) newColor = str_to_num(arg) if(newColor >= 1 && newColor <= 6) { set_pcvar_num(g_NameColor, newColor) if((get_pcvar_num(g_MessageColor) != 1 &&((newColor == 3 && get_pcvar_num(g_MessageColor) != 3) ||(newColor == 4 && get_pcvar_num(g_MessageColor) != 4) ||(newColor == 5 && get_pcvar_num(g_MessageColor) != 5))) || get_pcvar_num(g_NameColor) == 6) { set_pcvar_num(g_MessageColor, 2) } } return PLUGIN_HANDLED } public set_listen(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newListen read_argv(1, arg, 1) newListen = str_to_num(arg) set_pcvar_num(g_AdminListen, newListen) return PLUGIN_HANDLED } public sendMessage(color[], alive) { new teamName[10] for(new player = 1; player < maxPlayers; player++) { if(!is_user_connected(player)) continue if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { get_user_team(player, teamName, 9) changeTeamInfo(player, color) writeMessage(player, message) changeTeamInfo(player, teamName) } } } public sendTeamMessage(color[], alive, playerTeam) { new teamName[10] for(new player = 1; player < maxPlayers; player++) { if(!is_user_connected(player)) continue if(get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { get_user_team(player, teamName, 9) changeTeamInfo(player, color) writeMessage(player, message) changeTeamInfo(player, teamName) } } } } public changeTeamInfo(player, team[]) { message_begin(MSG_ONE, teamInfo, _, player) write_byte(player) write_string(team) message_end() } public writeMessage(player, message[]) { message_begin(MSG_ONE, sayText, {0, 0, 0}, player) write_byte(player) write_string(message) message_end() } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */
| Link: | |
| Linklerini gizle |
-
talhasendag
Konu Sahibi - Mesajlar: 3
- Kayıt: Cum Mar 20, 2020 7:12 am
Küfür engelleyen plugin ‼️
ichat diye bir eklenti varYek'-ta yazdı: Cmt Mar 21, 2020 2:19 pm Eskiden eklentiler sıra ile çalışıyordu, fakat değişen mimariler sonucu tek bir bütün olarak çalışmaya başlayınca eski eklentiler de böyle bozulmaya başlamış. Eski sürüm amxmodx sürümü kullanırsanız eklentiler sırası ile çalışacağı için sorun olmayacaktır. Neyse, ben eklentileri birleştirdim.Admin tag eklentisinin içine swear filtre gömülü. ini dosyasını config klasörüne atıp kullanabilirsiniz.Kod: Tümünü seç
#include <amxmodx> #include <amxmisc> #define PLUGIN "Admin Yesil Yazi & Adminlerde Tag" #define VERSION "2.2" #define AUTHOR "EDITLEYEN: qurteisa" #define ACCESS_LEVEL ADMIN_IMMUNITY #define ADMIN_LISTEN ADMIN_LEVEL_C new message[192] new sayText new teamInfo new maxPlayers new g_MessageColor new g_NameColor new g_AdminListen new strName[191] new strText[191] new alive[11] new const g_szTag[][] = { "[DestanGaming]", "[DestanGaming]", "[DestanGaming]", "[DestanGaming]" } new const g_iTagFlag[sizeof(g_szTag)] = { ADMIN_RCON, ADMIN_RCON, ADMIN_BAN, ADMIN_RESERVATION } #define MAX_WORDS 192 new g_swearsNames[MAX_WORDS][32]; new g_swearsNum; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_MessageColor = register_cvar("amx_color", "2") g_NameColor = register_cvar("amx_namecolor", "6") g_AdminListen = register_cvar("amx_listen", "1") sayText = get_user_msgid("SayText") teamInfo = get_user_msgid("TeamInfo") maxPlayers = get_maxplayers() register_message(sayText, "avoid_duplicated") register_concmd("amx_color", "set_color", ACCESS_LEVEL, "<color>") register_concmd("amx_namecolor", "set_name_color", ACCESS_LEVEL, "<color>") register_concmd("amx_listen", "set_listen", ACCESS_LEVEL, "<1 | 0>") register_clcmd("say", "hook_say") register_clcmd("say_team", "hook_teamsay") readList(); } public avoid_duplicated(msgId, msgDest, receiver) { return PLUGIN_HANDLED } get_tag_index(id) { new flags = get_user_flags(id) for(new i = 1; i < sizeof(g_iTagFlag); i++) { if(check_admin_flag(flags, g_iTagFlag[i])) { return i } } return 0 } check_admin_flag(flags, flag) { if(flag == ADMIN_ADMIN) { return ((flags & ~ADMIN_USER) > 0) } else if(flag == ADMIN_ALL) { return 1 } return (flags & flag) } readList() { new filename[64]; get_localinfo("amxx_configsdir", filename, charsmax(filename)); format(filename, charsmax(filename), "%s/kufur_listesi.ini", filename); if(!file_exists(filename)) { log_message("Swear Filter: %s dosyasi bulunamadi.", filename); return; } new iLen; while(g_swearsNum < MAX_WORDS && read_file(filename, g_swearsNum ,g_swearsNames[g_swearsNum][1],30,iLen)) { if(g_swearsNames[g_swearsNum][0] == ';') continue; g_swearsNames[g_swearsNum][0] = iLen; ++g_swearsNum; } log_message("Swear Filter: %d adet engellenecek kufur eklendi.", g_swearsNum); } public hook_say(id) { read_args(message, 191) remove_quotes(message) if(message[0] == '@' || message[0] == '/' || message[0] == '!' || equal(message, "")) return PLUGIN_CONTINUE new pos, i = 0; while(i < g_swearsNum) { if((pos = containi(message,g_swearsNames[i][1])) != -1) { new len = g_swearsNames[i][0]; while(len--) message[pos++] = '*'; continue; } ++i; } new name[32] get_user_name(id, name, 31) new admin = get_tag_index(id) new isAlive if(is_user_alive(id)) { isAlive = 1 alive = "^x01" } else { isAlive = 0 alive = "^x01*DEAD* " } static color[10] if(admin) { // İsim switch(get_pcvar_num(g_NameColor)) { case 1: format(strName, 191, "^x04%s %s%s", g_szTag[admin], alive, name) case 2: format(strName, 191, "^x04%s %s^x04%s ", g_szTag[admin], alive, name) case 3: { color = "SPECTATOR" format(strName, 191, "^x04%s %s^x03%s ", g_szTag[admin], alive, name) } case 4: { color = "CT" format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } case 5: { color = "TERRORIST" format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } case 6: { get_user_team(id, color, 9) format(strName, 191, "^x04%s %s^x03%s", g_szTag[admin], alive, name) } } // Mesaj switch(get_pcvar_num(g_MessageColor)) { case 1: // Sari format(strText, 191, "%s", message) case 2: // Yesil format(strText, 191, "^x04%s", message) case 3: // Beyaz { copy(color, 9, "SPECTATOR") format(strText, 191, "^x03%s", message) } case 4: // Mavi { copy(color, 9, "CT") format(strText, 191, "^x03%s", message) } case 5: // Kirmizi { copy(color, 9, "TERRORIST") format(strText, 191, "^x03%s", message) } } } else { get_user_team(id, color, 9) format(strName, 191, "%s^x03%s", alive, name) format(strText, 191, "%s", message) } format(message, 191, "%s^x01 : %s", strName, strText) sendMessage(color, isAlive) return PLUGIN_CONTINUE } public hook_teamsay(id) { new playerTeam = get_user_team(id) new playerTeamName[19] switch(playerTeam) { case 1: copy(playerTeamName, 11, "Terrorists") case 2: copy(playerTeamName, 18, "Counter-Terrorists") default: copy(playerTeamName, 9, "Spectator") } read_args(message, 191) remove_quotes(message) if(message[0] == '@' || message[0] == '/' || message[0] == '!' || equal(message, "")) return PLUGIN_CONTINUE new name[32] get_user_name(id, name, 31) new admin = get_tag_index(id) new isAlive if(is_user_alive(id)) { isAlive = 1 alive = "^x01" } else { isAlive = 0 alive = "^x01*DEAD* " } static color[10] if(admin) { // İsim switch(get_pcvar_num(g_NameColor)) { case 1: format(strName, 191, "%s(%s)^x04%s %s", alive, playerTeamName, g_szTag[admin], name) case 2: format(strName, 191, "%s(%s)^x04%s ^x04%s", alive, playerTeamName, g_szTag[admin], name) case 3: { color = "SPECTATOR" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 4: { color = "CT" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 5: { color = "TERRORIST" format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } case 6: { get_user_team(id, color, 9) format(strName, 191, "%s(%s)^x04%s ^x03%s", alive, playerTeamName, g_szTag[admin], name) } } // Message switch(get_pcvar_num(g_MessageColor)) { case 1: // Sari format(strText, 191, "%s", message) case 2: // Yesil format(strText, 191, "^x04%s", message) case 3: // Beyaz { copy(color, 9, "SPECTATOR") format(strText, 191, "^x03%s", message) } case 4: // Mavi { copy(color, 9, "CT") format(strText, 191, "^x03%s", message) } case 5: // Kirmizi { copy(color, 9, "TERRORIST") format(strText, 191, "^x03%s", message) } } } else { get_user_team(id, color, 9) format(strName, 191, "%s(%s) ^x03%s", alive, playerTeamName, name) format(strText, 191, "%s", message) } format(message, 191, "%s ^x01: %s", strName, strText) sendTeamMessage(color, isAlive, playerTeam) return PLUGIN_CONTINUE } public set_color(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newColor read_argv(1, arg, 1) newColor = str_to_num(arg) if(newColor >= 1 && newColor <= 5) { set_pcvar_num(g_MessageColor, newColor) if(get_pcvar_num(g_NameColor) != 1 && ((newColor == 3 && get_pcvar_num(g_NameColor) != 3) ||(newColor == 4 && get_pcvar_num(g_NameColor) != 4) ||(newColor == 5 && get_pcvar_num(g_NameColor) != 5))) { set_pcvar_num(g_NameColor, 2) } } return PLUGIN_HANDLED } public set_name_color(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newColor read_argv(1, arg, 1) newColor = str_to_num(arg) if(newColor >= 1 && newColor <= 6) { set_pcvar_num(g_NameColor, newColor) if((get_pcvar_num(g_MessageColor) != 1 &&((newColor == 3 && get_pcvar_num(g_MessageColor) != 3) ||(newColor == 4 && get_pcvar_num(g_MessageColor) != 4) ||(newColor == 5 && get_pcvar_num(g_MessageColor) != 5))) || get_pcvar_num(g_NameColor) == 6) { set_pcvar_num(g_MessageColor, 2) } } return PLUGIN_HANDLED } public set_listen(id, level, cid) { if(!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[1], newListen read_argv(1, arg, 1) newListen = str_to_num(arg) set_pcvar_num(g_AdminListen, newListen) return PLUGIN_HANDLED } public sendMessage(color[], alive) { new teamName[10] for(new player = 1; player < maxPlayers; player++) { if(!is_user_connected(player)) continue if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { get_user_team(player, teamName, 9) changeTeamInfo(player, color) writeMessage(player, message) changeTeamInfo(player, teamName) } } } public sendTeamMessage(color[], alive, playerTeam) { new teamName[10] for(new player = 1; player < maxPlayers; player++) { if(!is_user_connected(player)) continue if(get_user_team(player) == playerTeam || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { if(alive && is_user_alive(player) || !alive && !is_user_alive(player) || get_pcvar_num(g_AdminListen) && get_user_flags(player) & ADMIN_LISTEN) { get_user_team(player, teamName, 9) changeTeamInfo(player, color) writeMessage(player, message) changeTeamInfo(player, teamName) } } } } public changeTeamInfo(player, team[]) { message_begin(MSG_ONE, teamInfo, _, player) write_byte(player) write_string(team) message_end() } public writeMessage(player, message[]) { message_begin(MSG_ONE, sayText, {0, 0, 0}, player) write_byte(player) write_string(message) message_end() } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par } */
| Link: | |
| Linklerini gizle |
Küfür engelleyen plugin ‼️
https://medium.com/yazılım-mimarileri/y ... e64353b4ac
Yazılım mimarisi kavramı burada mevcuttur. Yakın zamanda paneldeki admin chat eklentisine ekleme yaparız.
Yazılım mimarisi kavramı burada mevcuttur. Yakın zamanda paneldeki admin chat eklentisine ekleme yaparız.
| Link: | |
| Linklerini gizle |
-
Kaybetmeyen
- Mesajlar: 254
- Kayıt: Prş Ağu 22, 2019 11:12 pm
- Clan İsmi: RedDawn
Küfür engelleyen plugin ‼️
Teşekkürler beklemedeyiz.Yek'-ta yazdı: Cmt Mar 21, 2020 9:28 pm https://medium.com/yazılım-mimarileri/y ... e64353b4ac
Yazılım mimarisi kavramı burada mevcuttur. Yakın zamanda paneldeki admin chat eklentisine ekleme yaparız.
| Link: | |
| Linklerini gizle |