GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi
11 Ağustos 2025, 22:03:57

Konu K/K

Başlatan Captian, 08 Haziran 2024, 02:03:18

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Captian

Konu K/K
Son düzenlenme: 16 Haziran 2024, 01:20:12 Captian

Captian


Captian


Claw_

Kayıt büyük ihtimal SQL üzerine kayıt etmiyor, kontrol edip denemen lazım


takashi

logs > plugins > mysql.log içerisini paylaşabilir misin? Bir de mod içerisinde ki kayıt ve giriş yapıldığında verileri yükleyen fonksiyonu


Captian

.
Son düzenlenme: 11 Haziran 2024, 10:11:21 Captian

Captian

.
Son düzenlenme: 11 Haziran 2024, 10:11:28 Captian

takashi

Alıntı yapılan: Captian - 10 Haziran 2024, 00:06:27
Alıntı yapılan: takashi - 09 Haziran 2024, 21:43:24
logs > plugins > mysql.log içerisini paylaşabilir misin? Bir de mod içerisinde ki kayıt ve giriş yapıldığında verileri yükleyen fonksiyonu
Log : \X Beta\pawno\include\sscanf2.inc:211 -> E:\Tüm Dosyalar\Tüm Dosyalar\Samp Dosyalar\Samp Gamemodes\X Beta\pawno\include\Pawn.CMD.inc:124)
[23:59:07] [ERROR] cache_get_value_name_int: field 'id' not found (includes\Sistemler\Meslekler\balik.pwn:91)
[00:01:25] [ERROR] cache_get_row_count: no active cache (E:\Tüm Dosyalar\Tüm Dosyalar\Samp Dosyalar\Samp Gamemodes\X Beta\pawno\include\a_mysql.inc:182 -> includes\fonksiyonlar.pwn:707 -> includes\dialoglar.pwn:325)

Veri Yukleme : X:HesapVeriYukle(playerid)
{
   if(cache_num_rows())
   {
      cache_get_value_name(0, "Sifre", Hesap[playerid][Sifre], 124);

      cache_get_value_name_int(0, "Admin", Hesap[playerid][Yonetici]);

      cache_get_value_name_int(0, "PremiumSlot", Hesap[playerid][PremiumSlot]);

      // market ürünleri
      cache_get_value_name_int(0, "IsimDegisimHakki", Hesap[playerid][IsimDegisimHakki]);
      cache_get_value_name_int(0, "PlakaDegisimHakki", Hesap[playerid][PlakaDegisimHakki]);
      cache_get_value_name_int(0, "TelefonDegisimHakki", Hesap[playerid][TelefonDegisimHakki]);
      cache_get_value_name_int(0, "BisikletHakki", Hesap[playerid][BisikletHakki]);
      cache_get_value_name_int(0, "BesYetenekPuani", Hesap[playerid][BesYetenekPuani]);
      cache_get_value_name_int(0, "OnYetenekPuani", Hesap[playerid][OnYetenekPuani]);
      cache_get_value_name_int(0, "OnBesYetenekPuani", Hesap[playerid][OnBesYetenekPuani]);
      cache_get_value_name_int(0, "YetenekSifirlamaHakki", Hesap[playerid][YetenekSifirlamaHakki]);
      cache_get_value_name_int(0, "BankaHesapDegisimHakki", Hesap[playerid][BankaHesapDegisimHakki]);
      cache_get_value_name_int(0, "UcuncuDilHakki", Hesap[playerid][UcuncuDilHakki]);
      cache_get_value_name_int(0, "VIP", Hesap[playerid][VIP]);
      cache_get_value_name_int(0, "ikixpayday", Hesap[playerid][DoublePayday]);
      cache_get_value_name_int(0, "MaskeHakki", Hesap[playerid][MaskeHakki]);
      cache_get_value_name_int(0, "DortXExp", Hesap[playerid][DortXExp]);
      cache_get_value_name_int(0, "CoolAracPaketi", Hesap[playerid][CoolAracPaketi]);
      cache_get_value_name_int(0, "MeslekPaketi", Hesap[playerid][MeslekPaketi]);
      cache_get_value_name_int(0, "OzelSkinAksesuar", Hesap[playerid][OzelSkinAksesuar]);
      cache_get_value_name_int(0, "oPremiumSkinBir", Hesap[playerid][PremiumSkin][0]);
      cache_get_value_name_int(0, "oPremiumSkinIki", Hesap[playerid][PremiumSkin][1]);
      cache_get_value_name_int(0, "oPremiumSkinUc", Hesap[playerid][PremiumSkin][2]);
   }
   return true;
}

balıkcılık mesleğinin SQL tablosunda id bulunuyor mu? Tekrar kontrol edin bulunamadığını söylüyor ayrıca oyuncunun verilerini çekerken aktif cache olmadığını söylüyor, HesapVeriYukle olarak aratıp mysql_tquery kısmını atar mısın?


Captian

Alıntı yapılan: takashi - 10 Haziran 2024, 21:31:10
Alıntı yapılan: Captian - 10 Haziran 2024, 00:06:27
Alıntı yapılan: takashi - 09 Haziran 2024, 21:43:24
logs > plugins > mysql.log içerisini paylaşabilir misin? Bir de mod içerisinde ki kayıt ve giriş yapıldığında verileri yükleyen fonksiyonu
Log : \X Beta\pawno\include\sscanf2.inc:211 -> E:\Tüm Dosyalar\Tüm Dosyalar\Samp Dosyalar\Samp Gamemodes\X Beta\pawno\include\Pawn.CMD.inc:124)
[23:59:07] [ERROR] cache_get_value_name_int: field 'id' not found (includes\Sistemler\Meslekler\balik.pwn:91)
[00:01:25] [ERROR] cache_get_row_count: no active cache (E:\Tüm Dosyalar\Tüm Dosyalar\Samp Dosyalar\Samp Gamemodes\X Beta\pawno\include\a_mysql.inc:182 -> includes\fonksiyonlar.pwn:707 -> includes\dialoglar.pwn:325)

Veri Yukleme : X:HesapVeriYukle(playerid)
{
   if(cache_num_rows())
   {
      cache_get_value_name(0, "Sifre", Hesap[playerid][Sifre], 124);

      cache_get_value_name_int(0, "Admin", Hesap[playerid][Yonetici]);

      cache_get_value_name_int(0, "PremiumSlot", Hesap[playerid][PremiumSlot]);

      // market ürünleri
      cache_get_value_name_int(0, "IsimDegisimHakki", Hesap[playerid][IsimDegisimHakki]);
      cache_get_value_name_int(0, "PlakaDegisimHakki", Hesap[playerid][PlakaDegisimHakki]);
      cache_get_value_name_int(0, "TelefonDegisimHakki", Hesap[playerid][TelefonDegisimHakki]);
      cache_get_value_name_int(0, "BisikletHakki", Hesap[playerid][BisikletHakki]);
      cache_get_value_name_int(0, "BesYetenekPuani", Hesap[playerid][BesYetenekPuani]);
      cache_get_value_name_int(0, "OnYetenekPuani", Hesap[playerid][OnYetenekPuani]);
      cache_get_value_name_int(0, "OnBesYetenekPuani", Hesap[playerid][OnBesYetenekPuani]);
      cache_get_value_name_int(0, "YetenekSifirlamaHakki", Hesap[playerid][YetenekSifirlamaHakki]);
      cache_get_value_name_int(0, "BankaHesapDegisimHakki", Hesap[playerid][BankaHesapDegisimHakki]);
      cache_get_value_name_int(0, "UcuncuDilHakki", Hesap[playerid][UcuncuDilHakki]);
      cache_get_value_name_int(0, "VIP", Hesap[playerid][VIP]);
      cache_get_value_name_int(0, "ikixpayday", Hesap[playerid][DoublePayday]);
      cache_get_value_name_int(0, "MaskeHakki", Hesap[playerid][MaskeHakki]);
      cache_get_value_name_int(0, "DortXExp", Hesap[playerid][DortXExp]);
      cache_get_value_name_int(0, "CoolAracPaketi", Hesap[playerid][CoolAracPaketi]);
      cache_get_value_name_int(0, "MeslekPaketi", Hesap[playerid][MeslekPaketi]);
      cache_get_value_name_int(0, "OzelSkinAksesuar", Hesap[playerid][OzelSkinAksesuar]);
      cache_get_value_name_int(0, "oPremiumSkinBir", Hesap[playerid][PremiumSkin][0]);
      cache_get_value_name_int(0, "oPremiumSkinIki", Hesap[playerid][PremiumSkin][1]);
      cache_get_value_name_int(0, "oPremiumSkinUc", Hesap[playerid][PremiumSkin][2]);
   }
   return true;
}

balıkcılık mesleğinin SQL tablosunda id bulunuyor mu? Tekrar kontrol edin bulunamadığını söylüyor ayrıca oyuncunun verilerini çekerken aktif cache olmadığını söylüyor, HesapVeriYukle olarak aratıp mysql_tquery kısmını atar mısın?
balıkcılık sql id yoktu ekledim orası benim hatam fakat HesapVeriYukle Bölümünde mysql_tquery kısmı bulamadım.


takashi

HesapVeriYukle olarak arattığınızda çıkan sonuçlar neler? Eğer hiç bir sonuç yok ise;

PAWN Kodu: Seç
// OnPlayerConnect içine

new query[150], name[24];
GetPlayerName(playerid, name, 24);
mysql_format(sql, query, sizeof query, "SELECT * FROM `oyuncular` WHERE `nickname`='%s'", name); // oyuncular senin oyuncu verilerini tuttuğun tablon, nickname isimleri tuttuğun stün adı olarak değiştir
mysql_tquery(sql, query, "HesapVeriYukle", "d", playerid); // sql kısımları ise new Mysql:...; değişkenin

Tabii öncesinde şifre doğrulama olayları var, bu sadece örnek
Son düzenlenme: 11 Haziran 2024, 00:22:12 takashi

Captian

.
Son düzenlenme: 11 Haziran 2024, 10:11:41 Captian

takashi

Yani konudan bağımsız olarak algılama, muhtemelen modunda kayıt giriş ayrımı yapmıyorsun çünkü muhtemelen oyuncunun bir hesabı var mı yok mu bakan bir kod yok. Önce OnPlayerConnect kısmında oyuncunun verisini çekeceksin nicki üzerinden, sql üzerinde eşleşen row sayısı 0 değilse giriş kısmına geleceksin, bu da şifre girme kısmına gelecek. Şifresini giren kişinin şifresini tekrar sorgu üzerinden doğrulayacaksın, eşleşen row bulursa giriş yapıp verileri çekeceksin eğer yok ise hatalı şifre kısmına atacaksın.

Biraz kafa karıştırıcı fakat basit bir örnek ile;

PAWN Kodu: Seç
mysql_format(sql, query, sizeof query, "SELECT * FROM `oyuncular` WHERE `nickname`='%s'", Name(playerid));
mysql_tquery(sql, query, "GirisEkrani", "d", playerid);

Giriş Ekranı;

if(cache_num_rows() > 0) Dialog_Show(playerid, Giris, DIALOG_STYLE_PASSWORD, "Giriş Yap", "{eec09b}%s, Hadi, giriş yapmak için şifreni gir!", "Giriş Yap", "", Name(playerid));
else Dialog_Show(playerid, Kayit, DIALOG_STYLE_PASSWORD, "Kayıt Ol", "{eec09b}%s, Hadi, kayıt olmak için bir şifre belirleyelim!", "Kayıt Ol", "", Name(playerid));

Giris diyalogu;

