Birçok kişi enum kullanımını bilmiyor. Bunun kısa bir kullanımını göstereceğiz.
Enum u kullanarak sabit yazı değerinden yazı çekeceğiz.
Enum u kullanarak sabit yazı değerinden yazı çekeceğiz.
Enum:
#include <amxmodx>
//Enum ile birçok şey yapılabilir. Burayı okuyabilirsiniz. https://forums.alliedmods.net/showthread.php?t=140103
//Ben burada sadece basit bir kullanımını göstereceğim.
//Öncelikle enum komudumuzu kullanıyoruz. _: etiketimizin adı
//Oluşturduğumuz değerler de bu etiketin sabit değişkenidir. (İstediğiniz adı verebilirsiniz)
enum _:SilahIsimleri {
USP,
GLOCK,
GUZELM4A1,
RUSKELESI,
KELLEKESICIAWP,
CSDURAGIBICAGI,
ODIN
};
//Ardından bu sabitleri kullanabileceğimiz bir sabit yazı değişkeni oluşturalım.
// İlk değerine deminki oluşturduğumuz etiketi yazıyoruz. Sabit değerler kadar değişken oluşturuyor.
// İkinci değeri boş bırakabiliriz. Yazıların maksimum karakter sayısını belirliyor.
new const szSilahIsimleri[SilahIsimleri][] = {
"USP",
"glock",
"m4a1",
"ak47",
"awp",
"knife",
"m249"
};
//Şimdi oluşturduğumuz sabitlerden değer çekme vakti.
public SilahIsminiSoyle(pPlayer) {
//Bana M4A1 'in ismini vermesini istiyorum. Bu yüzden szSilahIsimleri[M4A1] şeklinde kullanacağım.
//Sabit yazı değeri[Kullandığımız enum sabiti]
//Bir yazı değeri vereceği için %s kullanıyoruz.
client_print_color(0, 0, "%s", szSilahIsimleri[GUZELM4A1]);
//Peki birçok değer arasında bazılarının isimlerini vereceğim nasıl olacak?
//Bunu yapmak için döngü oluşturacağız.
// Birinci değere değer oluşturun ve hangi itemden başlayacağını ayarlayın.
// İkinci değere ise hangi itemle sona ereceğini ayarlayın
// Üçüncü değere ise oluşturduğunuz değeri sona kadar ilerletin.
// <= yaparsanız sonuncu dahil olur < yaparsanız sonuncu dahil olmaz.
for(new i = GUZELM4A1; i <= ODIN; i++) {
//Şimdi m4a1 ile m249 arasındaki silahların isimlerini vereceğiz.
// Sabit yazı değeri[Kullandığımız enum sabiti] kullanıyorduk. Enum sabitini i değerine atadık.
// Sabit değer yerine i değerini kullanacağız.
client_print_color(0, 0, "%s", szSilahIsimleri[i]);
}
//Eğer sırasıyla değilse, örneğin usp, m4a1 ve odin vermek istiyorsanız ayrı ayrı yazabilirsiniz.
client_print_color(pPlayer, pPlayer, "%s", szSilahIsimleri[USP]);
client_print_color(pPlayer, pPlayer, "%s", szSilahIsimleri[GUZELM4A1]);
client_print_color(pPlayer, pPlayer, "%s", szSilahIsimleri[ODIN]);
}