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

https://discord.gg/43gGDQe6tS

yetki sıkıntısı ozel plugin

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
loneylwolfrd
Mesajlar: 46
Kayıt: Cmt Kas 25, 2017 3:14 pm
Server Ip/DNS: cs242.csduragi.com
Clan İsmi: Ready2Die ~
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen loneylwolfrd »

#define SIKAYETYONETIM ADMIN_BAN
#define SIKAYETADMIN ADMIN_KICK
#define ADMINYETKI ADMIN_RESERVATION

bu sikayet yonetimi rcon yani "L" harf yetkisi olana vermek istiyorum ADMIN_RCON yazdim hata verdi
yardımcı ola bilecek varmı

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

Konu Sahibi
loneylwolfrd
Mesajlar: 46
Kayıt: Cmt Kas 25, 2017 3:14 pm
Server Ip/DNS: cs242.csduragi.com
Clan İsmi: Ready2Die ~
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen loneylwolfrd »

verdigi hatada bu

//cstrike/addons/amxmodx/scripting/rdsikayet.sma(1) : error 010: invalid function or declaration

1 Error.
Could not locate output file /cstrike/addons/amxmodx/plugins/rdsikayet.amx (compile failed).

Kod: Tümünü seç

#include <amxmodx>
#include <amxmisc>
#include <reapi>

#define SIKAYETYONETIM ADMIN_BAN
#define SIKAYETADMIN ADMIN_KICK
#define ADMINYETKI ADMIN_RESERVATION

new
TAG[32],
TAGCVAR,
shak,
adminsikayeti,
cevaplar,
sifirlama

new
osikayetler[256],
sgoster[256],
asikayetler[256],
ocevaplar[256],
acevaplar[256],
sikayetban[256],
adminler[256],
find[32],
sikayetim[32][100],
ea_sikayetci[32][64],
ea_sikayetedilen[32][64],
ea_random[32][64],
ea_authid[32][64],
ea_ip[32][64],
s_banip[32][64],
s_banid[32][64],
s_sikayetsayisi[32],
asy[32],
osy[32],
acy[32],
ocy[32]

public plugin_init() {
	register_plugin("Gelişmiş Şikayet Sistemi v1.0", "1.0", "emirakpinar")

	RegisterHookChain(RG_CBasePlayer_Spawn, "oyuncudogdu",true);

	TAGCVAR = register_cvar("ea_tagreklam","Ready2DieGaming")
	get_pcvar_string(TAGCVAR, TAG, charsmax(TAG))
	shak = register_cvar("ea_sikayethak","1")
	adminsikayeti = register_cvar("ea_adminsikayeti","1")
	cevaplar = register_cvar("ea_admincevaplari","1")
	sifirlama = register_cvar("ea_sifirlama","2")

	register_concmd("amx_sikayetlerisil","stemizlek")
	register_concmd("amx_sbansil","sbank")
	register_clcmd("say /sikayet","kontrol")
	register_clcmd("say !sikayet","kontrol")
	register_clcmd("say .sikayet","kontrol")
	register_clcmd("say_team /sikayet","kontrol")
	register_clcmd("say_team !sikayet","kontrol")
	register_clcmd("say_team .sikayet","kontrol")
	register_clcmd("Admin-Sikayetiniz","sikayetyaz")
	register_clcmd("Oyuncu-Sikayetiniz","sikayetyaz2")
	register_clcmd("SikayetO-Cevabi","ocevap")
	register_clcmd("SikayetA-Cevabi","acevap")

	register_logevent("eRS",2,"1=Round_Start")

	bilgimesaj()
}

public plugin_cfg(){
	get_configsdir(osikayetler,255)
	format(osikayetler,255,"%s/sikayetsistemi/sikayetler_oyuncu.txt",osikayetler)
	get_configsdir(ocevaplar,255)
	format(ocevaplar,255,"%s/sikayetsistemi/cevap_oyuncu.txt",ocevaplar)
	get_configsdir(acevaplar,255)
	format(acevaplar,255,"%s/sikayetsistemi/cevap_admin.txt",acevaplar)
	get_configsdir(sikayetban,255)
	format(sikayetban,255,"%s/sikayetsistemi/sikayet_ban.cfg",sikayetban)
	get_configsdir(sgoster,255)
	format(sgoster,255,"%s/sikayetsistemi/sikayetgoster.txt",sgoster)
	get_configsdir(asikayetler,255)
	format(asikayetler,255,"%s/sikayetsistemi/sikayetler_admin.txt",asikayetler)
	get_configsdir(adminler,255)
	format(adminler,255,"%s/sikayetsistemi/adminler.txt",adminler)
}

public eRS(){
	new time[32]
	get_time("%H:%M", time, 31)
	if(get_pcvar_num(sifirlama) == 1) {
		if(containi(time,"12:00") != -1 || containi(time,"12:01") != -1 || containi(time,"12:02") != -1 || containi(time,"12:03") != -1){
			set_task(0.1,"stemizle")
		}
		else if(containi(time,"00:00") != -1 || containi(time,"00:01") != -1 || containi(time,"00:02") != -1 || containi(time,"00:03") != -1){
			set_task(0.1,"stemizle")
		}
	}
	if(get_pcvar_num(sifirlama) == 2) {
		if(containi(time,"00:00") != -1 || containi(time,"00:01") != -1 || containi(time,"00:02") != -1 || containi(time,"00:03") != -1){
			set_task(0.1,"stemizle")
		}
	}
}

public client_disconnected(id){
	s_sikayetsayisi[id] = 0
}

public client_connect(id){
	s_sikayetsayisi[id] = 0
}

public oyuncudogdu(id){
	s_sikayetsayisi[id] = 0
}

public bilgimesaj(){
	ChatColor(0,"!teamSaydan !y[ !g/sikayet !y] !teamyazarak sikayetlerinizi bizlere iletebilirsiniz.")
	set_task(120.0,"bilgimesaj")
}

