Tek Kullanımlık Komut Yapımı

Tek kullanımlık komut nasıl yapılır? Bu makaledeki talimatlar, sunucunuza giren oyuncuların herhangi bir komutu oyundan çıkana kadar yalnızca bir kez kullanmasını, ikinci kez denediğinde hata mesajı ile karşılaşmasını sağlar.

Bu makalede şunlar yer alıyor:
  • Oyuncunun bir komutu sadece bir kere kullanmasını sağlamak
  • Bir kullanımlık komutların kullanılabileceği yerler
  • Tek seferlik komut kullanımının faydaları
İlk olarak oyuncunun herhangi bir komutu sadece bir kez kullanmasını sağlamak için neler yapılması gerektiğini inceleyeceğiz.

Tek Kullanımlık Komut Nasıl Yapılır?

Bir komutu birden fazla kez kullanılmasını engellemek için ilk olarak aşağıdaki değişkeni modun başına ekleyin. Bu değişkenin değeri bütün değerler için varsayılan olarak sıfırdır fakat oyuncu girip komutu kullandıkça o oyuncunun kimliğine göre değişkenin değeri de değişecektir.

new m4a1alalim[MAX_PLAYERS];

Değişkeni tanımladıktan sonra ikinci kez kullanılmasını engellemek istediğimiz komuta geçiyoruz. Örneğin "/m4a1" komutunu ele alalım. Bu komut sunucunuza giren oyuncular tarafından yalnızca bir sefer kullanılabilsin, ikinci bir kez kullanılmaya denendiğinde hata versin. Bunu sağlamak için komutun işlevlerinin hemen sonuna oyuncu kimliğini seçmemiz ve seçtiğimiz değeri "1" olarak değiştirmemiz gerekiyor.

CMD:m4a1(playerid, params[])
{
if(m4a1alalim[playerid] == 1) return SendClientMessage(playerid, -1, "Komutu zaten kullanmışsınız."); // Eğer zaten almışsa bir daha alamaz.
GivePlayerWeapon(playerid, 31, 15000);
m4a1alalim[playerid] = 1;
return 1;
}


Tavsiye Yazı: OnPlayerCommandText nasıl kullanılır?

Yukarıdaki komutta m4a1alalim değişkenin değeri 1 olarak değiştirildi. Komutun başında da bir şart bağlandı ve şart karşılandığında hata mesajı verilmesi için dönüş değerinde küçük bir değişiklik yapıldı. Burada oyuncu değişkeni (PVar / Player Variable / Oyuncu Değişkeni) yerine genel değişken kullanıldığından oyuncu çıkar ve onun yerine başka bir oyuncu girerse o oyuncu da komutu kullanmış sayılacaktır.

Peki, bunun olmaması için ne yapmamız gerekiyor? Oyuncu girişinde çağrılan OnPlayerConnect'e gitmek ve değişken değerini sıfırlamak gerekiyor. Aşağıdaki komutu OnPlayerConnect'e eklediğinizde oyuna giren herkesin değeri otomatik olarak sıfırlanacaktır.

m4a1alalim[playerid] = 0;

Burada küçük bir sorunumuz var. Değişken değeri kaydedilmediğinden oyuncu sunucunuza çıkıp yeniden girdiğinde komutu tekrar kullanabiliyor. Bu sorunla karşılaşmamak için değişkeni oyun modunuzun kayıt sistemine göre kaydetmeniz gerekiyor. MySQL, Dini, Y_INI gibi kayıt sistemlerinden hangisini kullandığınıza bağlı olarak kayıt aşamaları farklılık gösterebilir. Pawn'a dair hiçbir şekilde bilgi sahibi değilseniz "skor" veya "para" gibi değerlerin nasıl kaydedildiğini takip ederek değişkeni nasıl kaydedebileceğinizi öğrenebilirsiniz.

Tek Kullanımlık Komut Nerelerde Kullanılır?

Tek seferlikle sınırlanan komutların nerede kullanılacağı tamamen oyun modunun geliştiricisine bağlıdır ancak oyun modundaki bir komut, örneğin kullanan oyuncuya para veren bir komut olabilir, sunucunuzu zor bir duruma sokabilecek kadar tehlikeli ise o komutu yukarıdaki adımları takip ederek düzenlemeniz iyi bir fikir olabilir çünkü oyuncular sürekli para alarak sunucunuzun ekonomisinin altını üstüne getirebilir ve bu da size uzun veya kısa fark etmeksizin genel bir vadede oyuncu kaybettirir.

Bir kez kullanılabilen komutları kullanmak size birçok yönden yardımcı olabilir. Örneğin yılbaşı gibi özel günlerde oyunculara hediye dağıtmak için tek seferlikle sınırlı komutları kullanabilirsiniz.

Yorum Gönder

0 Yorumlar