Metin2 Sunucu Dosyaları gcc 4.9 Hata Düzeltmeleri .... Çok Daha Fazlası RD

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 31

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
+ Değiştirilmiş oyun dosyası, dbcache ve qc-file
+ Lisans fonksiyonları tamamen kaldırıldı! Artık sunucu asla "geçersiz" olarak görülmeyecek. Oyun dosyasını kaldırarak işlevleri biraz hızlanacaktır.
+ Zaman bombası düzeltildi. Şimdi artık inceleme yapmıyorsunuz. İstediğiniz kadar oyun dosyasını kullanır!
+ Tüm Uzatma tabloları Uzantı tablosuyla birlikte fırlatıldı: exp_table_common. Bu, 200'e kadar seviyeye kadar uyum sağlamak için genişletildi.
+ Max_level 255'in üstünde yükseltilebilir!
+ Durum Puanı, max_level ne kadar yüksek olursa olsun, her seviye ile artar! Bu elbette hala CONFIG kullanılarak belirlenebilir.
+ Vampirizm düzeltildi! Waffensuralar aşırıya düştüklerinde kendilerini artık incitmeyeceklerdir. Bunun yerine kendini iyileştirir.
+ Deneyim Bonis şimdi birikimli hareket edin. Bu, şimdi artık Bonis'le deneyim kazanmak için öğeler vasıtasıyla daha yüksek tecrübeye sahip olabileceğiniz anlamına gelir, ancak kesinlikle her zaman daha fazla deneyim kazanır.
+ Sürüm denetimi yeniden yazıldı ve şimdi sunucu ve istemci sürümünü doğru bir şekilde kontrol ediyor. Ayrıca, yapılandırmadaki sunucu sürümü ayarlanabilir.
+ Yang limiti 999 999 999 999
+ Kadar arttırıldı Membuf hataları düzeltildi! Artık optimize edilmiş arabellek kullanılıyor, bu da fazla RAM tüketmiyor ancak oyuncuları elinde bulunduracak kadar tutun.
+ Priv_empire, 2000'den fazla atanabilir
+ Zamanlayıcı ve yapılandırma seçenekleri
+ yeni bir gcc sürümü altında Derlenen birçok yeni görev özellikleri : gcc 4.9! Bu oyun dosyasını daha küçük, daha hızlı ve daha kararlı hale getirir.
+ Daha iyi performans için Linker optimizasyonu!
+ En iyi duruma getirme bayrakları oyunu daha da hızlı bir dosya haline getirmek için kullanıldı
+ IP'ler 5 ve 25'incisi ip-çek ile başladı
+ Öğeler altın 0
+ 6/7 Bonis işi için satılabiliyor !
+ İşlev adı değişir Her bir yerelin altındaki İrlandalılar
+ Altın Taşma artık mümkün değil! Bir taşma olması durumunda bunun yerine yang maksimum değere ayarlanır.
+ Atlar tablosu 51 seviyeye genişletildi. Şimdi daha yüksek atları tam bir makyaj vb. Yapabilirsiniz.
+ Bonus taşmaları için yeni hata işleme! Şu andan itibaren Bonis çok yüksek çalışıyor, azami değere ayarlayın ve syserr'da bir uyarı üretin.
+ Oyuncunun hızı sunucu tarafından izlenecek ve azaltılacak,
Maksimum hızı aşmamalıdır + Beceri artık daha fazla bonus değiştirebilir!
+ Veritabanı önbelleği artık txt olmadan başlatılabilir!
+ Var olmayan bir yere ışınlanırsanız, sunucu otomatik olarak sizi map1 konumuna getirir. Daha sıva yok!
+ Adminpage_ip varsayılan olarak API saldırılarını önlemek için localhost olarak ayarlanır. CONFIG'de yine de ayarlanabilir. Buna ek olarak, güvenlik nedenleriyle tüm API sistemi devre dışıdır ve CONFIG kullanılarak etkinleştirilebilir. Byebye API Aracı
+ Günümüzde bile hala çok sayıda böcek YMIR düzeltildi.
Güncelleme: 5.6.2 + Cryptopp
+ Boost 1.55'e yükseltildi
+ C + +11 ile Derlendi
Gelişmiş spam koruması reklamı önlemek için kuruldu!
+ Bilinmeyen paketler artık tamamen oyunun solunda kaldı. Artık bir bağlantı kesilmesine yol açmazsınız.
+ 4 envanter sayfası seçimi!
+ Beceri artık ateş, buz, elektrik ve karanlık hasarlara da neden olabilir
+ Anti-Exp fonksiyonları takıldı
Reload + q düzeltildi. Daha önce olduğu gibi önerilmedi, ancak çökmesi durumunda şimdi bir uyarı yayınlayacak.
+ Sabit Oyun dosyasının gerçekten çökmesine neden olabilecek çok sayıda format hatası! ...

Oyun Oynama Değişiklikleri

+ HP / MP Taşması düzeltildi. Bundan sonra, reset olmadan 32k HP / MP üzerinde dolabın üstünde dolaşın
+ Speed Hack limiti yeni kuruldu, böylece Binicilik
+ Item.remove () artık yığınları kaldıracak bir Dönüş Teleport'u artık gerçekleştirmeyecek ! Bunun yerine, yalnızca 1 yığın azaltacaktır. Yalnızca bir sol olmalıdır, "yığın" silinir.
+ Level 40 altında Guild Erstellunge artık mümkün değil
+ Guild savaş talepleri sunucu
çökertemez + Immunbug tamamen giderildi!
+ Anti-Overflow, araştırmalarla bile olsa, satın alıp satacağınız çok fazla altın elde etmesini engeller!







Yeni yapılandırma seçenekleri

MAX_LEVEL_STATUS: {unsigned int}
Durum puanları için maksimum seviye. Daha yüksek yükselirseniz, seviyeye artık statü puanları almazsınız.


MAX_STATUS: {unsigned int}
Stat noktalarının maksimum değerini ayarlar. Diğer Worden'de: 30setzt'ye yükseltirseniz, her biri 30 puan (vit, int vb.) Kadar yalnızca bir devlet verebilirsiniz.


SERVER_CHECK: {1/0}
İstemci ve sunucu sürümünün doğrulamasını etkinleştirir / devre dışı bırakır. Bu sürümle eşleşmezse, oynatıcı, sunucudan kısa bir süre sonra bir mesajla atılır.


Server_version: {unsigned int}
SERVER_CHECK için sunucu sürümünü ayarlar.


MAX_HT: {unsigned int}
MAX_STATUS ile aynı. VIT için daha yüksek önceliğe sahip ancak uygulanır.


MAX_IQ: {unsigned int}
MAX_STATUS ile aynı. INT için daha yüksek önceliğe sahip olmakla birlikte uygulanır.


MAX_ST: {unsigned int}
MAX_STATUS ile aynı. STR için daha yüksek önceliğe sahip olmakla birlikte uygulanır.


MAX_DX: {unsigned int}
MAX_STATUS ile aynı. DEX için daha yüksek önceliğe sahip olmakla birlikte uygulanır.


ATTR_ALWAYS_ADD: {1/0} Bonis'i
etkinleştirir / devre dışı bırakır, daima% 100 eklenir.


ATTR_ALWAYS_5_ADD: {1/0} Bonis'i
etkinleştirir / devre dışı bırakır, daima% 100 eklenebilir. Sadece 5 bonus için geçerli!


ATTR_CHANGE_LIMIT: {int}
Bir oyuncu veya GM'in bir bonusu tekrar değiştirene kadar beklemesi gereken saniye sayısını (Dakikalar değil önemli saniye ) belirtir.


GUILD_MAX_LEVEL: {int}
Maksimum guild seviyesini belirtir. Maksimum: 50 (Guild tablosu 50 seviyeye kadar


kaldırabilirsiniz ) ITEM_OWNERSHIP_TIME:
{Int} Öğenin adınıza ne kadar süre yazılacağını belirten bir öğeyi bırakırsanız.


MIN_ADDON_FKS: {int} VMS'deki
beceri hasarının minimumunu vb.


Getirir . MIN_ADDON_DSS: {int} VMS'deki
ortalama hasarın minimumunu verir.


