Merhaba arkadaşlar C++ konularının hepsini bir araya topladım ve size sundum isterseniz fazla uzatmadan konuya giriş yapalım.
NOT:Güncelliğini yitirmemiş konuları koymadım.Sebebi şu ki konu sahiplerine ayıp olmasın.
İlk Olarak Size FreeBsd 9.2 Kurulu Vdi Vereyim:
Link:
Virüs Total:
Vdi şifresi;
root
dev
NOT:siz direk filezilladan bakın dizine mainline felan varya dizin farklı olabilir.
gmake clean
gmake dep
gmake -j20
Kraizy Src (İçerisinde mainline,novaline vb src'ler bulunmaktadır.[+40K]
Link:
Virüs Total:
Virtual Box ile sysinstall ayarlarını yaptıktan sonra putty ile bağlanın daha rahat olur.
Putty online olduktan sonra;
Bunları kurunuz.(Verdiğim Vdi'de Bunlar Zaten Kurulu Ama Bidaha Kurabilirsiniz Aynı Şekilde Bunlar Normal Kiralık Serverlerde de Kurulabilir.)
Sonrası Videoda Mevcut Buyrun Video;
* İlk olarak @Vectors arkadaşımızın paylaşmış olduğu: Ticaret Effectini anlatayım;
../game/src/
"exchange.cpp" açılır
485. satır
Aratılır ve altına eklenir;
* @Pufer arkadaşımızın paylaşmış olduğu: Şebnem'in LV1 , LV2 Olasılığını Ayarlama;
../game/src/
"blend_item.cpp" açılır
152. satır
Burada LV1 ; %10 LV2 %20 gibi şeyler göreceksiniz bunları kendinize göre ayarlayabilirsiniz.
* @alibrha arkadaşımızın paylaşmış olduğu: Global Chat Yapımı;
../game/src/
"input_p2p.cpp" açılır
Aratılır ve bu şekilde değiştirilir
"input_main.cpp" açılır
Aratılır ve altına
Eklenir
Aratılır
Bununla Değiştirilir
Bu kadar arkadaşlar.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: Loncaya alınan bilen kişi sayısını ayarlama[40K]
../game/src
"Guild.cpp" açılır
Aratılır
Böyle bir yer göreceksiniz 32+2 loncaya alınabilen kişi sayısıdır bunu 70+2 de yapabilirsiniz 50+2 de.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: Sınırsız pot yapımı[40k]
Aratılır ve biraz aşağıya inince
Bu kod silinir.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: Sınırsız metin taşı dedektörü yapımı[40k]
../game/src/
"Char_İtem.cpp" açılır
Aratılır biraz aşağıya inince
Bu kodu görüyoruz >= 6 Kaç kere kullanabileceğinizdir bunu 300 de yapabilirsiniz 500 de.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: Gruba alınabilen kişi sayısını ayarlama[40k]
../game/src
"party.h" açılır
Aratılır ve 8 sayısı gruba alınan kişi sayısıdır.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: İtem çalmayı engellemek[40k]
../game/src/
"char_item.cpp" açılır
Aratılır ve fonksiyonun tamamı
Bununla değiştirilir.
* @DarkKnights arkadaşımızın paylaşmış olduğu: Taşın iteme eklenme oranı
../game/src/
"char_item.cpp" açılır
aratılır ve 30 yazan sayı taşın eklenme olasılığıdır bunu 1-100 arası istediğiniz gibi değiştirebilirsiniz.
* @DarkKnights arkadaşımızın paylaşmış olduğu: Duygu maskesi olmadan dans edebilme
../game/src/
"cmd_emotion.cpp" açılır
Aratılır
Şeklinde değiştirilir.
* @DarkKnights Arkadaşımızın paylaşmış olduğu: Loncaya resim yükleme leveli ayarlama
../game/src/
"config.cpp" açılır
Aratılır ve 3 yazan sayı loncanın en az kaç levelde resim yükleyebilceğidir.
* @EgeOzdmrs arkadaşımızın paylaşmış olduğu: Cevher ekleme şansını ayarlama[40k]
../game/src/
"char_item.cpp" açılır
Aratılır
Bu bölümdeki 50 sayısını değiştirebilirsiniz.
Diğer Fonksiyonlar;
* @DarkKnights arkadaşımızın paylaşmış olduğu: Dice açığını kapatmak.
../game/src/
"cmd_general.cpp" açılır
Aratılır
Şeklinde düzenlenir.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: %200 drop sınırını arttırma[40K]
../game/src/
"priv_manager.cpp" açılır
Aratılır
Değiştirilir
Aratılır
Değiştirilir
Aratılır
Değiştirlir
Aratılır
Değiştirilir
Aratılır
Değiştirilir
Aratılır
Değiştirilir
* @Reonas arkadaşımızın paylaştığı: Rank(Derece) Sınırı
../game/src/
"char_battle.cpp" açılır
Aratılır
-200000 negatif derecedir (-) -'ler örnek zalim derecesi.
+ iAmount, 200000 (+) +'lar örnek kahraman derecesi.
Derecelerle oynamak isterseniz ya 11 derece ya da 9 yeni derece eklemek isterseniz ise
int iAlignIndex; ile oynamanız gerekecektir.
Gibi.
NOT:Güncelliğini yitirmemiş konuları koymadım.Sebebi şu ki konu sahiplerine ayıp olmasın.
İlk Olarak Size FreeBsd 9.2 Kurulu Vdi Vereyim:
Link:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Virüs Total:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Vdi şifresi;
root
dev
Kod:
kurulumu: cd /usr/src/game/src
Kod:
gmake clean gmake dep gmake -j20
NOT:siz direk filezilladan bakın dizine mainline felan varya dizin farklı olabilir.
gmake clean
gmake dep
gmake -j20
Kraizy Src (İçerisinde mainline,novaline vb src'ler bulunmaktadır.[+40K]
Link:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Virüs Total:
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Virtual Box ile sysinstall ayarlarını yaptıktan sonra putty ile bağlanın daha rahat olur.
Putty online olduktan sonra;
Kod:
cd /usr/ports/devel/gmake && make install clean cd /usr/ports/devel/makedepend && make install clean cd /usr/ports/devel/subversion && make install clean cd /usr/ports/graphics/devil && make install clean cd/usr/ports/lang/gcc48 & make install clean
Bunları kurunuz.(Verdiğim Vdi'de Bunlar Zaten Kurulu Ama Bidaha Kurabilirsiniz Aynı Şekilde Bunlar Normal Kiralık Serverlerde de Kurulabilir.)
Sonrası Videoda Mevcut Buyrun Video;
* İlk olarak @Vectors arkadaşımızın paylaşmış olduğu: Ticaret Effectini anlatayım;
../game/src/
"exchange.cpp" açılır
485. satır
Kod:
if (item->GetVnum() >= 80003 && item->GetVnum() <= 80007) { LogManager::instance().GoldBarLog(victim->GetPlayerID(), item->GetID(), EXCHANGE_TAKE, ""); LogManager::instance().GoldBarLog(GetOwner()->GetPlayerID(), item->GetID(), EXCHANGE_GIVE, ""); }
Aratılır ve altına eklenir;
Kod:
m_pOwner->CreateFly(FLY_SP_MEDIUM, victim) for (int i = 0; i < 3; i++){ m_pOwner->CreateFly(FLY_SP_SMALL, victim); }
* @Pufer arkadaşımızın paylaşmış olduğu: Şebnem'in LV1 , LV2 Olasılığını Ayarlama;
../game/src/
"blend_item.cpp" açılır
152. satır
Kod:
static int FN_random_index ()
Burada LV1 ; %10 LV2 %20 gibi şeyler göreceksiniz bunları kendinize göre ayarlayabilirsiniz.
* @alibrha arkadaşımızın paylaşmış olduğu: Global Chat Yapımı;
../game/src/
"input_p2p.cpp" açılır
Kod:
if (!d->GetCharacter() || (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
Aratılır ve bu şekilde değiştirilir
Kod:
if (!d->GetCharacter() /*|| (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire)*/)
"input_main.cpp" açılır
Kod:
ch->SetLastShoutPulse(thecore_heart->pulse);
Aratılır ve altına
Kod:
const char* kingdoms[3] = {"|cFFff0000|H|h[Shinsoo]|cFFA7FFD4|H|h","|cFFFFFF00|H|h[Chunjo]|cFFA7FFD4|H|h","|cFF0080FF|H|h[Jinno]cFFa7FFD4|H|h"}; char chatbuf_global[CHAT_MAX_LEN + 1]; int len_global = snprintf(chatbuf_global, sizeof(chatbuf_global), "%s %s",kingdoms[ch->GetEmpire()-1], chatbuf);
Eklenir
Kod:
SendShout(chatbuf, ch->GetEmpire());
Aratılır
Kod:
SendShout(chatbuf_global, ch->GetEmpire());
Bununla Değiştirilir
Bu kadar arkadaşlar.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: Loncaya alınan bilen kişi sayısını ayarlama[40K]
../game/src
"Guild.cpp" açılır
Kod:
CGuild::GetMaxMemberCount()
Aratılır
Kod:
return 32 + 2 * (m_data.level-1) + m_iMemberCountBonus;
Böyle bir yer göreceksiniz 32+2 loncaya alınabilen kişi sayısıdır bunu 70+2 de yapabilirsiniz 50+2 de.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: Sınırsız pot yapımı[40k]
Kod:
case USE_POTION:
Aratılır ve biraz aşağıya inince
Kod:
item->SetCount(item->GetCount() - 1);
Bu kod silinir.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: Sınırsız metin taşı dedektörü yapımı[40k]
../game/src/
"Char_İtem.cpp" açılır
Kod:
case 27989:
Aratılır biraz aşağıya inince
Kod:
if (item->GetSocket(0) >= 6)
Bu kodu görüyoruz >= 6 Kaç kere kullanabileceğinizdir bunu 300 de yapabilirsiniz 500 de.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: Gruba alınabilen kişi sayısını ayarlama[40k]
../game/src
"party.h" açılır
Kod:
PARTY_MAX_MEMBER = 8,
Aratılır ve 8 sayısı gruba alınan kişi sayısıdır.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: İtem çalmayı engellemek[40k]
../game/src/
"char_item.cpp" açılır
Kod:
namespace NPartyPickupDistribute
Aratılır ve fonksiyonun tamamı
Kod:
namespace NPartyPickupPermission { struct FCompareOwnership { LPITEM item; bool is_allowed = false; FCompareOwnership(LPITEM item) : item(item) { } void operator () (LPCHARACTER ch) { if (item->IsOwnership(ch) == true) is_allowed = true; } }; }
Bununla değiştirilir.
* @DarkKnights arkadaşımızın paylaşmış olduğu: Taşın iteme eklenme oranı
../game/src/
"char_item.cpp" açılır
Kod:
if (number(1, 100) <= 30)
aratılır ve 30 yazan sayı taşın eklenme olasılığıdır bunu 1-100 arası istediğiniz gibi değiştirebilirsiniz.
* @DarkKnights arkadaşımızın paylaşmış olduğu: Duygu maskesi olmadan dans edebilme
../game/src/
"cmd_emotion.cpp" açılır
Kod:
bool CHARACTER_CanEmotion(CHARACTER& rch) { // °á&#268;&#260;&#733;Ä ¸&#280;&#380;&#711;&#317;*´Â »ç&#380;ëÇ&#327; &#317;ö &#340;Ö´&#366;. if (marriage::WeddingManager::instance().IsWeddingMap (rch.GetMapIndex())) return true; // &#380;*Á¤&#340;Ç °&#711;¸é Â&#345;&#380;ë&#733;&#258; »ç&#380;ëÇ&#327; &#317;ö &#340;Ö´&#366;. if (rch.IsEquipUniqueItem(UNIQUE_ITEM_EMOTION_MASK)) return true; if (rch.IsEquipUniqueItem(UNIQUE_ITEM_EMOTION_MASK2)) return true; return false; }
Aratılır
Kod:
bool CHARACTER_CanEmotion(CHARACTER& rch) { return true; }
Şeklinde değiştirilir.
* @DarkKnights Arkadaşımızın paylaşmış olduğu: Loncaya resim yükleme leveli ayarlama
../game/src/
"config.cpp" açılır
Kod:
guild_mark_min_level = 3;
Aratılır ve 3 yazan sayı loncanın en az kaç levelde resim yükleyebilceğidir.
* @EgeOzdmrs arkadaşımızın paylaşmış olduğu: Cevher ekleme şansını ayarlama[40k]
../game/src/
"char_item.cpp" açılır
Kod:
USE_ADD_ACCESSORY_SOCKET
Aratılır
Kod:
if (number(1, 100) <= 50)
Bu bölümdeki 50 sayısını değiştirebilirsiniz.
Diğer Fonksiyonlar;
Kod:
case USE_ADD_ACCESSORY_SOCKET (Elmas ekleme fonksiyonu) case USE_PUT_INTO_BELT_SOCKET case USE_PUT_INTO_ACCESSORY_SOCKET (Mücevher ekleme fonksiyonu) case USE_ADD_ATTRIBUTE (Efsun ekleme fonksiyonu (Yeşil Güç) case USE_ADD_ATTRIBUTE2 (Efsun ekleme fonksiyonu (Artırma Kağıdı) case ITEM_METIN (Taş ekleme fonksiyonu (Kavrama taşı vs tüm taşlar) case REWARD_BOX_UNIQUE_ITEM_CAPE_OF_COURAGE (Cesaret Pelerini fonksiyonu) case USE_POTION (İksirler fonksiyonu (Kırmızı İksir vs) case USE_POTION_NODELAY (Şeftali suyu itemleri vs (70020,71018,71019,71020) case USE_ABILITY_UP (Yeşil iksir mor iksir itemleri) case 27989 case 76006 (Metin Taşı Dedektörü Fonksiyonu)
* @DarkKnights arkadaşımızın paylaşmış olduğu: Dice açığını kapatmak.
../game/src/
"cmd_general.cpp" açılır
Kod:
ACMD(do_dice)
Aratılır
Kod:
ACMD(do_dice) { ch->ChatPacket(CHAT_TYPE_INFO, "Bu düzenleme mevcut değil ."); }
Şeklinde düzenlenir.
* @EgeOzdemrs arkadaşımızın paylaşmış olduğu: %200 drop sınırını arttırma[40K]
../game/src/
"priv_manager.cpp" açılır
Kod:
value = MINMAX(0, value, 50);
Aratılır
Kod:
value = MINMAX(0, value, 1000);
Değiştirilir
Kod:
value = MINMAX(0, value, 200);
Aratılır
Kod:
value = MINMAX(0, value, 1000);
Değiştirilir
Kod:
value = MINMAX(0, value, 100);
Aratılır
Kod:
value = MINMAX(0, value, 1000);
Değiştirlir
Kod:
value = MINMAX(0, value, 50);
Aratılır
Kod:
value = MINMAX(0, value, 1000);
Değiştirilir
Kod:
value = MINMAX(0, value, 100);
Aratılır
Kod:
value = MINMAX(0, value, 1000);
Değiştirilir
Kod:
value = MINMAX(0, value, 200);
Aratılır
Kod:
value = MINMAX(0, value, 1000);
Değiştirilir
* @Reonas arkadaşımızın paylaştığı: Rank(Derece) Sınırı
../game/src/
"char_battle.cpp" açılır
Kod:
m_iRealAlignment = MINMAX(-200000, m_iRealAlignment + iAmount, 200000);
Aratılır
-200000 negatif derecedir (-) -'ler örnek zalim derecesi.
+ iAmount, 200000 (+) +'lar örnek kahraman derecesi.
Derecelerle oynamak isterseniz ya 11 derece ya da 9 yeni derece eklemek isterseniz ise
int iAlignIndex; ile oynamanız gerekecektir.
Kod:
if (GetRealAlignment() >= 150000) iAlignIndex = 0; else if (GetRealAlignment() >= 100000) iAlignIndex = 1;
Gibi.
Şimdilik bu kadar arkadaşlar daha sonra devam edicem konuya.Bir teşekkür etmeniz yeterli.Sağlıcakla kalın
Skype:macarmetin2
KONUDA HATA GÖRÜRSENİZ YAZINIZ DÜZENLERİM.
C++ Bütün Konular Bir Arada
C++ dili, özellikle oyun geliştirme ve sunucu tarafında performans gerektiren projelerde tercih edilen güçlü bir programlama dilidir. Özellikle Metin2 private server geliştirme dünyasında C++ bilgisi, server-side kodlama, core geliştirme ve source edit işlemleri için hayati öneme sahiptir. Bu yazıda, Metin2 özel sunucularında kullanılan C++ sistemleri, kaynak kodlama, derleme süreçleri ve daha fazlası hakkında kapsamlı bilgiler bulacaksınız.
C++ ve Oyun Geliştirme
C++, nesne yönelimli programlama (OOP), düşük seviyeli bellek yönetimi ve yüksek performans gibi özellikleriyle oyun geliştirme projelerinde sıkça tercih edilir. Metin2 gibi MMORPG oyunlarında, game core ve auth core gibi kritik sistemler C++ ile yazılmıştır. Bu sayede sunucu performansı optimize edilir, büyük oyuncu kitlesine hizmet verilebilir.
Metin2 Sunucu Yapısı
Metin2 özel sunucularında iki temel yapı bulunur: Game Server ve Auth Server.
- Game Server: Oyun içi aktiviteleri yönetir; PvP sistemleri, görevler, NPC'ler ve harita kontrolleri burada gerçekleşir.
- Auth Server: Kullanıcı girişi, hesap doğrulama, karakter oluşturma gibi işlemler bu sunucu tarafından yapılır.
C++ ile Metin2 Geliştirme
C++ bilgisi olmadan Metin2 server src üzerinde değişiklik yapmak neredeyse imkânsızdır. Geliştiriciler genellikle martysama gibi özel C++ tabanlı sistemler kullanarak, PvP sistemleri, kutu sistemleri, event sistemleri ve benzeri modülasyonları geliştirirler. Ayrıca uiscript ve py root ile entegre çalışan Python GUI arayüzleri de C++ backend ile haberleşerek çalışır.
C++ Derleme Süreci (Compile)
Metin2 özel sunucularında yapılan değişikliklerin aktif hale gelmesi için compile işlemi yapılması gerekir. Bu işlem, C++ kodlarının исполняемые dosyalara dönüştürülmesini sağlar. Hatalı bir kodlama durumunda derleme başarısız olabilir. Bu yüzden C++ syntax bilgisi ve dikkatli kodlama şarttır.
DB (Database) ile Entegrasyon
Metin2 sistemlerinde veri tabanı işlemleri, genellikle MySQL/MariaDB ile yürütülür. DB Core olarak adlandırılan bu sistem, karakter verileri, envanter, görevler gibi tüm bilgileri içerir. C++ üzerinden bu veritabanına erişim sağlamak için MySQL connector gibi kütüphaneler kullanılır.
Python ve C++ Entegrasyonu
Metin2 sistemlerinde, arayüzler genellikle Python tabanlıdır. Py GUI ve uiscript kullanılarak arayüzler oluşturulur. Ancak bu arayüzler, C++ ile yazılmış olan backend sistemleri ile haberleşir. Bu entegrasyon, source edit sürecinde dikkatlice planlanmalıdır.
Metin2 PVP Sistemleri
Metin2'nin en popüler yönlerinden biri, PvP sistemleridir. Bu sistemlerin çoğu C++ ile yazılmıştır. PvP kuralları, skorlamalar, turnuvalar ve combat mekanikleri gibi detaylar tamamen C++ tabanlıdır. Bu sistemleri özelleştirmek isteyen geliştiriciler, Metin2 server src üzerinde değişiklik yaparak sistemi ihtiyaçlarına göre uyarlar.
Sonuç
C++ bilgisi, Metin2 özel sunucu geliştirme sürecinde çok büyük bir avantaj sağlar. Hem backend hem de frontend sistemlerle entegre çalıştığı için, C++ bilgisi olan geliştiriciler, daha esnek ve güçlü sistemler oluşturabilirler. Metin2Lobby olarak, Metin2 development, C++ source ve PvP sistemleri üzerine tüm kaynaklara ulaşabilirsiniz.
C++ All Topics Combined
C++ is a powerful programming language preferred in projects requiring performance, especially in game development and server-side operations. Particularly in the world of Metin2 private servers, knowledge of C++ is crucial for server-side coding, core development, and source editing. In this article, you will find comprehensive information about C++ systems used in Metin2 private servers, source coding, compilation processes, and more.
C++ and Game Development
C++ is frequently chosen for game development projects due to its features such as object-oriented programming (OOP), low-level memory management, and high performance. In MMORPG games like Metin2, critical systems like game core and auth core are written in C++. This allows optimization of server performance and service to large player communities.
Metin2 Server Structure
In Metin2 private servers, there are two main structures: Game Server and Auth Server.
- Game Server: Manages in-game activities; PvP systems, quests, NPCs, and map controls occur here.
- Auth Server: Handles user login, account verification, character creation, etc.
Developing Metin2 with C++
It is almost impossible to make changes on Metin2 server src without knowledge of C++. Developers typically use custom C++ based systems like martysama to develop modules such as PvP systems, box systems, event systems, etc. Additionally, Python GUI interfaces created with uiscript and py root operate by communicating with the C++ backend.
Compilation Process (Compile)
To activate changes made in Metin2 private servers, a compile operation must be performed. This process converts C++ codes into executable files. Compilation may fail if there is incorrect code, so knowledge of C++ syntax and careful coding are essential.
Integration with DB (Database)
In Metin2 systems, database operations are generally handled via MySQL/MariaDB. The DB Core, which contains all character data, inventory, quests, etc., uses libraries such as MySQL connector to access the database from C++.
Python and C++ Integration
In Metin2 systems, interfaces are usually based on Python. Interfaces are created using Py GUI and uiscript. However, these interfaces communicate with backend systems written in C++. During the source edit process, this integration must be carefully planned.
Metin2 PvP Systems
One of the most popular aspects of Metin2 is its PvP systems. Most of these systems are written in C++. PvP rules, scoring, tournaments, and combat mechanics are entirely C++ based. Developers who wish to customize these systems adapt them according to their needs by making changes to the Metin2 server src.
Conclusion
Knowledge of C++ provides a significant advantage in the Metin2 private server development process. Since both backend and frontend systems work in integration, developers knowledgeable in C++ can create more flexible and robust systems. At Metin2Lobby, you can access all resources related to Metin2 development, C++ source, and PvP systems.
