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

https://discord.gg/43gGDQe6tS

Const İle Menü Yapma Hk.

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
appoClypse
Mesajlar: 28
Kayıt: Prş Tem 09, 2020 8:19 am

Const İle Menü Yapma Hk.

Mesaj gönderen appoClypse »

Const ile menü yapmak formatex ile tek tek menü yapmaktan daha optimize midir onu merak ediyorum
Bir örnek;

Kod: Tümünü seç

new const pTHPMenu[][][] = {
	{0,0},{1000,20},{2500,35},{5000,50},{10000,100}
};
public pZMHShop(pN_ID) {
	new pMenu = pMenuOlustur("\rZombie Health \wShop","pZMHShop_"),NTS[6];
	for(new i=1; i < sizeof(pTHPMenu); i++) {
		num_to_str(i,NTS,5);
		pMenuSecenekEkle(pMenu,"%d \rHP \d[\w%d \yTL\d]",NTS,1,pTHPMenu[i][0][0],pTHPMenu[i][1][0]);
	}
	pMenuBitir(pN_ID,pMenu);
}
public pZMHShop_(pN_ID, pMenu, pEsya) {
	if( pEsya == MENU_EXIT ) { pBBShop(pN_ID);menu_destroy(pMenu);return PLUGIN_HANDLED;}
	new pVeri[6],pBos;
	menu_item_getinfo(pMenu,pEsya,pBos,pVeri,5,_,_,pBos);
	new key = str_to_num(pVeri);
	if(pBBMoney[pN_ID] >= pTHPMenu[key][1][0]) {
		pBBMoney[pN_ID] -= pTHPMenu[key][1][0];
		set_user_health(pN_ID,get_user_health(pN_ID) + pTHPMenu[key][0][0]);
		renkli_yazi(pN_ID,"%s !nHealth Shop'dan !g[ !t%d HP !g] !nSatin Aldin!",SayTag,pTHPMenu[key][0][0]);
	}
	else renkli_yazi(pN_ID,"%s !nYeterli Paran !tYok!",SayTag),pZMHShop(pN_ID); 
	
	menu_destroy(pMenu);return PLUGIN_HANDLED;
}


NOT: pMenuSecenekEkle stock ile hızlıca ve optimize bi şekilde menüye seçenek eklendiğini duymuştum.

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

amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Const İle Menü Yapma Hk.

Mesaj gönderen amad »

Öncelikle şunu belirteyim sunucular, 64KB ram ile veya 10 mhz işlemciyle çalışmıyor. Keza kullanıcılar da Commodore 64 bilgisayarı ile oyuna girmiyor. Bahsetmiş olduğunuz iki durum arasındaki fark yok sayılabilecek düzeyde. Ama kesin bir cevap istiyorsanız dizi tanımlamaya ayrı bir stock oluşturmaya gerek yok. Direkt menu_create veya menu_additem kullanabilirsiniz. Formatex ise stringi biçimlendirmek amacıyla kullanılıyor. Formatex de kullanmak zorunda değilsiniz.

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
appoClypse
Mesajlar: 28
Kayıt: Prş Tem 09, 2020 8:19 am

Const İle Menü Yapma Hk.

Mesaj gönderen appoClypse »

Anladım fark yok teşekkürler ama biraz daha gelişmiş oluyor diğerlerine göre çünkü üstten kullanıcı isteğine göre değiştirebiliyor.

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

amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Const İle Menü Yapma Hk.

Mesaj gönderen amad »

yazmış olduğun stockun içeriğini görebilir miyim?

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

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Const İle Menü Yapma Hk.

Mesaj gönderen Colditz »

İnsanlardaki bu const merakı nereden geldi anlamıyorum ama const komutunu sabit ses dosyalarında, model dosyalarında, eğer amx super gibi bir eklenti yapıyorsanız komutları tek bir çatı altında toplamak adına kullanabilirsiniz. Menüler amad'ın dediği gibi klasik güzel.

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
appoClypse
Mesajlar: 28
Kayıt: Prş Tem 09, 2020 8:19 am

Const İle Menü Yapma Hk.

Mesaj gönderen appoClypse »

amad yazdı: Prş Tem 09, 2020 12:55 pm yazmış olduğun stockun içeriğini görebilir miyim?

Kod: Tümünü seç

stock pMenuOlustur(const pBaslik[],const pDevam[], any:...){
	new pYBaslik[256],pDBaslik[256];
	vformat(pDBaslik,charsmax(pDBaslik),pBaslik,3);
	formatex(pYBaslik,charsmax(pYBaslik),"%s %s",MenuTag,pDBaslik);
	new pMenu = menu_create(pYBaslik,pDevam);
	return pMenu;
}
stock pMenuSecenekEkle(pMenuID,const pSBaslik[],const pBilgi[],pTag = 1, any:...){
	new pYSBaslik[256],pSDuzelt[256];
	vformat(pSDuzelt,charsmax(pSDuzelt),pSBaslik,5);
	if(pTag == 1){formatex(pYSBaslik,charsmax(pYSBaslik),"%s %s",MenuKisaTag,pSDuzelt);}
	else{formatex(pYSBaslik,charsmax(pYSBaslik),"%s",pSDuzelt);}
	menu_additem(pMenuID,pYSBaslik,pBilgi);
}
stock pMenuBitir(id,pMenuID,pSecenek = 1,pCikis = 1,pSayfa = 0){
	menu_setprop(pMenuID,MPROP_EXITNAME,"\wCikis");
	menu_setprop(pMenuID,MPROP_PERPAGE, pSecenek ? 7:0 ); 
	menu_setprop(pMenuID,MPROP_EXIT,pCikis ? MEXIT_ALL:MEXIT_NEVER);
	menu_display(id,pMenuID,pSayfa);	
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
appoClypse
Mesajlar: 28
Kayıt: Prş Tem 09, 2020 8:19 am

Const İle Menü Yapma Hk.

Mesaj gönderen appoClypse »

Colditz yazdı: Prş Tem 09, 2020 12:57 pm İnsanlardaki bu const merakı nereden geldi anlamıyorum ama const komutunu sabit ses dosyalarında, model dosyalarında, eğer amx super gibi bir eklenti yapıyorsanız komutları tek bir çatı altında toplamak adına kullanabilirsiniz. Menüler amad'ın dediği gibi klasik güzel.
daha kolay editlensin diye öyle bi şey kullandım.

Link:
Linklerini gizle
Linki Kopyala

omertas14544
Mesajlar: 1604
Kayıt: Prş Oca 26, 2017 3:23 pm

Const İle Menü Yapma Hk.

Mesaj gönderen omertas14544 »

Colditz yazdı: Prş Tem 09, 2020 12:57 pm İnsanlardaki bu const merakı nereden geldi anlamıyorum ama const komutunu sabit ses dosyalarında, model dosyalarında, eğer amx super gibi bir eklenti yapıyorsanız komutları tek bir çatı altında toplamak adına kullanabilirsiniz. Menüler amad'ın dediği gibi klasik güzel.
Zamanında optimize ile alakalı konunu okumuştum abi. O zamandan beri const kullanımını dahada artırdım.

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

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Const İle Menü Yapma Hk.

Mesaj gönderen Colditz »

omertas14544 yazdı: Prş Tem 09, 2020 4:58 pm Zamanında optimize ile alakalı konunu okumuştum abi. O zamandan beri const kullanımını dahada artırdım.
Const kullanın da tadını kaçırmadan. Sadece const kullanmak için gereksiz yerlerde yeni değişkenler üretmeyin.

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

amad
Mesajlar: 1809
Kayıt: Cmt Nis 30, 2016 2:46 pm
Konum: Batman
Clan İsmi: Ke$`h | Gaming
İletişim:

Const İle Menü Yapma Hk.

Mesaj gönderen amad »

Hem kodun okunması açısından hem de performans açısından klasik yol kesinlikle daha iyidir diyebiliriz. Çünkü dolaylı yoldan aynı kapıya çıkıyor.

Link:
Linklerini gizle
Linki Kopyala
Cevapla