public sbank(id, level, cid){
	
	if (!cmd_access(id, level, cid, 0))
		return PLUGIN_HANDLED

	set_task(0.1,"sban",id)
	return PLUGIN_CONTINUE
}

public sban(id){
	client_cmd(id,"echo Tum sikayet banli oyuncular temizlendi.")
	delete_file(sikayetban)
	ChatColor(id,"!teamTum sikayet banlar temizlendi.")
	new topla[256]
	new bilgi1[] = ";ILK 2 SATIRDA ISLEM YAPMAYIN SIKAYETLERIN GORUNTULENMESINDE SORUN YARATABILIR."
	new bilgi2[] = ";BANLANAN IP - AUTHID"
	formatex(topla,charsmax(topla),"%s^n%s",bilgi1,bilgi2)
	write_file(sikayetban,topla)
}

public stemizlek(id, level, cid){

	if (!cmd_access(id, level, cid, 0))
		return PLUGIN_HANDLED

	set_task(0.1,"stemizle",id)
	return PLUGIN_CONTINUE
}

public stemizle(id){
	client_cmd(id,"echo Tum sikayet listeleri temizlendi.")
	delete_file(osikayetler)
	delete_file(asikayetler)
	delete_file(ocevaplar)
	delete_file(acevaplar)
	new topla[256],topla2[256]
	new bilgi1[] = ";ILK 2 SATIRDA ISLEM YAPMAYIN SIKAYETLERIN GORUNTULENMESINDE SORUN YARATABILIR."
	new bilgi2[] = ";SIKAYET KODU - TARIH - ZAMAN - HARITA - SIKAYETCI - SIKAYET EDILEN - SIKAYETI - AUTHID - IPADRESS"
	new bilgi3[] = ";SIKAYET KODU - SIKAYETCI - SIKAYET EDILEN - SIKAYETI - ADMIN CEVABI - CEVAPLAYAN ADMIN"
	formatex(topla,charsmax(topla),"%s^n%s",bilgi1,bilgi2)
	formatex(topla2,charsmax(topla2),"%s^n%s",bilgi1,bilgi3)
	write_file(osikayetler,topla)
	write_file(asikayetler,topla)
	write_file(ocevaplar,topla2)
	write_file(acevaplar,topla2)
	ChatColor(id,"!teamTum sikayetler ve sikayet cevaplari temizlendi.")
}

public kontrol(id){

	new oyuncuip[32],oyuncuid[32]
	new readdata[256],txtlen
	get_user_authid(id, oyuncuid, charsmax(oyuncuid))
	get_user_ip(id,oyuncuip,charsmax(oyuncuip),1)
	new fsize = file_size(sikayetban,1)
	for (new line=2;line<=fsize;line++)
	{
		new pip[32],pid[32]
		read_file(sikayetban,line,readdata,255,txtlen)
		parse(readdata,pip,charsmax(pip),pid,charsmax(pid))
		if(containi(oyuncuip,pip) != -1 || containi(oyuncuid,pid) != -1){
			ChatColor(id,"!teamSikayet banlisiniz, sikayette bulunamazsiniz.")
			ChatColor(id,"!teamBir yanlislik oldugunu dusunuyorsaniz yetkili ile iletisime gecin.")
			return PLUGIN_HANDLED
		}
		else smenu(id) 
	}
	ChatColor(id,"!teamSikayeti bos yere kullanmak sikayet ban(sikayet yasagi) sebebidir.")
	
	return PLUGIN_HANDLED
}

public smenu(id) {

	new mod[24]
	if(get_user_flags(id) & SIKAYETYONETIM)
		formatex(mod,charsmax(mod),"YONETICI")
	else if(get_user_flags(id) & SIKAYETADMIN)
		formatex(mod,charsmax(mod),"ADMIN")
	else
		formatex(mod,charsmax(mod),"OYUNCU")
	static Item[64]

	formatex(Item, charsmax(Item),"\w[ \r%s - Sikayet Menu \w]^n\dSikayet Mod: \r%s",TAG,mod)
	new Menu = menu_create(Item, "menu_devam")

	if(equali(mod,"ADMIN") || equali(mod,"YONETICI")){
		formatex(Item, charsmax(Item),"\ySikayetleri Incele^n")
		menu_additem(Menu, Item, "1")
	}

	formatex(Item, charsmax(Item),"\dOyuncu Sikayet Et")
	menu_additem(Menu, Item, "2")

	if(get_pcvar_num(adminsikayeti)) {
		formatex(Item, charsmax(Item),"\dAdmin Sikayet Et")
		menu_additem(Menu, Item, "3")
	}

	if(get_pcvar_num(cevaplar)){
		formatex(Item, charsmax(Item),"\dCevaplanmis Sikayetler")
		menu_additem(Menu, Item, "4")
	}



	formatex(Item, charsmax(Item), "\wCikis")

	menu_setprop(Menu,MPROP_EXITNAME,Item)
	menu_display(id, Menu,0)

}

public menu_devam(id, menu, item) {

	if( item == MENU_EXIT )
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data);

	switch(key)
	{
		case 1:{
			sikayetgor(id)
		}
		case 2:{
			if(s_sikayetsayisi[id] < get_pcvar_num(shak) || get_user_flags(id) & SIKAYETADMIN || get_user_flags(id) & SIKAYETYONETIM){
				kontrol1(id)
			}
			else {
				ChatColor(id,"!teamKisa sure icerisinde sikayet hakkinizi kullandiniz, sonra tekrar deneyiniz.")
				smenu(id)
			}
		}
		case 3:{
			if(s_sikayetsayisi[id] < get_pcvar_num(shak) || get_user_flags(id) & SIKAYETADMIN || get_user_flags(id) & SIKAYETYONETIM){
				adminisim(id)
			}
			else {
				ChatColor(id,"!teamKisa sure icerisinde sikayet hakkinizi kullandiniz, sonra tekrar deneyiniz.")
				smenu(id)
			}
		}
		case 4:{
			sikayetcevap(id)
		}
	}
	return PLUGIN_HANDLED
}

