1. sayfa (Toplam 3 sayfa)

menu yapim

Gönderilme zamanı: Cmt Kas 13, 2021 7:18 pm
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

menu yapim

Gönderilme zamanı: Cmt Kas 13, 2021 8:52 pm
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);
}

menu yapim

Gönderilme zamanı: Cmt Kas 13, 2021 9:14 pm
gönderen ZIPZINK
teşekkür ederim zamanla öğrenicez inşallah

menu yapim

Gönderilme zamanı: Cmt Kas 13, 2021 9:15 pm
gönderen ZIPZINK
kill başına para vermeyi ayarlayabilirmiyiz rica etsem

menu yapim

Gönderilme zamanı: Cmt Kas 13, 2021 9:34 pm
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);
}

menu yapim

Gönderilme zamanı: Cmt Kas 13, 2021 10:17 pm
gönderen ZIPZINK
konu kilit eyw

menu yapim

Gönderilme zamanı: Pzr Kas 14, 2021 2:29 am
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);
}

menu yapim

Gönderilme zamanı: Pzr Kas 14, 2021 3:59 pm
gönderen ZIPZINK
eklentiye bişi ekledim ama hata alıyorum nerde yanlıs yaptım
@orucoglukayra

menu yapim

Gönderilme zamanı: Pzr Kas 14, 2021 4:17 pm
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);
}

menu yapim

Gönderilme zamanı: Pzr Kas 14, 2021 4:33 pm
gönderen ZIPZINK
anlaşılmıştır daha dikkatli olacagım