GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Anlatımlar => Konuyu başlatan: cngznNN - 22 Ağustos 2017, 21:48:26

Başlık: Kişiye özel komut yapmak
Gönderen: cngznNN - 22 Ağustos 2017, 21:48:26
Merhabalar, bu konunun aynısından bulunduğunu biliyorum fakat ben daha detaylı ve daha güzel anlatacağımı düşündüğüm için bu konuyu açma gereğini duydum umarım işinize yarar...


Arkadaşlar ilk önce bir değer belirlememiz gerekiyor. bizim değerimiz bu olsun..

PAWN Kodu: Seç
new Admin[MAX_PLAYERS];

NOT: yukarıdaki admin kısmını istediğiniz gibi değiştirebilirsiniz. MAX_PLAYERS kısmı ise server açıldığı zaman player limiti vardırya hani bu komutun değerini o kadar kullanmanıza işe yarar örneğin: Admin[playerid] = 999;
Fakat bu değer player limitini geçerse hata verir.

şimdi oyuncu girdiğinde bu değerin resetlenmesini istiyorsanız OnPlayerConnect'e

PAWN Kodu: Seç
Admin[playerid] = -1;

kayıtlı olmasını istiyorsanız yorumda belirtin tekrardan mysqlli ve dinili halini anlatırım.

gelelim bu değeri komuta özel yapmaya..

Ben zcmd anlatıcam istek gelirse OnPlayerCommandText'li halinide koyarım.

PAWN Kodu: Seç
CMD:/arepair(playerid, params[])
{
  if(Admin[playerid] == -1)
  return SendClientMessage(playerid, -1, "Bu komutu kullanabilmek için yetkili değilsiniz!");

  if(!IsPlayerInAnyVehicle(playerid))
  return SendClientMessage(playerid, -1, "Bu komutu kullanabilmek için araçta olmalısınız!);

  RepairVehicle(GetPlayerVehicleID(playerid));
  SendClientMessage(playerid, -1, "İçinde bulunduğunuz araç tamir edildi!);

  return 1;
}


Şimdiden kodlardan hata varsa özür dilerim altta belirtirseniz hemen düzeltirim, sağlıcakla kalın!
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Bliss - 22 Ağustos 2017, 23:08:08
Admin == -1 yerine 0 daha sağlıklı olabilir. Fakat güzel anlatım.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: cngznNN - 22 Ağustos 2017, 23:15:10
Alıntı yapılan: lostmode - 22 Ağustos 2017, 23:08:08

Admin == -1 yerine 0 daha sağlıklı olabilir. Fakat güzel anlatım.


Ben genellikle bütün functionlarımda ve değerlerimde varsayılanı -1 olarak atıyorum, alışkanlık  :D :D
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Backup - 22 Ağustos 2017, 23:17:33
Alıntı yapılan: lostmode - 22 Ağustos 2017, 23:08:08

Admin == -1 yerine 0 daha sağlıklı olabilir. Fakat güzel anlatım.

integrer değerler için tamsayı olması yeterli isterse -999999 yapsın değişen bir şey yok.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Bliss - 22 Ağustos 2017, 23:18:37
Alıntı yapılan: _Backup - 22 Ağustos 2017, 23:17:33

Alıntı yapılan: lostmode - 22 Ağustos 2017, 23:08:08

Admin == -1 yerine 0 daha sağlıklı olabilir. Fakat güzel anlatım.

integrer değerler için tamsayı olması yeterli isterse -999999 yapsın değişen bir şey yok.


Bende 0 alışkanlık daha sağlıklı gibi geliyor.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: cngznNN - 22 Ağustos 2017, 23:19:20
Arkadaşlar şimdi şöyle bir durum var adam diyelimki 0'ı varsayılan yapmak istemiyor 0'ıda ayrıca bir level yapmak istiyor bunlar önemli işte o yüzden -1  :evet:
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Lé Spîke - 22 Ağustos 2017, 23:31:53
Umarım birisinin işine yarar  :helal:
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: cngznNN - 22 Ağustos 2017, 23:53:31
Alıntı yapılan: DeliOqlan - 22 Ağustos 2017, 23:31:53

Umarım birisinin işine yarar  :helal:


Umarım indirmeye bıraktım visual studio pawnoyuda anlatıcam.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: FrankTR - 23 Ağustos 2017, 15:20:53
Alıntı yapılan: RPawn - 22 Ağustos 2017, 21:48:26


şimdi oyuncu girdiğinde bu değerin resetlenmesini istiyorsanız OnPlayerConnect'e

PAWN Kodu: Seç
Admin[playerid] = -1;



Bu şekilde sunucuya giren (adminler dahil) herkesi kapsar? Herhangi bir ayrım göremedim?
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: cngznNN - 23 Ağustos 2017, 21:17:52
Alıntı yapılan: FrankTR - 23 Ağustos 2017, 15:20:53

Alıntı yapılan: RPawn - 22 Ağustos 2017, 21:48:26


şimdi oyuncu girdiğinde bu değerin resetlenmesini istiyorsanız OnPlayerConnect'e

PAWN Kodu: Seç
Admin[playerid] = -1;



Bu şekilde sunucuya giren (adminler dahil) herkesi kapsar? Herhangi bir ayrım göremedim?


Yanlış anlamışsınız herkezi admin yapmaz bu değeri kullanacağız şekile bağlı varsayılan değer olarak kastettim orda iyi okuyun lütfen.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Kronos - 24 Ağustos 2017, 11:28:58
Sıkıntılı bir şey gibi duruyor.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: FrankTR - 24 Ağustos 2017, 12:02:55
Alıntı yapılan: RPawn - 23 Ağustos 2017, 21:17:52

Alıntı yapılan: FrankTR - 23 Ağustos 2017, 15:20:53

Alıntı yapılan: RPawn - 22 Ağustos 2017, 21:48:26


şimdi oyuncu girdiğinde bu değerin resetlenmesini istiyorsanız OnPlayerConnect'e

PAWN Kodu: Seç
Admin[playerid] = -1;



Bu şekilde sunucuya giren (adminler dahil) herkesi kapsar? Herhangi bir ayrım göremedim?


Yanlış anlamışsınız herkezi admin yapmaz bu değeri kullanacağız şekile bağlı varsayılan değer olarak kastettim orda iyi okuyun lütfen.



Ben herkesi admin yapar demedim ki asıl siz iyi okuyun!

Bu sunucuya giren herkes için admin değerini (-1) yapar. Dolayısıyla senin komutunun özel yanı kalmaz, herkesin varsayılan değeri (-1) olacağından herkes bu komuttan

PAWN Kodu: Seç

Bu komutu kullanabilmek için yetkili değilsiniz!


mesajını alacaktır. Bunu anlatmaya çalışıyorum.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Jawié - 27 Ağustos 2017, 12:26:44
Alıntı yapılan: FrankTR - 24 Ağustos 2017, 12:02:55
Yanlış anlamışsınız herkezi admin yapmaz bu değeri kullanacağız şekile bağlı varsayılan değer olarak kastettim orda iyi okuyun lütfen.

Ben herkesi admin yapar demedim ki asıl siz iyi okuyun!

Bu sunucuya giren herkes için admin değerini (-1) yapar. Dolayısıyla senin komutunun özel yanı kalmaz, herkesin varsayılan değeri (-1) olacağından herkes bu komuttan
PAWN Kodu: Seç

Bu komutu kullanabilmek için yetkili değilsiniz!


mesajını alacaktır. Bunu anlatmaya çalışıyorum.


Değeri -1 olan herkes bu komutu kullanamaz. Farkındaysan örnek olarak vermiş.

if(Admin[playerid] == -1) return SendClientMessage(playerid, -1, "Bu komutu kullanabilmek için yetkili değilsiniz!");

Bir komut oluşturur ve bu komutla istediği kişinin değişken değerini 0 veya 1 yapar, -1 dışında herhangi bir sayı yani.

Fakat bunu yapacağına nicke özel yapsın daha iyi. Değişken kullanmak anlamsız burada.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: FrankTR - 27 Ağustos 2017, 12:32:45
Alıntı yapılan: Jawié - 27 Ağustos 2017, 12:26:44

Alıntı yapılan: FrankTR - 24 Ağustos 2017, 12:02:55
Yanlış anlamışsınız herkezi admin yapmaz bu değeri kullanacağız şekile bağlı varsayılan değer olarak kastettim orda iyi okuyun lütfen.

Ben herkesi admin yapar demedim ki asıl siz iyi okuyun!

Bu sunucuya giren herkes için admin değerini (-1) yapar. Dolayısıyla senin komutunun özel yanı kalmaz, herkesin varsayılan değeri (-1) olacağından herkes bu komuttan
PAWN Kodu: Seç

Bu komutu kullanabilmek için yetkili değilsiniz!


mesajını alacaktır. Bunu anlatmaya çalışıyorum.


Değeri -1 olan herkes bu komutu kullanamaz. Farkındaysan örnek olarak vermiş.

if(Admin[playerid] == -1) return SendClientMessage(playerid, -1, "Bu komutu kullanabilmek için yetkili değilsiniz!");

Bir komut oluşturur ve bu komutla istediği kişinin değişken değerini 0 veya 1 yapar, -1 dışında herhangi bir sayı yani.

Fakat bunu yapacağına nicke özel yapsın daha iyi. Değişken kullanmak anlamsız burada.



Ben de o komutun oluşturulması gerektiğini anlatmaya çalışıyorum. Bu haliyle eksik kalacaktır.

Nicke özel yaparken Enum mu kullanmak gerekir? Merak ettiğimden soruyorum
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Jawié - 27 Ağustos 2017, 12:48:51
Alıntı yapılan: FrankTR - 27 Ağustos 2017, 12:32:45
Ben de o komutun oluşturulması gerektiğini anlatmaya çalışıyorum. Bu haliyle eksik kalacaktır.

Nicke özel yaparken Enum mu kullanmak gerekir? Merak ettiğimden soruyorum


Hayır gerekmiyor. Enumun görevi farklı. (http://wiki.sa-mp.com/wiki/Keywords:Initialisers#enum)
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Lé Spîke - 28 Ağustos 2017, 00:27:42
Alıntı yapılan: Jawié - 27 Ağustos 2017, 12:48:51

Alıntı yapılan: FrankTR - 27 Ağustos 2017, 12:32:45
Ben de o komutun oluşturulması gerektiğini anlatmaya çalışıyorum. Bu haliyle eksik kalacaktır.

Nicke özel yaparken Enum mu kullanmak gerekir? Merak ettiğimden soruyorum


Hayır gerekmiyor. Enumun görevi farklı. (http://wiki.sa-mp.com/wiki/Keywords:Initialisers#enum)


Nicke özel nasıl yapılır? Anlatır mısın
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Backup - 28 Ağustos 2017, 01:53:41
Alıntı yapılan: DeliOqlan - 28 Ağustos 2017, 00:27:42

Alıntı yapılan: Jawié - 27 Ağustos 2017, 12:48:51

Alıntı yapılan: FrankTR - 27 Ağustos 2017, 12:32:45
Ben de o komutun oluşturulması gerektiğini anlatmaya çalışıyorum. Bu haliyle eksik kalacaktır.

Nicke özel yaparken Enum mu kullanmak gerekir? Merak ettiğimden soruyorum


Hayır gerekmiyor. Enumun görevi farklı. (http://wiki.sa-mp.com/wiki/Keywords:Initialisers#enum)


Nicke özel nasıl yapılır? Anlatır mısın

Komuta ekle şunu
PAWN Kodu: Seç
new name[24];
GetPlayerName(playerid,name,24);
if(!strcmp(name,"Nicki yaz buraya",true)) return SendClientMessage(playerid,-1,"Hebele hübele");
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: FelleR - 27 Haziran 2019, 01:38:46
Yararlı.
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: Rylox - 26 Mart 2021, 13:39:56
dini halini anlatırmısın lütfen
Başlık: Ynt: Kişiye özel komut yapmak
Gönderen: No-Name - 03 Nisan 2021, 05:31:52
Alıntı yapılan: Lé Spîke - 28 Ağustos 2017, 00:27:42
Alıntı yapılan: Jawié - 27 Ağustos 2017, 12:48:51
Alıntı yapılan: FrankTR - 27 Ağustos 2017, 12:32:45
Ben de o komutun oluşturulması gerektiğini anlatmaya çalışıyorum. Bu haliyle eksik kalacaktır.

Nicke özel yaparken Enum mu kullanmak gerekir? Merak ettiğimden soruyorum

Hayır gerekmiyor. Enumun görevi farklı. (http://wiki.sa-mp.com/wiki/Keywords:Initialisers#enum)

Nicke özel nasıl yapılır? Anlatır mısın
stock ReturnName(playerid)
{
   new oyuncuName[MAX_PLAYER_NAME];
   GetPlayerName(playerid, oyuncuName, MAX_PLAYER_NAME);
   return oyuncuName;
}
CMD:kisiyeozel(playerid, params[])
{
  new ismin[24];
  if(sscanf(params, "s", ismin)) return SendClientMessage(playerid, -1, "Kullanım: /kisiyeozel [ismin]");
  new isim2[24];
  foreach(new i: Player)
  {
   format(isim2, sizeof(isim2), "%s", ReturnName(i));
   if(isequal(ismin, isim2)) return SendClientMessage(playerid, -1, "Selam nasılsın?");
  }
 return 1;
}
foreach ve isequal kullanılarak yapılabilir sanki