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;
}
6 Yorumlar
OnPlayerCommandText e birden fazla komut ekleyemiyor muyuz ? denedim ama yapamadım
YanıtlaSilEkleyebilirsin, 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.
Silpublic 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;
}
ş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ıtlaSilParantez kapatmayı unutmuş olabilirsin. Modu derledikten sonra hata alıyor musun?
SilHayır, hata almıyorum.
YanıtlaSilSol taraftaki iletişim kısmından pastebin gibi sitelere OnPlayerCommandText'i yapıştırıp gönderirsen yardımcı olabilirim.
SilYorum 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!