public kontrol1(id){
	new oyuncuvar = 0
	new players[32],inum,idx
	get_players(players,inum,"c")
	for(new i=0;i<inum;++i){
		idx = players[i]
		if(!is_user_admin(idx)){
			++oyuncuvar
		}
	}
	if(oyuncuvar == 0){
		ChatColor(id,"!teamOyunda oyuncu bulunmamaktadir.")
		smenu(id)
	}
	else{
		oyuncuisim(id)
	}
}

public sikayetcevap(id){

	static Item[128]

	formatex(Item, charsmax(Item),"\w[ \r%s - Cevaplanmis Sikayetler \w]",TAG)
	new Menu = menu_create(Item, "sikayetcevap_d")
	
	new ea_satir[256],psikayetci[32],psikayetedilen[32],pxx[32],psikayet[128],pcevap[128]
	new maxsatir,txtlen,satir2[10]
	new topla[128]

	maxsatir = file_size(ocevaplar,1);
	for(new satir = 2;satir<maxsatir-1;satir++) {	
		read_file(ocevaplar,satir,ea_satir,255,txtlen)
		parse(ea_satir,pxx,charsmax(pxx),psikayetci,charsmax(psikayetci),psikayetedilen,charsmax(psikayetedilen),psikayet,charsmax(psikayet),pcevap,charsmax(pcevap))

		if(!equal(psikayetci,"") && !equal(psikayetedilen,"")){
			formatex(topla,charsmax(topla),"%s -> %s",psikayetci,psikayetedilen)
			num_to_str(satir,satir2,9)
			menu_additem(Menu,topla,"1")
		}
	}

	if(!topla[0]){
		ChatColor(id, "!teamCevaplanmis sikayet bulunmamaktadir.")
		set_task(0.1,"smenu",id)
	}
	
	menu_setprop(Menu,MPROP_NEXTNAME,"\wIleri")
	menu_setprop(Menu,MPROP_BACKNAME,"\wGeri")
	menu_setprop(Menu,MPROP_EXITNAME,"\wCikis")
	menu_display(id, Menu,0)
}

public sikayetcevap_d(id,menu,item) {

	if(item == MENU_EXIT) {
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new veri[6],isim[32];
	new access,callback;
	new readdata[256],txtlen
	new parsedsikayetci[64],parsedsikayete[64],psikayet[63],pmesaj[64],sil[6],pxx[32],padmin[64]
	menu_item_getinfo(menu,item,access,veri,charsmax(veri),isim,charsmax(isim),callback)
	formatex(sil,5,"%s",item)

	read_file(ocevaplar,item+2,readdata,255,txtlen)
	parse(readdata,pxx,31,parsedsikayetci,63,parsedsikayete,63,psikayet,63,pmesaj,63,padmin,63)
	new readdata2[256],txtlen2
	new topla[512],m1[128],m2[256],m3[128],m4[128],m5[128],m6[128]
	read_file(sgoster,1,readdata2,255,txtlen2)
	parse(readdata2,m1,charsmax(m1),m2,charsmax(m2),m3,charsmax(m3),m4,charsmax(m4),m5,charsmax(m5),m6,charsmax(m6))
	new what[] = {"XabcX"}
	replace(m2,128,what,parsedsikayetci)
	replace(m3,128,what,parsedsikayete)
	replace(m4,128,what,psikayet)
	replace(m5,128,what,padmin)
	replace(m6,128,what,pmesaj)
	formatex(topla,charsmax(topla),"%s%s%s%s%s%s",m1,m2,m3,m4,m5,m6)
	show_motd(id,topla,"Sikayet Cevabini Incele");
	return PLUGIN_HANDLED
}

public sikayetgor(id) {

	new mod[24]
	if(get_user_flags(id) & SIKAYETYONETIM)
		formatex(mod,charsmax(mod),"YONETICI")
	else if(get_user_flags(id) & SIKAYETADMIN)
		formatex(mod,charsmax(mod),"ADMIN")
	else
		formatex(mod,charsmax(mod),"OYUNCU")
	static Item[128]

	formatex(Item, charsmax(Item),"\w[ \r%s - Sikayet Menu \w]^n\dSikayet Mod: \r%s",TAG,mod)
	new Menu = menu_create(Item, "sikayetgor_d")

	formatex(Item, charsmax(Item),"\dOyuncuya yapilan sikayetler")
	menu_additem(Menu, Item, "1")

	if(get_pcvar_num(adminsikayeti)) {
		if(equali(mod,"YONETICI")) {
			formatex(Item, charsmax(Item),"\dAdmine yapilan sikayetler")
			menu_additem(Menu, Item, "2")
		}
		else {
			formatex(Item, charsmax(Item),"\dAdmine yapilan sikayetler | \rYETKISIZ")
			menu_additem(Menu, Item, "3")
		}
	}

	formatex(Item, charsmax(Item), "\wCikis")
	menu_setprop(Menu,MPROP_EXITNAME,Item)
	menu_display(id, Menu,0)
}

public sikayetgor_d(id, menu, item) {

	if( item == MENU_EXIT )
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data);

	switch(key)
	{
		case 1:{
			sikayetgoro(id)
		}
		case 2:{
			sikayetgora(id)
		}
		case 3:{
			ChatColor(id,"!teamYonetici harici admine yapilan sikayetleri inceleyemez.")
			sikayetgor(id)
		}
	}
	return PLUGIN_HANDLED
}

public sikayetgoro(id){

	static Item[128]

	formatex(Item, charsmax(Item),"\w[ \r%s - Oyuncu sikayetleri \w]",TAG)
	new Menu = menu_create(Item, "sikayetgoro_d")
	
	new ea_satir[256],pharita[32],psikayetci[32],psikayetedilen[32],pxx[32]
	new maxsatir,txtlen,satir2[10]
	new topla[128]

	new ea_satir2[256],pdeneme[64],cevap[64] = false
	new txtlen2
	maxsatir = file_size(osikayetler,1);
	for(new satir = 2;satir<maxsatir-1;satir++) {	
		read_file(osikayetler,satir,ea_satir,255,txtlen)
		parse(ea_satir,pxx,charsmax(pxx),pharita,charsmax(pharita),psikayetci,charsmax(psikayetci),psikayetedilen,charsmax(psikayetedilen))

		read_file(ocevaplar,satir,ea_satir2,255,txtlen2)
		parse(ea_satir2,pdeneme,63)
		if(equali(pxx,pdeneme)){
			cevap[satir] = true
			formatex(topla,charsmax(topla),"\r| CEVAPLANDI | \d%s -> %s",psikayetci,psikayetedilen)
			num_to_str(satir,satir2,9)
			menu_additem(Menu,topla,"1")
		}
		else if(!cevap[satir]){
			formatex(topla,charsmax(topla),"%s -> %s",psikayetci,psikayetedilen)
			num_to_str(satir,satir2,9)
			menu_additem(Menu,topla,"1")
		}

		//if(!equal(pharita,"") && !equal(psikayetedilen,"")){
		//}
	}
	if(!topla[0]){
		ChatColor(id, "!teamOyuncu sikayeti bulunmamaktadir.")
		set_task(0.1,"smenu",id)
	}
	
	menu_setprop(Menu,MPROP_NEXTNAME,"\wIleri")
	menu_setprop(Menu,MPROP_BACKNAME,"\wGeri")
	menu_setprop(Menu,MPROP_EXITNAME,"\wCikis")
	menu_display(id, Menu,0)
}

public sikayetgoro_d(id,menu,item) {

	if(item == MENU_EXIT) {
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new veri[6],isim[32];
	new access,callback;
	new readdata[256],txtlen
	new parsedtarih[64],parsedsikayetci[64],parsedsikayete[64],psikayet[63],pauthid[64],pip[64],sil[6],pxx[32]
	menu_item_getinfo(menu,item,access,veri,charsmax(veri),isim,charsmax(isim),callback)
	formatex(sil,5,"%s",item)

	read_file(osikayetler,item+2,readdata,255,txtlen)
	parse(readdata,pxx,31,parsedtarih,63,parsedsikayetci,63,parsedsikayete,63,psikayet,63,pauthid,63,pip,63)
	copy(ea_random[id],63,pxx)
	copy(ea_sikayetci[id],63,parsedsikayetci)
	copy(ea_sikayetedilen[id],63,parsedsikayete)
	copy(sikayetim[id],63,psikayet)
	new readdata2[256],txtlen2
	new topla[512],m1[128],m2[256],m3[128],m4[128],m5[128]
	read_file(sgoster,0,readdata2,255,txtlen2)
	parse(readdata2,m1,charsmax(m1),m2,charsmax(m2),m3,charsmax(m3),m4,charsmax(m4),m5,charsmax(m5))
	new what[] = {"XabcX"}
	replace(m2,128,what,parsedtarih)
	replace(m3,128,what,parsedsikayetci)
	replace(m4,128,what,parsedsikayete)
	replace(m5,128,what,psikayet)
	formatex(topla,charsmax(topla),"%s%s%s%s%s",m1,m2,m3,m4,m5)
	show_motd(id,topla,"Sikayet Incele");
	sikayetgoro_d2(id,parsedsikayetci,pauthid,pip)
	return PLUGIN_HANDLED
}

public sikayetgoro_d2(id,sikayetci[],pauthid[],pip[]){

	copy(s_banip[id],63,pip)
	copy(s_banid[id],63,pauthid)
	static Item[256]

	formatex(Item, charsmax(Item),"\w[ \r%s - Oyuncu sikayetleri \w]^n\dSikayetci: \r%s^n\dIP Adresi: \r%s^n\dAuthID: \r%s",TAG,sikayetci,pip,pauthid)
	new Menu = menu_create(Item, "sikayetgoro_d3")

	formatex(Item, charsmax(Item),"Sikayeti Cevapla")
	menu_additem(Menu, Item, "1")

	formatex(Item, charsmax(Item),"Sikayet banla | \dOyuncu tekrar sikayet edemez.")
	menu_additem(Menu, Item, "2")

	formatex(Item, charsmax(Item), "\wCikis")
	menu_setprop(Menu,MPROP_EXITNAME,Item)
	menu_display(id, Menu,0)

}

public sikayetgoro_d3(id, menu, item) {
	if( item == MENU_EXIT )
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data);

	switch(key)
	{
		case 1:{
			ocy[id] = true
			client_cmd(id,"messagemode SikayetO-Cevabi")
		}
		case 2:{
			ChatColor(id,"!teamOyuncunun sikayet yapmasi yasaklandi.")
			new writedata[128]
			formatex(writedata,127,"^"%s^" ^"%s^"",s_banip[id],s_banid[id])
			write_file(sikayetban,writedata)
		}
	}
	return PLUGIN_HANDLED
}

public ocevap(id){
	if(!ocy[id]){
		client_cmd(id,"echo Sikayet cevabi basarisiz.")
		return PLUGIN_HANDLED
	}

	new mesaj[100];
	read_args(mesaj,99)
	remove_quotes(mesaj)

	if(!mesaj[0]) {
		ChatColor(id,"!teamSikayet cevabi bos birakilamaz.")
		client_cmd(id,"messagemode SikayetO-Cevap")
		return PLUGIN_HANDLED
	}
	new Adminisim[33]
	get_user_name(id,Adminisim,charsmax(Adminisim))
	ChatColor(id,"!teamSikayetini basari ile cevapladiniz.. !g'%s'",mesaj)
	new writedata[256]
	ocy[id] = false
	formatex(writedata,255,"^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"",ea_random[id],ea_sikayetci[id],ea_sikayetedilen[id],sikayetim[id],mesaj,Adminisim)
	write_file(ocevaplar,writedata)
	return PLUGIN_HANDLED
}

public sikayetgora(id){
	static Item[128]

	formatex(Item, charsmax(Item),"\w[ \r%s - Admin sikayetleri \w]",TAG)
	new Menu = menu_create(Item, "sikayetgora_d")
	
	new ea_satir[248],pharita[32],psikayetci[32],psikayetedilen[32],pxx[9]
	new maxsatir,txtlen,satir2[10];
	new topla[100]
	maxsatir = file_size(asikayetler,1);

	new ea_satir2[256],pdeneme[64],cevap[64] = false
	new txtlen2
	for(new satir=2;satir<maxsatir-1;satir++) {	
		read_file(asikayetler,satir,ea_satir,255,txtlen)
		parse(ea_satir,pxx,charsmax(pxx),pharita,charsmax(pharita),psikayetci,charsmax(psikayetci),psikayetedilen,charsmax(psikayetedilen))

		read_file(acevaplar,satir,ea_satir2,255,txtlen2)
		parse(ea_satir2,pdeneme,63)
		if(equali(pxx,pdeneme)){
			cevap[satir] = true
			formatex(topla,charsmax(topla),"\r| CEVAPLANDI | \d%s -> %s",psikayetci,psikayetedilen)
			num_to_str(satir,satir2,9)
			menu_additem(Menu,topla,"1")
		}
		else if(!cevap[satir]){
			formatex(topla,charsmax(topla),"%s -> %s",psikayetci,psikayetedilen)
			num_to_str(satir,satir2,9)
			menu_additem(Menu,topla,"1")
		}
	}

	if(!topla[0]){
		ChatColor(id, "!teamAdmin sikayeti bulunmamaktadir.")
		set_task(0.1,"smenu",id)
	}
	
	menu_setprop(Menu,MPROP_NEXTNAME,"\wIleri")
	menu_setprop(Menu,MPROP_BACKNAME,"\wGeri")
	menu_setprop(Menu,MPROP_EXITNAME,"\wCikis")
	menu_display(id, Menu,0)
}

public sikayetgora_d(id,menu,item) {
	if(item == MENU_EXIT) {
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new veri[6],isim[32];
	new access,callback;
	new readdata[256],txtlen
	new parsedtarih[64],parsedsikayetci[64],parsedsikayete[64],psikayet[63],pauthid[64],pip[64],pxx[9]
	menu_item_getinfo(menu,item,access,veri,charsmax(veri),isim,charsmax(isim),callback)

	read_file(asikayetler,item+2,readdata,255,txtlen)
	parse(readdata,pxx,8,parsedtarih,63,parsedsikayetci,63,parsedsikayete,63,psikayet,63,pauthid,63,pip,63)
	copy(ea_random[id],63,pxx)
	copy(ea_sikayetci[id],63,parsedsikayetci)
	copy(ea_sikayetedilen[id],63,parsedsikayete)
	copy(sikayetim[id],63,psikayet)

	new readdata2[256],txtlen2
	new topla[512],m1[128],m2[256],m3[128],m4[128],m5[128]
	read_file(sgoster,0,readdata2,255,txtlen2)
	parse(readdata2,m1,charsmax(m1),m2,charsmax(m2),m3,charsmax(m3),m4,charsmax(m4),m5,charsmax(m5))
	new what[] = {"XabcX"}
	replace(m2,128,what,parsedtarih)
	replace(m3,128,what,parsedsikayetci)
	replace(m4,128,what,parsedsikayete)
	replace(m5,128,what,psikayet)
	formatex(topla,charsmax(topla),"%s%s%s%s%s",m1,m2,m3,m4,m5)
	show_motd(id,topla,"Sikayet Incele");
	sikayetgora_d2(id,parsedsikayetci,pauthid,pip)
	return PLUGIN_HANDLED
}

public sikayetgora_d2(id,sikayetci[],pauthid[],pip[]){
	copy(s_banip[id],63,pip)
	copy(s_banid[id],63,pauthid)
	static Item[256]

	formatex(Item, charsmax(Item),"\w[ \r%s - Admin sikayetleri \w]^n\dSikayetci: \r%s^n\dIP Adresi: \r%s^n\dAuthID: \r%s",TAG,sikayetci,pip,pauthid)
	new Menu = menu_create(Item, "sikayetgora_d3")

	formatex(Item, charsmax(Item),"Sikayeti Cevapla")
	menu_additem(Menu, Item, "1")

	formatex(Item, charsmax(Item),"Sikayet banla | \dOyuncu tekrar sikayet edemez.")
	menu_additem(Menu, Item, "2")

	formatex(Item, charsmax(Item), "\wCikis")
	menu_setprop(Menu,MPROP_EXITNAME,Item)
	menu_display(id, Menu,0)

}

public sikayetgora_d3(id, menu, item) {
	if( item == MENU_EXIT )
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data);

	switch(key)
	{
		case 1:{
			acy[id] = true
			client_cmd(id,"messagemode SikayetA-Cevabi")
		}
		case 2:{
			ChatColor(id,"!teamOyuncunun sikayet yapmasi yasaklandi.")
			new writedata[128]
			formatex(writedata,127,"^"%s^" ^"%s^"",s_banip[id],s_banid[id])
			write_file(sikayetban,writedata)
		}
	}
	return PLUGIN_HANDLED
}

public acevap(id){
	if(!acy[id]){
		client_cmd(id,"echo Sikayet cevabi basarisiz.")
		return PLUGIN_HANDLED
	}

	new mesaj[100];
	read_args(mesaj,99)
	remove_quotes(mesaj)

	if(!mesaj[0]) {
		ChatColor(id,"!teamSikayet cevabi bos birakilamaz.")
		client_cmd(id,"messagemode SikayetA-Cevabi")
		return PLUGIN_HANDLED
	}
	new Adminisim[33]
	get_user_name(id,Adminisim,charsmax(Adminisim))
	ChatColor(id,"!teamSikayetini basari ile cevapladiniz.. !g'%s'",mesaj)
	new writedata[256]
	acy[id] = false
	formatex(writedata,255,"^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"",ea_random[id],ea_sikayetci[id],ea_sikayetedilen[id],sikayetim[id],mesaj,Adminisim)
	write_file(acevaplar,writedata)
	return PLUGIN_HANDLED
}

public adminisim(id){
	
	static Item[128]

	formatex(Item, charsmax(Item),"\w[ \r%s - Adminler \w]^n\dKimi sikayet etmek istiyorsun?",TAG)
	new Menu = menu_create(Item, "adminisim_d")
	
	new ea_satir[248],padmin[32]
	new maxsatir,txtlen,satir2[10];
	maxsatir = file_size(adminler,1);
	
	for(new satir;satir<maxsatir;satir++) {
		ea_satir[0] = 0;
		padmin[0] = 0;
		read_file(adminler,satir,ea_satir,247,txtlen)
		
		parse(ea_satir,padmin,31)
		if(!equal(padmin,"")){
			num_to_str(satir,satir2,9)
			menu_additem(Menu,padmin,"1")
		}
	}
	if(!padmin[0]){
		ChatColor(id,"!teamKayitli admin bulunmamaktadir.")
		smenu(id)
	}
	
	menu_setprop(Menu,MPROP_NEXTNAME,"\wIleri")
	menu_setprop(Menu,MPROP_BACKNAME,"\wGeri")
	menu_setprop(Menu,MPROP_EXITNAME,"\wCikis")
	menu_display(id, Menu,0)
}

public adminisim_d(id,menu,item) {
	if(item == MENU_EXIT) {
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new veri[6],isim[32];
	new access,callback;
	menu_item_getinfo(menu,item,access,veri,charsmax(veri),isim,charsmax(isim),callback)

	new sikayetci[33],authid[32],ipadd[32]
	get_user_name(id,sikayetci,charsmax(sikayetci))
	get_user_authid(id,authid,charsmax(authid))
	get_user_ip(id,ipadd,charsmax(ipadd),1)
	copy(ea_authid[id],63,authid)
	copy(ea_ip[id],63,ipadd)
	copy(ea_sikayetci[id],63,sikayetci)
	copy(ea_sikayetedilen[id],63,isim)

	adminisim_d2(id)

	return PLUGIN_HANDLED
}

public adminisim_d2(id) {

	static Item[256]

	formatex(Item, charsmax(Item),"\w[ \r%s - Sikayetiniz \w]^n\dSikayetci | \r%s^n\dSikayet Edilen | \r%s",TAG,ea_sikayetci[id],ea_sikayetedilen[id])
	new Menu = menu_create(Item, "adminisim_d3")

	formatex(Item, charsmax(Item),"\wHile")
	menu_additem(Menu, Item, "1")

	formatex(Item, charsmax(Item),"\wHakaret/Argo/Kufur")
	menu_additem(Menu, Item, "2")

	formatex(Item, charsmax(Item),"\wGereksiz Yetki Kullanimi")
	menu_additem(Menu, Item, "3")

	formatex(Item, charsmax(Item),"\wDiger")
	menu_additem(Menu, Item, "4")

	formatex(Item, charsmax(Item), "\wCikis")
	menu_setprop(Menu,MPROP_EXITNAME,Item)
	menu_display(id, Menu,0)

}

public adminisim_d3(id, menu, item) {
	if( item == MENU_EXIT )
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data);

	switch(key)
	{
		case 1:{
			copy(sikayetim[id],99,"Hile")
			adminbildiri()
			sikayetilet2(id)
		}
		case 2:{
			copy(sikayetim[id],99,"Hakaret/Argo/Kufur")
			adminbildiri()
			sikayetilet2(id)
		}
		case 3:{
			copy(sikayetim[id],99,"Gereksiz Yetki Kullanimi")
			adminbildiri()
			sikayetilet2(id)
		}
		case 4:{
			asy[id] = true
			client_cmd(id,"messagemode Admin-Sikayetiniz")
			ChatColor(id,"!teamSikayetinizi yaziniz.")
		}
	}
	return PLUGIN_HANDLED
}

public sikayetyaz(id){
	if(!asy[id]){
		client_cmd(id,"echo Sikayet basarisiz.")
		return PLUGIN_HANDLED
	}
	new mesaj[100];
	read_args(mesaj,99)
	remove_quotes(mesaj)

	if(!mesaj[0]) {
		ChatColor(id,"!teamSikayet bos birakilamaz.")
		client_cmd(id,"messagemode Admin-Sikayetiniz")
		return PLUGIN_HANDLED
	}
	ChatColor(id,"!teamSikayetiniz basari ile alindi. !g'%s'",mesaj)
	++s_sikayetsayisi[id]
	copy(sikayetim[id],99,mesaj)
	new tarih[10],saat[10],harita[32],random
	get_mapname(harita,charsmax(harita))
	get_time("%x", tarih, charsmax(tarih))
	get_time("%X", saat, charsmax(saat))
	random = random_num(0,999)
	asy[id] = false
	adminbildiri()
	new writedata[256]
	formatex(writedata,255,"^"%d^" ^"%s - %s - %s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"",random,tarih,saat,harita,ea_sikayetci[id],ea_sikayetedilen[id],sikayetim[id],ea_authid[id],ea_ip[id])
	write_file(asikayetler,writedata)

	return PLUGIN_HANDLED
}

public sikayetilet2(id){
	new writedata[256]
	new tarih[10],saat[10],harita[32],random
	get_mapname(harita,charsmax(harita))
	get_time("%x", tarih, charsmax(tarih))
	get_time("%X", saat, charsmax(saat))
	random = random_num(0,999)
	formatex(writedata,255,"^"%d^" ^"%s - %s - %s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"",random,tarih,saat,harita,ea_sikayetci[id],ea_sikayetedilen[id],sikayetim[id],ea_authid[id],ea_ip[id])
	write_file(asikayetler,writedata)
	ChatColor(id,"!teamSikayetiniz basari ile iletildi.")
	++s_sikayetsayisi[id]
}

public oyuncuisim(id) {

	static Item[256]

	formatex(Item, charsmax(Item),"\w[ \r%s - Oyuncular \w]^n\dKimi sikayet etmek istiyorsun?",TAG)
	new menu = menu_create(Item, "oyuncuisim_d")	
	new oyuncular[32],numara,Oyuncuid;
	new isim[32], oyuncuid2[10];
	get_players(oyuncular,numara,"c")
	for(new i;i<numara;i++){
		Oyuncuid = oyuncular[i] 
		if(!is_user_admin(Oyuncuid)) {    
			get_user_name(Oyuncuid,isim,31)
			num_to_str(Oyuncuid,oyuncuid2,9)
			menu_additem(menu,isim,oyuncuid2,0)
		}
	}
	
	menu_setprop(menu,MPROP_NEXTNAME,"\wIleri")
	menu_setprop(menu,MPROP_BACKNAME,"\wGeri")
	menu_setprop(menu,MPROP_EXITNAME,"\wCikis")
	menu_display(id, menu,0)
	return PLUGIN_CONTINUE

}

public oyuncuisim_d(id, menu, item) {
	if(item== MENU_EXIT){
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new veri[6],isim[32];
	new access,callback;
	menu_item_getinfo(menu,item,access,veri,charsmax(veri),isim,charsmax(isim),callback)

	new sikayetci[33],authid[32],ipadd[32]
	get_user_name(id,sikayetci,charsmax(sikayetci))
	get_user_authid(id,authid,charsmax(authid))
	get_user_ip(id,ipadd,charsmax(ipadd),1)
	copy(ea_authid[id],63,authid)
	copy(ea_ip[id],63,ipadd)
	copy(ea_sikayetci[id],63,sikayetci)
	copy(ea_sikayetedilen[id],63,isim)

	oyuncuisim_d2(id)

	return PLUGIN_CONTINUE
}

public oyuncuisim_d2(id) {

	static Item[256]

	formatex(Item, charsmax(Item),"\w[ \r%s - Sikayetiniz \w]^n\dSikayetci | \r%s^n\dSikayet Edilen | \r%s",TAG,ea_sikayetci[id],ea_sikayetedilen[id])
	new Menu = menu_create(Item, "oyuncuisim_d3")

	formatex(Item, charsmax(Item),"\wHile")
	menu_additem(Menu, Item, "1")

	formatex(Item, charsmax(Item),"\wHakaret/Argo/Kufur")
	menu_additem(Menu, Item, "2")

	//formatex(Item, charsmax(Item),"\wGereksiz Yetki Kullanimi")
	//menu_additem(Menu, Item, "3")

	formatex(Item, charsmax(Item),"\wDiger")
	menu_additem(Menu, Item, "4")

	formatex(Item, charsmax(Item), "\wCikis")
	menu_setprop(Menu,MPROP_EXITNAME,Item)
	menu_display(id, Menu,0)

}

public oyuncuisim_d3(id, menu, item) {
	if( item == MENU_EXIT )
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data);

	switch(key)
	{
		case 1:{
			copy(sikayetim[id],99,"Hile")
			adminbildiri()
			sikayetilet1(id)
		}
		case 2:{
			copy(sikayetim[id],99,"Hakaret/Argo/Kufur")
			adminbildiri()
			sikayetilet1(id)
		}
		case 3:{
			copy(sikayetim[id],99,"Gereksiz Yetki Kullanimi")
			adminbildiri()
			sikayetilet1(id)
		}
		case 4:{
			osy[id] = true
			client_cmd(id,"messagemode Oyuncu-Sikayetiniz")
			ChatColor(id,"!teamSikayetinizi yaziniz.")
		}
	}
	return PLUGIN_HANDLED
}
public sikayetyaz2(id){
	if(!osy[id]){
		client_cmd(id,"echo Sikayet basarisiz.")
		return PLUGIN_HANDLED
	}
	new mesaj[100];
	read_args(mesaj,99)
	remove_quotes(mesaj)

	if(!mesaj[0]) {
		ChatColor(id,"!teamSikayet bos birakilamaz.")
		client_cmd(id,"messagemode Oyuncu-Sikayetiniz")
		return PLUGIN_HANDLED
	}
	ChatColor(id,"!teamSikayetiniz basari ile alindi. !g'%s'",mesaj)
	++s_sikayetsayisi[id]
	copy(sikayetim[id],99,mesaj)
	new tarih[10],saat[10],harita[32],random
	get_mapname(harita,charsmax(harita))
	get_time("%x", tarih, charsmax(tarih))
	get_time("%X", saat, charsmax(saat))
	random = random_num(0,999)
	osy[id] = false
	adminbildiri()
	new writedata[256]
	formatex(writedata,255,"^"%d^" ^"%s - %s - %s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"",random,tarih,saat,harita,ea_sikayetci[id],ea_sikayetedilen[id],sikayetim[id],ea_authid[id],ea_ip[id])
	write_file(osikayetler,writedata)

	return PLUGIN_HANDLED
}
public sikayetilet1(id){
	new writedata[256]
	new tarih[10],saat[10],harita[32],random
	get_mapname(harita,charsmax(harita))
	get_time("%x", tarih, charsmax(tarih))
	get_time("%X", saat, charsmax(saat))
	random = random_num(0,999)
	formatex(writedata,255,"^"%d^" ^"%s - %s - %s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^" ^"%s^"",random,tarih,saat,harita,ea_sikayetci[id],ea_sikayetedilen[id],sikayetim[id],ea_authid[id],ea_ip[id])
	write_file(osikayetler,writedata)
	ChatColor(id,"!teamSikayetiniz basari ile iletildi.")
	++s_sikayetsayisi[id]
}

public client_putinserver(id){
	if(get_user_flags(id) & ADMINYETKI){
		new readdata[128],authid[32],txtlen
		new padminauth[32],padmin[32],adminnick[32]
		new fsize = file_size(adminler,1)
		for (new line=0;line<=fsize;line++)
		{
			read_file(adminler,line,readdata,127,txtlen)
			parse(readdata,padmin,31,padminauth,31)
			
			get_user_name(id,adminnick,31)
			get_user_authid(id,authid,31)
			if(equal(authid,padminauth) || equal(padmin,adminnick))
			{
				find[id] = true
			}
		}
		if(!find[id]){
			new admin[33], adminauth[33],writedata[128]
			get_user_name(id,admin,charsmax(admin))
			get_user_authid(id, adminauth, charsmax(adminauth))
			formatex(writedata,127,"^"%s^" ^"%s^"",admin,adminauth)
			write_file(adminler,writedata)
		}
	}
}

public adminbildiri(){
	new players[32],inum,id
	get_players(players,inum)
	for (new i = 0;i<inum;++i){
		id = players[i]
		if(get_user_flags(id) & SIKAYETADMIN)
			ChatColor(id,"!team1 yeni sikayet bildirildi, kontrol ediniz.")
		else if (get_user_flags(id) & SIKAYETYONETIM)
			ChatColor(id,"!team1 yeni sikayet bildirildi, kontrol ediniz.")
	}
}

stock ChatColor(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[191]
	vformat(msg, 190, input, 3)
	format(msg, sizeof(msg), "^1[ ^4%s ^1] %s", TAG, msg)
	replace_all(msg, 190, "!g", "^4")
	replace_all(msg, 190, "!y", "^1")
	replace_all(msg, 190, "!team", "^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();
			}
		}
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
pluginde bu

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

YeKTaBEYy
Mesajlar: 1877
Kayıt: Prş Şub 09, 2017 3:47 am
Konum: Makedonya/Skopje
Clan İsmi: IMPERIAL GAMING
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen YeKTaBEYy »

eklentiyi at yardımcı olalım

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

Konu Sahibi
loneylwolfrd
Mesajlar: 46
Kayıt: Cmt Kas 25, 2017 3:14 pm
Server Ip/DNS: cs242.csduragi.com
Clan İsmi: Ready2Die ~
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen loneylwolfrd »

YeKTaBEYy yazdı:eklentiyi at yardımcı olalım
attım bi önceki yorumda

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

Taha Demirbaş
Mesajlar: 10428
Kayıt: Cum Tem 08, 2016 10:05 pm
Konum: Türkiye
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen Taha Demirbaş »

Not defteri ilemi açtın. 1. Satirda kucuk bir tanimlanmayan isaret var onun kalkmasi lazm

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

Konu Sahibi
loneylwolfrd
Mesajlar: 46
Kayıt: Cmt Kas 25, 2017 3:14 pm
Server Ip/DNS: cs242.csduragi.com
Clan İsmi: Ready2Die ~
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen loneylwolfrd »

Taha Demirbaş yazdı:Not defteri ilemi açtın. 1. Satirda kucuk bir tanimlanmayan isaret var onun kalkmasi lazm
AYNEN NOT DEFTERİYLE ACTIM . Birinci satırdaki tanımlanamayan şey nedir söylerseniz sileyimde bi deneyim yüklenecekmi

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

delyy
Mesajlar: 1233
Kayıt: Cmt Tem 09, 2016 10:21 am
Konum: Türkiye ~ İstanbul ~ Sinop
Server Ip/DNS: 213.238.173.xx
Clan İsmi: тαĸıηтı`
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen delyy »

Denermisiniz Direk Yükleyebilirsiniz Reklamınız Yapıldı RCON "L" Yetkisine yonetim için ayarlandı
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

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

Konu Sahibi
loneylwolfrd
Mesajlar: 46
Kayıt: Cmt Kas 25, 2017 3:14 pm
Server Ip/DNS: cs242.csduragi.com
Clan İsmi: Ready2Die ~
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen loneylwolfrd »

delyy yazdı:Denermisiniz Direk Yükleyebilirsiniz Reklamınız Yapıldı RCON "L" Yetkisine yonetim için ayarlandı
Eyvallah Oldu Ellerine Sağlık

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

delyy
Mesajlar: 1233
Kayıt: Cmt Tem 09, 2016 10:21 am
Konum: Türkiye ~ İstanbul ~ Sinop
Server Ip/DNS: 213.238.173.xx
Clan İsmi: тαĸıηтı`
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen delyy »

önemli deil iyi günler hocam

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

Fatih ~ EjderYa
Mesajlar: 2896
Kayıt: Prş Mar 16, 2017 5:05 pm
Konum: İstanbul
İletişim:

yetki sıkıntısı ozel plugin

Mesaj gönderen Fatih ~ EjderYa »

Başka isimde yükle

Link:
Linklerini gizle
Linki Kopyala
Cevapla