MAX_ADDON_FKS: {int} VMS'deki
maksimum beceri hasarını vb.


Belirtir . MAX_ADDON_DSS: { Int} VMS'de
maksimum ortalama hasarı belirtir.


SKILLBOOK_DELAY: {int}
Başka bir beceri kitapını okumak için ne kadar beklemek zorunda kaldığınız bekleme süresini (saniye olarak) ayarlar.


SKILLBOOK_NEED_EXP: {int}
Bir beceri kitabı okumak için ihtiyacınız olan deneyimi ayarlar.


SKILLBOOK_ALWAYS_BOOK: {1/0}
TÜM kitaplardaki vb. Konsantre okumayı etkinleştirir / devre dışı bırakır. Yoğun bir okumayı kullanıp kullanmadığınızdan bağımsız olarak.


GOLD_DROP_TIME_INTERVAL: {int}
Bir Yang Yang'ın düşebileceğinden sonra ne kadar süre beklemeniz gerektiğini belirtir.


SEQUENCE_CHECK: {1/0}
SEQUENCE kontrolünü etkinleştirir / devre dışı bırakır.


SKILLBOOK_STEP_LEVELING: {1/0}
M-kademesinin


RAISE_EMPIRE_PRICES becerisini yükseltmek için birkaç kitap mı istediğinizi etkinleştirir / devre dışı bırakır : {1/0}
Yabancı imparatorluklarda fiyatların artırılacağını belirtir.


HORSE_MAX_LEVEL: {int}
Atların maksimum seviyesi.


MARRIAGE_MAX_PERCENT: {int}
Aşk noktalarının maksimum sayısını belirtir. Önemli! Aşk puanları> 100 = Boşanmak mümkün değil.


PC_MAX_MOVEMENT_SPEED:
{Int} Müzikçaların maksimum hareket hızını belirtir.


PC_MAX_ATTACK_SPEED: {int}
Oyuncuların maksimum saldırı hızını belirtir.


MOB_MAX_MOVEMENT_SPEED: {int}
Canavarların maksimum hareket hızını belirtir.


MOB_MAX_ATTACK_SPEED: {int}
Canavarın maksimum saldırı hızını belirtir.


VERGİLER: {0-100}
Ödenecek alışveriş olan% cinsinden kontrolü belirtir.


DYE_LEVEL: {int}
Çamaşır suyu olmadan saçlarınızı tekrar boyamak için kaç seviyede beklediğinizi belirtir.


YANG_MAX: {long long}
Maksimum Yang sayısını belirtir. Maksimum: 999 999 999 999


PAKET_ENABLE: {1/0}
Rev 40k itibarıyla eklenen paket sistemini etkinleştirir / devre dışı bırakır. Varsayılan olarak devre dışıdır.


LOG_LEVEL: {0-3}
Günlüğü ayarlar.
0 = veritabanında hiçbir loggs depolanamaz.
1 = En önemli günlükler veritabanında oluşturulur.
2 = Tüm günlükler günlükte oluşturulur.


NEW_TEST_SERVER: {0/1}
Oyuncunun gmlistte kayıtlı olması durumunda test sunucusunda denetlerse etkinleştirileceği bir korumayı etkinleştirir / devre dışı bırakır. Aksi takdirde hiçbir hak verilmez.


NEW_GM_HOST_CHECK: {1/0}
GM haklarına ilişkin yeni barındırma kontrolünü etkinleştirir / devre dışı bırakır.


ADMINPAGE_ENABLE: {1/0}
API işlevlerini etkinleştirir / devre dışı bırakır. Varsayılan olarak devre dışıdır.


ADMINPAGE_NO_LOCALHOST: {1/0}
Etkinleştirildiğinde, localhost yönetici sayfasında girilmemiştir. Dikkat! Etkinleştirme bir güvenlik açıklığı oluşturabilir!


ITEM_FLOOR_TIME: {int}
Canavarlardan düşen öğelerin ne kadar uzun süre kalacağını belirtir.


MAX_RANK_POINTS: {long int}
Maksimum dereceye sahip olabileceğiniz kaç rütbe puanı belirtir.


MOVEMENT_SPEED: {int}
Müzikçaların varsayılan hareket hızını ayarlar. Örneğin, rüzgâr ayakkabılarının yerini alabilir ve böylece boşluğu diğer IS-free öğeler için koruyabilirsiniz.


BELT_ALLOW_ALL_ITEMS: {1/0}
İksirleri değil, kemer içine yerleştirilebilen tüm öğeleri etkinleştirir / devre dışı bırakır.


ATTR_RARE_ENABLE: {1/0}
6/7-Bonis eklemeyi etkinleştirir / devre dışı bırakır.


GOLD_DROP_TIME: {int} Yere inen
altının ne kadar süre kaldığını belirtir.


ITEM_DROP_TIME: {int}
GOLD_DROP_TIME ile aynı. Ancak öğeler için geçerlidir.


BELT_FORCE_SLOTS: {int}
Kaç koltuk kemerinin boşaltılacağını belirtir. Numara kemerin tutabileceğinden daha yüksekse, CONFIG seçeneğini kaldırdığını belirten mahkemeye dikkat edin. Düşükse, kemeri alabilecek yerler kullanılır. Bu sadece bir kemer giyerseniz işe yarar. Görsel olarak mümkün kılmak için Müşteri Tarafı değişiklikleri gereklidir.


TRADE_EFFECT: {1/0}
Mal ticaretinde veya Yang'da üretilen bir efekti etkinleştirir.


BAN_FORCE_REASON: {1/0}
Oyuncuların oyun oynamalarını yakalamak için açık nedenler belirtilmelidir.


START_GOLD: {long int}
Bir oyuncuya başlangıçtan ne kadar altın elde edileceğini belirtir.


VIEW_EQUIP_FOR_ALL: {1/0}
Sıralama denetimi etkinleştirildiğinde kontrol azaltılır ve oyuncular View_equip'i kullanabilir.


VIEW_EQUIP_SP_COST: {int} Oynatıcının view_equip'i
ne kadar harcayacağı MP'yi belirtir.


GLASS_ENABLE: {1/0} Bir bakış açısını
etkinleştirir / devre dışı bırakır.


GLASS_NEEDED: {1/0} Kullanırken
"içgörüdüşümü" işlevinin bir kadeh bilgilere ihtiyaç duyduğunu etkinleştirir / devre dışı bırakır ve bu, kullanırken de ortadan kalkar.


TRADE_EFFECT_EXCHANGE_THRESHOLD: {int}
TRADE_EFFECT'te yeni bir parçacık üretmek için Yang'ın ne kadar gerekli olduğunu gösterir.


TRADE_EFFECT_SHOP_THREASHOLD: {int}
TRADE_EFFECT_EXCHANGE_THRESHOLD ile aynı, ancak mağazalarda öğe satın almanız durumunda yalnızca işlem yapar.


VERSIONCHECK_KICK_DELAY:
{Int} Standart 10'dur. Sunucuyu, sunucuyu sunucudan atana kadar sunucunun başarısız bir sürüm denetimi için ne kadar beklediğini belirtir (İleti hemen gönderilir).


EMOTION_WITHOUT_MASK: {1/0}
Artık duygu maskesi etkinleştirilmediğinde.


EMOTION_SAME_GENDER: {1/0}
Eşcinsel karakterleri etkinleştirdiğinizde duygular kullanabilirsiniz.


CHECK_SPEEDHACK_ENABLE: {1/0}
Oyuncuları teleport edebilen Hızlı Hack kontrolünü etkinleştirir / devre dışı bırakır. Uyarı! Yalnızca hata ayıklama nedenleri için devre dışı bırakın!


QUEST_TRIGGER_ENABLE: {1/0}
Yeni görev tetikleyicisini "yürüt" seçeneğini etkinleştirir / devre dışı bırakır. Hala kalkınmakta.


EXP_NEED_THRESHOLD: {unsigned long long int}
Gerekli deneyimi belirler, Biri Exp masası seviyesine gelmelidir.


SKILL_MASTER_UPGRADE: {1-20} Yetenekleri dolaşıp
hangi seviyeye geçebileceğinizi belirtir.


SKILL_FORCE_MASTER: {1/0} Atlamayı
etkinleştirirken Ustalık için SKILL_MASTER_UPGRADE siparişinde AYRINTILDI.


BUGFIX_SURA_MANASHIELD: {1/0}
Magiesuras'taki Karanlık Korumanın hesaplamasını düzeltin. Normal üçüncüsü daima bu değişikliğin hasarından düşülür, beceri seviyesi ile azaltılmış ölçekli değer de düşer, çünkü aynı zamanda beceriyi de açıklar. Önemli! Beceri aktive edildiğinde nerfed yapılmalı, aksi halde yaklaşık% 100 azalma mümkün olacaktır .. {1/0} Atlamayı etkinleştirirken Ustalık için SKILL_MASTER_UPGRADE siparişinde her zaman Beceriler. BUGFIX_SURA_MANASHIELD: {1/0} Magiesuras'taki Karanlık Korumanın hesaplamasını düzeltin. Normal üçüncüsü daima bu değişikliğin hasarından düşülür, beceri seviyesi ile azaltılmış ölçekli değer de düşer, çünkü aynı zamanda beceriyi de açıklar. Önemli! Beceri aktive edildiğinde nerfed yapılmalı, aksi halde yaklaşık% 100 azalma mümkün olacaktır .. {1/0} Atlamayı etkinleştirirken Ustalık için SKILL_MASTER_UPGRADE siparişinde her zaman Beceriler. BUGFIX_SURA_MANASHIELD: {1/0} Magiesuras'taki Karanlık Korumanın hesaplamasını düzeltin. Normal üçüncüsü daima bu değişikliğin hasarından düşülür, beceri seviyesi ile azaltılmış ölçekli değer de düşer, çünkü aynı zamanda beceriyi de açıklar. Önemli! Beceri aktive edildiğinde nerfed yapılmalı, aksi halde yaklaşık% 100 azalma mümkün olacaktır ..










YABANCI FORUMDAN ALINTIDIR



TEŞEKKÜRLER!

YABANCI FORUMDAN ALINTIDIR
Metin2 Sunucu Dosyaları gcc 4.9 Hata Düzeltmeleri


Giriş
Metin2 özel sunucuları geliştirirken birçok geliştirici, derleme sürecinde farklı gcc (GNU Compiler Collection) sürümleriyle karşılaştığı hatalarla uğraşır. Özellikle gcc 4.9 sürümüne geçiş yapanlar arasında en çok görülen sorunlardan biri, eski C++ yapılarının bu derleyici versiyonunda artık desteklenmeyen dil kurallarına aykırı olmasıdır. Bu yazıda, Metin2 sunucu dosyalarının gcc 4.9 sürümünde derlenmesi sırasında karşılaşılan hata ve çözümleri detaylı şekilde ele alacağız.

gcc 4.9 ile Karşılaşılan Yaygın Hatalar
gcc 4.9, C++11 standartlarına daha sıkı bir şekilde bağlı kalmaktadır. Bu nedenle Metin2 kaynak kodlarında bulunan bazı yapılar, özellikle eski stil C++ kodları, bu derleyicide derlenemeyebilir. Örnek olarak:

- 'auto' anahtar kelimesinin yanlış kullanımından kaynaklı hatalar
- Eski tarz sabit değerlerin ('const char*') doğrudan string literallerine atanamaması
- Fonksiyon imzalarında farklılık olan durumlarda türetilmiş sınıf hataları

Hata Düzeltme Adımları
1. CMakeLists.txt veya Makefile Ayarları:
gcc 4.9 ile derleme yaparken CMakeLists.txt dosyasında C++11 desteği aktif edilmelidir. Aksi takdirde derleme başarısız olur. Aşağıdaki gibi bir tanımlama yapılmalıdır:

Kod:
set(CMAKE_CXX_STANDARD 11)


2. Değişken Tanımlamaları:
gcc 4.7'de kabul gören bazı eski yapılar gcc 4.9'da reddedilebilir. Örneğin, aşağıdaki gibi bir tanımlama gcc 4.9'da hata verebilir:

Kod:
char* buffer = 'Hello';


Doğru kullanım:

Kod:
const char* buffer = 'Hello';


3. Fonksiyonlarda auto Anahtar Kelimesi:
gcc 4.9, auto anahtar kelimesinin dönüş tipi belirtimini daha katı şekilde ister. Bu yüzden fonksiyon içinde auto kullanımı dikkatli yapılmalıdır. Örneğin:

Kod:
auto func() -> int { return 0; }


Bu yapı C++11 standardına uygundur ve gcc 4.9 ile uyumlu çalışır.

Metin2 Derleme Sürecini Kolaylaştırmak
Metin2 sunucu derlemelerinde gcc 4.9 uyumu için bazı geliştiriciler, önceden optimize edilmiş derleme ortamları ve scriptler hazırlamıştır. Bu tür araçlar sayesinde, gcc 4.9 hataları daha hızlı çözülebilir. Ayrıca, Metin2Lobby üzerinden sunucu kaynak kodları ve derleme araçları hakkında daha fazla bilgiye ulaşabilirsiniz.

Uzman Tavsiyesi
gcc 4.9'a geçiş yaparken, önce küçük test projelerinde değişiklikleri denemeniz önerilir. Büyük sistemlerde doğrudan uygulamak zaman zaman daha fazla zaman kaybına yol açabilir. Ayrıca, gcc 4.9 ile uyumlu hale getirilen kodlar, gcc 5+ sürümlerinde de sorunsuz çalışabilir.

Sonuç
gcc 4.9, Metin2 sunucu kaynak kodlarını derlerken bazı uyumsuzluklar yaşatabilir. Ancak doğru yapılandırmalar ve küçük kod değişiklikleri ile bu sorunlar kolayca aşılabilir. Uyumlu hale getirilen kaynak kodlar, hem güvenlik hem de performans açısından daha güçlü bir yapıya kavuşur.


Metin2 Server Files gcc 4.9 Error Fixes


Introduction
When developing Metin2 private servers, many developers face errors during the compilation process caused by different versions of gcc (GNU Compiler Collection). One of the most common issues encountered with the gcc 4.9 version is that older C++ structures are no longer compatible with the language rules supported by this compiler. In this article, we will address the errors and solutions related to compiling Metin2 server files under gcc 4.9 in detail.

Common Errors with gcc 4.9
gcc 4.9 adheres more strictly to C++11 standards. Therefore, some structures found in Metin2 source codes, particularly legacy C++ code, may not compile properly with this compiler version. Examples include:

- Errors caused by incorrect usage of the 'auto' keyword
- Direct assignment of old-style constants ('const char*') to string literals
- Derived class errors due to mismatched function signatures

Steps for Error Correction
1. CMakeLists.txt or Makefile Settings:
When compiling with gcc 4.9, C++11 support must be enabled in the CMakeLists.txt file. Otherwise, the build will fail. The following definition should be added:

Kod:
set(CMAKE_CXX_STANDARD 11)


2. Variable Declarations:
Some older structures accepted in gcc 4.7 may cause errors in gcc 4.9. For instance, the following declaration might result in an error in gcc 4.9:

Kod:
char* buffer = 'Hello';


Correct usage:

Kod:
const char* buffer = 'Hello';


3. The auto Keyword in Functions:
gcc 4.9 requires stricter type specification for the auto keyword. Therefore, its usage within functions must be handled carefully. For example:

Kod:
auto func() -> int { return 0; }


This structure complies with C++11 standards and works well with gcc 4.9.

Simplifying the Metin2 Compilation Process
To resolve gcc 4.9 compatibility issues during Metin2 server builds, some developers have prepared pre-optimized build environments and scripts. These tools can help fix gcc 4.9-related errors more quickly. Additionally, you can find more information about server source codes and build tools at Metin2Lobby.

Expert Advice
When transitioning to gcc 4.9, it's recommended to first test changes on smaller projects before applying them to larger systems. Attempting direct implementation in large systems may lead to additional time loss. Moreover, code adapted for gcc 4.9 often remains compatible with gcc 5+ versions.

Conclusion
gcc 4.9 may introduce incompatibilities when compiling Metin2 server source code. However, with proper configurations and minor code adjustments, these issues can be easily resolved. Source codes made compatible with newer compilers gain improved security and performance.​
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt