Cevap: Formatex Menu Hakkında
Yanlış anlamadıysam tam olarak bunu söylemek istedin dimi?
PHP- Kodu:
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;
}
Cevap: Formatex Menu Hakkında
PHP- Kodu:
#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ı.
Cevap: Formatex Menu Hakkında
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
PHP- Kodu:
#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ı.
Alıntı:
JDM Nickli Üyeden Alıntı
Yanlış anlamadıysam tam olarak bunu söylemek istedin dimi?
PHP- Kodu:
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 :D Akcaliberkin menüsüne HP değerini eklemeyide yapabilirsen çok iyi olur. Ben denedimde bir türlü ayar tutturamadım.
Cevap: Formatex Menu Hakkında
Tam emin değilim...ama...
PHP- Kodu:
/* 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..
Cevap: Formatex Menu Hakkında
Alıntı:
JDM Nickli Üyeden Alıntı
Tam emin değilim...ama...
PHP- Kodu:
/* 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
Cevap: Formatex Menu Hakkında
Alıntı:
balcan2744 Nickli Üyeden Alıntı
Ö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 :D 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.
- - - - - - - - - -
Alıntı:
balcan2744 Nickli Üyeden Alıntı
Ö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 :D 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.
Cevap: Formatex Menu Hakkında
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
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 :D Siz, sizin menüye HP yide eklerseniz sevinirim.
@akcaliberkk
- - - - - - - - - -
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
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 :D Siz, sizin menüye HP yide eklerseniz sevinirim.
@akcaliberkk
Cevap: Formatex Menu Hakkında
Alıntı:
balcan2744 Nickli Üyeden Alıntı
Yalnız benim şöle bir özelliğim var, örnek olmadan görmeden öğrenemem. Kısacası sözelden anlamıyorum :D Siz, sizin menüye HP yide eklerseniz sevinirim.
@
akcaliberkk
Sözelden ben de anlamam :D 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- Kodu:
#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
}
Cevap: Formatex Menu Hakkında
Alıntı:
akcaliberkk Nickli Üyeden Alıntı
Sözelden ben de anlamam :D 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- Kodu:
#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 :D @akcaliberkk