28-10-13, 19:29
(This post was last modified: 28-10-13, 20:41 by balcan2744.)
akcaliberkk dateline='' Wrote:PHP Code:#include <amxmodx>
#include <amxmisc>
/* Her yoneticinin menusundeki ayar farkli gorunecektir.
Bu yüzden değişken bir player array olucak.*/
new sayi[33];
public FuncShowMenu(id) {
new menu = menu_create("\r Menu Basligi","FuncHandleMenu")
menu_additem(menu,"Gravity 0","degistir")
menu_additem(menu,"Uygula","0")
menu_display(id,menu)
}
public FuncHandleMenu(id,menu,item) {
if(item == MENU_EXIT) {
// Menüden çıkıldıysa hafizadaki sayiyi sifirla.
sayi[id] = 0;
menu_destroy(menu)
return PLUGIN_HANDLED
}
if(item == 0) {
// Eğer ilk seçenek seçildiyse:
// Hafizadaki sayiya 100 daha ekle ve 1100'e göre modunu al.
// x mod y = x sayısının y ile bölümünden kalanı verir.
// Yani sayi 1100 olursa 1100 ile bölümünden kalan 0 olacağı için yeni sayi yine 0 olacaktır. Asla sayi 1000'i geçemeyecek.
sayi[id] = (sayi[id] + 100) % 1100;
// İlk seçeneğin ismini değiştir.
new szName[32];
formatex(szName,31,"Gravity %d",sayi[id])
menu_item_setname(menu,0,szName);
}
else {
// Eğer ikinci seçenek seçildiyse:
// Hafizadaki sayiyi cvar ayarı olarak uygula.
set_cvar_num("sv_gravity",sayi[id])
client_print(id,print_center,"Ayar Uygulandi ! Gravity : %d",sayi[id])
}
menu_display(id,menu);
return PLUGIN_HANDLED
}
Ayrıca formatex bir menü sistemi değildir. Formatex fonksiyonu bir string değişkenini düzenlemeye yarar. Menülerde kullanılmasının sebebi, menu fonksiyonlarında değişken belirtilememesidir. Formatex ile değişken yazıya eklenip, öyle seçenek oluşturulur.
Normalde
client_print(id, print_chat, " Oyuncu adi: %s ", name)
şeklinde belirtebiliyoruz. Böyle durumlarda formatexe gerek duyulmuyor ancak menü fonskiyonları gibi fonksiyonlarda
menu_additem(menu, "Oyuncu adi: %s", name, "1")
gibi bir şey yapmak mümkün değil. Bu yüzden önce stringi düzenlemek için formatex kullanıp öyle item adı olarak gösterebiliyoruz.
new Secenek[32]
formatex(Secenek, 31, "Oyuncu adi: %s",name)
menu_additem(menu, Secenek, "1")
Plugin İstek Bölümüne taşındı.
JDM dateline='' Wrote: Yanlış anlamadıysam tam olarak bunu söylemek istedin dimi?
PHP Code:new gravity[33];
public fonksiyonadi(id) {
gravity[id] = 800
yenipublicadi(id)
}
public yenipublicadi(id) {
new menu, Menuz[512]
formatex(Menuz, charsmax(Menuz), "Menu Adi")
menu = menu_create(Menuz, "menu_handler")
formatex(Menuz, charsmax(Menuz), "\wGravity \y[ + ]")
menu_additem(menu, Menuz, "1")
formatex(Menuz, charsmax(Menuz), "\wAyarlari Uygula")
menu_additem(menu, Menuz, "2")
formatex(Menuz, charsmax(Menuz), "\yCikis")
menu_setprop(menu,MPROP_EXITNAME,Menuz)
menu_display(id, menu, 0)
return PLUGIN_HANDLED;
}
public menu_handler(id,menu,item) {
if (item == MENU_EXIT) {
menu_destroy(menu)
return PLUGIN_CONTINUE
}
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: {
if(gravity[id] > 799) {
gravity[id] += 100;
}
yenipublicadi(id)
}
case 2: {
set_user_gravity(id,gravity[id]);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
Öncelikle yorumlarınız için teşekkürler. Ama ben sadece gravity yapmak istemiyorum. Mesela ;
1. Gravity
2. HP
3. Ayarları Uygula
Gibi @akcaliberkk
@JDM
Kardeşim senin menünde çok karışık geldi bana
Akcaliberkin menüsüne HP değerini eklemeyide yapabilirsen çok iyi olur. Ben denedimde bir türlü ayar tutturamadım.

