Öncelikle merhaba değerli forum üyeleri mysql kayıt sistemi videosu izleyip yapmıştım fakat servere giriş yaptığımda register ekranı gelmiyor yardımcı olursanız sevinirim nerede hata yapmışım.
#include <a_samp>
#include <a_mysql>
#include <foreach>
#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_PASS ""
#define SQL_DB "smalark_db"
new MySQL:mysqlC;
main ( ) { }
public OnGameModeInit()
{
print("MySQL bağlantısı kuruluyor...");
mysqlC = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DB);
if(mysql_errno(mysqlC) == 0)
{
print("MySQL bağlantısı kuruldu!");
}
else
{
print ("MySQL bağlantısı başarısız!");
}
return 1;
}
public OnPlayerConnect(playerid)
{
new query[128], isim[24];
GetPlayerName(playerid, isim, 24);
format(query, sizeof(query), "SELECT * FROM 'kullanicilar' WHERE Isim = '%s'", isim);
mysql_tquery(mysqlC, query, "OyuncuYukle", "d", playerid);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(response)
{
if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Kayit", "HATA: Şifreniz 3 haneden kısa olamaz!\n\nKayıt olmak için şifrenizi giriniz:", "Kaydol", "Çıkış");
new query[128], isim[24];
GetPlayerName(playerid, isim, 24);
format(query, sizeof(query), "INSERT INTO 'kullanicilar' ('Isim', 'Sifre', 'Skor', 'Para') VALUES ('%s', '%s', 0, 0)", isim, inputtext);
mysql_query(mysqlC, query);
}
}
if(dialogid == 2)
{
if(response)
{
new query[258], isim[24];
GetPlayerName(playerid, isim, 24);
format(query, sizeof(query), "SELECT * FROM 'kullanicilar' WHERE Isim = '%s' AND Sifre = '%s'", isim, inputtext);
mysql_tquery(mysqlC, query, "OyuncuKontrol", "d", playerid);
SendClientMessage(playerid, -1, "Başarıyla kaydoldunuz!");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş", "Giriş yapmak için şifrenizi giriniz:", "Giriş", "Çıkış");
}
}
return 1;
}
forward OyuncuYukle(playerid);
public OyuncuYukle(playerid)
{
new rows;
cache_get_row_count(rows);
if(!rows)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Kayit", "Sunucumuzda hesabınız bulunamadı.\nKayıt olmak için şifrenizi giriniz:", "Kaydol", "Çıkış");
}
else
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş", "Sunucumuzda hesabınız bulundu.\nGiriş yapmak için şifrenizi giriniz:", "Giriş", "Çıkış");
}
return 1;
}
forward OyuncuKontrol(playerid);
public OyuncuKontrol(playerid)
{
new rows;
cache_get_row_count(rows);
if(!rows) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş", "Yanlış şifre girdiniz. \n\nGiriş yapmak için şifrenizi giriniz:", "Giriş", "Çıkış");
else
{
new para, skor;
cache_get_value_name_int(0, "Skor", skor);
cache_get_value_name_int(0, "Para", para);
SetPlayerScore(playerid, skor);
GivePlayerMoney(playerid, para);
SpawnPlayer(playerid);
SendClientMessage(playerid, -1, "[!] Başarıyla giriş yaptınız!");
}
return 1;
}
Veriler kayıt altına alınamıyor gibi , OnPlayerDisconnect callback içerisindeki bazı etkinlikler unutulmuş gibi.. Tekrar izle istersen o bölümü , İyi forumlar.
Zaman aşımı sebebiyle kilitlenip,Kilitli konular bölümüne taşınmıştır.