Çözüldü Oyun İçi Güncellemeyi Player Görmüyor

  • Konuyu açan Konuyu açan Developer2
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 14
  • Gösterim Gösterim 141
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

Developer2

Premium Üye
Premium Üye
Geliştirici
Üye
Mesaj
72
Çözümler
4
Beğeni
6
Puan
89
Ticaret Puanı
0
Merhaba Developer Arkadaşlarım
2 gündür uğraşıyorum çözemedim bir bilgisi olan varmı aceba
oyun içerisinde örneğin level statü beceri vs verdikten sonra navicat player kısmına güncellemiyor
bu sebepten dolayı her reboot atışımda veya oyunu kapat aç yaptığımda karakter sıfırlanıyor
playere güncellememe sorunu ne olabilir acaba bilgisi olan varsa çok memnun kalırım.
 
Dbdeki player tablonda bulunan save fonksiyonlarını kontrol et yaptığın bir değişiklik save etmiyor olabilir
 
Biraz detay verebilirmisiniz hocam db içerisinde hangi dosya mesela
 
Clientmanagerplayer.cpp dosyasını kontrol et ilk önceliğin bu olsun sonrasında player tablolarının olduğu bütün db dosyalarını kontrol etmen gerekli
 
sanırım char manager cpp de şu kısımlardan bahsediyorsunuz hocam=?
char_manager.cpp:
Genişlet Daralt Kopyala
void CHARACTER_MANAGER::ProcessDelayedSave()
{
    CHARACTER_SET::iterator it = m_set_pkChrForDelayedSave.begin();

    while (it != m_set_pkChrForDelayedSave.end())
    {
        LPCHARACTER pkChr = *it++;
        pkChr->SaveReal();
    }

    m_set_pkChrForDelayedSave.clear();
}

bool CHARACTER_MANAGER::AddToStateList(LPCHARACTER ch)
 
En son bir moderatör tarafından düzenlenmiş:
Hocam db deki cpp dosyalarından bahsediyorum . Dbniz yani mysqlniz player tablonuzu işlemiyor ilk öncelik olarak db deki player ile ilgili save kısımlarını kontrol edin
 
Hocam db deki cpp dosyalarından bahsediyorum . Dbniz yani mysqlniz player tablonuzu işlemiyor ilk öncelik olarak db deki player ile ilgili save kısımlarını kontrol edin
Hocam client manager atayım bir kontrol edermisiniz ben bir problem göremedim
 

Dosya Eklentileri

birde DB syserr da bu kod satırı bulunuyor ama bu global rank sisteminin syserr logu bu sebepten dolayı yaparmı hocam sizce?
Kod:
Genişlet Daralt Kopyala
SYSERR: Nov 12 20:12:31 :: pid_init:
Start of pid: 887

SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52101
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52102
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52103
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52104
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52105
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52106
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52107
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52108
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52109
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52110
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52111
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52112
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52113
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52114
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52115
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52116
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52117
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52118
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52119
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 52120
SYSERR: Nov 12 20:12:32 :: InitializeItemTable: Re-enrollment attempted 79605
SYSERR: Nov 12 20:20:30 :: ChildLoop: AsyncSQL: query failed: 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 'global_rank = '0\00\00\00\02\00\00\00\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' at line 1 (query: UPDATE player  SET job = 7, voice = 0, dir = 0, x = 959741, y = 270818, z = 0, map_index = 41, exit_x = 959741, exit_y = 270818, exit_map_index = 41, hp = 6123, mp = 444, stamina = 960, random_hp = 220, random_sp = 107, playtime = 6, level = 6, level_step = 0, st = 18, ht = 4, dx = 3, iq = 6, gold = 69068, gem = 0, red_gem = 0, cheque = 0, exp = 1173, stat_point = 0, skill_point = 0, sub_skill_point = 0, stat_reset_count = 0, ip = '159.146.33.141', part_main = 11806, part_hair = 0, part_sash = 0, last_play = NOW(), skill_group = 1, alignment = 842, horse_level = 1, horse_riding = 0, horse_hp = 3, horse_hp_droptime = 1763226792, horse_stamina = 4, horse_skill_point = 0, shop_flag = 0, stone_x = 5, stone_counter = 0, c
SYSERR: Nov 12 20:27:31 :: ChildLoop: AsyncSQL: query failed: 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 'global_rank = '0\00\00\00\02\00\00\00\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' at line 1 (query: UPDATE player  SET job = 7, voice = 0, dir = 0, x = 959642, y = 270972, z = 0, map_index = 41, exit_x = 959642, exit_y = 270972, exit_map_index = 41, hp = 6123, mp = 444, stamina = 960, random_hp = 220, random_sp = 107, playtime = 12, level = 6, level_step = 0, st = 18, ht = 4, dx = 3, iq = 6, gold = 69059, gem = 0, red_gem = 0, cheque = 0, exp = 1173, stat_point = 0, skill_point = 0, sub_skill_point = 0, stat_reset_count = 0, ip = '159.146.33.141', part_main = 11806, part_hair = 0, part_sash = 0, last_play = NOW(), skill_group = 1, alignment = 842, horse_level = 1, horse_riding = 0, horse_hp = 3, horse_hp_droptime = 1763226792, horse_stamina = 4, horse_skill_point = 0, shop_flag = 0, stone_x = 5, stone_counter = 0,
SYSERR: Nov 12 20:34:32 :: ChildLoop: AsyncSQL: query failed: 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 'global_rank = '0\00\00\00\02\00\00\00\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' at line 1 (query: UPDATE player  SET job = 7, voice = 0, dir = 0, x = 959642, y = 270972, z = 0, map_index = 41, exit_x = 959642, exit_y = 270972, exit_map_index = 41, hp = 6123, mp = 444, stamina = 960, random_hp = 220, random_sp = 107, playtime = 21, level = 6, level_step = 0, st = 18, ht = 4, dx = 3, iq = 6, gold = 69059, gem = 0, red_gem = 0, cheque = 0, exp = 1173, stat_point = 0, skill_point = 0, sub_skill_point = 0, stat_reset_count = 0, ip = '159.146.33.141', part_main = 11806, part_hair = 0, part_sash = 0, last_play = NOW(), skill_group = 1, alignment = 842, horse_level = 1, horse_riding = 0, horse_hp = 3, horse_hp_droptime = 1763226792, horse_stamina = 4, horse_skill_point = 0, shop_flag = 0, stone_x = 5, stone_counter = 0,
SYSERR: Nov 12 20:41:33 :: ChildLoop: AsyncSQL: query failed: 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 'global_rank = '0\00\00\00\02\00\00\00\00\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0' at line 1 (query: UPDATE player  SET job = 7, voice = 0, dir = 0, x = 959642, y = 270972, z = 0, map_index = 41, exit_x = 959642, exit_y = 270972, exit_map_index = 41, hp = 6123, mp = 444, stamina = 960, random_hp = 220, random_sp = 107, playtime = 27, level = 6, level_step = 0, st = 18, ht = 4, dx = 3, iq = 6, gold = 69059, gem = 0, red_gem = 0, cheque = 0, exp = 1173, stat_point = 0, skill_point = 0, sub_skill_point = 0, stat_reset_count = 0, ip = '159.146.33.141', part_main = 11806, part_hair = 0, part_sash = 0, last_play = NOW(), skill_group = 1, alignment = 842, horse_level = 1, horse_riding = 0, horse_hp = 3, horse_hp_droptime = 1763226792, horse_stamina = 4, horse_skill_point = 0, shop_flag = 0, stone_x = 5, stone_counter = 0,
 
oyun açıkken player tablosunda değişiklik yapamazsın, yapsan bile game cache üstüne yazar değişikliğin.
 
@Denizeri24 dedigi gibi cache var. Senin oyun içindeki yaptığın bazı şeyler anında DB ye yansımaz. Belirli bir süre sonra işler.
Şu iki yolu dene;
1) Oyun içinden statü falan verdikten sonra stop.sh ile oyunu kapat.(reboot değil.) Eğer stop scriptin düzgünse oyunu kapatırken yapılan değişiklikler db ye yansıyacaktır.

2) Oyun içinden statü vb. verdikten sonra 3 5 dk bekle ve sonra DB yi kontrol et. Eğer bunun sonucu olumlu olursa hiçbir sorun yok demektir.
 
global_rank tanımlaması player tablosunda yanlış tanımlanmıştı düzelttim
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst