Yardım Player , npc ve metin tipleri hakkında

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

deadlymans

Üye
Üye
Merhaba Metin2 de Oyun içerisinde npc,player,metin taşı,mob tiplerinin olduğunu biliyorum bunların bilgisi oyunun nereden veriliyor yardımcı olur musunuz. Mesela oyun içinde metin taşı tipi:2 ,Playe tipi:6 olarak tanımlı yeni bir tanımlama yapmak istersem nereye bakmalıyım.
 
Type değerlerini diyorsan navicat mob_proto tablosundan bakabilirsin.
Type 0 : Yaratık/Canavar
Type 1 : NPC
Type 2 : Metin
Type 3 : Işınlanma Kapısı
 
actorinstans.h dosyasının içerisinde defineler tanımlı
C++:
enum EType
        {
            TYPE_ENEMY, // 0
            TYPE_NPC,
            TYPE_STONE,
            TYPE_WARP,
            TYPE_DOOR,
            TYPE_BUILDING,
            TYPE_PC,
            TYPE_POLY,
            TYPE_HORSE,
            TYPE_GOTO,

            TYPE_OBJECT, // Only For Client
        };
 
Type değerlerini diyorsan navicat mob_proto tablosundan bakabilirsin.
Type 0 : Yaratık/Canavar
Type 1 : NPC
Type 2 : Metin
Type 3 : Işınlanma Kapısı
Teşekkür ederim. Tip değerlerinin clientte naıl çekildiğinide merak ediyorum.

actorinstans.h dosyasının içerisinde defineler tanımlı
C++:
enum EType
        {
            TYPE_ENEMY, // 0
            TYPE_NPC,
            TYPE_STONE,
            TYPE_WARP,
            TYPE_DOOR,
            TYPE_BUILDING,
            TYPE_PC,
            TYPE_POLY,
            TYPE_HORSE,
            TYPE_GOTO,

            TYPE_OBJECT, // Only For Client
        };
Evet bu tanımlamalar verileri sql den mi çekiyor TYPE_ENEMY=0 gibi çekiyorsa bunun nerede kodlandığını merak ediyorum.
 
Hiç ihtiyacım olmadığı için bu konuyu bilmiyorum. Ama tahminen yeni bir tip eklemek için dumpproto, db, game, client hepsini düzenlenmeli.
 
Evet bu tanımlamalar verileri sql den mi çekiyor TYPE_ENEMY=0 gibi çekiyorsa bunun nerede kodlandığını merak ediyorum.
Normalde txt dosyalarından alıyor. Ancak no_txt özelliği aktifse veritabanından alıyor. ClientManagerBoot.cpp ve ProtoReader.cpp dosyasındaki kodları inceleyin
 
Normalde txt dosyalarından alıyor. Ancak no_txt özelliği aktifse veritabanından alıyor. ClientManagerBoot.cpp ve ProtoReader.cpp dosyasındaki kodları inceleyin
Teşekkürler ProtoReader.cpp içerisinde Tanımlı bir dizi buldum sanırım bu dizi yardımıyla type kodlaması yapılıyor.
C++:
int get_Mob_Type_Value(string inputString)
{
    string arType[] = { "MONSTER", "NPC", "STONE", "WARP", "DOOR", "BUILDING", "PC", "POLYMORPH_PC", "HORSE", "GOTO"};

    int retInt = -1;
    //cout << "Type : " << typeStr << " -> ";
    for (unsigned int j=0;j<sizeof(arType)/sizeof(arType[0]);j++) {
        string tempString = arType[j];
        string tempInputString = trim(inputString);
        if    (tempInputString.compare(tempString)==0)
        {
            //cout << j << " ";
            retInt =  j;
            break;
        }
    }
    //cout << endl;

    return retInt;
}

Ayrıca sonradan bakacaklar için ; /usr/game/share/conf yolu içerisinde bulunan mob_proto.txt dosyası içerisinden TYPE değişikliği yapılabiliyor, yapılan değişiklik navicatta doğrudan gözlemleniyor, navicatta TYPE belirteci sayılarla ifade ediliyor fakat mob_proto.txt dosyası içerisinde STRİNG(ENEMY,STONE etc.) ifadelerle tanımlanıyor. Bir şeyler buldukça ve anladıkça ekleme yaparım.
 
Geri