1. sayfa (Toplam 2 sayfa)

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Sal Eki 13, 2020 7:05 pm
gönderen bestcore
Eklenti İsmi : [REAPI] BBMenu
Yapımcısı : BesTCore
Sürüm : v1.0
Açıklama : Basebuilder sunucularının vazgeçilmez parçası ve oyunu daha zevkli hale getiren bir menüdür.

- Eklenti yapımı sırasında "Omer Tas (Leeye)"'nin basebuilder menusunden yardım alınmıştır.
- Ozel Silah olarak Ethereal kullanılmıştır, yapımcısı "w0w"'dur.

Fotoğraflar ;
zbaOD4.jpg
Kendinize Göre Değiştireceğiniz Yerler ;

Kod: Tümünü seç

#define PANEL_YETKI ADMIN_RCON    // Satir 6 - Kurucu Paneline Girme Yetkisi.
Satir 8,9,10,11 - Kullanici Yetkileri.
Satir 16,17 - Sunucu Reklami ( Server İsminiz ve Kısa Tagınız. )
Eklenti Komutları ;

Kod: Tümünü seç

BBMenu Giriş Komutları //N Tuşu , /bbmenu , /shop
Mevcut TL'nizi Ekranda Bastırma // /benimtl , /tlm , /tl
Eklenti ;
ReApi_BBMenu.sma
Eklenti Araçları ;
Ethereal.rar

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 1:10 pm
gönderen Colditz
Onaylandı, denenmedi.

--------------------------------------------->

Bir sonraki güncellemede, bunları dikkate almanı tavsiye ederim.

bind_pcvar_num ve create_cvar kullanman register_cvar komutundan daha hızlı ve güvenilir çalışıyor.
Hem daha ayrıntılı hem daha kolay.

Kod: Tümünü seç

zamanim = register_cvar("kelimeoyunu_zamani","45");
->
bind_pcvar_num(create_cvar("kelimeoyunu_zamani", "45"), zamanim);
Birkaç değişkenden kurtulmak bazen iyi olabiliyor.

Kod: Tümünü seç

new data[6], name[32], access, callback;
menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), callback);
new key = str_to_num(data);
->
new data[6];
menu_item_getinfo(menu, item, _, data, charsmax(data));
new key = str_to_num(data);
Herhangi bir yazıda isim alacaksan %n kullanıp ekstra olarak oyuncunun ID'sini kullanman oyuncunun ismini verecektir.
Ekstradan get_user_name kullanmaya gerek yok.

Kod: Tümünü seç

new namecik[33];
get_user_name(id,namecik,32)
client_print_color(0,0,"^3%s ^1Adli Oyuncuda^3 %d TL ^1Var.",namecik[id],m_TL[id]);
->
client_print_color(0,0,"^3%n ^1Adli Oyuncuda^3 %d TL ^1Var.",id,m_TL[id]);
Birden fazla set_task varsa Task eklemen daha iyi olabilir.
Remove_task kullanırken direkt sadece tek task silersin.

Kod: Tümünü seç

set_task(60.0,"oldrmebasnhpbitis",id);
set_task(15.0,"ziplamabitis",id)
...
->
enum (+= 1000)
{
    TASK1 = 1000;
    TASK2
};

set_task(60.0,"oldrmebasnhpbitis",id + TASKI1);
set_task(15.0,"ziplamabitis",id + TASKI2);
...
Bazı arkadaşlardan get_players kodunun takım olayında hata verebildiğini öğrendim.
Bunu kullanabilirsin.

Kod: Tümünü seç

new players[32], inum;
static Uid;
get_players(players, inum, "ae", "CT");
for(new i; i<inum; i++)
{
	Uid = players[i];
	hayattakal[Uid]++;
}
->
for(new Uid = 1; Uid <= MaxClients; Uid++)
{
	if(is_user_alive(Uid) && get_member(Uid, m_iTeam) == TEAM_CT)
	{
		hayattakal[Uid]++;
	}
}
Aynı şekilde bu şekilde de yapabilirsin. Bu sadece tavsiye. Pek bir şey değişmeyecek ama
bu şekilde isim kontrol etmiyorsun ve iki değişken daha az oluyor.

Kod: Tümünü seç

public lister(const id)
{
	if(m_TL[id] > 0) {
		new menu = menu_create("\rYollayacagin Oyuncuyu Sec","lister_handler");
		
		new name[32], num[6];
		new players[32], menuz[64], inum;
		static Uid;
		get_players(players, inum);
		for(new i; i<inum; i++)
		{
			Uid = players[i];
			name[0] = '^0';
			menuz[0] = '^0';
			
			num_to_str(Uid, num, charsmax(num));
			get_user_name(Uid, name, charsmax(name));
			formatex(menuz,charsmax(menuz), "\w%s",name);
			menu_additem(menu,menuz,num);
		}
		menu_display(id,menu);
	}
	else client_print_color(id,id,"^4[%s] ^1Yetersiz TL.",SERVERISMI);
	return PLUGIN_HANDLED
}

->

public lister(const id)
{
	if(m_TL[id] > 0) {
		new menu = menu_create("\rYollayacagin Oyuncuyu Sec","lister_handler");

		new menuz[64], num[6];
		for(new Uid = 1; Uid <= MaxClients; Uid++)
		{
			if(is_user_connected(Uid))
			{
				num_to_str(Uid, num, charsmax(num));
				formatex(menuz, charsmax(menuz), "%n", Uid);
				menu_additem(menu, menuz, num);
			}
		}
		menu_display(id,menu);
	}
	else client_print_color(id,id,"^4[%s] ^1Yetersiz TL.",SERVERISMI);
	return PLUGIN_HANDLED
}

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 1:44 pm
gönderen LoseBasgan
Başarılı tebrikler :)

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 1:57 pm
gönderen bestcore
Colditz yazdı: Çrş Eki 14, 2020 1:10 pm Onaylandı, denenmedi.

--------------------------------------------->

Bir sonraki güncellemede, bunları dikkate almanı tavsiye ederim.

bind_pcvar_num ve create_cvar kullanman register_cvar komutundan daha hızlı ve güvenilir çalışıyor.
Hem daha ayrıntılı hem daha kolay.

Kod: Tümünü seç

zamanim = register_cvar("kelimeoyunu_zamani","45");
->
bind_pcvar_num(create_cvar("kelimeoyunu_zamani", "45"), zamanim);
Birkaç değişkenden kurtulmak bazen iyi olabiliyor.

Kod: Tümünü seç

new data[6], name[32], access, callback;
menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), callback);
new key = str_to_num(data);
->
new data[6];
menu_item_getinfo(menu, item, _, data, charsmax(data));
new key = str_to_num(data);
Herhangi bir yazıda isim alacaksan %n kullanıp ekstra olarak oyuncunun ID'sini kullanman oyuncunun ismini verecektir.
Ekstradan get_user_name kullanmaya gerek yok.

Kod: Tümünü seç

new namecik[33];
get_user_name(id,namecik,32)
client_print_color(0,0,"^3%s ^1Adli Oyuncuda^3 %d TL ^1Var.",namecik[id],m_TL[id]);
->
client_print_color(0,0,"^3%n ^1Adli Oyuncuda^3 %d TL ^1Var.",id,m_TL[id]);
Birden fazla set_task varsa Task eklemen daha iyi olabilir.
Remove_task kullanırken direkt sadece tek task silersin.

Kod: Tümünü seç

set_task(60.0,"oldrmebasnhpbitis",id);
set_task(15.0,"ziplamabitis",id)
...
->
enum (+= 1000)
{
    TASK1 = 1000;
    TASK2
};

set_task(60.0,"oldrmebasnhpbitis",id + TASKI1);
set_task(15.0,"ziplamabitis",id + TASKI2);
...
Bazı arkadaşlardan get_players kodunun takım olayında hata verebildiğini öğrendim.
Bunu kullanabilirsin.

Kod: Tümünü seç

new players[32], inum;
static Uid;
get_players(players, inum, "ae", "CT");
for(new i; i<inum; i++)
{
	Uid = players[i];
	hayattakal[Uid]++;
}
->
for(new Uid = 1; Uid <= MaxClients; Uid++)
{
	if(is_user_alive(Uid) && get_member(Uid, m_iTeam) == TEAM_CT)
	{
		hayattakal[Uid]++;
	}
}
Aynı şekilde bu şekilde de yapabilirsin. Bu sadece tavsiye. Pek bir şey değişmeyecek ama
bu şekilde isim kontrol etmiyorsun ve iki değişken daha az oluyor.

Kod: Tümünü seç

public lister(const id)
{
	if(m_TL[id] > 0) {
		new menu = menu_create("\rYollayacagin Oyuncuyu Sec","lister_handler");
		
		new name[32], num[6];
		new players[32], menuz[64], inum;
		static Uid;
		get_players(players, inum);
		for(new i; i<inum; i++)
		{
			Uid = players[i];
			name[0] = '^0';
			menuz[0] = '^0';
			
			num_to_str(Uid, num, charsmax(num));
			get_user_name(Uid, name, charsmax(name));
			formatex(menuz,charsmax(menuz), "\w%s",name);
			menu_additem(menu,menuz,num);
		}
		menu_display(id,menu);
	}
	else client_print_color(id,id,"^4[%s] ^1Yetersiz TL.",SERVERISMI);
	return PLUGIN_HANDLED
}

->

public lister(const id)
{
	if(m_TL[id] > 0) {
		new menu = menu_create("\rYollayacagin Oyuncuyu Sec","lister_handler");

		new menuz[64], num[6];
		for(new Uid = 1; Uid <= MaxClients; Uid++)
		{
			if(is_user_connected(Uid))
			{
				num_to_str(Uid, num, charsmax(num));
				formatex(menuz, charsmax(menuz), "%n", Uid);
				menu_additem(menu, menuz, num);
			}
		}
		menu_display(id,menu);
	}
	else client_print_color(id,id,"^4[%s] ^1Yetersiz TL.",SERVERISMI);
	return PLUGIN_HANDLED
}
Onay için ve önerileriniz için teşekkür ederim, bir dahakine bunlarıda dikkate alarak birşeyler yaparım.

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 5:21 pm
gönderen bestcore
LoseBasgan yazdı: Çrş Eki 14, 2020 1:44 pm Başarılı tebrikler :)
Teşekkür ederim.

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 5:43 pm
gönderen omertas14544
Başarılı.

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 6:15 pm
gönderen Aconyonn
Emeğine sağlık basit ve güzel bir menü olmuş. Bende ufak bir boş tanımlamayı düzelteyim.
Bu kısımda "get_param" değerleri zaten başlıkta tanımlanmış.

Kod: Tümünü seç

public native_bb_set_user_packs(id, ammount)
{
	new id = get_param(1);
	new ammount = get_param(2);
	m_TL[id] = ammount;
	return 1;
}
->

Kod: Tümünü seç

public native_bb_set_user_packs(id, ammount)
{
	m_TL[id] = ammount;
	return 1;
}

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 7:39 pm
gönderen bestcore
omertas14544 yazdı: Çrş Eki 14, 2020 5:43 pm Başarılı.
Teşekkür ederim.

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 7:40 pm
gönderen bestcore
Aconyonn yazdı: Çrş Eki 14, 2020 6:15 pm Emeğine sağlık basit ve güzel bir menü olmuş. Bende ufak bir boş tanımlamayı düzelteyim.
Bu kısımda "get_param" değerleri zaten başlıkta tanımlanmış.

Kod: Tümünü seç

public native_bb_set_user_packs(id, ammount)
{
	new id = get_param(1);
	new ammount = get_param(2);
	m_TL[id] = ammount;
	return 1;
}
->

Kod: Tümünü seç

public native_bb_set_user_packs(id, ammount)
{
	m_TL[id] = ammount;
	return 1;
}
Bilgilendirdiğiniz için teşekkür ederim.

[ReAPI] BBMenu v1.0

Gönderilme zamanı: Çrş Eki 14, 2020 7:49 pm
gönderen bestcore
Güncelleme ;
• Eklenti belirtilen hatalar düzeltilmiş, sunucu bakımından optimize edilmiştir.
• Ek bilgilendirme olarak "Üst Yazı" Eklenmiştir.

Kendinize Göre Değiştireceğiniz Yerler ;

Kod: Tümünü seç

#define Ustreklam "CSDuragi.COM Gaming Sunucusu" - Satır 6 - Üst Yazı reklamının 1.satırı.
#define Ustreklam2 "BBMenu Kullanim -> N Tusu" - Satır 7 - Üst Yazı reklamının 2.satırı.
#define duyuru "Duyuru" - Satır 8 - İsteğe bağlı reklam koymak isterseniz düzenleyin, istemiyorsanız "TIRNAK" içini boş bırakınız.
Fotoğraflar ;
Ustyazi.png
Eklenti ;
ReApi_BBMenu.sma