GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: HarunPürtaş - 08 Mayıs 2019, 17:08:18

Başlık: Yardım!
Gönderen: HarunPürtaş - 08 Mayıs 2019, 17:08:18
Evet, mysql kayıt sistemini yaparken id, isim, sifre, skor ve parayı hallettim. Fakat, skini halledemedim. Sorun, skini kayıt ettiremiyorum. Örneğin adam gidip '230' id'li skini seçiyor, fakat spawn olunca '0' id'li skin ile spawn oluyor. Aşağıda publicleri bulabilirsiniz.

OnPlayerDisconnect :

PAWN Kodu: Seç

public OnPlayerDisconnect(playerid, reason)
{
new query[128], isim[24];
GetPlayerName(playerid, isim, 24);
format(query, sizeof(query),"UPDATE `Kullanicilar` SET `Skor`= %d ,`Para`= %d , `Skin`= %d , `Renk`= %d ` WHERE `Isim`= %s ", GetPlayerScore(playerid), GetPlayerMoney(playerid), GetPlayerSkin(playerid), GetPlayerColor(playerid), isim);
        mysql_query(vt, query);
        SendDeathMessage(INVALID_PLAYER_ID, playerid, 201);
return 1;
}


OnDialogResponse :

PAWN Kodu: Seç

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
if(response)
{
if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{FFA600}Kayıt", "{990000}HATA: {FFFFFF}Şifreniz {33CCCC}3 {FFFFFF}haneden kısa olamaz!\n\n{FFFFFF}Kayıt olmak için şifrenizi girin:", "Kayıt ol", "Çıkış");
new query[128], isim[24];
GetPlayerName(playerid, isim, 24);
format(query, sizeof(query), "INSERT INTO `Kullanicilar` (`Isim`, `Sifre`, `Skor`, `Para`, `Skin`, `Renk`) VALUES ( %s ,  %s , 0, 0,  %d ,  %d )", isim, inputtext, GetPlayerSkin(playerid), GetPlayerColor(playerid));
mysql_query(vt, query);
SendClientMessage(playerid, -1, "{33CCCC}« {FFFFFF}Bilgi {33CCCC}» {FFFFFF}Başarıyla kayıt oldunuz!");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "{FFA600}Giriş", "{FFFFFF}Giriş yapmak için şifrenizi girin:", "Giriş", "Çıkış");
}
else
{
    Kick(playerid);
}
}

if(dialogid == 2)
{
if(response)
{
new query[128], isim[24];
GetPlayerName(playerid, isim, 24);
format(query, sizeof(query), "SELECT * FROM `Kullanicilar` WHERE Isim =  %s  AND Sifre =  %s ", isim, inputtext);
mysql_tquery(vt, query, "OyuncuKontrol", "d", playerid);
}
else
{
    Kick(playerid);
}
}
return 1;
}


Forwardlar da, şöyle:

PAWN Kodu: Seç

forward OyuncuYukle(playerid);
public OyuncuYukle(playerid)
{
new rows;
cache_get_row_count(rows);

if(!rows)
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{FFA600}Kayıt", "{FFFFFF}Sunucumuzda hesabınız {990000}bulunamadı.\n{FFFFFF}Kayıt olmak için şifrenizi girin:", "Kaydol", "Çıkış");
}
else
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "{FFA600}Giriş", "{FFFFFF}Sunucumuzda hesabınız {33CCCC}bulundu.\n{FFFFFF}Giriş yapmak için şifrenizi girin:", "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, "{FFA600}Giriş", "{990000}HATA: {FFFFFF}Yanlış şifre girdiniz.\n\n{FFFFFF}Giriş yapmak için şifrenizi girin:", "Giriş", "Çıkış");
else
{
    cache_get_value_name_int(0, "Skin", oVeri[playerid][Skin]);
    cache_get_value_name_int(1, "Renk", oVeri[playerid][Renk]);
   
SetPlayerScore(playerid, 0);
GivePlayerMoney(playerid, 50000);

SendClientMessage(playerid, -1, "{33CCCC}« {FFFFFF}Bilgi {33CCCC}» {FFFFFF}Başarıyla giriş yaptınız!");
}
return 1;
}

Başlık: Ynt: Yardım!
Gönderen: Excision - 08 Mayıs 2019, 17:10:05
PAWN Kodu: Seç
public OnPlayerSpawn(playerid)
{
SetPlayerSkin(playerid, oVeri[playerid][Skin]);
return 1;
}
Başlık: Ynt: Yardım!
Gönderen: HarunPürtaş - 08 Mayıs 2019, 17:10:52
Alıntı yapılan: Excision - 08 Mayıs 2019, 17:10:05

PAWN Kodu: Seç
public OnPlayerSpawn(playerid)
{
SetPlayerSkin(playerid, oVeri[playerid][Skin]);
return 1;
}



aynısını yaptım zaten. Oyuncu skini seçip spawn olduğunda, 0 id'li skin ile spawn oluyor.
Başlık: Ynt: Yardım!
Gönderen: Excision - 08 Mayıs 2019, 17:12:03
OnPlayerRequestClass publicini yolla.
Başlık: Ynt: Yardım!
Gönderen: HarunPürtaş - 08 Mayıs 2019, 17:12:30
PAWN Kodu: Seç

public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1523.72, -1359.09, 329.58);
SetPlayerCameraPos(playerid, 1515.46, -1360.26, 331.88);
SetPlayerCameraLookAt(playerid, 1515.46, -1360.26, 331.88);
return 1;
}
Başlık: Ynt: Yardım!
Gönderen: Excision - 08 Mayıs 2019, 17:14:52
oyunda 230 skinini alıp oyundan çıkınca veritabanında skin 230 olarak güncelleniyor mu ?
Başlık: Ynt: Yardım!
Gönderen: HarunPürtaş - 08 Mayıs 2019, 17:15:21
Alıntı yapılan: Excision - 08 Mayıs 2019, 17:14:52

oyunda 230 skinini alıp oyundan çıkınca veritabanında skin 230 olarak güncelleniyor mu ?


Hayır, her daim sıfır.
Başlık: Ynt: Yardım!
Gönderen: Excision - 08 Mayıs 2019, 17:16:47
mysql loglarına bir göz atın sorguda veya veritabanında bir hata var.
Başlık: Ynt: Yardım!
Gönderen: HarunPürtaş - 08 Mayıs 2019, 17:18:03
Alıntı yapılan: Excision - 08 Mayıs 2019, 17:16:47

mysql loglarına bir göz atın sorguda veya veritabanında bir hata var.


MYSQL Logları:


[16:47:25] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '1')
[16:47:30] [ERROR] error #1064 while executing query "UPDATE `Kullanicilar` SET `Skor`='0',`Para`='50000', `Skin`='5', `Renk`='0'` WHERE `Isim`='Nox.'": You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '` WHERE `Isim`='Nox.'' at line 1
[16:48:02] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '1')
[16:48:20] [ERROR] error #1064 while executing query "UPDATE `Kullanicilar` SET `Skor`='0',`Para`='50000', `Skin`='0', `Renk`='0'` WHERE `Isim`='Nox.'": You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '` WHERE `Isim`='Nox.'' at line 1
[16:52:22] [ERROR] cache_get_value_name_int: invalid row index '1' (number of rows: '1')
[16:52:34] [ERROR] error #1064 while executing query "UPDATE `Kullanicilar` SET `Skor`='0',`Para`='50000', `Skin`='0', `Renk`='0'` WHERE `Isim`='Nox.'": You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '` WHERE `Isim`='Nox.'' at line 1

Başlık: Ynt: Yardım!
Gönderen: Excision - 08 Mayıs 2019, 17:24:40
public OnPlayerDisconnect(playerid, reason)
{
new query[256], isim[24];
GetPlayerName(playerid, isim, 24);
mysql_format(vt, query, sizeof(query),"UPDATE `Kullanicilar` SET `Skor` = %d,`Para` = %d, `Skin` = %d, `Renk` = %d WHERE `Isim`= '%e'", GetPlayerScore(playerid), GetPlayerMoney(playerid), GetPlayerSkin(playerid), GetPlayerColor(playerid), isim);
mysql_tquery(vt, query);
SendDeathMessage(INVALID_PLAYER_ID, playerid, 201);
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, "{FFA600}Kayıt", "{990000}HATA: {FFFFFF}Şifreniz {33CCCC}3 {FFFFFF}haneden kısa olamaz!\n\n{FFFFFF}Kayıt olmak için şifrenizi girin:", "Kayıt ol", "Çıkış");
new query[256], isim[24];
GetPlayerName(playerid, isim, 24);
mysql_format(vt, query, sizeof(query), "INSERT INTO `Kullanicilar` (`Isim`, `Sifre`, `Skor`, `Para`, `Skin`, `Renk`) VALUES ('%e', '%e', 0, 0, %d, %d)", isim, inputtext, GetPlayerSkin(playerid), GetPlayerColor(playerid));
mysql_query(vt, query);
SendClientMessage(playerid, -1, "{33CCCC}« {FFFFFF}Bilgi {33CCCC}» {FFFFFF}Başarıyla kayıt oldunuz!");
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "{FFA600}Giriş", "{FFFFFF}Giriş yapmak için şifrenizi girin:", "Giriş", "Çıkış");
}else
{
    Kick(playerid);
}
}

if(dialogid == 2)
{
if(response)
{
new query[128], isim[24];
GetPlayerName(playerid, isim, 24);
mysql_format(vt, query, sizeof(query), "SELECT * FROM `Kullanicilar` WHERE `Isim` = '%e' AND `Sifre` = '%e'", isim, inputtext);
mysql_tquery(vt, query, "OyuncuKontrol", "d", playerid);
}
else
{
    Kick(playerid);
}
}
return 1;
}
forward OyuncuYukle(playerid);
public OyuncuYukle(playerid)
{
if(!cache_num_rows())
{
ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "{FFA600}Kayıt", "{FFFFFF}Sunucumuzda hesabınız {990000}bulunamadı.\n{FFFFFF}Kayıt olmak için şifrenizi girin:", "Kaydol", "Çıkış");
}else
{
ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "{FFA600}Giriş", "{FFFFFF}Sunucumuzda hesabınız {33CCCC}bulundu.\n{FFFFFF}Giriş yapmak için şifrenizi girin:", "Giriş", "Çıkış");
}
return 1;
}

forward OyuncuKontrol(playerid);
public OyuncuKontrol(playerid)
{
if(!cache_num_rows()) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "{FFA600}Giriş", "{990000}HATA: {FFFFFF}Yanlış şifre girdiniz.\n\n{FFFFFF}Giriş yapmak için şifrenizi girin:", "Giriş", "Çıkış");

cache_get_value_name_int(0, "Skin", oVeri[playerid][Skin]);
cache_get_value_name_int(0, "Renk", oVeri[playerid][Renk]);
SetPlayerScore(playerid, 0);
GivePlayerMoney(playerid, 50000);
SendClientMessage(playerid, -1, "{33CCCC}« {FFFFFF}Bilgi {33CCCC}» {FFFFFF}Başarıyla giriş yaptınız!");
return 1;
}
Başlık: Ynt: Yardım!
Gönderen: HarunPürtaş - 08 Mayıs 2019, 17:26:06
spawn olunca skin id yine 0 oluyor.
Başlık: Ynt: Yardım!
Gönderen: Excision - 08 Mayıs 2019, 17:28:19
sorguları attığım şekilde güncelle aslan kardeşim
Başlık: Ynt: Yardım!
Gönderen: HarunPürtaş - 08 Mayıs 2019, 17:30:50
Alıntı yapılan: HarunPürtaş - 08 Mayıs 2019, 17:26:06

spawn olunca skin id yine 0 oluyor.
Başlık: Ynt: Yardım!
Gönderen: Enkei - 15 Mayıs 2019, 19:16:07
Alıntı
Açılan taleplerin son iletisi 1 haftayı geçmesi durumunda; konu kilitlenip, kilitli konular bölümüne taşınacaktır.


Kilit.