Çözüldü Game Source Build Ederken

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

yurtalan7

Üye
Üye
Mesaj
16
Beğeni
4
Puan
425
Ticaret Puanı
0
Game source build ederken hiçbir sıkıntı yok fakat game dosyasını oluşturacağı zaman hata veriyor;
Kod:
linking ../game_r41024
/usr/local/bin/ld: .obj/char_affect.o: in function `CHARACTER::RemoveBadAffect()':
/usr/src/server/Server/game/src/char_affect.cpp:808: undefined reference to `CHARACTER::RemoveBleeding()'
/usr/local/bin/ld: .obj/cmd_gm.o: in function `do_bleeding(CHARACTER*, char const*, int, int)':
/usr/src/server/Server/game/src/cmd_gm.cpp:1618: undefined reference to `CHARACTER::AttackedByBleeding(CHARACTER*)'
collect2: error: ld returned 1 exit status
gmake: *** [Makefile:194: ../game_r41024] Error 1
 
Çözüm
Sadece onları yapsam pasife alınır mı yani hocam

#ifdef olarak tanımlıysa evet

mesela kodlar örnek bu şekildeyse;
C++:
#ifdef ENABLE_SKILL_COLOR_SYSTEM
        static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache, const char* name = NULL);
#else
        static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache);
#endif

sende #ifdef ENABLE_WOLFMAN veya #ifdef ENABLE_WOLFMAN_CHARACTER veya farklı şekilde yazabilir
Config dosyalarında ya da definelerinin olduğu yerde pasife alma vardır diye tahmin ediyorum en kolay yol olarak kaldırdığın dosyaların yedekleriyle eski haline dön, config ya da defineler ile pasife al.

Ya da char_affect.cpp dosyasında 808. satır ile cmd_gm.cpp 1618. satırları düzenleyerek kaldırma işlemini tamamen gerçekleştir.

Kanama efsununu tam kaldırmamışsın, o yüzden hata veriyor.
 
Config dosyalarında ya da definelerinin olduğu yerde pasife alma vardır diye tahmin ediyorum en kolay yol olarak kaldırdığın dosyaların yedekleriyle eski haline dön, config ya da defineler ile pasife al.

Ya da char_affect.cpp dosyasında 808. satır ile cmd_gm.cpp 1618. satırları düzenleyerek kaldırma işlemini tamamen gerçekleştir.

Kanama efsununu tam kaldırmamışsın, o yüzden hata veriyor.
Config yada define derken hocam pack danmi bahsediyorsun pasife alsam da olur benim için
 
Sadece onları yapsam pasife alınır mı yani hocam

#ifdef olarak tanımlıysa evet

mesela kodlar örnek bu şekildeyse;
C++:
#ifdef ENABLE_SKILL_COLOR_SYSTEM
        static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache, const char* name = NULL);
#else
        static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache);
#endif

sende #ifdef ENABLE_WOLFMAN veya #ifdef ENABLE_WOLFMAN_CHARACTER veya farklı şekilde yazabilir
 
Çözüm
#ifdef olarak tanımlıysa evet

mesela kodlar örnek bu şekildeyse;
C++:
#ifdef ENABLE_SKILL_COLOR_SYSTEM
        static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache, const char* name = NULL);
#else
        static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache);
#endif

sende #ifdef ENABLE_WOLFMAN veya #ifdef ENABLE_WOLFMAN_CHARACTER veya farklı şekilde yazabilir
Eve geçince deneyeceğim hocam teşekkür ederim
 
Config yada define derken hocam pack danmi bahsediyorsun pasife alsam da olur benim için


Config dosyaları kanal dosyalarında olur oyunda ki sistemleri açıp kapatman için kullanabilirsin.

Define(makro) atamaları da 2 yerde var, 1. server tabanlı olan 2. de client tabanlı olan macrolar.
service.h ve locale.h dosyalarının içinde olur.

#define ENABLE_WOLFMAN_CHARACTER yazar mesela sen bunu //#define ENABLE_WOLFMAN_CHARACTER yaparak yorum satırına alırsan hem server source hemde client source üzerinden ona göre derler ve lycan karakteri olmaz oyunda.
 
Config dosyaları kanal dosyalarında olur oyunda ki sistemleri açıp kapatman için kullanabilirsin.

Define(makro) atamaları da 2 yerde var, 1. server tabanlı olan 2. de client tabanlı olan macrolar.
service.h ve locale.h dosyalarının içinde olur.

#define ENABLE_WOLFMAN_CHARACTER yazar mesela sen bunu //#define ENABLE_WOLFMAN_CHARACTER yaparak yorum satırına alırsan hem server source hemde client source üzerinden ona göre derler ve lycan karakteri olmaz oyunda.
Teşekkür ederim hocam ilgilendiğiniz için eve geçince deneyeceğim
 
#ifdef olarak tanımlıysa evet

mesela kodlar örnek bu şekildeyse;
C++:
#ifdef ENABLE_SKILL_COLOR_SYSTEM
        static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache, const char* name = NULL);
#else
        static bool RegisterEffect(UINT eEftType, const char* c_szEftAttachBone, const char* c_szEftName, bool isCache);
#endif

sende #ifdef ENABLE_WOLFMAN veya #ifdef ENABLE_WOLFMAN_CHARACTER veya farklı şekilde yazabilir
Hocam şöyle bir kısım var ben bu şekilde yaptım doğru mudur acaba ? @adv1453
Kod:
// ### Lycan ###
//#define ENABLE_WOLFMAN_CHARACTER
    #ifdef ENABLE_WOLFMAN_CHARACTER
#define USE_MOB_BLEEDING_AS_POISON
#define USE_MOB_CLAW_AS_DAGGER
// #define USE_ITEM_BLEEDING_AS_POISON
// #define USE_ITEM_CLAW_AS_DAGGER
#define USE_WOLFMAN_STONES
#define USE_WOLFMAN_BOOKS
#endif
// ### Lycan ###
//////////////////////////////////////////////////////////////////////////

#define ENABLE_PLAYER_PER_ACCOUNT5
#define ENABLE_DICE_SYSTEM
#define ENABLE_EXTEND_INVEN_SYSTEM
#define ENABLE_MOUNT_COSTUME_SYSTEM
#define ENABLE_WEAPON_COSTUME_SYSTEM
#define ENABLE_MAGIC_REDUCTION_SYSTEM
#ifdef ENABLE_MAGIC_REDUCTION_SYSTEM
#define USE_MAGIC_REDUCTION_STONES
#endif
 
Son düzenleme:
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst