Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Şikayet Plugini

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
comolokko12
Mesajlar: 20
Kayıt: Cum May 12, 2017 6:28 pm

Şikayet Plugini

Mesaj gönderen comolokko12 »

arkadaşlar bu ekteki plugin sadece adminleri şikayet etmek için tasarlanmış. yani menüde sadece admin isimleri var. ben herkesin isminin seçilmesini istiyorum. yani adam /complain yazdıgında herkesin ismi çıkıcak sadece adminlerin değil. deathmatch sv'de hilelerin şikayet edilmesi için istiyorum.

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <nvault>

#define PLUGIN	"Admin Complaint"
#define AUTHOR	"thony"
#define VERSION	"1.0"

new szComplaintsDir[] = "addons/amxmodx/logs/complaints/";
new g_PlayerVotes[33][33]
new iComplaining[33]
new nVault
new iMaxPlayers

new cvar_MaxComplaints

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /complain", "ShowComplainMenu")
	register_clcmd("Reason why you're complaining", "ComplaintReason")
	register_clcmd("say /viewcomplaints", "ViewComplaintsMenu", ADMIN_RCON)
	
	cvar_MaxComplaints = register_cvar("ac_maxcomplaints", "1")
	
	nVault = nvault_open("AdminComplain")
	iMaxPlayers = get_maxplayers();
}
public ComplaintReason(id) {
	if(iComplaining[id] == 0)
		return PLUGIN_HANDLED;
	
	if(is_user_admin(iComplaining[id])) {
		new szNum[3], authid[32]
		get_user_authid(iComplaining[id], authid, charsmax(authid))
		if(nvault_get(nVault, authid, szNum, charsmax(szNum))) {
			new iNum = str_to_num(szNum)
			num_to_str((iNum+1), szNum, charsmax(szNum))
			nvault_set(nVault, authid, szNum)
		}
		else
			nvault_set(nVault, authid, "1")
		
		g_PlayerVotes[id][iComplaining[id]]++;
		
		new szReason[246]
		read_argv(6, szReason, charsmax(szReason))
		LogComplain(id, iComplaining[id], szReason);
		iComplaining[id] = 0;
		
		client_print(id, print_chat, "[Admin Complaint] Your complaint was recorded.")
	}
	return PLUGIN_HANDLED;
}
public client_disconnect(id) {
	for(new i; i < iMaxPlayers; i++) {
		g_PlayerVotes[id][i] = 0;
	}
	iComplaining[id] = 0;
}
public ShowComplainMenu(id) {
	new admins[33], adminsnum
	for(new i; i < iMaxPlayers; i++) {
		if(is_user_admin(i)) {
			admins[adminsnum] = i;
			adminsnum++;
		}
	}
	if(adminsnum < 1) {
		client_print(id, print_chat, "[Admin Complaint] There are no admins online to complain about.")
		return PLUGIN_HANDLED;
	}
	new menu = menu_create("Admin Complain", "ComplainMenuHandler")
	
	for(new i; i < adminsnum; i++) {
		new szName[42], szID[2], szFinal[42], iComplaintsNum = getComplaintsNum(admins[i]);
		get_user_name(admins[i], szName, charsmax(szName))
		num_to_str(admins[i], szID, charsmax(szID))
		
		if(g_PlayerVotes[id][admins[i]] >= get_pcvar_num(cvar_MaxComplaints))
			formatex(szFinal, charsmax(szFinal), "\d%s \r(%i)", szName, iComplaintsNum)
		else
			formatex(szFinal, charsmax(szFinal), "%s \r(%i)", szName, iComplaintsNum)
		
		menu_additem(menu, szFinal, szID)
	}
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	return PLUGIN_HANDLED;
}
public ComplainMenuHandler(id, menu, item)
{
	if(item == MENU_EXIT) {
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	
	new adminid = str_to_num(data);
	
	if(g_PlayerVotes[id][adminid] >= get_pcvar_num(cvar_MaxComplaints)) {
		client_print(id, print_chat, "[Admin Complaint] Max complaints by admin reached, you can't complain anymore about that admin.")
		ShowComplainMenu(id)
	}
	
	else if(is_user_admin(adminid)) {
		iComplaining[id] = adminid;
		client_cmd(id, "messagemode ^"Reason why you're complaining^"")
	}
	
	return PLUGIN_HANDLED;
}
public ViewComplaintsMenu(id, level, cid) {
	if(!cmd_access(id, level, cid, 1))
		return PLUGIN_HANDLED;
	
	new fileName[32], dir;
	dir = open_dir(szComplaintsDir, fileName, charsmax(fileName))
	next_file(dir, fileName, charsmax(fileName))
	
	if(!next_file(dir, fileName, charsmax(fileName))) {
		client_print(id, print_chat, "[Admin Complaint] There are no complaints.")
		close_dir(dir)
		return PLUGIN_HANDLED;
	}
	new menu = menu_create("See complaints by date", "ViewComplaintsMenuHandler")
	
	do {
		menu_additem(menu, fileName, fileName)
	}
	while(next_file(dir, fileName, charsmax(fileName)))
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	close_dir(dir)
	return PLUGIN_HANDLED;
}
public ViewComplaintsMenuHandler(id, menu, item) {
	if(item == MENU_EXIT) {
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	
	new data[6], szName[64], fullDir[100];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	
	formatex(fullDir, charsmax(fullDir), "%s%s", szComplaintsDir, szName)
	
	show_motd(id, fullDir, szName)
	
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
getComplaintsNum(id) {
	new szNum[3], authid[32]
	get_user_authid(id, authid, charsmax(authid))
	if(nvault_get(nVault, authid, szNum, charsmax(szNum)))
		return str_to_num(szNum);
	
	return 0;
}
LogComplain(id, adminid, const reason[]) {
	new szDate[40], szFile[50]
	get_time("%d-%m-%Y", szDate, charsmax(szDate))
	formatex(szFile, charsmax(szFile), "%s%s.txt", szComplaintsDir, szDate)
	if(!file_exists(szFile)) {
		write_file(szFile, "<style> body {background: black; color: white; font-size: 10px; font-family: arial;} </style>")
	}
	new szAuthid[32], szAuthid2[32], szTime[32], szName[42], szName2[42], szLog[200]
	get_time( "%H:%M:%S", szTime, charsmax(szTime))
	get_user_authid(id, szAuthid, charsmax(szAuthid))
	get_user_authid(adminid, szAuthid2, charsmax(szAuthid2))
	get_user_name(id, szName, charsmax(szName))
	get_user_name(adminid, szName2, charsmax(szName2))
	formatex(szLog, charsmax(szLog), "<b>Complainant:</b> %s (%s)<br/><b>Admin:</b> %s (%s).<br/><b>Reason:</b> %s<br/> <b>Time:</b>  %s<br/><hr/>", szName, szAuthid, szName2, szAuthid2, reason, szTime)
	write_file(szFile, szLog)
}

Link:
Linklerini gizle
Linki Kopyala

MaviRuh*/
Mesajlar: 107
Kayıt: Çrş Haz 21, 2017 12:25 am

Şikayet Plugini

Mesaj gönderen MaviRuh*/ »

@comolokko12 cvar_MaxComplaints = register_cvar("ac_maxcomplaints", "1") alakası vardır dıye dusunuyorum

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

TunnS[C]
Mesajlar: 3971
Kayıt: Prş Oca 05, 2017 12:38 pm
Konum: Ordu
Server Ip/DNS: 213.238.173.78
Clan İsmi: CapitaLL |
İletişim:

Şikayet Plugini

Mesaj gönderen TunnS[C] »

MaviRuh*/ yazdı:@comolokko12 cvar_MaxComplaints = register_cvar("ac_maxcomplaints", "1") alakası vardır dıye dusunuyorum
Max şikayet felan olması lazım o cvar ısmınden anlasıldıgı üzere

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
comolokko12
Mesajlar: 20
Kayıt: Cum May 12, 2017 6:28 pm

Şikayet Plugini

Mesaj gönderen comolokko12 »

yok sorun onlarla değil. sorun menünün kodlarında menüde sadece admin isimlerine göre ayarlanmış. onun tüm herkese açılması lazım

Link:
Linklerini gizle
Linki Kopyala
Cevapla