Dialog:Giris(playerid, response, listitem, inputtext[])
{
if(!response) Kick(playerid);
if(response)
{
new query[258];
mysql_format(sql, query, sizeof query, "SELECT * FROM `oyuncular` WHERE `nickname`='%s' AND `sifre`= md5('%s')", Name(playerid), inputtext);
mysql_query(sql, query);

if(cache_num_rows() > 0)
{
  // verileri çekeceğin kısım
}else Dialog_Show(playerid, Giris, DIALOG_STYLE_PASSWORD, "Giriş Yap", "{eec09b}%s, {ffffff}Hatalı şifre girdin!", "Giriş Yap", "", Name(playerid));



takashi

Alıntı yapılan: Captian - 11 Haziran 2024, 00:30:31
Alıntı yapılan: takashi - 11 Haziran 2024, 00:20:06
HesapVeriYukle olarak arattığınızda çıkan sonuçlar neler? Eğer hiç bir sonuç yok ise;

PAWN Kodu: Seç
// OnPlayerConnect içine

new query[150], name[24];
GetPlayerName(playerid, name, 24);
mysql_format(sql, query, sizeof query, "SELECT * FROM `oyuncular` WHERE `nickname`='%s'", name); // oyuncular senin oyuncu verilerini tuttuğun tablon, nickname isimleri tuttuğun stün adı olarak değiştir
mysql_tquery(sql, query, "HesapVeriYukle", "d", playerid); // sql kısımları ise new Mysql:...; değişkenin

Tabii öncesinde şifre doğrulama olayları var, bu sadece örnek
PAWN Kodu: Seç

X:KarakterleriListele(playerid)
{
new query[128];
mysql_format(conn, query, sizeof(query), "SELECT * FROM hesaplar WHERE id = '%i' LIMIT 1", Hesap[playerid][id]);
mysql_tquery(conn, query, "HesapVeriYukle", "i", playerid);

mysql_format(conn, query, sizeof(query), "SELECT * FROM hesaplar WHERE id = '%i' LIMIT 1", Hesap[playerid][id]);
mysql_tquery(conn, query, "KarakterListesi", "i", playerid);
return true;
}


Burasımı Acaba?

Burası değil çünkü karakterlerilistele kısmında yine enum içinden veri çekiliyor, yanlış çekecektir oyuncu ID'sini çekmeden burada işlem yapamazsın KarakterleriListele'nin çağırıldığı yeri bulabilir misin?


Captian

Alıntı yapılan: takashi - 11 Haziran 2024, 00:33:15
Yani konudan bağımsız olarak algılama, muhtemelen modunda kayıt giriş ayrımı yapmıyorsun çünkü muhtemelen oyuncunun bir hesabı var mı yok mu bakan bir kod yok. Önce OnPlayerConnect kısmında oyuncunun verisini çekeceksin nicki üzerinden, sql üzerinde eşleşen row sayısı 0 değilse giriş kısmına geleceksin, bu da şifre girme kısmına gelecek. Şifresini giren kişinin şifresini tekrar sorgu üzerinden doğrulayacaksın, eşleşen row bulursa giriş yapıp verileri çekeceksin eğer yok ise hatalı şifre kısmına atacaksın.

Biraz kafa karıştırıcı fakat basit bir örnek ile;

PAWN Kodu: Seç
mysql_format(sql, query, sizeof query, "SELECT * FROM `oyuncular` WHERE `nickname`='%s'", Name(playerid));
mysql_tquery(sql, query, "GirisEkrani", "d", playerid);

Giriş Ekranı;

if(cache_num_rows() > 0) Dialog_Show(playerid, Giris, DIALOG_STYLE_PASSWORD, "Giriş Yap", "{eec09b}%s, Hadi, giriş yapmak için şifreni gir!", "Giriş Yap", "", Name(playerid));
else Dialog_Show(playerid, Kayit, DIALOG_STYLE_PASSWORD, "Kayıt Ol", "{eec09b}%s, Hadi, kayıt olmak için bir şifre belirleyelim!", "Kayıt Ol", "", Name(playerid));

Giris diyalogu;

Dialog:Giris(playerid, response, listitem, inputtext[])
{
if(!response) Kick(playerid);
if(response)
{
new query[258];
mysql_format(sql, query, sizeof query, "SELECT * FROM `oyuncular` WHERE `nickname`='%s' AND `sifre`= md5('%s')", Name(playerid), inputtext);
mysql_query(sql, query);

if(cache_num_rows() > 0)
{
  // verileri çekeceğin kısım
}else Dialog_Show(playerid, Giris, DIALOG_STYLE_PASSWORD, "Giriş Yap", "{eec09b}%s, {ffffff}Hatalı şifre girdin!", "Giriş Yap", "", Name(playerid));

Discord Nickinizi İlermisiniz Acaba.


takashi

İstersen DC'den ekle minorusora, tw ile bakabilirim