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

https://discord.gg/43gGDQe6tS

Özel Admin Menü

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

Özel Admin Menü

Mesaj gönderen FearLess »

Merhabalar ben admin menü istiyorum ama forumdaki gibi değil.
Mesela Menüde 1. Sırada Ban Menu var
Ben Bu Ban Menuye otomatik Konsola amx_banmenu ile girmesini istiyorum.
Aynı şekilde slapmenu için de Konsola amx_slapmenu Yazdırsın.
Kick Menu İçin ise konsola amx_kickmenu
Çıkan Oyunucları Görüntülemek İçin İse konsola amx_last (bu yere girdiği zaman sadece giren admine lütfen konsola bakın yazsın.)
Ayrıca Bir Admin Giriş Yaptığında Menüye "Nick isimli admin Özel Admin Menüye Girdi." Yazsın.
Özel Ban Atması İçin Ban Menü (Menü İçinden Süre ve Sebep Soracak- Konsoldan Plugin amx_ban nick 0 süre yazdırsın loglardan o adminin attığı ban belli olsun.)
Özel Kick Atması İçin Kick Menü (Menü İçinden Sebep Soracak - amx_kick nick sebep yazdırsın loglardan o adminin attığı kick belli olsun.)
UzaBanMenu için konsola amx_uzabanmenu yazdırsın

Plugin için örnek vereyim mesela ts3 yazdır plugini kolayca yazdırıyor kolayca düzenleniyor.

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

Özcan Örs
Mesajlar: 2204
Kayıt: Prş May 31, 2018 3:32 pm
Konum: Türkiye
Server Ip/DNS: cs3.csduragi.net
Clan İsmi: TIMGaming
İletişim:

Özel Admin Menü

Mesaj gönderen Özcan Örs »

eklentiler-pluginler/kisayol-menu-t16142.html

Bu eklenti üzerinden istediğin gibi ayarlayabilirsin kanka

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

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

Özel Admin Menü

Mesaj gönderen bestcore »

Sanırım istediği o değil. İstediğiniz şey admin menüde örnek veriyorum ban menu var, bu ban menuye girince karşısına seçenekler çıkacak 1. Banlayacağın oyuncuyu seç 2.Süre belirle 3. Sebep gir, bu 3'ünü doldurduktan sonra oyuncuyu banlaya basınca otomatik "x kişisine x süre ve x nedenle" ban atacak ve bunu panelde loglayacak. İstediğiniz böyle birşey mi ?

Link:
Linklerini gizle
Linki Kopyala

tosunbey
Mesajlar: 404
Kayıt: Sal Şub 28, 2017 2:55 pm

Özel Admin Menü

Mesaj gönderen tosunbey »

@bestcore ustam dediğin şekil güzel bi menüye benziyor atabilirmisin

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

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

Özel Admin Menü

Mesaj gönderen FearLess »

bestcore yazdı: Prş May 13, 2021 9:44 pm Sanırım istediği o değil. İstediğiniz şey admin menüde örnek veriyorum ban menu var, bu ban menuye girince karşısına seçenekler çıkacak 1. Banlayacağın oyuncuyu seç 2.Süre belirle 3. Sebep gir, bu 3'ünü doldurduktan sonra oyuncuyu banlaya basınca otomatik "x kişisine x süre ve x nedenle" ban atacak ve bunu panelde loglayacak. İstediğiniz böyle birşey mi ?
Hocam yakın söylediniz ama hatalar var mesela adam banlıyor ya adamın konsolundan amx_ban nick 0 süre yazdırıcak. Yani kullanan adminin üstünden banlıyacak.
Pluginin ayriyetten log tutmasına gerek kalmayacak. Admin Kayıtları amx_ban nick 0 süre diye gözükecek zaten.

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

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

Özel Admin Menü

Mesaj gönderen bestcore »

FearLess yazdı: Cum May 14, 2021 9:29 pm Hocam yakın söylediniz ama hatalar var mesela adam banlıyor ya adamın konsolundan amx_ban nick 0 süre yazdırıcak. Yani kullanan adminin üstünden banlıyacak.
Pluginin ayriyetten log tutmasına gerek kalmayacak. Admin Kayıtları amx_ban nick 0 süre diye gözükecek zaten.
Onu yaparım sıkıntı yok. Müsait zamanımda ilgileneceğim.

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

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

Özel Admin Menü

Mesaj gönderen bestcore »

FearLess yazdı: Cum May 14, 2021 9:29 pm Hocam yakın söylediniz ama hatalar var mesela adam banlıyor ya adamın konsolundan amx_ban nick 0 süre yazdırıcak. Yani kullanan adminin üstünden banlıyacak.
Pluginin ayriyetten log tutmasına gerek kalmayacak. Admin Kayıtları amx_ban nick 0 süre diye gözükecek zaten.
Sizin eklentinizi yapmaya fırsat bulamadım, şimdi yapabildim. Eklenti içerisinde Satır 7'den menü özelliklerini ayarlayabilirsiniz, kısaca şöyle özetliyeyim; 1. yere Menü isminizi yazıcaksınız (Ban, Kick Menu) gibi, 2. yere bu menüde kullanılacak kodları yazacaksınız (Ban menude amx_ban, Kick menude amx_kick gibi), 3. yere eğer menüde oyuncuyu banlarken bir sebep girilmesini istiyorsanız 1 istemiyorsanız 0 yazın, bunu yapmamın amacı örnek veriyorum amx_ban komutunu kullanırken sebep giriyoruz ama amx_kick komutunu kullanırken sebep belirtmiyoruz. Son olarak 4. yere aynı 3. yerdeki mantık gibi Süre girilecekse 1 girilmeyecekse 0 yazın, bunuda yapmamın amacı oyuncuyu banlarken süre belirtiyoruz ama kicklerken süre belirtmiyoruz. Mantığı anlamadıysan veya eklenti istediğin gibi değilse geri dönüş yapabilirsin.

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>

#define ADMIN_SPECIALMENU    ADMIN_BAN

new const g_szMenus[][][] =
{
	// Menudeki Başlık,   Konsola işlenecek kod,   Sebep belirtilecek mi ?  , Süre Belirlenecek mi ?
	{"Ban Menu", "amx_ban", 1, 1},
	{"Kick Menu", "amx_kick", 0, 0},
	{"Slap Menu", "amx_slap", 0, 0}
};

enum _:intEnum
{
	iPickPlayer,
	iMenuTime,
	iMenuReasonType,
	iMenuTimeType
};
new g_int[intEnum][MAX_PLAYERS+1];

new g_szMenuTitle[MAX_PLAYERS+1][30],
	g_szMenuCode[MAX_PLAYERS+1][20],
	g_szMenuReason[MAX_PLAYERS+1][MAX_FMT_LENGTH];

new bool:g_blPickKey[MAX_PLAYERS+1];

public plugin_init()
{
	register_plugin("Admin ShortCut Menu", "0.1", "` BesTCore;");

	register_clcmd("say /adminmenu", "clcmd_adminmenu");

	register_clcmd("Belirle", "clcmd_determine");
}
public clcmd_adminmenu(const id)
{
	new bestm = menu_create("\rAdmin Menu", "clcmd_adminmenu_");

	for(new i = 0; i < sizeof(g_szMenus); i++)
	{
		menu_additem(bestm, fmt("%s", g_szMenus[i][0]), fmt("%i", i));
	}
	menu_display(id, bestm);
}
public clcmd_adminmenu_(const id, const menu, const item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6], key;
	menu_item_getinfo(menu, item, _, data, charsmax(data));
	key = str_to_num(data);
	
	copy(g_szMenuTitle[id], charsmax(g_szMenuTitle[]), g_szMenus[key][0]);
	copy(g_szMenuCode[id], charsmax(g_szMenuCode[]), g_szMenus[key][1][0]);
	g_int[iMenuReasonType][id] = g_szMenus[key][2][0];
	g_int[iMenuTimeType][id] = g_szMenus[key][3][0];
	ShowMenu(id);

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public ShowMenu(const id)
{
	new bestm = menu_create(fmt("\r%s", g_szMenuTitle[id]), "ShowMenu_");

	menu_additem(bestm, fmt("Oyuncu:\r %s", fmt(g_int[iPickPlayer][id] ? "%n":"Tikla Belirle", g_int[iPickPlayer][id])), "1");
	
	if(g_int[iMenuTimeType][id] == 1)
	{
		menu_additem(bestm, fmt("Sure:\r %s^n", fmt(g_int[iMenuTime][id] > 0 ? "%i":"Tikla Belirle", g_int[iMenuTime][id])), "2");
	}
	if(g_int[iMenuReasonType][id] == 1)
	{
		menu_additem(bestm, fmt("Sebep:\r %s^n", fmt(g_szMenuReason[id][0] == EOS ? "Tikla Yaz":"%s", g_szMenuReason[id])), "3");
	}
	menu_additem(bestm, "Uygula", "4");

	menu_display(id, bestm);
}
public ShowMenu_(const id, const menu, const item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6], key;
	menu_item_getinfo(menu, item, _, data, charsmax(data));
	key = str_to_num(data);
	switch(key)
	{
		case 1:
		{
			ChoosePlayer(id);
		}
		case 2:
		{
			client_cmd(id, "messagemode Belirle");
			g_blPickKey[id] = true;
		}
		case 3:
		{
			client_cmd(id, "messagemode Belirle");
			g_blPickKey[id] = false;
		}
		case 4:
		{
			if(!(g_int[iPickPlayer][id])){
				client_print_color(id, id, "^3Oyuncu secmeden islem yapamazsiniz.");
				return PLUGIN_HANDLED;
			}
			client_cmd(id, "%s %n%s%s", g_szMenuCode[id], g_int[iPickPlayer][id], fmt(g_int[iMenuTime][id] > 0 ? " %i":"", g_int[iMenuTime][id]), fmt(g_szMenuReason[id][0] == EOS ? "":" %s", g_szMenuReason[id]));
			sifirla(id);
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public clcmd_determine(const id)
{
	new szArg[32];
	read_args(szArg, charsmax(szArg));
	remove_quotes(szArg);

	switch(g_blPickKey[id])
	{
		case true:
		{
			new iTime = str_to_num(szArg);
			if(iTime > 0)
			{
				g_int[iMenuTime][id] = iTime;
			}
		}
		case false:
		{
			g_szMenuReason[id] = szArg;
		}
	}
	ShowMenu(id);
	return PLUGIN_HANDLED;
}
public ChoosePlayer(const id)
{
	new bestm = menu_create("\rOyuncu Sec", "ChoosePlayer_");

	for(new i = 1; i <= MaxClients; i++)
	{
		if(is_user_connected(i) && !(get_user_flags(id) & ADMIN_IMMUNITY))
		{
			menu_additem(bestm, fmt("%n", i), fmt("%i", i));
		}
	}
	menu_display(id, bestm);
}
public ChoosePlayer_(const id, const menu, const item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6], key;
	menu_item_getinfo(menu, item, _, data, charsmax(data));
	key = str_to_num(data);
	
	g_int[iPickPlayer][id] = key;
	ShowMenu(id);

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public client_disconnected(id)
{
	sifirla(id);
}
public sifirla(const id)
{
	g_int[iPickPlayer][id] = 0;
	g_int[iMenuTime][id] = 0;
	g_int[iMenuReasonType][id] = 0;
	g_int[iMenuTimeType][id] = 0;

	g_blPickKey[id] = false;

	g_szMenuTitle[id][0] = EOS;
	g_szMenuCode[id][0] = EOS;
	g_szMenuReason[id][0] = EOS;
}

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

Konu Sahibi
FearLess
Mesajlar: 727
Kayıt: Prş Nis 07, 2016 8:00 pm
Konum: Istanbul

Özel Admin Menü

Mesaj gönderen FearLess »

bestcore yazdı: Pzr May 16, 2021 3:23 pm
FearLess yazdı: Cum May 14, 2021 9:29 pm Hocam yakın söylediniz ama hatalar var mesela adam banlıyor ya adamın konsolundan amx_ban nick 0 süre yazdırıcak. Yani kullanan adminin üstünden banlıyacak.
Pluginin ayriyetten log tutmasına gerek kalmayacak. Admin Kayıtları amx_ban nick 0 süre diye gözükecek zaten.
Sizin eklentinizi yapmaya fırsat bulamadım, şimdi yapabildim. Eklenti içerisinde Satır 7'den menü özelliklerini ayarlayabilirsiniz, kısaca şöyle özetliyeyim; 1. yere Menü isminizi yazıcaksınız (Ban, Kick Menu) gibi, 2. yere bu menüde kullanılacak kodları yazacaksınız (Ban menude amx_ban, Kick menude amx_kick gibi), 3. yere eğer menüde oyuncuyu banlarken bir sebep girilmesini istiyorsanız 1 istemiyorsanız 0 yazın, bunu yapmamın amacı örnek veriyorum amx_ban komutunu kullanırken sebep giriyoruz ama amx_kick komutunu kullanırken sebep belirtmiyoruz. Son olarak 4. yere aynı 3. yerdeki mantık gibi Süre girilecekse 1 girilmeyecekse 0 yazın, bunuda yapmamın amacı oyuncuyu banlarken süre belirtiyoruz ama kicklerken süre belirtmiyoruz. Mantığı anlamadıysan veya eklenti istediğin gibi değilse geri dönüş yapabilirsin.

Kod: Tümünü seç

#pragma semicolon 1

#include <amxmodx>

#define ADMIN_SPECIALMENU    ADMIN_BAN

new const g_szMenus[][][] =
{
	// Menudeki Başlık,   Konsola işlenecek kod,   Sebep belirtilecek mi ?  , Süre Belirlenecek mi ?
	{"Ban Menu", "amx_ban", 1, 1},
	{"Kick Menu", "amx_kick", 0, 0},
	{"Slap Menu", "amx_slap", 0, 0}
};

enum _:intEnum
{
	iPickPlayer,
	iMenuTime,
	iMenuReasonType,
	iMenuTimeType
};
new g_int[intEnum][MAX_PLAYERS+1];

new g_szMenuTitle[MAX_PLAYERS+1][30],
	g_szMenuCode[MAX_PLAYERS+1][20],
	g_szMenuReason[MAX_PLAYERS+1][MAX_FMT_LENGTH];

new bool:g_blPickKey[MAX_PLAYERS+1];

public plugin_init()
{
	register_plugin("Admin ShortCut Menu", "0.1", "` BesTCore;");

	register_clcmd("say /adminmenu", "clcmd_adminmenu");

	register_clcmd("Belirle", "clcmd_determine");
}
public clcmd_adminmenu(const id)
{
	new bestm = menu_create("\rAdmin Menu", "clcmd_adminmenu_");

	for(new i = 0; i < sizeof(g_szMenus); i++)
	{
		menu_additem(bestm, fmt("%s", g_szMenus[i][0]), fmt("%i", i));
	}
	menu_display(id, bestm);
}
public clcmd_adminmenu_(const id, const menu, const item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6], key;
	menu_item_getinfo(menu, item, _, data, charsmax(data));
	key = str_to_num(data);
	
	copy(g_szMenuTitle[id], charsmax(g_szMenuTitle[]), g_szMenus[key][0]);
	copy(g_szMenuCode[id], charsmax(g_szMenuCode[]), g_szMenus[key][1][0]);
	g_int[iMenuReasonType][id] = g_szMenus[key][2][0];
	g_int[iMenuTimeType][id] = g_szMenus[key][3][0];
	ShowMenu(id);

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public ShowMenu(const id)
{
	new bestm = menu_create(fmt("\r%s", g_szMenuTitle[id]), "ShowMenu_");

	menu_additem(bestm, fmt("Oyuncu:\r %s", fmt(g_int[iPickPlayer][id] ? "%n":"Tikla Belirle", g_int[iPickPlayer][id])), "1");
	
	if(g_int[iMenuTimeType][id] == 1)
	{
		menu_additem(bestm, fmt("Sure:\r %s^n", fmt(g_int[iMenuTime][id] > 0 ? "%i":"Tikla Belirle", g_int[iMenuTime][id])), "2");
	}
	if(g_int[iMenuReasonType][id] == 1)
	{
		menu_additem(bestm, fmt("Sebep:\r %s^n", fmt(g_szMenuReason[id][0] == EOS ? "Tikla Yaz":"%s", g_szMenuReason[id])), "3");
	}
	menu_additem(bestm, "Uygula", "4");

	menu_display(id, bestm);
}
public ShowMenu_(const id, const menu, const item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6], key;
	menu_item_getinfo(menu, item, _, data, charsmax(data));
	key = str_to_num(data);
	switch(key)
	{
		case 1:
		{
			ChoosePlayer(id);
		}
		case 2:
		{
			client_cmd(id, "messagemode Belirle");
			g_blPickKey[id] = true;
		}
		case 3:
		{
			client_cmd(id, "messagemode Belirle");
			g_blPickKey[id] = false;
		}
		case 4:
		{
			if(!(g_int[iPickPlayer][id])){
				client_print_color(id, id, "^3Oyuncu secmeden islem yapamazsiniz.");
				return PLUGIN_HANDLED;
			}
			client_cmd(id, "%s %n%s%s", g_szMenuCode[id], g_int[iPickPlayer][id], fmt(g_int[iMenuTime][id] > 0 ? " %i":"", g_int[iMenuTime][id]), fmt(g_szMenuReason[id][0] == EOS ? "":" %s", g_szMenuReason[id]));
			sifirla(id);
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public clcmd_determine(const id)
{
	new szArg[32];
	read_args(szArg, charsmax(szArg));
	remove_quotes(szArg);

	switch(g_blPickKey[id])
	{
		case true:
		{
			new iTime = str_to_num(szArg);
			if(iTime > 0)
			{
				g_int[iMenuTime][id] = iTime;
			}
		}
		case false:
		{
			g_szMenuReason[id] = szArg;
		}
	}
	ShowMenu(id);
	return PLUGIN_HANDLED;
}
public ChoosePlayer(const id)
{
	new bestm = menu_create("\rOyuncu Sec", "ChoosePlayer_");

	for(new i = 1; i <= MaxClients; i++)
	{
		if(is_user_connected(i) && !(get_user_flags(id) & ADMIN_IMMUNITY))
		{
			menu_additem(bestm, fmt("%n", i), fmt("%i", i));
		}
	}
	menu_display(id, bestm);
}
public ChoosePlayer_(const id, const menu, const item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[6], key;
	menu_item_getinfo(menu, item, _, data, charsmax(data));
	key = str_to_num(data);
	
	g_int[iPickPlayer][id] = key;
	ShowMenu(id);

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
public client_disconnected(id)
{
	sifirla(id);
}
public sifirla(const id)
{
	g_int[iPickPlayer][id] = 0;
	g_int[iMenuTime][id] = 0;
	g_int[iMenuReasonType][id] = 0;
	g_int[iMenuTimeType][id] = 0;

	g_blPickKey[id] = false;

	g_szMenuTitle[id][0] = EOS;
	g_szMenuCode[id][0] = EOS;
	g_szMenuReason[id][0] = EOS;
}

Kod: Tümünü seç

	{"Ban Menu", "amx_ban", 1, 1},
	{"Kick Menu", "amx_kick", 0, 0},
	{"Slap Menu", "amx_slap", 0, 0}
	
Biz burayı istediğimiz gibi değişebiliriz dimi adı mesela amx_ban değil de amx_rbban gibi

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

bestcore
Mesajlar: 1625
Kayıt: Cmt Eyl 30, 2017 12:44 pm
Konum: Samsun

Özel Admin Menü

Mesaj gönderen bestcore »

FearLess yazdı: Pzr May 16, 2021 8:38 pm

Kod: Tümünü seç

	{"Ban Menu", "amx_ban", 1, 1},
	{"Kick Menu", "amx_kick", 0, 0},
	{"Slap Menu", "amx_slap", 0, 0}
	
Biz burayı istediğimiz gibi değişebiliriz dimi adı mesela amx_ban değil de amx_rbban gibi
Oraya ne yazarsanız oyuncunun konsolunda oyuncuya o işlem uygulanır, "amx_rbban" yazarsanız "amx_rbban isim süre"

Link:
Linklerini gizle
Linki Kopyala
Cevapla