GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

DIALOG_STYLE_LIST

Başlatan VERITAS, 27 Nisan 2020, 22:26:54

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

squarepants

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.
Son düzenlenme: 28 Nisan 2020, 04:03:19 ThePosition

VERITAS

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ı.


squarepants

crashdetect adlı eklentiyi sunucuna kur , server.cfg içerisinde tanımla , oyuna gir , komutu tekrar kullan, server_log'u bizimle tekrar paylaş.


Eamon

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ı?
Son düzenlenme: 28 Nisan 2020, 06:09:54 Metafor
Bugünün güzel zamanları, yarının üzücü düşünceleridir.

Buzz

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;
}
Son düzenlenme: 28 Nisan 2020, 07:21:12 Buzz Sebep: ss

ayazcik


squarepants

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];


NexoR

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;
}


VERITAS

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.


VERITAS

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


VERITAS

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