GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: VERITAS - 27 Nisan 2020, 22:26:54

Başlık: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 22:26:54
Merhabalar,

Bir dialog listesi hazırlamak istedim ve bu liste kişinin araçları hakkında bir liste.
Öncelikle kişi /araclarim yazarak sahip olduğu araçların listesine ulaşıyor.  Bu listeyi hazırlamaya başarabildim fakat şöyle bir şey daha yapmak istiyorum. Atıyorum kişinin araçları sıralandı listede fakat kişi listeden bir tanesini seçerek o aracı yanına spawnlamak istiyor fakat bunun için case kısmına geldiğimde listedeki seçtiği sıranın hangisi olduğu daha doğrusu hangi aracı seçtiğini tam olarak nasıl ayırt edebileceğim?

PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
new count, bigstring[500], string[100];
for(new idx = 1; idx <= TOTAL_ARAC; idx++)
{
if(!strcmp(Araclar[idx][AracSahibi], Player[playerid][Name], true, 24))
{
count++;
format(string, sizeof(string), "Araç NO:[%d]\t[%s]\t[%s]\n", Araclar[idx][AracID], Araclar[idx][AracSahibi], Araclar[idx][AracPlaka]);
                strcat(bigstring, string);
SetPVarInt(playerid, "Arac1", idx);
}
}
        if(count > 0) ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", bigstring, "Tamam", "Çıkış");
else SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");
return 1;
}

SetPVarInt ve GetPVarInt kullanmayı denedim ama tam olarak bu iki fonksiyonu kavrayamadığımdan ötürü net bir şeye ulaşamadım. Bu konu hakkında bilgisi olan arkadaşlar yardımcı olursa çok mutlu olurum. Herkese iyi forumlar dilerim.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Buzz - 27 Nisan 2020, 22:31:39
Araç sahibini neden isimde tuttunuz? Kişi isim değişirse sistemde sorunlara yol açacaktır.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 22:33:52
Alıntı yapılan: Buzz - 27 Nisan 2020, 22:31:39
Araç sahibini neden isimde tuttunuz? Kişi isim değişirse sistemde sorunlara yol açacaktır.

Haklısınız ama bunun için ayrı bir fonksiyon kullanabiliriz belki;

Mesela kişi isim değiştirdiğinde eğer bir araca sahipse sorgusunu yöneltip ardından eğer varsa bu araçların hepsinin sahibindeki isim kısmının ismini yeni isimle güncelletebiliriz diye düşündüm sonradan. Aslında isimden ziyade sanırsam kullanıcının SQLID'sini kaydetmek daha doğru ve pratik olacaktır. @Buzz
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 27 Nisan 2020, 22:36:30
Şöyle yapabilirsin;

Örnek veriyorum şöyle bir değişken hazırla;

PAWN Kodu: Seç
PlayerData[playerid][pAraclar][5]
Sonra bir döngü oluştur;

PAWN Kodu: Seç
for(new i = 0, j = 0; i < MAX_ARACLAR; i++)
{
    if(CarData[i][carOwner] == PlayerData[playerid][pID])
    {
        PlayerData[playerid][pAraclar][j] = CarData[i][carVehicle];
        j++;
    }
}

Burada döngünün içerisinde öncelikle araç oyuncuya ait mi diye arattık oyuncuya ait ise pAraclar'ın içerisine aracın idsini koyduk. j'nin değeri 0 ve pAraclar dizisine göre ayarlanıyor. Her araç bulunduğunda da j'nin değeri artıyor. Böyle bir şey yaparak kendi moduna göre hazırlayabilirsin.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 22:38:36
@Metafor yorum için çok teşekkürler hemen moduma göre uyarlayacağım birazdan. Gelişmeleri buraya yazarım. İyi forumlar.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 27 Nisan 2020, 22:39:25
Bu arada dialog listesinde aracı seçtiğinde mesele şöyle yapabilirsin örnek veriyorum aracın vwsini değiştireceksin ya;

SetVehicleVirtualWorld(PlayerData[playerid][pAraclar][listitem], 0);
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 23:15:19
Şöyle bir hata ile karşılaştım.

(https://cdn.discordapp.com/attachments/585779360888389632/704425028552228894/unknown.png)

PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
    new bigstring[500], string[100];
for(new i = 0, j = 0; i < MAX_ARAC; i++)
{
if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name], true, 24))
{
    format(string, sizeof(string), "Araç NO:[%d]\t[%s]\t[%s]\n", Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
            strcat(bigstring, string);
Player[playerid][pAraclar][j] = Araclar[i][AracID];
j++;
}
if(j > 0) ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", bigstring, "Tamam", "Çıkış");
else SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");
}
return 1;
}

Komutu her çalıştırdığımda Server:Unknown Command hatası alıyorum fakat işlevini görüyor fakat bu sefer işlevini görürken de gelen tablistte tabloda sıraya ilkinden başlamıyor ve [] şeklinde yazılar çıkıyor. Tam olarka nerede hata yaptım acaba?
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 23:17:34
PAWN Kodu: Seç
case 230:
{
     new id, id2, id3;
if(response)
{
switch(listitem)
{
case 0:
{
                       id = AddStaticVehicleEx(Araclar[Player[playerid][pAraclar][0]][AracModel], Araclar[Player[playerid][pAraclar][0]][AracX], Araclar[Player[playerid][pAraclar][0]][AracY], Araclar[Player[playerid][pAraclar][0]][AracZ], Araclar[Player[playerid][pAraclar][0]][AracAngle], Araclar[Player[playerid][pAraclar][0]][AracRenk1], Araclar[Player[playerid][pAraclar][0]][AracRenk2], -1);
                       SetVehicleNumberPlate(Araclar[Player[playerid][pAraclar][0]][AracID], Araclar[Player[playerid][pAraclar][0]][AracPlaka]);
                       SetVehicleToRespawn(Araclar[Player[playerid][pAraclar][0]][AracID]);
format(String, 128, "Aracınızın id'si %d olarak belirlenmiştir.", id);
SendClientMessage(playerid, -1, String);
}
case 1:
{
                       id2 = AddStaticVehicleEx(Araclar[Player[playerid][pAraclar][1]][AracModel], Araclar[Player[playerid][pAraclar][1]][AracX], Araclar[Player[playerid][pAraclar][1]][AracY], Araclar[Player[playerid][pAraclar][1]][AracZ], Araclar[Player[playerid][pAraclar][1]][AracAngle], Araclar[Player[playerid][pAraclar][1]][AracRenk1], Araclar[Player[playerid][pAraclar][1]][AracRenk2], -1);
                       SetVehicleNumberPlate(Araclar[Player[playerid][pAraclar][1]][AracID], Araclar[Player[playerid][pAraclar][1]][AracPlaka]);
                       SetVehicleToRespawn(Araclar[Player[playerid][pAraclar][1]][AracID]);
format(String, 128, "Aracınızın id'si %d olarak belirlenmiştir.", id2);
SendClientMessage(playerid, -1, String);
}
case 2:
{
                       id3 = AddStaticVehicleEx(Araclar[Player[playerid][pAraclar][2]][AracModel], Araclar[Player[playerid][pAraclar][2]][AracX], Araclar[Player[playerid][pAraclar][2]][AracY], Araclar[Player[playerid][pAraclar][2]][AracZ], Araclar[Player[playerid][pAraclar][2]][AracAngle], Araclar[Player[playerid][pAraclar][2]][AracRenk1], Araclar[Player[playerid][pAraclar][2]][AracRenk2], -1);
                       SetVehicleNumberPlate(Araclar[Player[playerid][pAraclar][2]][AracID], Araclar[Player[playerid][pAraclar][2]][AracPlaka]);
                       SetVehicleToRespawn(Araclar[Player[playerid][pAraclar][2]][AracID]);
format(String, 128, "Aracınızın id'si %d olarak belirlenmiştir.", id3);
SendClientMessage(playerid, -1, String);
Bu da hazırladığım dialogun bir başka parçası. Şöyle düşündüm ben. Aracı kişi kendi spawnlasın yani direkt sunucu açıldığında yükletmedim araçları. Tek tek kullanıcının komutuyla spawnlatmasını istedim. @Metafor
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 23:22:38
Şu an dediğiniz gibi VW değiştirmesi ile spawnlama yöntemini yapmaya karar verdim. Daha mantıklı geldi. Kodları ona göre düzenleyeceğim fakat komutu kulalndığımda neden hata aldım anlamadım.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 27 Nisan 2020, 23:29:10
string'in boyutunu büyüt ve bigstring'i sil ve yaptığım şeyi dene.
Ek olarak aracı oyuncuların oluşturmasını yapma çünkü araçlar buga girer onun yerine araçların vwsini değiştir. Neden boş değer gösteriyor bilmiyorum yaptığımı deneyebilirsin.

PAWN Kodu: Seç
format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 27 Nisan 2020, 23:30:56
Not;

PAWN Kodu: Seç
if(j > 0) ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", bigstring, "Tamam", "Çıkış");
else SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");

Bunu döngünün içerisinden çıkart, her döngüde bu işlemi yaptırma.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 23:31:57
Alıntı yapılan: Metafor - 27 Nisan 2020, 23:30:56
Not;

PAWN Kodu: Seç
if(j > 0) ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", bigstring, "Tamam", "Çıkış");
else SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");

Bunu döngünün içerisinden çıkart, her döngüde bu işlemi yaptırma.

Alıntı yapılan: Metafor - 27 Nisan 2020, 23:29:10
string'in boyutunu büyüt ve bigstring'i sil ve yaptığım şeyi dene.
Ek olarak aracı oyuncuların oluşturmasını yapma çünkü araçlar buga girer onun yerine araçların vwsini değiştir. Neden boş değer gösteriyor bilmiyorum yaptığımı deneyebilirsin.

PAWN Kodu: Seç
format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);

Şimdi deniyorum hemen.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 27 Nisan 2020, 23:32:46
Alıntı yapılan: VERITAS - 27 Nisan 2020, 23:31:57
Alıntı yapılan: Metafor - 27 Nisan 2020, 23:30:56
Not;

PAWN Kodu: Seç
if(j > 0) ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", bigstring, "Tamam", "Çıkış");
else SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");

Bunu döngünün içerisinden çıkart, her döngüde bu işlemi yaptırma.

Alıntı yapılan: Metafor - 27 Nisan 2020, 23:29:10
string'in boyutunu büyüt ve bigstring'i sil ve yaptığım şeyi dene.
Ek olarak aracı oyuncuların oluşturmasını yapma çünkü araçlar buga girer onun yerine araçların vwsini değiştir. Neden boş değer gösteriyor bilmiyorum yaptığımı deneyebilirsin.

PAWN Kodu: Seç
format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);

Şimdi deniyorum hemen.

Dialog'un bigstring değerini de string olarak değiştirmeyi unutma.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 23:37:43
@Metafor, sistem güzel çalışmakta fakat her komutu kullandığımda hala Server: Unknown Command hatasını almaktayım.

PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
    new string[500];
for(new i = 0, j = 0; i < MAX_ARAC; i++)
{
if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name], true, 24))
{
    format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
        ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");
Player[playerid][pAraclar][j] = Araclar[i][AracID];
j++;
}
}
return 1;
}
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 27 Nisan 2020, 23:40:31
for döngüsünün içerisinde yani for döngüsünün süslü parantezleri içerisinde dialog göstermeye çalışıyorsun, o süslü parantezler içerisinde dialog göstermeye çalışırsan tabiki hata verir.


PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
    new string[500];
for(new i = 0, j = 0; i < MAX_ARAC; i++)
{
if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name], true, 24))
{
    format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
Player[playerid][pAraclar][j] = Araclar[i][AracID];
j++;
}
}

ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");

return 1;
}
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 27 Nisan 2020, 23:58:35
For döngüsünün içerisinde dialog göstermemek gerektiğini şimdi öğrendim. :) Teşekkürler.

Saygıdeğer @Metafor 'a teşekkürler. Gösterdiği yollar ile sorun çözülmüştür. K/A.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 00:09:02
Alıntı yapılan: Metafor - 27 Nisan 2020, 23:40:31
for döngüsünün içerisinde yani for döngüsünün süslü parantezleri içerisinde dialog göstermeye çalışıyorsun, o süslü parantezler içerisinde dialog göstermeye çalışırsan tabiki hata verir.


PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
    new string[500];
for(new i = 0, j = 0; i < MAX_ARAC; i++)
{
if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name], true, 24))
{
    format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
Player[playerid][pAraclar][j] = Araclar[i][AracID];
j++;
}
}

ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");

return 1;
}

Gözümden kaçan bir detay kalmış bunları yapmama rağmen tekrardan Server: Unknown Command hatası aldım. @Metafor
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Amper - 28 Nisan 2020, 01:36:38
Loop içerisinde dialog gösterirseniz komut işleyişi bozulmaz sadece dialog loop içerisinde döndüğü kadar kişiye gösterilir. Hata verir düşüncesi yanlış ve kodlama tarzınızda tabsizeye dikkat etmenizi öneririm.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 28 Nisan 2020, 01:44:25
Alıntı yapılan: VERITAS - 28 Nisan 2020, 00:09:02
Alıntı yapılan: Metafor - 27 Nisan 2020, 23:40:31
for döngüsünün içerisinde yani for döngüsünün süslü parantezleri içerisinde dialog göstermeye çalışıyorsun, o süslü parantezler içerisinde dialog göstermeye çalışırsan tabiki hata verir.


PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
    new string[500];
for(new i = 0, j = 0; i < MAX_ARAC; i++)
{
if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name], true, 24))
{
    format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
Player[playerid][pAraclar][j] = Araclar[i][AracID];
j++;
}
}

ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");

return 1;
}

Gözümden kaçan bir detay kalmış bunları yapmama rağmen tekrardan Server: Unknown Command hatası aldım. @Metafor


Komutu girdikten sonra server paneline bir göz at ordan bir hata veriyormu diye.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 01:46:26
@Metafor, server panelinden herhangi bir hata vermiyor maalesef.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Amper - 28 Nisan 2020, 01:48:25
Pawno klasörü içerisinde pawn.cfg diye bir dosya yaratıp içerisine -d3 yaz ve ardından tekrar compile edip komutu dene. Eğer konsola herhangi bir hata yazdırırsa buraya yolla.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 01:49:57
Alıntı yapılan: Amper - 28 Nisan 2020, 01:48:25
Pawno klasörü içerisinde pawn.cfg diye bir dosya yaratıp içerisine -d3 yaz ve ardından tekrar compile edip komutu dene. Eğer konsola herhangi bir hata yazdırırsa buraya yolla.

Hayır derleme sonucunda herhangi bir hataya rastlamadım.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Amper - 28 Nisan 2020, 01:52:10
Sunucuda komutu deneyin ve o şekilde sunucu konsoluna bakın. Compiler hatalarından bahsetmiyorum.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 01:53:11
Alıntı yapılan: Amper - 28 Nisan 2020, 01:52:10
Sunucuda komutu deneyin ve o şekilde sunucu konsoluna bakın. Compiler hatalarından bahsetmiyorum.

Aynı şekilde onu da kontrol ettim ve herhangi bir değişiklik olmadı. Durum aynı.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 28 Nisan 2020, 01:59:45
Bilmiyorum belki bundan kaynaklımıdır ama, eğer döngünün içerisindeki arac değeri boş ise array index of bount gibi bir hata verir fakat sen bir hata vermediğini söylüyorsun.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 02:00:26
Alıntı yapılan: Metafor - 28 Nisan 2020, 01:59:45
Bilmiyorum belki bundan kaynaklımıdır ama, eğer döngünün içerisindeki arac değeri boş ise array index of bount gibi bir hata verir fakat sen bir hata vermediğini söylüyorsun.

Evet hiçbir hata vermemekle beraber sunucu içerisinde komutu kullanınca Server: Unknown Command diyor garip bir şekilde.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Amper - 28 Nisan 2020, 02:05:09
PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
new string[500], i, j;
for(i = 0; i < MAX_ARAC; i++)
{
if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name]))
{
format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n", string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
Player[playerid][pAraclar][j] = Araclar[i][AracID];
j++;
}
}

ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");
return 1;
}

Hatada farklılık olmayabilir fakat daha temiz bir kod haline getirdim yine de dene derim.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 02:06:11
Alıntı yapılan: Amper - 28 Nisan 2020, 02:05:09
PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
 new string[500], i, j;
 for(i = 0; i < MAX_ARAC; i++)
 {
 if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name]))
 {
 format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n", string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
 Player[playerid][pAraclar][j] = Araclar[i][AracID];
 j++;
 }
 }

 ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");
 return 1;
}

Hatada farklılık olmayabilir fakat daha temiz bir kod haline getirdim yine de dene derim.

Hemen deniyorum.

Edit: Bir değişiklik yok hala aynı durum. @Amper
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Amper - 28 Nisan 2020, 02:11:38
Alıntı yapılan: VERITAS - 28 Nisan 2020, 02:06:11
Alıntı yapılan: Amper - 28 Nisan 2020, 02:05:09
PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
 new string[500], i, j;
 for(i = 0; i < MAX_ARAC; i++)
 {
 if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name]))
 {
 format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n", string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
 Player[playerid][pAraclar][j] = Araclar[i][AracID];
 j++;
 }
 }

 ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");
 return 1;
}

Hatada farklılık olmayabilir fakat daha temiz bir kod haline getirdim yine de dene derim.

Hemen deniyorum.

Edit: Bir değişiklik yok hala aynı durum. @Amper

O halde bunu baştan yapılandıralım.

Bir araç yaratıldığında sahip bilgisi gibi şeyler anında veritabanında güncelleniyor öyle değil mi? Eğer böyleyse veritabanında dialog üzerinde görüntülenecek sütünların isimlerini buraya yazar mısın?
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 03:42:42
Alıntı yapılan: Amper - 28 Nisan 2020, 02:11:38
O halde bunu baştan yapılandıralım.

Bir araç yaratıldığında sahip bilgisi gibi şeyler anında veritabanında güncelleniyor öyle değil mi? Eğer böyleyse veritabanında dialog üzerinde görüntülenecek sütünların isimlerini buraya yazar mısın?

AracID, AracSahibi, AracPlaka

Dialog üzerinde gözüken ve veritabanından bulunan sütunlar bunlar. @Amper

Bu arada dialog penceresini içeriye alınca yani j++;'nın altına çekince komut hata veriyor ama dialog penceresi açılıyor işlev görüyor. Ve  bir garip noktada neden acaba araçların listesini olunca göstermiyorda direkt 5 tane listitem getiriyor normalde olması gereken eğer varsa göster yoksa hiç gösterme burada kendi kendine listitem oluşturup iç değerleri boş gösteriyor acaba onun sebebi neden olabilir?

