[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 832

Kaiser

Admin
Admin
Süper Üye
Geliştirici
Yardımsever Üye
Mesaj
4.582
Çözümler
452
Beğeni
5.562
Puan
5.349
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:
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst