GTAMulti - GTA Türkiye

San Andreas Multiplayer => Yardım Talepleri => PAWN Kodlama => Kilitli Konular => Konuyu başlatan: ibrahimkral17 - 16 Mart 2022, 06:56:03

Başlık: Oyundan çıktığım yeri kaydetme
Gönderen: ibrahimkral17 - 16 Mart 2022, 06:56:03
Arkadaşlar oyundan çıktıktan sonra geri girince çıktığım yerde nasıl devam ederim
Başlık: Ynt: Oyundan çıktığım yeri kaydetme
Gönderen: mojo - 16 Mart 2022, 16:56:06
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.
Başlık: Ynt: Oyundan çıktığım yeri kaydetme
Gönderen: ibrahimkral17 - 16 Mart 2022, 20:58:58
Alıntı yapılan: kaufman - 16 Mart 2022, 16:56:06
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.
Nasıl yapacam peki
Başlık: Ynt: Oyundan çıktığım yeri kaydetme
Gönderen: Hasan Sangrento - 16 Mart 2022, 23:53:34
PAWN Kodu: Seç
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.
Başlık: Ynt: Oyundan çıktığım yeri kaydetme
Gönderen: Eamon - 17 Mart 2022, 16:19:31
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.
Başlık: Ynt: Oyundan çıktığım yeri kaydetme
Gönderen: DarkKnife - 19 Nisan 2022, 06:27:10
Alıntı yapılan: Eamon - 17 Mart 2022, 16:19:31
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.
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.
Başlık: Ynt: Oyundan çıktığım yeri kaydetme
Gönderen: Anestezi - 11 Mayıs 2022, 19:17:51
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