Çözüldü Pack birleştirme hakkında soru

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ı.

Kaptan Yosun

Discord: kaptanyosun
Site yetkilisi
Acemi Moderatör
Premium Üye
Mesaj
571
Çözümler
19
Beğeni
391
Puan
839
Ticaret Puanı
0
Merhabalar, clientteki packleri sadeleştirmek için çalışıyorum. Aklıma bir şey takıldı.

Mesela "metin2_patch_5th_armor\ymir work\npc\gilaso" içinde,
1644648789700.png


"npc\ymir work\npc\gilaso" içinde zaten olan dosyalar var.
1644648876509.png


Pack içindeki "Index" dosyası içinde "metin2_patch_5th_armor"(41. satır), "d:/ymir work/npc/"(80. satır)den daha önce geliyor.
1644649209774.png

Bu, 80. satırdaki dosyalar 41. satırdaki dosyaların üzerine yazılır mı demek? Yoksa tam tersi mi? Hangi dosya daha güncel sürüm nasıl bilebiliriz? Eğer "metin2_patch_5th_armor" içindekiler daha güncelse, neden "die.gr2" gibi dosyaları yok(motlist içinde de yok)?


metin2_patch_5th_armor\ymir work\npc\gilaso motlist.txt:
GENERAL WAIT wait.msa 70
GENERAL WAIT1 wait1.msa 30

npc\ymir work\npc\gilaso motlist.txt:
GENERAL DEAD die.msa 100
GENERAL RUN run.msa 100
GENERAL WAIT wait.msa 100
GENERAL WALK walk.msa 100
 
Çözüm
Bununla karşılaşıp bana yazan çok oluyor. İndex sırasına göre okuyor mesela İndeximizi şöyle düşünelim

Index:
*
1
*
2
*

ikisindede var olan dosyayı asd.dds ilk önce hangisinde ekliyse onda okuyor. Yani 1 indexte 2den daha önce geldiği için 1de okuyacaktır.
Üzerine yazılmaz, clientin pack okuma olayı sabit değil aslında. Mesela şöyle örneklendirim,

gilaso packine ait bütün dosyalar fotodaki gibi ymir work/npc/gilaso içinde olsun, ama gilaso.dds dosyası Yerel Disk D/ymir work/npc/gilaso içinde olsun.

client bu durumda her iki dizini de okur. gr2,msm falan kendi packinden, DDS dosyasını da D diskinin içindeki ymir work klasöründen okuyup işler. Oyun içinde de hepsi bir arada calisir. Bu çoklu çalışma mantığı kendi pack içinde de geçerlidir.

Mesela gilaso.dds dosyası, senin sonradan oluşturduğun rastgele isimli bir pack dosyasının içinde de olsa, eğer dizini doğru sağlanmışsa ve 5th_armor packi içinde bu DDS yoksa, senin o dosyayı koyduğun pack içinden çekip okur.

Şu an bu durumda yapman gereken şey ise, hangi pack dosyalarını okuduğunu tespit edip, diğerini silmek. Biraz deneme yanılma gerektiren bir durum. Eğer eksik dosya hatası falan alırsan da, diğer fazlalık olan pack içinden o dosyayı alıp, asıl kullanmak istediğin klasörün içine dahil edersin.

Peki neden iki farklı dizinde aynı dosyalar var? Diye soracak olursan da, dosyaları hazırlayan kişinin tercihine kalmış bir durum. Hem dahili olarak eklemiş, hem de ayrı bir pack olarak eklemiş olabilir. Ancak client, doğru olan bir tanesini okur sadece.
 
Sanırım index dosyasında üste olan overwrite ediliyor.
 
Bununla karşılaşıp bana yazan çok oluyor. İndex sırasına göre okuyor mesela İndeximizi şöyle düşünelim

Index:
*
1
*
2
*

ikisindede var olan dosyayı asd.dds ilk önce hangisinde ekliyse onda okuyor. Yani 1 indexte 2den daha önce geldiği için 1de okuyacaktır.
 
Çözüm
Bununla karşılaşıp bana yazan çok oluyor. İndex sırasına göre okuyor mesela İndeximizi şöyle düşünelim

Index:
*
1
*
2
*

ikisindede var olan dosyayı asd.dds ilk önce hangisinde ekliyse onda okuyor. Yani 1 indexte 2den daha önce geldiği için 1de okuyacaktır.
Yani bu durumda "metin2_patch_5th_armor\ymir work\npc\gilaso"(41.satır) içindekileri okuyacak, doğru mu? Öyleyse "metin2_patch_5th_armor\ymir work\npc\gilaso"(41.satır) içindeki motlist'te die.msa ve run.msa olmadığı için bu dosyaların "npc\ymir work\npc\gilaso"(80.satır) içinde bulunması gereksiz oluyor. Kullanılmayacak sonuçta motlist'te olmadığından?

Anlamadığım official client unpack'ta da gilaso klasöründeki motlist, aynı "metin2_patch_5th_armor\ymir work\npc\gilaso"(41.satır) gibi. run.msa ve die.msa yok, ama yine de bu dosyalar gilaso klasöründe. Neden?


Official unpack motlist:
GENERAL WAIT wait.msa 70
GENERAL WAIT1 wait1.msa 30

Official unpack gilaso klasörü. Motlist'te olmayan run ve die neden klasörde?
1644670136422.png
 
Son düzenleme:
Metin2 içerisinde yarım bırakılmış şey çok eklemek istiyorsan içeriğine ekleyebilirsin. Sonuçta yürüyen ölen bir npc değil genelde sabit kullanılıyor.
Kod:
GENERAL DEAD die.msa 100
GENERAL RUN run.msa 100
 
Metin2 içerisinde yarım bırakılmış şey çok eklemek istiyorsan içeriğine ekleyebilirsin. Sonuçta yürüyen ölen bir npc değil genelde sabit kullanılıyor.
Kod:
GENERAL DEAD die.msa 100
GENERAL RUN run.msa 100
Hocam o zaman anladığım kadarıyla bu motlist'in olayı %70 ihtimalle wait.msa animasyonu oynat, %30 ihtimalle wait1.msa animasyonunu oynat demek. Run ve Die animasyonları da şu anlık kullanılmıyor ancak gelecekte kullanılabilir diye bulunuyor.

Bu yüzden "metin2_patch_5th_armor\ymir work\npc\gilaso" klasöründeki dosyaları "npc\ymir work\npc\gilaso" üzerine yazabilirim. böylece bu, yama olmaktan çıkar ve doğrudan oyuna entegre olur. metin2_patch_5th_armor packini de silebilirim. Ardından bu packi de Index dosyasından kaldırırım.

Doğru mu acaba?
 
Yani bu durumda "metin2_patch_5th_armor\ymir work\npc\gilaso"(41.satır) içindekileri okuyacak, doğru mu? Öyleyse "metin2_patch_5th_armor\ymir work\npc\gilaso"(41.satır) içindeki motlist'te die.msa ve run.msa olmadığı için bu dosyaların "npc\ymir work\npc\gilaso"(80.satır) içinde bulunması gereksiz oluyor. Kullanılmayacak sonuçta motlist'te olmadığından?

Anlamadığım official client unpack'ta da gilaso klasöründeki motlist, aynı "metin2_patch_5th_armor\ymir work\npc\gilaso"(41.satır) gibi. run.msa ve die.msa yok, ama yine de bu dosyalar gilaso klasöründe. Neden?


Official unpack motlist:
GENERAL WAIT wait.msa 70
GENERAL WAIT1 wait1.msa 30

Official unpack gilaso klasörü. Motlist'te olmayan run ve die neden klasörde?
9188 eklentisini görüntüle
Şu syserr hatası, anlaşılması için yardımcı olabilir.

Kod:
0228 05:11:30006 :: CRaceManager::RegisterRacePath : RACE[268] LOAD MSMFILE[d:/ymir work/monster/asgard_plechi_moonwol/asgard_plechi_moonwol.msm] ERROR. Will Find Another Path.
0228 05:11:30006 :: CRaceManager::RegisterRacePath : RACE[268] LOAD MSMFILE[d:/ymir work/monster2/asgard_plechi_moonwol/asgard_plechi_moonwol.msm] ERROR. Will Find Another Path.
0228 05:11:30006 :: CRaceManager::RegisterRacePath : RACE[268] LOAD MSMFILE[d:/ymir work/npc/asgard_plechi_moonwol/asgard_plechi_moonwol.msm] ERROR. Will Find Another Path.
0228 05:11:30006 :: CRaceManager::RegisterRacePath : RACE[268] LOAD MSMFILE[d:/ymir work/npc_mount/asgard_plechi_moonwol/asgard_plechi_moonwol.msm] ERROR. Will Find Another Path.
0228 05:11:30006 :: CRaceManager::RegisterRacePath : RACE[268] LOAD MSMFILE[d:/ymir work/npc2/asgard_plechi_moonwol/asgard_plechi_moonwol.msm] ERROR. Will Find Another Path.
0228 05:11:30006 :: CRaceManager::RegisterRacePath : RACE[268] LOAD MSMFILE[d:/ymir work/guild/asgard_plechi_moonwol/asgard_plechi_moonwol.msm] ERROR

Mesela burada npc ye ait msm dosyası için;
monster
monster2
npc
npc2
npc_mount

Gibi farklı dizinlere başvuruyor. Hangisinde bulursa ordakini alıp kullanacak. Hatada da belirttiği üzere bakılacak son yere gelene kadar "Will Find Another Path." (Başka yollara bakılacak) uyarısı veriyor. Yani Index sıralamasına göre çalışıyor olsa bile, kendi içinde dizin araması yapıyor yinede.

Run ve die animasyonlarının ise bir zararı yok. Şu an halihazırda bile bazı npcler bu animasyonlara sahip. Mesela yanlış hatırlamıyorsam Köy Gardiyanı koşma animasyonuna sahip. Ancak kullanılmayıp, npc sabitlendiği sürece hiç bir problem yaratmaz.
 
Hocam o zaman anladığım kadarıyla bu motlist'in olayı %70 ihtimalle wait.msa animasyonu oynat, %30 ihtimalle wait1.msa animasyonunu oynat demek. Run ve Die animasyonları da şu anlık kullanılmıyor ancak gelecekte kullanılabilir diye bulunuyor.

Bu yüzden "metin2_patch_5th_armor\ymir work\npc\gilaso" klasöründeki dosyaları "npc\ymir work\npc\gilaso" üzerine yazabilirim. böylece bu, yama olmaktan çıkar ve doğrudan oyuna entegre olur. metin2_patch_5th_armor packini de silebilirim. Ardından bu packi de Index dosyasından kaldırırım.

Doğru mu acaba?
Evet burada dediğim gibi yaptım. metin2_patch_5th_armor içindeki Sarhoş adam "eojiryu" dosyalarını da npc\ymir work içindekilerin üstüne yazıp Indexten metin2_patch_5th_armor'i sildim. Sarhoş adam bozulmadı, yürüyor sonra da içkisini içiyor. Yani görünen o ki dediğim gibi yapılabiliyormuş.
 
1644675119028.png

Doğru dizinlerin içerisinde birleştirdiğin sürece bir problem yaşamazsın.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst