[FIX] GM Karakterin /inv Komutu Sonrası Efektlerin Görünmemesi

  • Konuyu açan Konuyu açan Kaiser
  • Açılış Tarihi Açılış Tarihi
  • Seçkin
  • Yanıt Yanıt 10
  • Gösterim Gösterim 223

Kaiser

Admin
Admin
Geliştirici
Yardımsever Üye
Mesaj
4.008
Çözümler
394
Beğeni
4.129
Puan
1.849
Ticaret Puanı
0
Zaman zaman gündeme gelen meşhur sorunu hepiniz biliyorsunuzdur.
Yine de bilmeyenler için kısaca anlatayım; /inv komutu ile görünmez olup tekrar görünür olduktan sonra GM karakterin efektleri görünmüyor. Martysama fileslerde bulunan ENABLE_CANSEEHIDDENTHING_FOR_GM makrolu düzenleme, sadece sizin ekranınız için geçerli bir düzenlemedir. Yani diğer oyuncularda efektler görünmemeye devam ediyor.

Bugüne kadar bu sorunu önemsemiyordum ama bazı düzenlemeleri yapabilmem için bu sorunu çözmem şart olduğu için iş başa düştü. Kodlara biraz göz attım ve bu sorunu çözmek için çok küçük ve zararsız bir manipüle yöntemi keşfettim. Hiçbir şekilde görsel bozulma vb. sonuçlar doğurmuyor.
Ve sonuç itibariyle bu kanser haline gelen sorunun çözümünü sizinle de paylaşmak istedim.

Yapmanız gereken tek düzenleme aşağıdaki gibidir.
InstanceBaseEffect.cpp dosyasını açın ve gösterdiğim gibi düzenleyin:

C++:
Genişlet Daralt Kopyala
        case AFFECT_INVISIBILITY:
// bu sizde olmayabilir. Bununla herhangi bir işimiz yok. Aşağıya inin.
#ifdef ENABLE_CANSEEHIDDENTHING_FOR_GM
            if (__MainCanSeeHiddenThing())
            {
                if (isVisible)
                {
                    m_GraphicThingInstance.BlendAlphaValue(0.5f, 1.0f);
                }
                else
                {
                    m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f);
                }
                break;
            }
#endif
            if (isVisible)
            {
                m_GraphicThingInstance.ClearAttachingEffect();
                __EffectContainer_Destroy();
                DetachTextTail();
            }
            else
            {
                m_GraphicThingInstance.BlendAlphaValue(1.0f, 1.0f);
                if (IsGameMaster() && !__IsMainInstance()) // Buradan itibaren düzenleyin.
                {
                    ChangeArmor(0);
                }
                else
                {
                    // bu ikisini "else" bloğu içine alın.
                    AttachTextTail();
                    RefreshTextTail();
                }
               
            }
Not: Bazılarınız "IsGameMaster()" şartı mevcutken, "__IsMainInstance()" şartının kullanılmasına gerek olmadığını düşünebilir ancak bunu kaldırmayın.
Önemlidir. Son olarak at sorunu devam etmektedir.

Hepsi bu kadar. Aşağıda kanıt videosunu izleyebilirsiniz.

 
görünmezlikten çıktıktan sonra at skill effecti sistemini paylaşır mısın aşırı hoşuma gitti :)
 
Sayın Değerli adminim, rica etsem o efekti bizlerle paylaşabilir misiniz bir mahsuru yoksa :D
 
okan kanka sen yaparsın bu sistemi ya :D " /inv den sonra çıkan effect"
cmd_gm.cpp de inv içinde command gönder o commandı PythonNetworkStreamPhaseCommand içine ekle orada RegisterEffect ile dosya yolundan mse ismini al. ClientSource tarafından da yapılır sabahtan beri pc başındayım kafam allak bullak.
 
Son düzenleme:
Geri
Üst