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

https://discord.gg/43gGDQe6tS

menu yapim

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
ZIPZINK
Mesajlar: 208
Kayıt: Pzr Eki 10, 2021 10:38 pm

menu yapim

Mesaj gönderen ZIPZINK »

arkadaşlar şöyle bir menu yazdım bazı hataları var bakabilirmisiniz
godmode olayı var içinde sanırım yanlıs oldu yanlısım nerde soylersenız
dolara ayarladım ama bunu TL Sistemi Yapabilirmiyiz
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

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

orucoglukayra
Mesajlar: 209
Kayıt: Pzr Haz 09, 2019 2:48 pm
İletişim:

menu yapim

Mesaj gönderen orucoglukayra »

Biraz temel kod bilgini geliştirmelisin.Eklenti isteklerdeki çözümlere bak.Forumdaki anlatımlara bak.Aşağıda biraz anlatmaya çalıştım, umarım faydalı olmuştur.

Kod: Tümünü seç

#include <amxmodx>
// Reapi kullanmamın sebebi daha basit geliyor.
#include <reapi>

// Düzenlemesi kolay olsun diye tag değişkeni oluşturdum.
new const tag[] = "CSD";

// Para birimi oluşturuyorum, ismi onemli degil. MaxClients+1 -> 33 demek.
// Paraları cvar ile ayarlamak daha rahat olur diye cvarı tanıtıyorum.
new TL[MAX_CLIENTS+1], cvar[3];

public plugin_init() 
{
	register_plugin("Dm Menu", "0.1", "LyNcH");

	register_clcmd("say /dmmenu", "@dmmenu");
	register_clcmd("nightvision", "@dmmenu");

	// Para kazanmayı ayarlamadığımız için test olarak para vericek.
	register_clcmd("say /paraver", "@paraver");

    // Cvarları belirledim.
	bind_pcvar_num(create_cvar("dmmenu_150hp", "100"), cvar[0]);
	bind_pcvar_num(create_cvar("dmmenu_hizliyurume", "150"), cvar[1]);
	bind_pcvar_num(create_cvar("dmmenu_10saniyegod", "200"), cvar[2]);
}

@paraver(const id)
{
	if(get_user_flags(id) & ADMIN_RCON)
	{
		TL[id] += 999;
		client_print_color(id, id, "^1[^3%s^1] ^4Para Verildi ^1!", tag);
	}
}

// Const yazmamım sebebi ileride id değişmeyecek. Yazmasakta olur.
@dmmenu(const id)
{
	// Oyuncu ölüyken girip can almasını vs. istemeyiz.
	if(is_user_alive(id))
	{
		new menu = menu_create(fmt("\r%s \w| \yDm Menü^n\dMevcut Paran : %d TL", tag, TL[id]), "@dmmenu_handler");

		menu_additem(menu, fmt("\r%s \w| \y150 Hp \d[\r%d TL\d]", tag, cvar[0]));
		menu_additem(menu, fmt("\r%s \w| \yHizli Yurume \d[\r%d TL\d]", tag, cvar[1]));
		menu_additem(menu, fmt("\r%s \w| \y10 Saniye Godmode \d[\r%d TL\d]", tag, cvar[2]));
		menu_additem(menu, fmt("\r%s \w| \yKnife Menu", tag));

		menu_setprop(menu, MPROP_EXITNAME, fmt( "\wKapat"));
		menu_setprop(menu,MPROP_NUMBER_COLOR, "\r");
		menu_display(id, menu);

		return PLUGIN_CONTINUE;
	}
	else
	{
		client_print_color(id, id, "^1[^3%s^1] ^4Sadece Yasayanlar Bu Menuye Girebilir ^1!", tag);
		return PLUGIN_HANDLED;
	}
}

@dmmenu_handler(const id, const menu, const item)
{
    if(item == MENU_EXIT) 
	{
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }

    switch(item) 
	{
        case 0: 
        {
			if(TL[id] >= cvar[0])
			{
				TL[id] -= cvar[0];
				// Reapi ile can verirken float yani ondalıklı olması gerekir.
				set_entvar(id, var_health, Float:get_entvar(id, var_health) + 150.0);
				// Stocklar yerine client_print_color kullan.
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 150 HP Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
        case 1: 
        {
			if(TL[id] >= cvar[1])
			{
				TL[id] -= cvar[1];
                // Hızın silah değişince gitmemesi için resetmaxspeed ayarlanmalı.Örnek bir reapi redbull içinden bulabilirsin.Şuan ayarlamıyorum.
				set_entvar(id, var_maxspeed, Float:get_entvar(id, var_maxspeed) + 350.0);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla Hizli Yurume Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
        case 2: 
        {
			if(TL[id] >= cvar[2])
			{
				TL[id] -= cvar[2];
				set_entvar(id, var_takedamage, DAMAGE_NO);
				set_task(10.0, "@GodKapa", id);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 10 Saniye Godmode Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
		case 3:
		{
			client_cmd(id, "say /knife");
		}
	}

    @dmmenu(id);
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

@GodKapa(const id)
{
	set_entvar(id, var_takedamage, DAMAGE_AIM);
	client_print_color(id, id, "^1[^3%s^1]^4 10 Saniyelik Godmode Sona Erdi ^1!", tag);
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
ZIPZINK
Mesajlar: 208
Kayıt: Pzr Eki 10, 2021 10:38 pm

menu yapim

Mesaj gönderen ZIPZINK »

teşekkür ederim zamanla öğrenicez inşallah

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
ZIPZINK
Mesajlar: 208
Kayıt: Pzr Eki 10, 2021 10:38 pm

menu yapim

Mesaj gönderen ZIPZINK »

kill başına para vermeyi ayarlayabilirmiyiz rica etsem

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

orucoglukayra
Mesajlar: 209
Kayıt: Pzr Haz 09, 2019 2:48 pm
İletişim:

menu yapim

Mesaj gönderen orucoglukayra »

Kod: Tümünü seç

#include <amxmodx>
// Reapi kullanmamın sebebi daha basit geliyor.
#include <reapi>

// Düzenlemesi kolay olsun diye tag değişkeni oluşturdum.
new const tag[] = "CSD";

// Para birimi oluşturuyorum, ismi onemli degil. MaxClients+1 -> 33 demek.
// Paraları cvar ile ayarlamak daha rahat olur diye cvarı tanıtıyorum.
new TL[MAX_CLIENTS+1], cvar[4];

public plugin_init() 
{
	register_plugin("Dm Menu", "0.1", "LyNcH");

	register_clcmd("say /dmmenu", "@dmmenu");
	register_clcmd("nightvision", "@dmmenu");

    // Kill alınca çalışacak public.Bunları kütüphaneden bulabilirsin.
	RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post = true);

    // Cvarları belirledim.
	bind_pcvar_num(create_cvar("dmmenu_150hp", "100"), cvar[0]);
	bind_pcvar_num(create_cvar("dmmenu_hizliyurume", "150"), cvar[1]);
	bind_pcvar_num(create_cvar("dmmenu_10saniyegod", "200"), cvar[2]);
	bind_pcvar_num(create_cvar("dmmenu_killpara", "200"), cvar[3]);
}

@CBasePlayer_Killed(const this, pevAttacker, iGib)
{
	// this ölen, pevAttacker öldüren.
	// Hataları önlemek için kendini öldürürse ve öldüren oyuncu bağlı değilse işleme almayacak.
	if(this == pevAttacker || !is_user_connected(pevAttacker)) 
	{
		return;
	}

    // Ayarlanması kolay olsun diye cvara bağladım.
	TL[pevAttacker] += cvar[3];

	// Hazır kill parası eklemişken, oyuncu ölmeden önce menüyü açık bırakırsa menü kapanacak.
	show_menu(this, 0, "");
}

// Const yazmamım sebebi ileride id değişmeyecek. Yazmasakta olur.
@dmmenu(const id)
{
	// Oyuncu ölüyken girip can almasını vs. istemeyiz.
	if(is_user_alive(id))
	{
		new menu = menu_create(fmt("\r%s \w| \yDm Menü^n\dMevcut Paran : %d TL", tag, TL[id]), "@dmmenu_handler");

		menu_additem(menu, fmt("\r%s \w| \y150 Hp \d[\r%d TL\d]", tag, cvar[0]));
		menu_additem(menu, fmt("\r%s \w| \yHizli Yurume \d[\r%d TL\d]", tag, cvar[1]));
		menu_additem(menu, fmt("\r%s \w| \y10 Saniye Godmode \d[\r%d TL\d]", tag, cvar[2]));
		menu_additem(menu, fmt("\r%s \w| \yKnife Menu", tag));

		menu_setprop(menu, MPROP_EXITNAME, fmt( "\wKapat"));
		menu_setprop(menu,MPROP_NUMBER_COLOR, "\r");
		menu_display(id, menu);

		return PLUGIN_CONTINUE;
	}
	else
	{
		client_print_color(id, id, "^1[^3%s^1] ^4Sadece Yasayanlar Bu Menuye Girebilir ^1!", tag);
		return PLUGIN_HANDLED;
	}
}

@dmmenu_handler(const id, const menu, const item)
{
    if(item == MENU_EXIT) 
	{
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }

    switch(item) 
	{
        case 0: 
        {
			if(TL[id] >= cvar[0])
			{
				TL[id] -= cvar[0];
				// Reapi ile can verirken float yani ondalıklı olması gerekir.
				set_entvar(id, var_health, Float:get_entvar(id, var_health) + 150.0);
				// Stocklar yerine client_print_color kullan.
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 150 HP Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
        case 1: 
        {
			if(TL[id] >= cvar[1])
			{
				TL[id] -= cvar[1];
                // Hızın silah değişince gitmemesi için resetmaxspeed ayarlanmalı.Örnek bir reapi redbull içinden bulabilirsin.Şuan ayarlamıyorum.
				set_entvar(id, var_maxspeed, Float:get_entvar(id, var_maxspeed) + 350.0);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla Hizli Yurume Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
        case 2: 
        {
			if(TL[id] >= cvar[2])
			{
				TL[id] -= cvar[2];
				set_entvar(id, var_takedamage, DAMAGE_NO);
				set_task(10.0, "@GodKapa", id);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 10 Saniye Godmode Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
		case 3:
		{
			client_cmd(id, "say /knife");
		}
	}

    @dmmenu(id);
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

@GodKapa(const id)
{
	set_entvar(id, var_takedamage, DAMAGE_AIM);
	client_print_color(id, id, "^1[^3%s^1]^4 10 Saniyelik Godmode Sona Erdi ^1!", tag);
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
ZIPZINK
Mesajlar: 208
Kayıt: Pzr Eki 10, 2021 10:38 pm

menu yapim

Mesaj gönderen ZIPZINK »

konu kilit eyw

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

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

menu yapim

Mesaj gönderen Colditz »

orucoglukayra yazdı: Cmt Kas 13, 2021 9:34 pm

Kod: Tümünü seç

#include <amxmodx>
// Reapi kullanmamın sebebi daha basit geliyor.
#include <reapi>

// Düzenlemesi kolay olsun diye tag değişkeni oluşturdum.
new const tag[] = "CSD";

// Para birimi oluşturuyorum, ismi onemli degil. MaxClients+1 -> 33 demek.
// Paraları cvar ile ayarlamak daha rahat olur diye cvarı tanıtıyorum.
new TL[MAX_CLIENTS+1], cvar[4];

public plugin_init() 
{
	register_plugin("Dm Menu", "0.1", "LyNcH");

	register_clcmd("say /dmmenu", "@dmmenu");
	register_clcmd("nightvision", "@dmmenu");

    // Kill alınca çalışacak public.Bunları kütüphaneden bulabilirsin.
	RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post = true);

    // Cvarları belirledim.
	bind_pcvar_num(create_cvar("dmmenu_150hp", "100"), cvar[0]);
	bind_pcvar_num(create_cvar("dmmenu_hizliyurume", "150"), cvar[1]);
	bind_pcvar_num(create_cvar("dmmenu_10saniyegod", "200"), cvar[2]);
	bind_pcvar_num(create_cvar("dmmenu_killpara", "200"), cvar[3]);
}

@CBasePlayer_Killed(const this, pevAttacker, iGib)
{
	// this ölen, pevAttacker öldüren.
	// Hataları önlemek için kendini öldürürse ve öldüren oyuncu bağlı değilse işleme almayacak.
	if(this == pevAttacker || !is_user_connected(pevAttacker)) 
	{
		return;
	}

    // Ayarlanması kolay olsun diye cvara bağladım.
	TL[pevAttacker] += cvar[3];

	// Hazır kill parası eklemişken, oyuncu ölmeden önce menüyü açık bırakırsa menü kapanacak.
	show_menu(this, 0, "");
}

// Const yazmamım sebebi ileride id değişmeyecek. Yazmasakta olur.
@dmmenu(const id)
{
	// Oyuncu ölüyken girip can almasını vs. istemeyiz.
	if(is_user_alive(id))
	{
		new menu = menu_create(fmt("\r%s \w| \yDm Menü^n\dMevcut Paran : %d TL", tag, TL[id]), "@dmmenu_handler");

		menu_additem(menu, fmt("\r%s \w| \y150 Hp \d[\r%d TL\d]", tag, cvar[0]));
		menu_additem(menu, fmt("\r%s \w| \yHizli Yurume \d[\r%d TL\d]", tag, cvar[1]));
		menu_additem(menu, fmt("\r%s \w| \y10 Saniye Godmode \d[\r%d TL\d]", tag, cvar[2]));
		menu_additem(menu, fmt("\r%s \w| \yKnife Menu", tag));

		menu_setprop(menu, MPROP_EXITNAME, fmt( "\wKapat"));
		menu_setprop(menu,MPROP_NUMBER_COLOR, "\r");
		menu_display(id, menu);

		return PLUGIN_CONTINUE;
	}
	else
	{
		client_print_color(id, id, "^1[^3%s^1] ^4Sadece Yasayanlar Bu Menuye Girebilir ^1!", tag);
		return PLUGIN_HANDLED;
	}
}

@dmmenu_handler(const id, const menu, const item)
{
    if(item == MENU_EXIT) 
	{
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }

    switch(item) 
	{
        case 0: 
        {
			if(TL[id] >= cvar[0])
			{
				TL[id] -= cvar[0];
				// Reapi ile can verirken float yani ondalıklı olması gerekir.
				set_entvar(id, var_health, Float:get_entvar(id, var_health) + 150.0);
				// Stocklar yerine client_print_color kullan.
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 150 HP Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
        case 1: 
        {
			if(TL[id] >= cvar[1])
			{
				TL[id] -= cvar[1];
                // Hızın silah değişince gitmemesi için resetmaxspeed ayarlanmalı.Örnek bir reapi redbull içinden bulabilirsin.Şuan ayarlamıyorum.
				set_entvar(id, var_maxspeed, Float:get_entvar(id, var_maxspeed) + 350.0);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla Hizli Yurume Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
        case 2: 
        {
			if(TL[id] >= cvar[2])
			{
				TL[id] -= cvar[2];
				set_entvar(id, var_takedamage, DAMAGE_NO);
				set_task(10.0, "@GodKapa", id);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 10 Saniye Godmode Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
		case 3:
		{
			client_cmd(id, "say /knife");
		}
	}

    @dmmenu(id);
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

@GodKapa(const id)
{
	set_entvar(id, var_takedamage, DAMAGE_AIM);
	client_print_color(id, id, "^1[^3%s^1]^4 10 Saniyelik Godmode Sona Erdi ^1!", tag);
}
Yine birkaç mantık hatası ve gereksiz komut var.

1) Return komutunu if ve else den sonra tanıtmadığınız için warning verecektir. Bütün return komutlarını silip en sona koymanız daha mantıklı olur.

Kod: Tümünü seç

@dmmenu(const id)
{
	// Oyuncu ölüyken girip can almasını vs. istemeyiz.
	if(is_user_alive(id))
	{
		new menu = menu_create(fmt("\r%s \w| \yDm Menü^n\dMevcut Paran : %d TL", tag, TL[id]), "@dmmenu_handler");

		menu_additem(menu, fmt("\r%s \w| \y150 Hp \d[\r%d TL\d]", tag, cvar[0]));
		menu_additem(menu, fmt("\r%s \w| \yHizli Yurume \d[\r%d TL\d]", tag, cvar[1]));
		menu_additem(menu, fmt("\r%s \w| \y10 Saniye Godmode \d[\r%d TL\d]", tag, cvar[2]));
		menu_additem(menu, fmt("\r%s \w| \yKnife Menu", tag));

		menu_setprop(menu, MPROP_EXITNAME, fmt( "\wKapat"));
		menu_setprop(menu,MPROP_NUMBER_COLOR, "\r");
		menu_display(id, menu);

		//return PLUGIN_CONTINUE;
	}
	else
	{
		client_print_color(id, id, "^1[^3%s^1] ^4Sadece Yasayanlar Bu Menuye Girebilir ^1!", tag);
		//return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}
2) İf tanıtması yapmak yerine direkt switch ve case bölümünde bunu tanıtabilirsiniz.

Kod: Tümünü seç

@dmmenu_handler(const id, const menu, const item)
{
   // if(item == MENU_EXIT) 
	//{
        //menu_destroy(menu);
        //return PLUGIN_HANDLED;
    //}

    switch(item) 
	{
        case 0: 
        {
			if(TL[id] >= cvar[0])
			{
				TL[id] -= cvar[0];
				// Reapi ile can verirken float yani ondalıklı olması gerekir.
				set_entvar(id, var_health, Float:get_entvar(id, var_health) + 150.0);
				// Stocklar yerine client_print_color kullan.
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 150 HP Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
        case 1: 
        {
			if(TL[id] >= cvar[1])
			{
				TL[id] -= cvar[1];
                // Hızın silah değişince gitmemesi için resetmaxspeed ayarlanmalı.Örnek bir reapi redbull içinden bulabilirsin.Şuan ayarlamıyorum.
				set_entvar(id, var_maxspeed, Float:get_entvar(id, var_maxspeed) + 350.0);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla Hizli Yurume Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
        case 2: 
        {
			if(TL[id] >= cvar[2])
			{
				TL[id] -= cvar[2];
				set_entvar(id, var_takedamage, DAMAGE_NO);
				set_task(10.0, "@GodKapa", id);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 10 Saniye Godmode Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
        }
		case 3:
		{
			client_cmd(id, "say /knife");
		}
	}
		default:
		{
			menu_destroy(menu);
			return PLUGIN_HANDLED;
		}
	}

    @dmmenu(id);
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}
3) Oyuncu eğer oyundan çıktıysa ve 10 saniye süre bitince oyunda olmayan birinin hasarını, hasar alabilir şeklinde değiştirmeye çalışacak.
Bu ölü olmasına karşı da aynı etkiyi yapacak.

Kod: Tümünü seç

@GodKapa(const id)
{
	if(!is_user_alive(id)) {
		return;
	}

	set_entvar(id, var_takedamage, DAMAGE_AIM);
	client_print_color(id, id, "^1[^3%s^1]^4 10 Saniyelik Godmode Sona Erdi ^1!", tag);
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
ZIPZINK
Mesajlar: 208
Kayıt: Pzr Eki 10, 2021 10:38 pm

menu yapim

Mesaj gönderen ZIPZINK »

eklentiye bişi ekledim ama hata alıyorum nerde yanlıs yaptım
@orucoglukayra
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

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

orucoglukayra
Mesajlar: 209
Kayıt: Pzr Haz 09, 2019 2:48 pm
İletişim:

menu yapim

Mesaj gönderen orucoglukayra »

ZIPZINK yazdı: Pzr Kas 14, 2021 3:59 pm eklentiye bişi ekledim ama hata alıyorum nerde yanlıs yaptım
@orucoglukayra
:hl: Bu kütüphaneyi niye tanıttın ?

Kod: Tümünü seç

#include <cromchat>
:hl: Eğer 4 tane cvar olmasını istiyorsan, cvar[4] yerine cvar[5] yazmalısın.Her zaman bir fazlası.

:hl: Yazarken gereksiz boşluklar bırakma.Yoksa loose indentation hatası alırsın.

:hl: Tırnak işaretlerine dikkat et.Açtığın zaman kapatmanda gerekir.

:hl: Ayrıca caselerde kafana göre sayı vermişsin.Sıra, menüdeki sıraya göre 0,1,2 diye gider.Araya bir menü eklediğin için onun case 3 olması gerek.

Kod: Tümünü seç

#include <amxmodx>
// Reapi kullanmam�n sebebi daha basit geliyor.
#include <reapi>
// ?
//#include <cromchat>

// D�zenlemesi kolay olsun diye tag de�i�keni olu�turdum.
new const tag[] = "CSD";

// Para birimi olu�turuyorum, ismi onemli degil. MaxClients+1 -> 33 demek.
// Paralar� cvar ile ayarlamak daha rahat olur diye cvar� tan�t�yorum.
new TL[MAX_CLIENTS+1], cvar[5];

public plugin_init() 
{
	register_plugin("Dm Menu", "0.1", "LyNcH");

	register_clcmd("say /dmmenu", "@dmmenu");
	register_clcmd("nightvision", "@dmmenu");

	// Kill al�nca �al��acak public.Bunlar� k�t�phaneden bulabilirsin.
	RegisterHookChain(RG_CBasePlayer_Killed, "@CBasePlayer_Killed", .post = true);

	// Cvarlar� belirledim.
	bind_pcvar_num(create_cvar("dmmenu_150hp", "12"), cvar[0]);
	bind_pcvar_num(create_cvar("dmmenu_hizliyurume", "15"), cvar[1]);
	bind_pcvar_num(create_cvar("dmmenu_10saniyegod", "20"), cvar[2]);
	bind_pcvar_num(create_cvar("dmmenu_killpara", "3"), cvar[3]);
	bind_pcvar_num(create_cvar("dmmenu_canvezirh", "25"), cvar[4]);
}

@CBasePlayer_Killed(const this, pevAttacker, iGib)
{
	// this �len, pevAttacker �ld�ren.
	// Hatalar� �nlemek i�in kendini �ld�r�rse ve �ld�ren oyuncu ba�l� de�ilse i�leme almayacak.
	if(this == pevAttacker || !is_user_connected(pevAttacker)) 
	{
		return;
	}

    // Ayarlanmas� kolay olsun diye cvara ba�lad�m.
	TL[pevAttacker] += cvar[3];

	// Haz�r kill paras� eklemi�ken, oyuncu �lmeden �nce men�y� a��k b�rak�rsa men� kapanacak.
	show_menu(this, 0, "");
}

// Const yazmam�m sebebi ileride id de�i�meyecek. Yazmasakta olur.
@dmmenu(const id)
{
	// Oyuncu �l�yken girip can almas�n� vs. istemeyiz.
	if(is_user_alive(id))
	{
		new menu = menu_create(fmt("\r%s \w| \yDm Men�^n\dMevcut Paran : %d TL", tag, TL[id]), "@dmmenu_handler");

		menu_additem(menu, fmt("\r[%s] \w| \y150 Hp \d[\r%d TL\d]", tag, cvar[0]));
		menu_additem(menu, fmt("\r[%s] \w| \yHizli Yurume \d[\r%d TL\d]", tag, cvar[1]));
		menu_additem(menu, fmt("\r[%s] \w| \y10 Saniye Godmode \d[\r%d TL\d]", tag, cvar[2]));
		menu_additem(menu, fmt("\r[%s] \w| \yCan Ve Zirh Yenile \d[\r%d TL\d]", tag, cvar[4]));
		menu_additem(menu, fmt("\r[%s] \w| \yKnife Menu", tag));

		menu_setprop(menu, MPROP_EXITNAME, fmt( "\wKapat"));
		menu_setprop(menu,MPROP_NUMBER_COLOR, "\r");
		menu_display(id, menu);
	}
	else
	{
		client_print_color(id, id, "^1[^3%s^1] ^4Sadece Yasayanlar Bu Menuye Girebilir ^1!", tag);
	}
	return PLUGIN_HANDLED;
}

@dmmenu_handler(const id, const menu, const item)
{
	switch(item) 
	{
		case 0: 
		{
			if(TL[id] >= cvar[0])
			{
				TL[id] -= cvar[0];
				// Reapi ile can verirken float yani ondal�kl� olmas� gerekir.
				set_entvar(id, var_health, Float:get_entvar(id, var_health) + 150.0);
				// Stocklar yerine client_print_color kullan.
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 150 HP Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
		}
		case 1: 
		{
			if(TL[id] >= cvar[1])
			{
				TL[id] -= cvar[1];
				// H�z�n silah de�i�ince gitmemesi i�in resetmaxspeed ayarlanmal�.�rnek bir reapi redbull i�inden bulabilirsin.�uan ayarlam�yorum.
				set_entvar(id, var_maxspeed, Float:get_entvar(id, var_maxspeed) + 350.0);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla Hizli Yurume Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
		}
		case 2: 
		{
			if(TL[id] >= cvar[2])
			{
				TL[id] -= cvar[2];
				set_entvar(id, var_takedamage, DAMAGE_NO);
				set_task(10.0, "@GodKapa", id);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla 10 Saniye Godmode Satin Aldin ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Paran Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
		}
		case 3:
		{
			if(TL[id] >= cvar[4])
			{
				TL[id] -= cvar[4];
				set_entvar(id, var_health, 100.0);
				set_entvar(id, var_armorvalue, 100.0);
				client_print_color(id, id, "^1[^3%s^1] ^4Basariyla Can Ve Zirh Yenilendi ^1!", tag);
			}
			else
			{
				client_print_color(id, id, "^1[^3%s^1] ^4Pointin Yeterli Degil ^1!", tag);
				return PLUGIN_HANDLED;
			}
		}
		case 4:
		{
			client_cmd(id, "say /knife");
		}
		default:
		{
			menu_destroy(menu);
			return PLUGIN_HANDLED;
		}
	}

	@dmmenu(id);
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

@GodKapa(const id)
{
	if(!is_user_alive(id)) {
		return;
	}

	set_entvar(id, var_takedamage, DAMAGE_AIM);
	client_print_color(id, id, "^1[^3%s^1]^4 10 Saniyelik Godmode Sona Erdi ^1!", tag);
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
ZIPZINK
Mesajlar: 208
Kayıt: Pzr Eki 10, 2021 10:38 pm

menu yapim

Mesaj gönderen ZIPZINK »

anlaşılmıştır daha dikkatli olacagım

Link:
Linklerini gizle
Linki Kopyala
Cevapla