OnPlayerCommandText Kullanımı ve Örnekleri

OnPlayerCommandText Kullanımı ve Örnekleri

OnPlayerCommandText genellikle komut yapımlarında kullanılır. En basitinden /can veya /zirh komutları bu callback ile yapılır. Bir komut yapmak için strcmp fonksiyonunu ve if döngüsünü kullanacağız.

OnPlayerCommandText Kullanımı:

OnPlayerCommandText callbackine hiçbir şey eklenmeden önceki hali aşağıdaki gibidir.

public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}


Bunun içerisini oyuncu komut kullandığınızda olacaklar ile doldururuz. Örnek olarak bir /can komutu yapalım. Bunun için if döngüsü ve strcmp fonksiyonunu kullanacağız.

public OnPlayerCommandText(playerid, cmdtext[])
{

if(strcmp("/can", cmdtext, true))
{
SetPlayerHealth(playerid, 100);
SendClientMessage(playerid, -1, "Bedava can aldınız.");
return 1;
}
return 0;
}

Yukarıda oyuncu /can yazdığında oyuncuya bedava can verip yanında da bedava can aldığına dair bilgilendirme mesajı gönderdik.

OnPlayerCommandText Örnekleri:

Aşağıdaki örnekte oyuncu /cz yazdığında hem can hem de zırh alır.

public OnPlayerCommandText(playerid, cmdtext[])
{

if(strcmp("/cz", cmdtext, true))
{
SetPlayerHealth(playerid, 100);
SetPlayerArmour(playerid, 100);
SendClientMessage(playerid, -1, "Bedava can ve zırhaldınız.");
return 1;
}
return 0;
}

Aşağıdaki örnekte oyuncu /quit2 yazdığında oyundan atılır.

public OnPlayerCommandText(playerid, cmdtext[])
{

if(strcmp("/quit2", cmdtext, true))
{
Kick(playerid);
return 1;
}
return 0;
}

Aşağıdaki örnekte oyuncu /skorum yazdığında karşısına skoru çıkar.

public OnPlayerCommandText(playerid, cmdtext[])
{

if(strcmp("/skorum", cmdtext, true))
{
new skors[80];
format(skors, sizeof(skors), "Skorunuz: %d", GetPlayerScore(playerid));
SendClientMessage(playerid, -1, skors);
return 1;
}
return 0;
}

Yorum Gönder

6 Yorumlar

  1. OnPlayerCommandText e birden fazla komut ekleyemiyor muyuz ? denedim ama yapamadım

    YanıtlaSil
    Yanıtlar
    1. Ekleyebilirsin, komutta bir sınırlama yok. Biz burada oyuncunun kullandığı komutun ne olduğunu bulmak için strcmp fonksiyonunu kullanıyoruz. Bunda bir sınırlama yok. Örnek olması açısından aşağıya iki adet komut ekliyorum.

      public OnPlayerCommandText(playerid, cmdtext[])
      {
      if(!strcmp(cmdtext, "/komutlar"))
      {
      SendClientMessage(playerid, -1, "Daha ayrıntılı yardım almak için '/yardim' komutunu kullanın.");
      return 1;
      }
      if(!strcmp(cmdtext, "/yardim"))
      {
      SendClientMessage(playerid, -1, "Daha ayrıntılı yardım almak için '/komutlar' komutunu kullanın.");
      return 1;
      }
      return 0;
      }

      Sil
  2. şu en üstteki can ve zırh fulleme komutunu ekledim, /cz yazdığımda unkown command diyor, başka ne yazarsam yazayım cz kullanmışım gibi davranıyor. /31, /52, /asdasdas veya ne yazarsam yazayım oluyor ama /cz yazınca olmuyor.

    YanıtlaSil
    Yanıtlar
    1. Parantez kapatmayı unutmuş olabilirsin. Modu derledikten sonra hata alıyor musun?

      Sil
  3. Yanıtlar
    1. Sol taraftaki iletişim kısmından pastebin gibi sitelere OnPlayerCommandText'i yapıştırıp gönderirsen yardımcı olabilirim.

      Sil

Yorum yapmak için Google hesabına veya bir web sitesine ihtiyacınız yoktur. Kimlik seçme bölümündeki varsayılan değeri "Adı/URL" olarak seçebilir, isminizi yazdıktan sonra "Devam" butonuna tıklamanız yeterlidir. Sizlere gösterdiğimiz minik adımların arkasından yorumunuzu yazmaya başlayabilirsiniz. İçeriğimizle ilgili yorumunuzu yaptıktan sonra "Yayınla" butonuna basmayı unutmayın!