Arkadaşlar oyundan çıktıktan sonra geri girince çıktığım yerde nasıl devam ederim
OnPlayerDisconnect publici oyuncu oyundan çıktığı zaman çağırılır. Oyuncu oyundan çıktığı zaman oyuncunun pozisyonunu çekip (GetPlayerPos ile) MySQL'e kaydedeceksin. OnPlayerSpawn publici ise oyuncu spawn olduğunda çağırılır. Oyuncu spawn olduğu zamanda daha önceden kaydettiğin pozisyonlara aktarmasını (SetPlayerPos ile) sağlayacaksın.
Alıntı yapılan: kaufman - 16 Mart 2022, 16:56:06OnPlayerDisconnect publici oyuncu oyundan çıktığı zaman çağırılır. Oyuncu oyundan çıktığı zaman oyuncunun pozisyonunu çekip (GetPlayerPos ile) MySQL'e kaydedeceksin. OnPlayerSpawn publici ise oyuncu spawn olduğunda çağırılır. Oyuncu spawn olduğu zamanda daha önceden kaydettiğin pozisyonlara aktarmasını (SetPlayerPos ile) sağlayacaksın.
Nasıl yapacam peki
public OnPlayerDisconnect(playerid) {
new Float:X, Float:Y, Float:Z, query[128];
GetPlayerPos(playerid, X,Y,Z);
mysql_format(query, sizeof(query), "UPDATE table_name SET `lastX` = '%f', `lastY` = '%f', `lastZ` = '%f' ", X,Y,Z);
mysql_tquery(ur_sql, query); // sending data in ur db..
}
Oyundan çıkış yaptığında göndermek istediğin veriyi, veritabanına gönderiyor. Veritabanında lastX, lastY, lastZ columnleri Float biçimde bulunması gerekmekte.
Bu kodu
public OnPlayerDisconnect(playerid) {
new Float:X, Float:Y, Float:Z, query[128];
GetPlayerPos(playerid, X,Y,Z);
mysql_format(query, sizeof(query), "UPDATE table_name SET `lastX` = '%f', `lastY` = '%f', `lastZ` = '%f' ", X,Y,Z);
mysql_tquery(ur_sql, query); // sending data in ur db..
}
Bu şekilde yapmanı tavsiye ederim;
OyuncuPosKaydet(playerid)
{
new Float:X, Float:Y, Float:Z, query[128];
GetPlayerPos(playerid, X,Y,Z);
mysql_format(query, sizeof(query), "UPDATE table_name SET `lastX` = '%f', `lastY` = '%f', `lastZ` = '%f' ", X,Y,Z);
mysql_tquery(ur_sql, query); // sending data in ur db..
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
OyuncuPosKaydet(playerid);
return 1;
}
Arkadaşın attığı kodu bir fonksiyonun içerisine yerleştirip OnPlayerDisconnect callback'ine koyarsan callback'lerin daha temiz olur.
Alıntı yapılan: Eamon - 17 Mart 2022, 16:19:31Bu kodu
public OnPlayerDisconnect(playerid) {
new Float:X, Float:Y, Float:Z, query[128];
GetPlayerPos(playerid, X,Y,Z);
mysql_format(query, sizeof(query), "UPDATE table_name SET `lastX` = '%f', `lastY` = '%f', `lastZ` = '%f' ", X,Y,Z);
mysql_tquery(ur_sql, query); // sending data in ur db..
}
Bu şekilde yapmanı tavsiye ederim;
OyuncuPosKaydet(playerid)
{
new Float:X, Float:Y, Float:Z, query[128];
GetPlayerPos(playerid, X,Y,Z);
mysql_format(query, sizeof(query), "UPDATE table_name SET `lastX` = '%f', `lastY` = '%f', `lastZ` = '%f' ", X,Y,Z);
mysql_tquery(ur_sql, query); // sending data in ur db..
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
OyuncuPosKaydet(playerid);
return 1;
}
Arkadaşın attığı kodu bir fonksiyonun içerisine yerleştirip OnPlayerDisconnect callback'ine koyarsan callback'lerin daha temiz olur.
Buna benzer bir şekilde direkt geniş olarak OyuncuKaydet gibi bir kısım yaparsan senin için daha iyi olur misal oyuncu oyundan çıktığında parası skoru her şeyini daha kısa yoldan kaydetmiş olursun.
Alıntı yapılan: Bölüm KurallarıAçılan taleplerin son iletisi 10 günü geçmesi durumunda; konu kilitlenip, kilitli konular bölümüne taşınacaktır. Sorunu çözülen konularınızı kilitleyip, moderatörlere bildiriniz.
Konu kilit+arşiv