Çözüldü server taraflı db if def

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

kostak98

Üye
Üye
Mesaj
18
Beğeni
1
Puan
415
Ticaret Puanı
0
Herkese merhaba, full yang sistemini defineli yaptım ama kafama takılan birşey oldu herşey iyi çalışıyor gözüküyor ama emin olmak istiyorum:
common>service.h tanımlı> #define FULL_YANG
common>length.h >

#ifdef FULL_YANG
GOLD_MAX = 1000000000000001LL,
//LIMIT_GOLD
#else
GOLD_MAX = 2000000000,
#endif

ama length.h içinde service.h include değil
sadece bunlar var
#ifndef __INC_METIN_II_LENGTH_H__
#define __INC_METIN_II_LENGTH_H__

#define WORD_MAX 0xffff

soru şu şimdi bu duruma göre ifdef boşunamı yani onun içindekini algılamadan elseyimi baz alıyor eğer öyleyse sistem sorunlu build almazmıydı yada oyun içinde sistem sorun yapmazmıydı.
Buildler hatasız alındı oyuna girip testinide yaptım garip bir durum belkide bana göre garip birisi beni aydınlandırabilirmi?

Linkleri görebilmek için giriş yap veya kayıt ol.
 
Çözüm
mesela input_db.cpp dosyasındada service.h yok ama oyun içi nesne market ifdef'i çalısıyor. Şimdi ben şunu öğrenmeye çalısıyorum bu service.h dosyası ekli olmadı halde nasıl algılanıyor yada bu dosya nerde tanımlanıyor yokken nasıl varmış gibi davranıyor sistem
#include "stdafx.h"
#include "constants.h"
#include "config.h"
#include "utils.h"
#include "desc_manager.h"
#include "char.h"
#include "char_manager.h"
#include "item.h"
#include "item_manager.h"
#include "packet.h"
#include "protocol.h"
#include "mob_manager.h"
#include "shop_manager.h"
#include "sectree_manager.h"
#include "skill.h"
#include "questmanager.h"
#include "p2p.h"
#include "guild.h"
#include "guild_manager.h"
#include "start_position.h"
#include "party.h"...
Her türlü ekle kalsın.
Misal kanal değiştirme sistemi eklerken tables içindeki defineyi görmediği oluyor. common içindeki her h dosyasına include edebilirsin.
 
Client tarafında da bazı noktalar var bunun gibi. Ve bazen aynı durum birden fazla dosya için söz konusu olabiliyor. Bu yüzden oluşabilecek bugları önlemek ve service.h & locale_inc.h çekmekle uğraşmak yerine aşağıdaki gibi yapıp geçiyorum.

C++:
Genişlet Daralt Kopyala
GOLD_MAX = 1000000000000001LL, // FULL_YANG
// GOLD_MAX = 2000000000, // Orjinal
 
Her türlü ekle kalsın.
Misal kanal değiştirme sistemi eklerken tables içindeki defineyi görmediği oluyor. common içindeki her h dosyasına include edebilirsin.
Yani hata almadıysanız bile service.h include yapın kafanız rahat olsun diyosunuz

Client tarafında da bazı noktalar var bunun gibi. Ve bazen aynı durum birden fazla dosya için söz konusu olabiliyor. Bu yüzden oluşabilecek bugları önlemek ve service.h & locale_inc.h çekmekle uğraşmak yerine aşağıdaki gibi yapıp geçiyorum.

C++:
Genişlet Daralt Kopyala
GOLD_MAX = 1000000000000001LL, // FULL_YANG
// GOLD_MAX = 2000000000, // Orjinal
ilk başta öyle yaptım ama sistemi yeri geldiğinde basit kapatmak istiyorum bu yüzden ifdefli yaptım heryeri biraz düzenli tutmaya calısıyorum filesi

mesela input_db.cpp dosyasındada service.h yok ama oyun içi nesne market ifdef'i çalısıyor. Şimdi ben şunu öğrenmeye çalısıyorum bu service.h dosyası ekli olmadı halde nasıl algılanıyor yada bu dosya nerde tanımlanıyor yokken nasıl varmış gibi davranıyor sistem
C++:
Genişlet Daralt Kopyala
#include "stdafx.h"

#include "constants.h"

#include "config.h"

#include "utils.h"

#include "desc_manager.h"

#include "char.h"

#include "char_manager.h"

#include "item.h"

#include "item_manager.h"

#include "packet.h"

#include "protocol.h"

#include "mob_manager.h"

#include "shop_manager.h"

#include "sectree_manager.h"

#include "skill.h"

#include "questmanager.h"

#include "p2p.h"

#include "guild.h"

#include "guild_manager.h"

#include "start_position.h"

#include "party.h"

#include "refine.h"

#include "banword.h"

#include "priv_manager.h"

#include "db.h"

#include "building.h"

#include "login_sim.h"

#include "wedding.h"

#include "login_data.h"

#include "unique_item.h"



#include "monarch.h"

#include "affect.h"

#include "castle.h"

#include "block_country.h"

#include "motion.h"



#include "dev_log.h"



#include "log.h"



#include "horsename_manager.h"

#include "pcbang.h"

#include "gm.h"

#include "panama.h"

#include "map_location.h"

// #include "HackShield.h"



#include "DragonSoul.h"



#ifdef _ITEM_SHOP_SYSTEM

#include "item_shop.h"

#endif
 
En son bir moderatör tarafından düzenlenmiş:
mesela input_db.cpp dosyasındada service.h yok ama oyun içi nesne market ifdef'i çalısıyor. Şimdi ben şunu öğrenmeye çalısıyorum bu service.h dosyası ekli olmadı halde nasıl algılanıyor yada bu dosya nerde tanımlanıyor yokken nasıl varmış gibi davranıyor sistem
#include "stdafx.h"
#include "constants.h"
#include "config.h"
#include "utils.h"
#include "desc_manager.h"
#include "char.h"
#include "char_manager.h"
#include "item.h"
#include "item_manager.h"
#include "packet.h"
#include "protocol.h"
#include "mob_manager.h"
#include "shop_manager.h"
#include "sectree_manager.h"
#include "skill.h"
#include "questmanager.h"
#include "p2p.h"
#include "guild.h"
#include "guild_manager.h"
#include "start_position.h"
#include "party.h"
#include "refine.h"
#include "banword.h"
#include "priv_manager.h"
#include "db.h"
#include "building.h"
#include "login_sim.h"
#include "wedding.h"
#include "login_data.h"
#include "unique_item.h"

#include "monarch.h"
#include "affect.h"
#include "castle.h"
#include "block_country.h"
#include "motion.h"

#include "dev_log.h"

#include "log.h"

#include "horsename_manager.h"
#include "pcbang.h"
#include "gm.h"
#include "panama.h"
#include "map_location.h"
// #include "HackShield.h"

#include "DragonSoul.h"

#ifdef _ITEM_SHOP_SYSTEM
#include "item_shop.h"
#endif
Burada listelediğin .h dosyalarının tek bir tanesinin içinde bile service.h tanımlı ise bu dosya #ifdef makrolarını algılar.
Ve genellikle stdafx.h içinde #include "../../common/service.h" tanımlıdır.
 
Çözüm
stdafx.h içinde var evet, stdafx.h olmayanlara direk manuel olarak yollarını ekledim.
#include "../../common/service.h"
sanırım herşey iyi şuanda teşekkürler herşey için. Sorma amacım bilmediğim birşeymi var acaba demiştim hata almadıgım için bu bilgiler yeterli oldu bana
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst