shrpnl 1
shrpnl
Queinn 1
Queinn
NovaLst 1
NovaLst
InfernoShade 1
InfernoShade
MysticBlade 1
MysticBlade
SolarPhantom 1
SolarPhantom
Riftas 1
Riftas
LunarWraith 1
LunarWraith
DarkHorizon 1
DarkHorizon
SLyFeLLowTR 1
SLyFeLLowTR
Scarlet 1
Scarlet
dogusarikaya 1
dogusarikaya
Hikaye Ekle

Ölünce Buffların Neden Gitsin ?

  • Konuyu başlatan Konuyu başlatan Reached
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 38
  • Görüntüleme Görüntüleme 6K

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

@emirqnq Sınırsız skil nasıl yapabiliriz vs server için hava kılıcı ateş hayaleti keskinlik koruma vs gibi yakmalı skiller sönmesin hiç, Bir tek ölünce sönsün
 
O şekilde daha mantıklı pcyse true değilse false şeklinde sorunsuz o şekilde


C++:
    SetPosition(POS_DEAD);
    ClearAffect(true);

   //normalde bu şekilde

    if (pkKiller && IsPC())
    {
        if (!pkKiller->IsPC())
        {
            if (!isForked)
            {
                sys_log(1, "DEAD: %s %p WITH PENALTY", GetName(), this);
                SET_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_DEATH_PENALTY);
                LogManager::instance().CharLog(this, pkKiller->GetRaceNum(), "DEAD_BY_NPC", pkKiller->GetName());
            }
        }
        else
        {
           placeHolder(ClearAffect); //buraya aldığımızda olanda zaten aynı olacak 
            ClearAffect(true);
            sys_log(1, "DEAD_BY_PC: %s %p KILLER %s %p", GetName(), this, pkKiller->GetName(), get_pointer(pkKiller));
            REMOVE_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_DEATH_PENALTY);

pseudo code olarak bakarsak
orjinalinde
öldün -> affectleri kaldır, daha sonra pc yada npc kontrolü yap,

benim dediğim şekilde ki @cBaraN da aynısını fonksiyona yeni argüman ekleyerek yapmış
öldün->öldüren npc mi? hayır sa affectleri temizle


ben mantık olarak aralarında bir fark göremediğim için soruyorum sadece
 
C++:
    SetPosition(POS_DEAD);
    ClearAffect(true);

   //normalde bu şekilde

    if (pkKiller && IsPC())
    {
        if (!pkKiller->IsPC())
        {
            if (!isForked)
            {
                sys_log(1, "DEAD: %s %p WITH PENALTY", GetName(), this);
                SET_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_DEATH_PENALTY);
                LogManager::instance().CharLog(this, pkKiller->GetRaceNum(), "DEAD_BY_NPC", pkKiller->GetName());
            }
        }
        else
        {
           placeHolder(ClearAffect); //buraya aldığımızda olanda zaten aynı olacak
            ClearAffect(true);
            sys_log(1, "DEAD_BY_PC: %s %p KILLER %s %p", GetName(), this, pkKiller->GetName(), get_pointer(pkKiller));
            REMOVE_BIT(m_pointsInstant.instant_flag, INSTANT_FLAG_DEATH_PENALTY);

pseudo code olarak bakarsak
orjinalinde
öldün -> affectleri kaldır, daha sonra pc yada npc kontrolü yap,

benim dediğim şekilde ki @cBaraN da aynısını fonksiyona yeni argüman ekleyerek yapmış
öldün->öldüren npc mi? hayır sa affectleri temizle


ben mantık olarak aralarında bir fark göremediğim için soruyorum sadece
Ha aynen, olay o
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst