Çözüldü NPC EKLEME YARDIM

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++:
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++:
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++:
 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++:
 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