Çözüldü Derece Problemi

  • Konuyu açan Konuyu açan allien
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 7
  • Gösterim Gösterim 135
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ı.

allien

*__*
Premium Üye
MT Üye
Mesaj
210
Çözümler
11
Beğeni
67
Puan
499
Ticaret Puanı
0
merhabalar, filesime eklediğim derece sisteminde örneğin 5 milyonda karaktere 10k hp veriyorum fakat karakter öldüğü zaman etki kayboluyor ve tekrar canlandığında -10k hp ile başlıyor yani aldığı etki kayboluyor bir süre bekleyince, mob kesince ve level atlayınca tekrar düzeliyor bu neyden kaynaklanıyor olabilir fikri olan var mı?
teşekkürler..
 
Çözüm
sorun client ile serverin veri trafiğiyle alakalı ama şuanlık sorunu şu şekilde çözdüm;


C++:
Genişlet Daralt Kopyala
char_affect.cpp içerisinde aratılır;

if (IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType, this))
            // if ( IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType) )
            {
                ++it;
                continue;
            }

altına eklenir;

#ifdef ENABLE_ALIGNMENT_SYSTEM
    if (pkAff->dwType == AFFECT_ALIGN_BONUS1 || pkAff->dwType == AFFECT_ALIGN_BONUS2) // Burayı kendi affectlerinize göre düzenleyebilirsiniz.
    {
        ++it;
        continue;
    }
#endif
belki hocam veri tipi uyumsuzluğu vardır, sys olmadan tam bir şey söylemek zor. debugta bi şeyler elde ettiniz mi
syslog dosyası bu şekilde;


syslog:
Genişlet Daralt Kopyala
Oct 30 05:13:42 :: VERSION: alignmentest 1215955205 metin2client.exe
Oct 30 05:13:43 :: SHOW: alignmentest 967730x276728x0
Oct 30 05:13:43 :: reallocating buffer to 8192, current 1024
Oct 30 05:13:43 :: AddAffect alignmentest type 215 apply 0 0 flag 28 duration 5
Oct 30 05:13:43 :: reallocating buffer to 8192, current 1024
Oct 30 05:13:43 :: ENTERGAME: alignmentest 967730x276728x0 map_index 41
Oct 30 05:13:43 :: HORSE STAMINA CONSUME EVENT CANCEL 0x0
Oct 30 05:13:43 :: HORSE STAMINA REGEN EVENT CREATE 0x5028da20
Oct 30 05:13:43 :: SendLandList map 41 count 0 elem_size: 0
Oct 30 05:13:43 :: VERSION CHECK 1215955205 1215955205
Oct 30 05:13:43 :: QUEST_LOAD: Login pc 44 by event
Oct 30 05:13:43 :: HORSENAME: update 44
Oct 30 05:13:57 :: COMMAND: alignmentest: pvp
Oct 30 05:14:01 :: COMMAND: alignmentest2: pvp
Oct 30 05:14:18 :: alignmentest: USE_SKILL: 16 pkVictim 0x5087fac0
Oct 30 05:14:22 :: alignmentest: USE_SKILL: 17 pkVictim 0x5087fac0
Oct 30 05:14:23 :: CQuestManager::Kill QUEST_KILL_EVENT (pc=44, npc=0)
Oct 30 05:14:23 :: CQuestManager::Kill QUEST_DIE_EVENT (pc=47, npc=0)
Oct 30 05:15:36 :: COMMAND: alignmentest2: restart_here
Oct 30 05:15:36 :: do_restart: restart here
Oct 30 05:15:36 :: AddAffect alignmentest2 type 215 apply 0 0 flag 28 duration 5
Oct 30 05:16:14 :: AddAffect alignmentest2 type 534 apply 119 4 flag 10001891 duration 1892160000
Oct 30 05:16:31 :: Handshake: lower than zero -14
Oct 30 05:16:31 :: Handshake: client_time 6562 server_time 186253 name: alignmentest2


sanırım dediğiniz gibi server ile client arasında bi zaman uyuşmazlığı var bu neyden kaynaklanıyor olabilir?
 
merhabalar, filesime eklediğim derece sisteminde örneğin 5 milyonda karaktere 10k hp veriyorum fakat karakter öldüğü zaman etki kayboluyor ve tekrar canlandığında -10k hp ile başlıyor yani aldığı etki kayboluyor bir süre bekleyince, mob kesince ve level atlayınca tekrar düzeliyor bu neyden kaynaklanıyor olabilir fikri olan var mı?
teşekkürler..
Sadece HP bonusunda mı oluyor?

restart_here:
Genişlet Daralt Kopyala
   ....
        case SCMD_RESTART_HERE:
            sys_log(0, "do_restart: restart here");
            ch->RestartAtSamePos();
            //ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());
            ch->PointChange(POINT_HP, 50 - ch->GetHP()); //affect ile veriliyorsa GetHO 10k'da kaldığı için -9950 can ile doğuyor olabilirsiniz
....
 
Son düzenleme:
Sadece HP bonusunda mı oluyor?

restart_here:
Genişlet Daralt Kopyala
   ....
        case SCMD_RESTART_HERE:
            sys_log(0, "do_restart: restart here");
            ch->RestartAtSamePos();
            //ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());
            ch->PointChange(POINT_HP, 50 - ch->GetHP()); //affect ile veriliyorsa GetHO 10k'da kaldığı için -9950 can ile doğuyor olabilirsiniz
....
baktım direkt olarak -10k ile başlıyor 9950 ile değil, ölünce affectin kaybolmaması gibi bir şey yapabilir miyiz peki?
 
sorun client ile serverin veri trafiğiyle alakalı ama şuanlık sorunu şu şekilde çözdüm;


C++:
Genişlet Daralt Kopyala
char_affect.cpp içerisinde aratılır;

if (IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType, this))
            // if ( IS_NO_CLEAR_ON_DEATH_AFFECT(pkAff->dwType) || IS_NO_SAVE_AFFECT(pkAff->dwType) )
            {
                ++it;
                continue;
            }

altına eklenir;

#ifdef ENABLE_ALIGNMENT_SYSTEM
    if (pkAff->dwType == AFFECT_ALIGN_BONUS1 || pkAff->dwType == AFFECT_ALIGN_BONUS2) // Burayı kendi affectlerinize göre düzenleyebilirsiniz.
    {
        ++it;
        continue;
    }
#endif
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst