Map ismine göre Objelere/Binalara/Npc'lere vs Takılmayı kapatmak

  • Konuyu açan Konuyu açan Tengrist
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 0
  • Gösterim Gösterim 79

Tengrist

MT Üye
MT Üye
Mesaj
653
Çözümler
25
Beğeni
482
Puan
809
Ticaret Puanı
0
Oto avda müşterilerim objesiz mapler istiyorlar dümdüz ve estetikten uzak oluyor onun yerine objelerin vs içinden geçme mevzusunu aktif etmeyi araştırdım yıllar önce vegas paylaşmış
Şu fonksiyonu bul:Client SRC içine gir GameLib dosyası içine gir ActorInstanceCollisionDetection.cpp aç ve içinde bul: BOOL CActorInstance::TestActorCollision


C++:
Genişlet Daralt Kopyala
BOOL CActorInstance::TestActorCollision(CActorInstance & rVictim)
{
    [........................]
    const std::string c_rstrAtlasMapNames[] =
    {
        "metin2_map_a1",
        "metin2_map_a3",
        "metin2_map_b1",
        "metin2_map_b3",
        "metin2_map_c1",
        "metin2_map_c3",
        "season2/metin2_map_skipia_dungeon_01",
        "season2/metin2_map_skipia_dungeon_02",
        "metin2_map_duel"
    };
   
    const std::string & c_rstrMapName = CPythonBackground::Instance().GetWarpMapName();
    for (size_t i = 0; i < _countof(c_rstrAtlasMapNames); ++i)
    {
        if (!c_rstrMapName.compare(c_rstrAtlasMapNames[i]))
        {
            if (rVictim.IsEnemy() || rVictim.IsPoly() || rVictim.IsObject() || rVictim.IsNPC() || rVictim.IsBuilding()|| rVictim.IsPC()) // IsNPC(), IsEnemy(), IsStone(), IsWarp(), IsGoto(), IsBuilding(), IsDoor(), IsObject()
                return false;
        }
    }
}

bu değişiklik sayesinde tabloya yazdığınız maplerde objelere npclere binalara oyunculara takılmayacaksınız, tabloya kullanmak istediğiniz mapin packteki adını girin. Otoav kullananlar otoavın daha sağlıklı çalışması için metinlere çarpışmayı pack taraflı kapatın.

EK OLARAK: Kullanmak istediğiniz maplerde server taraflı bloklama varsa objelerin altında World Editor programından silip, yeni server attr oluşturup winscp taraflı map klasöründeki server attryi ve packteki map dosyasını bloklamasını kaldırdığınız map dosyasıyla değişin. Bu sadece mdatr ile olan collision ı siler.
 
Üst