Posts: 60
Threads: 3
Joined: Jan 2013
Reputation:
0
Ben bir formatex menü kodlamak istiyorum. Bir çok pluginin içine baksam da böyle bir şey bulamadım. İstediğim şey şöyle bir şey ;
Ayarlar Menusu
1. Gravity == > 800 (Bu 800 e her bastığında 100 100 artmasını istiyorum yani Gravity ==> 900 , Gravity ==> 1000 gibi)
2. Ayarları uygula ( Buna basıncada yukardaki ayarı uygulasın. Gravity i yukarda seçtikten sonra buna basınca gravity uygulansın)
Böyle birşey mümkün mü ? Tek bildiğim formatex menü sistemiyle bu işlem yapılabiliyor.
Posts: 841
Threads: 16
Joined: Feb 2013
Reputation:
0
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; }
Steam ID: STEAM_1:0:70428872
Steam Name: Seps!s
Skype: jdm.csplague
Takdir ediliyorsan değil, Taklit ediliyorsan başarmışsın demektir.
Albert Einstein
Posts: 2,027
Threads: 43
Joined: Jun 2012
Reputation:
0
27-10-13, 18:59
(This post was last modified: 27-10-13, 19:05 by akcaliberkk.)
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ı.
Posts: 60
Threads: 3
Joined: Jan 2013
Reputation:
0
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.
Posts: 841
Threads: 16
Joined: Feb 2013
Reputation:
0
Tam emin değilim...ama...
PHP Code: /* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc> #include <fun>
#define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author"
new gravity[33]; new hp[33];
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) // Add your code here... register_clcmd("say /ornekmenu","MenuGoster") } public MenuGoster(id) { gravity[id] = 800 hp[id] = 100 MenuGosterDevam(id) } public MenuGosterDevam(id) { if(!is_user_alive(id)) return PLUGIN_HANDLED; new menu, Menuz[512] formatex(Menuz, charsmax(Menuz), "\rGravity \wve \rHp \wAyarlar Menusu:") menu = menu_create(Menuz, "menu_handler") formatex(Menuz, charsmax(Menuz), "\wGravity \y[+]") menu_additem(menu, Menuz, "1") formatex(Menuz, charsmax(Menuz), "\wHp \y[+]") menu_additem(menu, Menuz, "2") formatex(Menuz, charsmax(Menuz), "\wAyarlari Uygula \yGravity [%i], Hp[%i]",gravity[id],hp[id]) menu_additem(menu, Menuz, "3") 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_HANDLED } new data[6], iName[64],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 } MenuGosterDevam(id) } case 2: { if(hp[id] > 99) { hp[id] += 10 } MenuGosterDevam(id) } case 3: { set_cvar_num("sv_gravity",gravity[id]) set_user_health(id, hp[id]) } } menu_destroy(menu); return PLUGIN_HANDLED; }
Berk'in gösterdiği değil yalnız..
Steam ID: STEAM_1:0:70428872
Steam Name: Seps!s
Skype: jdm.csplague
Takdir ediliyorsan değil, Taklit ediliyorsan başarmışsın demektir.
Albert Einstein
Posts: 60
Threads: 3
Joined: Jan 2013
Reputation:
0
28-10-13, 21:21
(This post was last modified: 28-10-13, 23:19 by balcan2744.)
JDM dateline='' Wrote: Tam emin değilim...ama...
PHP Code: /* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc> #include <fun>
#define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "author"
new gravity[33]; new hp[33];
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) // Add your code here... register_clcmd("say /ornekmenu","MenuGoster") } public MenuGoster(id) { gravity[id] = 800 hp[id] = 100 MenuGosterDevam(id) } public MenuGosterDevam(id) { if(!is_user_alive(id)) return PLUGIN_HANDLED; new menu, Menuz[512] formatex(Menuz, charsmax(Menuz), "\rGravity \wve \rHp \wAyarlar Menusu:") menu = menu_create(Menuz, "menu_handler") formatex(Menuz, charsmax(Menuz), "\wGravity \y[+]") menu_additem(menu, Menuz, "1") formatex(Menuz, charsmax(Menuz), "\wHp \y[+]") menu_additem(menu, Menuz, "2") formatex(Menuz, charsmax(Menuz), "\wAyarlari Uygula \yGravity [%i], Hp[%i]",gravity[id],hp[id]) menu_additem(menu, Menuz, "3") 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_HANDLED } new data[6], iName[64],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 } MenuGosterDevam(id) } case 2: { if(hp[id] > 99) { hp[id] += 10 } MenuGosterDevam(id) } case 3: { set_cvar_num("sv_gravity",gravity[id]) set_user_health(id, hp[id]) } } menu_destroy(menu); return PLUGIN_HANDLED; }
Berk'in gösterdiği değil yalnız..
HP değeri sadece menuyu kullanan için geçerli oluyor. Bunu sadece bulunduğu teama uygulamam gerekiyor. Nasıl yapabilirim ?
@JDM
Posts: 2,027
Threads: 43
Joined: Jun 2012
Reputation:
0
balcan2744 dateline='' Wrote: Ö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.
Verdiğim örnekten yola çıkarak yapabilirsin diye ummuştum.
Yani bazı şeylere sabit bir yöntemle yaklaşmayın. Formatexli menü nasıl yapılır diye araştırmaktansa, ne yaparsam her tıkladığımda menünün özelliklerini değiştirebilirim diye araştırırsan daha mantıklı olur. Örneğin seçeneğin isminin değiştirilmesi gerekiyor. Her tıkladığımda bir seçeneğin ismini nasıl değiştirebilirim diye araştırmalısın. Menüdeki seçeneğin ismini değiştirmeye yarayan fonksiyonlar var mesela.
- - - - - - - - - -
balcan2744 dateline='' Wrote: Ö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.
Verdiğim örnekten yola çıkarak yapabilirsin diye ummuştum.
Yani bazı şeylere sabit bir yöntemle yaklaşmayın. Formatexli menü nasıl yapılır diye araştırmaktansa, ne yaparsam her tıkladığımda menünün özelliklerini değiştirebilirim diye araştırırsan daha mantıklı olur. Örneğin seçeneğin isminin değiştirilmesi gerekiyor. Her tıkladığımda bir seçeneğin ismini nasıl değiştirebilirim diye araştırmalısın. Menüdeki seçeneğin ismini değiştirmeye yarayan fonksiyonlar var mesela.
Posts: 60
Threads: 3
Joined: Jan 2013
Reputation:
0
akcaliberkk dateline='' Wrote: Verdiğim örnekten yola çıkarak yapabilirsin diye ummuştum.
Yani bazı şeylere sabit bir yöntemle yaklaşmayın. Formatexli menü nasıl yapılır diye araştırmaktansa, ne yaparsam her tıkladığımda menünün özelliklerini değiştirebilirim diye araştırırsan daha mantıklı olur. Örneğin seçeneğin isminin değiştirilmesi gerekiyor. Her tıkladığımda bir seçeneğin ismini nasıl değiştirebilirim diye araştırmalısın. Menüdeki seçeneğin ismini değiştirmeye yarayan fonksiyonlar var mesela.
- - - - - - - - - -
Verdiğim örnekten yola çıkarak yapabilirsin diye ummuştum.
Yani bazı şeylere sabit bir yöntemle yaklaşmayın. Formatexli menü nasıl yapılır diye araştırmaktansa, ne yaparsam her tıkladığımda menünün özelliklerini değiştirebilirim diye araştırırsan daha mantıklı olur. Örneğin seçeneğin isminin değiştirilmesi gerekiyor. Her tıkladığımda bir seçeneğin ismini nasıl değiştirebilirim diye araştırmalısın. Menüdeki seçeneğin ismini değiştirmeye yarayan fonksiyonlar var mesela.
Yalnız benim şöle bir özelliğim var, örnek olmadan görmeden öğrenemem. Kısacası sözelden anlamıyorum  Siz, sizin menüye HP yide eklerseniz sevinirim.
[MENTION=8515]akcaliberkk[/MENTION]
- - - - - - - - - -
akcaliberkk dateline='' Wrote: Verdiğim örnekten yola çıkarak yapabilirsin diye ummuştum.
Yani bazı şeylere sabit bir yöntemle yaklaşmayın. Formatexli menü nasıl yapılır diye araştırmaktansa, ne yaparsam her tıkladığımda menünün özelliklerini değiştirebilirim diye araştırırsan daha mantıklı olur. Örneğin seçeneğin isminin değiştirilmesi gerekiyor. Her tıkladığımda bir seçeneğin ismini nasıl değiştirebilirim diye araştırmalısın. Menüdeki seçeneğin ismini değiştirmeye yarayan fonksiyonlar var mesela.
- - - - - - - - - -
Verdiğim örnekten yola çıkarak yapabilirsin diye ummuştum.
Yani bazı şeylere sabit bir yöntemle yaklaşmayın. Formatexli menü nasıl yapılır diye araştırmaktansa, ne yaparsam her tıkladığımda menünün özelliklerini değiştirebilirim diye araştırırsan daha mantıklı olur. Örneğin seçeneğin isminin değiştirilmesi gerekiyor. Her tıkladığımda bir seçeneğin ismini nasıl değiştirebilirim diye araştırmalısın. Menüdeki seçeneğin ismini değiştirmeye yarayan fonksiyonlar var mesela.
Yalnız benim şöle bir özelliğim var, örnek olmadan görmeden öğrenemem. Kısacası sözelden anlamıyorum  Siz, sizin menüye HP yide eklerseniz sevinirim.
[MENTION=8515]akcaliberkk[/MENTION]
Posts: 2,027
Threads: 43
Joined: Jun 2012
Reputation:
0
28-10-13, 23:59
(This post was last modified: 29-10-13, 00:42 by akcaliberkk.)
balcan2744 dateline='' Wrote: Yalnız benim şöle bir özelliğim var, örnek olmadan görmeden öğrenemem. Kısacası sözelden anlamıyorum Siz, sizin menüye HP yide eklerseniz sevinirim.
@akcaliberkk
Sözelden ben de anlamam  Bu olay sözel değil zaten. Mantığı kullanarak eldekilerle yeni yöntemler geliştirmek sayısal beynin işidir  Gerçi seni fazla tanımıyorum yenisin forumda galiba. Ne kadar bildiğini bilmediğim için fazla bir şey diyemeyeceğim.
Örneği zaten vermiştim. Yinede buyur eklentin:
PHP Code: #include <amxmodx> #include <amxmisc> #include <fun>
new sayi[33]; new hp[33];
public FuncShowMenu(id) { new menu = menu_create("\r Menu Basligi","FuncHandleMenu") menu_additem(menu,"Gravity 0","degistir") menu_additem(menu,"HP 0","degistir") menu_additem(menu,"Uygula","0") menu_display(id,menu) }
public FuncHandleMenu(id,menu,item) { if(item == MENU_EXIT) { sayi[id] = 0; hp[id] = 0; menu_destroy(menu) return PLUGIN_HANDLED } if(item == 0) { sayi[id] = (sayi[id] + 100) % 1100; new szName[32]; formatex(szName,31,"Gravity %d",sayi[id]) menu_item_setname(menu,0,szName); } else if(item == 1) { hp[id] = (hp[id] + 100) % 1100; new szName[32]; formatex(szName,31,"HP %d",hp[id]) menu_item_setname(menu,1,szName); } else if(item == 2) { set_cvar_num("sv_gravity",sayi[id]) new players[32],inum; get_players(players,inum,"ae",get_user_team(id) == 1 ? "TERRORIST" : "CT"); for(new i;i<inum;i++) { set_user_health(players[i],hp[id]) } client_print(id,print_center,"Ayar Uygulandi ! Gravity : %d HP : %d",sayi[id],hp[id]) } menu_display(id,menu); return PLUGIN_HANDLED }
[/i]
Posts: 60
Threads: 3
Joined: Jan 2013
Reputation:
0
29-10-13, 00:24
(This post was last modified: 29-10-13, 00:54 by balcan2744.)
akcaliberkk dateline='' Wrote: Sözelden ben de anlamam Bu olay sözel değil zaten. Mantığı kullanarak eldekilerle yeni yöntemler geliştirmek sayısal beynin işidir Gerçi seni fazla tanımıyorum yenisin forumda galiba. Ne kadar bildiğini bilmediğim için fazla bir şey diyemeyeceğim.
Örneği zaten vermiştim. Yinede buyur eklentin:
PHP Code: #include <amxmodx> #include <amxmisc> #include <fun>
new sayi[33]; new hp[33];
public FuncShowMenu(id) { new menu = menu_create("\r Menu Basligi","FuncHandleMenu") menu_additem(menu,"Gravity 0","degistir") menu_additem(menu,"HP 0","degistir") menu_additem(menu,"Uygula","0") menu_display(id,menu) }
public FuncHandleMenu(id,menu,item) { if(item == MENU_EXIT) { sayi[id] = 0; hp[id] = 0; menu_destroy(menu) return PLUGIN_HANDLED } if(item == 0) { sayi[id] = (sayi[id] + 100) % 1100; new szName[32]; formatex(szName,31,"Gravity %d",sayi[id]) menu_item_setname(menu,0,szName); } else if(item == 1) { sayi[id] = (sayi[id] + 100) % 1100; new szName[32]; formatex(szName,31,"HP %d",sayi[id]) menu_item_setname(menu,1,szName); } else if(item == 2) { set_cvar_num("sv_gravity",sayi[id]) new players[32],inum; get_players(players,inum,"ae",get_user_team(id) == 1 ? "TERRORIST" : "CT"); for(new i;i<inum;i++) { set_user_health(players[i],hp[id]) } client_print(id,print_center,"Ayar Uygulandi ! Gravity : %d HP : %d",sayi[id],hp[id]) } menu_display(id,menu); return PLUGIN_HANDLED }
Denedim. Gravity ve hp yi ayarladığımda herkes ölüyor  [MENTION=8515]akcaliberkk[/MENTION][/i]
|