Konu K/K
Rez
Help.
Kayıt büyük ihtimal SQL üzerine kayıt etmiyor, kontrol edip denemen lazım
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
.
.
Alıntı yapılan: Captian - 10 Haziran 2024, 00:06:27Alıntı yapılan: takashi - 09 Haziran 2024, 21:43:24logs > 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?
Alıntı yapılan: takashi - 10 Haziran 2024, 21:31:10Alıntı yapılan: Captian - 10 Haziran 2024, 00:06:27Alıntı yapılan: takashi - 09 Haziran 2024, 21:43:24logs > 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.
HesapVeriYukle olarak arattığınızda çıkan sonuçlar neler? Eğer hiç bir sonuç yok ise;
// 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
.
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;
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));
Alıntı yapılan: Captian - 11 Haziran 2024, 00:30:31Alıntı yapılan: takashi - 11 Haziran 2024, 00:20:06HesapVeriYukle olarak arattığınızda çıkan sonuçlar neler? Eğer hiç bir sonuç yok ise;
// 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
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?
Alıntı yapılan: takashi - 11 Haziran 2024, 00:33:15Yani 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;
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.
İstersen DC'den ekle minorusora, tw ile bakabilirim
.
vay be, hey gidi pawno :(
Sorun devam etmekte.
Rez.
Sorun devam etmekte.
Bilen Yokmu?
Sorun Çözüldü Oyun Modunda Sıkıntı Varmış Konu K/K