Çözüldü NPC EKLEME YARDIM

  • Konuyu açan Konuyu açan avukat47
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 7
  • Gösterim Gösterim 2K
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.

avukat47

Üye
Üye
Mesaj
27
Çözümler
1
Beğeni
14
Puan
655
Ticaret Puanı
0
İyi Forumlar. Foxfsli filesim var npc eklemek istiyorum. eskıden packta index'e ad eklerdık burada ''ui'' diye kısıma eklenıyormuş bulamadım yardımcı olacak varmı?
 
Çözüm
Foxfs'de Index dosyası yoktur. Bu tür istemcilerde (client) ayrıştırılacak dosyaların listesi Client/UserInterface.cpp içinde ki;
PackInitialize isimli fonksiyonun içinde bulunur. Kod şu şekilde olması lazım;
C++:
Genişlet Daralt Kopyala
bool PackInitialize(const char * c_pszFolder)
{
#if defined(ENABLE_FOX_FS) || defined(USE_ZFS)
    NANOBEGIN
    if (_access(c_pszFolder, 0) != 0)
        return true;

    std::string stFolder(c_pszFolder);
    stFolder += "/";

    CTextFileLoader::SetCacheMode();

#if defined(USE_RELATIVE_PATH)
    CEterPackManager::Instance().SetRelativePathMode();
#endif

    CEterPackManager::Instance().SetCacheMode();
    CEterPackManager::Instance().SetSearchMode(CEterPackManager::SEARCH_PACK)...
Foxfs'de Index dosyası yoktur. Bu tür istemcilerde (client) ayrıştırılacak dosyaların listesi Client/UserInterface.cpp içinde ki;
PackInitialize isimli fonksiyonun içinde bulunur. Kod şu şekilde olması lazım;
C++:
Genişlet Daralt Kopyala
bool PackInitialize(const char * c_pszFolder)
{
#if defined(ENABLE_FOX_FS) || defined(USE_ZFS)
    NANOBEGIN
    if (_access(c_pszFolder, 0) != 0)
        return true;

    std::string stFolder(c_pszFolder);
    stFolder += "/";

    CTextFileLoader::SetCacheMode();

#if defined(USE_RELATIVE_PATH)
    CEterPackManager::Instance().SetRelativePathMode();
#endif

    CEterPackManager::Instance().SetCacheMode();
    CEterPackManager::Instance().SetSearchMode(CEterPackManager::SEARCH_PACK);

    CSoundData::SetPackMode();
    CEterPackManager::Instance().RegisterPack("pack/maps", "*");
    CEterPackManager::Instance().RegisterPack("pack/update1", "d:/ymir work/");
    CEterPackManager::Instance().RegisterPack("pack/bgm", "bgm");
    CEterPackManager::Instance().RegisterPack("pack/effect", "d:/ymir work/effect");
    CEterPackManager::Instance().RegisterPack("pack/etc", "d:/ymir work");
    CEterPackManager::Instance().RegisterPack("pack/guild", "d:/ymir work/guild");
    CEterPackManager::Instance().RegisterPack("pack/icon", "icon");
    CEterPackManager::Instance().RegisterPack("pack/item", "d:/ymir work/item");
    CEterPackManager::Instance().RegisterPack("pack/locale", "locale");
    CEterPackManager::Instance().RegisterPack("pack/monster", "d:/ymir work/monster");
    CEterPackManager::Instance().RegisterPack("pack/monster2", "d:/ymir work/monster2");
    CEterPackManager::Instance().RegisterPack("pack/npc", "d:/ymir work/npc");
    CEterPackManager::Instance().RegisterPack("pack/npc2", "d:/ymir work/npc2");
    CEterPackManager::Instance().RegisterPack("pack/pc", "d:/ymir work/pc");
    CEterPackManager::Instance().RegisterPack("pack/pc2", "d:/ymir work/pc2");
    CEterPackManager::Instance().RegisterPack("pack/pc3", "d:/ymir work/pc3");
    CEterPackManager::Instance().RegisterPack("pack/property", "property");
    CEterPackManager::Instance().RegisterPack("pack/sound", "sound");
    CEterPackManager::Instance().RegisterPack("pack/terrain", "d:/ymir work/terrainmaps");
    CEterPackManager::Instance().RegisterPack("pack/textureset", "textureset");
    CEterPackManager::Instance().RegisterPack("pack/tree", "d:/ymir work/tree");
    CEterPackManager::Instance().RegisterPack("pack/zone", "d:/ymir work/zone");
    CEterPackManager::Instance().RegisterPack("pack/npc_pet", "d:/ymir work/npc_pet");
    CEterPackManager::Instance().RegisterPack("pack/npc_mount", "d:/ymir work/npc_mount");

    CEterPackManager::Instance().RegisterRootPack((stFolder + std::string("root")).c_str());
    NANOEND
        return true;
#else


Siz yeni bir npc paketi eklediniz ve yeni pack dosyanızın adı atıyorum yeni_npc olsun yukarıda bulunan koda şu şekilde ekleme yapmalısınız.
C++:
Genişlet Daralt Kopyala
 CEterPackManager::Instance().RegisterPack("pack/yeni_npc", "d:/ymir work/npc");

Eğer pack dosyanızın içinde ymir work dışında çıkarılacak dosya varsa sound gibi mesela. Kodu şu şekilde de ekleyebilirsiniz.
C++:
Genişlet Daralt Kopyala
 CEterPackManager::Instance().RegisterPack("pack/yeni_npc", "*");

Daha sonra clienti build ediniz.
 
Çözüm
Hayır

root locale ui icon dosyaları açık src tabanlı işlemler kapalı imiş
 
En son bir moderatör tarafından düzenlenmiş:
Sizin fileste nasıl ayarlanmıştır bilmiyorum ama foxfs genel anlamda bu şekilde dosyaları çekiyor. Bu yüzden sourceleri de almanız lazım.
 
Şöyle de yapabilirsiniz mevcut pack dosyasına npc modellerini atabilirsiniz. Fakat şunu da unutmamak gerek bu devirde src olmayan/verilmeyen filesleri kullanmak doğru değil. En ufak düzenleme yapmak için bile bu dosyalara ihtiyaç oluyor.
 
Geri
Üst