(https://cdn.discordapp.com/attachments/585779360888389632/704425028552228894/unknown.png)
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: squarepants - 28 Nisan 2020, 03:57:38
server_log'u kontrol et
Attempted to read/write array element at negative index -1adında bir hata ile karşılaşırısan bu herhangi bir diziyi negatif bir sayıyı kullanmaya zorluyor olmandan kaynaklanır , 0 ID numarası ile başlayan bir araç , obje vb. yoktur. Eğer bunu denersen sana -1 olarak gönderecektir ve bu hata ile karşılaşırsın. Döngüyü 0'dan değil 1'den başlatmayı dene. İyi forumlar.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 04:14:35
Alıntı yapılan: ThePosition - 28 Nisan 2020, 03:57:38
server_log'u kontrol et
Attempted to read/write array element at negative index -1adında bir hata ile karşılaşırısan bu herhangi bir diziyi negatif bir sayıyı kullanmaya zorluyor olmandan kaynaklanır , 0 ID numarası ile başlayan bir araç , obje vb. yoktur. Eğer bunu denersen sana -1 olarak gönderecektir ve bu hata ile karşılaşırsın. Döngüyü 0'dan değil 1'den başlatmayı dene. İyi forumlar.

Yorum için teşekkürler. Fakat hala Server: Unknown Command hatasını vermekte ve server_log'u arattığımda belirttiğiniz kodda bir hata bulunamadı.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: squarepants - 28 Nisan 2020, 05:00:25
crashdetect (https://github.com/Zeex/samp-plugin-crashdetect/releases/tag/v4.13) adlı eklentiyi sunucuna kur , server.cfg içerisinde tanımla , oyuna gir , komutu tekrar kullan, server_log'u bizimle tekrar paylaş.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Eamon - 28 Nisan 2020, 05:58:10
Alıntı yapılan: ThePosition - 28 Nisan 2020, 03:57:38
server_log'u kontrol et
Attempted to read/write array element at negative index -1adında bir hata ile karşılaşırısan bu herhangi bir diziyi negatif bir sayıyı kullanmaya zorluyor olmandan kaynaklanır , 0 ID numarası ile başlayan bir araç , obje vb. yoktur. Eğer bunu denersen sana -1 olarak gönderecektir ve bu hata ile karşılaşırsın. Döngüyü 0'dan değil 1'den başlatmayı dene. İyi forumlar.

Döngünün içerisindekiler zaten araç idsi değil, arac bilgilerinin yer aldığı dizi onlar.

Not; komutu yazınca mı hata alıyordun yoksa listede bir yere tıklayınca mı?
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: Buzz - 28 Nisan 2020, 07:17:22
Olmaz ise döngüyü 1 değerinden başlatın.
PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
        new string[500];
for(new i = 0, j = 0; i < MAX_ARAC; i++)
{
if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name], true, 24))
{
format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
Player[playerid][pAraclar][j] = Araclar[i][AracID];
j++;
}
}

if(j > 0) ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");
else SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");
return 1;
}
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: ayazcik - 28 Nisan 2020, 08:40:36
Strtok kullanabilirsin, https://forum.sa-mp.com/showthread.php?t=188617
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: squarepants - 28 Nisan 2020, 12:57:05
Alıntı yapılan: Metafor - 28 Nisan 2020, 05:58:10
Alıntı yapılan: ThePosition - 28 Nisan 2020, 03:57:38
server_log'u kontrol et
Attempted to read/write array element at negative index -1adında bir hata ile karşılaşırısan bu herhangi bir diziyi negatif bir sayıyı kullanmaya zorluyor olmandan kaynaklanır , 0 ID numarası ile başlayan bir araç , obje vb. yoktur. Eğer bunu denersen sana -1 olarak gönderecektir ve bu hata ile karşılaşırsın. Döngüyü 0'dan değil 1'den başlatmayı dene. İyi forumlar.


Döngünün içerisindekiler zaten araç idsi değil, arac bilgilerinin yer aldığı dizi onlar.

Not; komutu yazınca mı hata alıyordun yoksa listede bir yere tıklayınca mı?


Player[playerid][pAraclar][j] = Araclar[i][AracID];
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: NexoR - 28 Nisan 2020, 13:44:37
Emin değilim ama sanırım böyle bir şey istiyorsun. Bu arada test etmedim not defterinden yazarak yaptım hata olabilir :D

// Eğer parametreli bir işlem kullanmayacaksanız params[] kısmını eklemeye gerek yoktur.
CMD:araclarim(playerid)
{
 // string değişkenimiz
 new sz[500];
 
 // dialogdan araç id sini almak için bir değişken oluşturuyoruz
 new count = 0;
 
 // TOTAL_ARAC kısmını kaldırıyoruz çünkü samp araç id leri değişkendir
 // bunun yerine GetVehiclePoolSize kullanıp en yüksek id de ki değeri alıyoruz (3 tane araç varsa id 3 verir)
 for(new i = 1, j = GetVehiclePoolSize(); i <= j; i++)
 {
 // araç kişinin üstünde mi kontrol ediyoruz
 if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name]))
 {
 // eğer üstündeyse verileri sz stringin içine kayıt ediyoruz.
 format(sz, sizeof(sz), "%sAraç NO:[%d]\t[%s]\t[%s]\n", sz, i, Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
 
 // Aracın id sini araclarim isimli PVar içine alıyoruz ki dialog da tıkladığımızda
 // direk aracın id sini alabilelim
 new buffer[25];
 format(buffer, sizeof(buffer), "araclarim_%d", count);
 SetPVarInt(playerid, buffer, i);
 
 // count değerini arttırarak yeni bir araç id si olunca eklemesini sağlıyoruz.
 count++;
 }
 }
 
 // count 0 değilse dialogu gösteriyoruz
 if(count != 0) {
 ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", sz, "Tamam", "Çıkış");
 }else{
 SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");
 }
 return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
 switch(dialogid)
 {
 case 230:
 {
 if(response)
 {
 // Bu sefer oluşturduğumuz PVar dan araç id sini çekiyoruz
 new buffer[25];
 format(buffer, sizeof(buffer), "araclarim_%d", listitem);
 
 // Tıkladığımız aracın id sini alıyoruz
 new arac_id = GetPVarInt(playerid, buffer);
 
 // araç bilgilerini mesaj olarak yazdırıyoruz
 new sz[148];
 format(sz, sizeof(sz), "Araç NO: [%d] - [%s] - [%s]\n", arac_id, Araclar[arac_id][AracSahibi], Araclar[arac_id][AracPlaka]);
 SendClientMessage(playerid, -1, sz);
 }
 }
 }
    return 0;
}
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 15:59:02
Alıntı yapılan: Metafor - 28 Nisan 2020, 05:58:10
Alıntı yapılan: ThePosition - 28 Nisan 2020, 03:57:38
server_log'u kontrol et
Attempted to read/write array element at negative index -1adında bir hata ile karşılaşırısan bu herhangi bir diziyi negatif bir sayıyı kullanmaya zorluyor olmandan kaynaklanır , 0 ID numarası ile başlayan bir araç , obje vb. yoktur. Eğer bunu denersen sana -1 olarak gönderecektir ve bu hata ile karşılaşırsın. Döngüyü 0'dan değil 1'den başlatmayı dene. İyi forumlar.

Döngünün içerisindekiler zaten araç idsi değil, arac bilgilerinin yer aldığı dizi onlar.

Not; komutu yazınca mı hata alıyordun yoksa listede bir yere tıklayınca mı?

Komutu yazınca hata alıyorum.
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 16:18:49
Alıntı yapılan: Buzz - 28 Nisan 2020, 07:17:22
Olmaz ise döngüyü 1 değerinden başlatın.
PAWN Kodu: Seç
CMD:araclarim(playerid, params[])
{
        new string[500];
for(new i = 0, j = 0; i < MAX_ARAC; i++)
{
if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name], true, 24))
{
format(string, sizeof(string), "%sAraç NO:[%d]\t[%s]\t[%s]\n",string, Araclar[i][AracID], Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
Player[playerid][pAraclar][j] = Araclar[i][AracID];
j++;
}
}

if(j > 0) ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", string, "Tamam", "Çıkış");
else SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");
return 1;
}

Çalışmadı. Maalesef. @Buzz .
Crash detect kurdum fakat hiçbir girdi yok server logda @ThePosition
Başlık: Ynt: DIALOG_STYLE_LIST
Gönderen: VERITAS - 28 Nisan 2020, 16:40:08
Alıntı yapılan: NexoR - 28 Nisan 2020, 13:44:37
Emin değilim ama sanırım böyle bir şey istiyorsun. Bu arada test etmedim not defterinden yazarak yaptım hata olabilir :D

// Eğer parametreli bir işlem kullanmayacaksanız params[] kısmını eklemeye gerek yoktur.
CMD:araclarim(playerid)
{
 // string değişkenimiz
 new sz[500];
 
 // dialogdan araç id sini almak için bir değişken oluşturuyoruz
 new count = 0;
 
 // TOTAL_ARAC kısmını kaldırıyoruz çünkü samp araç id leri değişkendir
 // bunun yerine GetVehiclePoolSize kullanıp en yüksek id de ki değeri alıyoruz (3 tane araç varsa id 3 verir)
 for(new i = 1, j = GetVehiclePoolSize(); i <= j; i++)
 {
 // araç kişinin üstünde mi kontrol ediyoruz
 if(!strcmp(Araclar[i][AracSahibi], Player[playerid][Name]))
 {
 // eğer üstündeyse verileri sz stringin içine kayıt ediyoruz.
 format(sz, sizeof(sz), "%sAraç NO:[%d]\t[%s]\t[%s]\n", sz, i, Araclar[i][AracSahibi], Araclar[i][AracPlaka]);
 
 // Aracın id sini araclarim isimli PVar içine alıyoruz ki dialog da tıkladığımızda
 // direk aracın id sini alabilelim
 new buffer[25];
 format(buffer, sizeof(buffer), "araclarim_%d", count);
 SetPVarInt(playerid, buffer, i);
 
 // count değerini arttırarak yeni bir araç id si olunca eklemesini sağlıyoruz.
 count++;
 }
 }
 
 // count 0 değilse dialogu gösteriyoruz
 if(count != 0) {
 ShowPlayerDialog(playerid, 230, DIALOG_STYLE_TABLIST, "Araç Listesi", sz, "Tamam", "Çıkış");
 }else{
 SendClientMessage(playerid, -1, "Herhangi bir araca sahip değilsiniz.");
 }
 return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
 switch(dialogid)
 {
 case 230:
 {
 if(response)
 {
 // Bu sefer oluşturduğumuz PVar dan araç id sini çekiyoruz
 new buffer[25];
 format(buffer, sizeof(buffer), "araclarim_%d", listitem);
 
 // Tıkladığımız aracın id sini alıyoruz
 new arac_id = GetPVarInt(playerid, buffer);
 
 // araç bilgilerini mesaj olarak yazdırıyoruz
 new sz[148];
 format(sz, sizeof(sz), "Araç NO: [%d] - [%s] - [%s]\n", arac_id, Araclar[arac_id][AracSahibi], Araclar[arac_id][AracPlaka]);
 SendClientMessage(playerid, -1, sz);
 }
 }
 }
    return 0;
}

@NexoR Çok teşekkürler işe yaradı ve mantığını kavramış oldum bilmediğim yeni şeyler gördüm sayenizde. Tekrardan tüm yardımcı olmak isteyen arkadaşlara çok çok teşekkürler. K/A