Arkadaşlar C++ olayı çıktığından beri artık herşeyin bir kolayı var.
C++ ile CH Değiştirme olayına geçiyorum,
Konuyu gece saatlerinde paylaştığım için tab ayarlarında veya kodlarda sıkıntı var ise
kalktığımda ilk işim konuyu düzenlemek olacak.
For: @
Love: @
Portlar ile bağlantı kuruyor
tamamen game üzerinden çalışıyor
ch1:
13002 - 13008
ch2:
13102 - 13108
ch3:
13202 - 13208
ch4:
13302 - 13308
Bunun Gibi düşünelim.
Anlatıma geçiyorum.
cmd.cpp açıyoruz
aratıyoruz.
Altına ekliyoruz
Aratıyoruz
Altına ekliyoruz
cmd_general.cpp açıyoruz
Aratıyoruz
Altına ekliyoruz
char.h açıyoruz
arat
altına ekle
char.cpp açıyoruz
aratıyoruz
ekliyoruz
Arkadaşlar Python için eklenmesi gereken ufak tefek şeyler var
Sıkıcı uzun olna pyhton'dan kurtarıyor en azından bizi.
Dosyaları indirin içerisinde anlatımı mevcut.
Hayırlı olsun
@
---------------------------------------------------------------------------------------------------------------------------C++ ile CH Değiştirme olayına geçiyorum,
Konuyu gece saatlerinde paylaştığım için tab ayarlarında veya kodlarda sıkıntı var ise
kalktığımda ilk işim konuyu düzenlemek olacak.
For: @
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
;Love: @
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
; Portlar ile bağlantı kuruyor
tamamen game üzerinden çalışıyor
ch1:
13002 - 13008
ch2:
13102 - 13108
ch3:
13202 - 13208
ch4:
13302 - 13308
Bunun Gibi düşünelim.
Anlatıma geçiyorum.
cmd.cpp açıyoruz
aratıyoruz.
Kod:
[COLOR=#666666][FONT=monospace] ACMD(do_warp);[/FONT][/COLOR]
Altına ekliyoruz
Kod:
[COLOR=#666666][FONT=monospace] ACMD(do_channel_switch);[/FONT][/COLOR]
Aratıyoruz
Kod:
[COLOR=#666666][FONT=monospace] { "mall_close", do_mall_close, 0, POS_DEAD, GM_PLAYER },[/FONT][/COLOR]
Altına ekliyoruz
Kod:
[COLOR=#666666][FONT=monospace] { "channel", do_channel_switch, 0, POS_DEAD, GM_PLAYER },[/FONT][/COLOR]
cmd_general.cpp açıyoruz
Aratıyoruz
Kod:
ACMD(do_set_run_mode) { ch->SetNowWalking(false); ch->SetWalking(false);
Altına ekliyoruz
Kod:
ACMD(do_channel_switch) { char arg1[256]; one_argument(argument, arg1, sizeof(arg1)); if (!*arg1) return; int new_ch; str_to_number(new_ch, arg1); if( new_ch <1 || new_ch >4) // REPLACE 2 WITH YOUR MAX_CHANNEL return; if (!ch->IsPC()) return; ch->ChannelSwitch(new_ch); }
char.h açıyoruz
arat
Kod:
void StartWarpNPCEvent();
altına ekle
Kod:
void ChannelSwitch(int new_ch);
char.cpp açıyoruz
aratıyoruz
Kod:
EVENTFUNC(warp_npc_event) { char_event_info* info = dynamic_cast<char_event_info*>( event->info ); if ( info == NULL ) { sys_err( "warp_npc_event> <Factor> Null pointer" ); return 0; } LPCHARACTER ch = info->ch; if (ch == NULL) { // <Factor> return 0; } if (!ch->GetSectree()) { ch->m_pkWarpNPCEvent = NULL; return 0; } FuncCheckWarp f(ch); if (f.Valid()) ch->GetSectree()->ForEachAround(f); return passes_per_sec / 2; }
ekliyoruz
Kod:
void CHARACTER::ChannelSwitch(int new_ch){ long lAddr; long lMapIndex; WORD wPort; long x = this->GetX(); long y = this->GetY(); if (!CMapLocation::instance().Get(x, y, lMapIndex, lAddr, wPort)) { sys_err("cannot find map location index %d x %d y %d name %s", lMapIndex, x, y, GetName()); return; } if(lMapIndex >= 10000){ return; } std::map<WORD, int>micha; for(int i = 0; i < 4; i++){ //replace with maximum channels -1 actual 1300x - 1330x for(int i2 = 2; i2 < 9; i2++){ //replace with your core values actual 13x02 - 13x08 micha[13*1000 + i*100 + i2] = i+1; } } //micha[13002] = 1; int chan; if(micha.find(wPort) != micha.end()){ chan = micha[wPort]; }else{return;} Stop(); Save(); if(GetSectree()){ GetSectree()->RemoveEntity(this); ViewCleanup(); EncodeRemovePacket(this); } TPacketGCWarp p; p.bHeader = HEADER_GC_WARP; p.lX = x; p.lY = y; p.lAddr = lAddr; p.wPort = (wPort - 100*(chan-1) + 100*(new_ch-1)); GetDesc()->Packet(&p, sizeof(TPacketGCWarp)); }
Arkadaşlar Python için eklenmesi gereken ufak tefek şeyler var
Sıkıcı uzun olna pyhton'dan kurtarıyor en azından bizi.
Dosyaları indirin içerisinde anlatımı mevcut.
Hayırlı olsun
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
@
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
; Kardeşime geceli gündüzlü yardımlaşmamızdan dolayı teşekkür ediyorum
Beyler En kısa süre içerisinde
Yakında gelecek olan yenilikten bahsedeyim
X Kişi Oyun içerisinde itemini satışa çıkartacak pazar kurmadan.
İtemi 2 şekilde satışa çıkarabilecek. İster Yang ile İster EP İle.
X Kişinin eklediğini oyun içerisindeki herkes görebilecek.
Y Oyuncu bu itemi almak istediğinde
İster Satıcının belirlemiş olduğu Yang Fiyatına İsterse EP karşılığı ALabilecek
Yukarıdaki özellik videosuyla beraber ücretsiz olarak paylaşılacaktır.
Tabi ki bu sistem v2 olarak paylaşıyorum.
Açık & Bug Fixlenmiş haliyle.
Metin2 Lobby'da C++ CH Değiştirme Sistemi
Metin2 özel sunucularında geliştirme yaparken CH (Character) değişikliği, oyuncu deneyimini artırmak ve sunucu özelliklerini özelleştirmek açısından büyük önem taşır. Bu sistem, genellikle C++ tabanlı game core üzerinde çalıştırılır ve karakterin görünümünü, ismini, seviyesini veya diğer niteliklerini değiştirmek için kullanılır. Bu yazıda, C++ ile nasıl bir CH değiştirme sistemi kurulacağını ve bu sistemin Metin2 özel sunucularında nasıl entegre edileceğini detaylıca inceleyeceğiz.
CH Nedir?
CH, yani Character, oyuncunun oynadığı karakterdir. Her karakterin özel bir ID numarası, adı, sınıfı, seviyesi, ekipmanları ve benzeri nitelikleri vardır. Bu nitelikler, game server tarafından yönetilir ve genellikle DB core üzerinden veritabanına yazılır. Oyuncuların birden fazla karakter oluşturabilmesi ve bunlar arasında geçiş yapabilmesi için CH sistemleri geliştirilir.
Neden CH Değiştirme Sistemine İhtiyaç Vardır?
Metin2 özel sunucularında, oyuncuların aynı hesap üzerinde farklı karakterler oluşturması oldukça yaygındır. Bu karakterler farklı sınıflar, farklı ekipmanlar veya farklı oyun stilleri için kullanılabilir. Ancak bazı sunucularda oyuncuların bir karakterden diğerine hızlı geçebilmesi istenir. İşte bu noktada CH değiştirme sistemleri devreye girer. Bu sistem sayesinde oyuncu, giriş ekranında veya oyun içi menüden kolayca farklı bir karaktere geçebilir.
C++ ile CH Değiştirme Sistemi Nasıl Kurulur?
CH değiştirme sistemi genellikle game server tarafında C++ ile geliştirilir. Bu işlem sırasında source edit işlemleri yapılır. İlk olarak, oyuncunun mevcut karakter listesi alınır. Daha sonra, seçilen karakter ID'si doğrultusunda oyuncunun o karakterle oynaması sağlanır. Bu işlem için auth server ve game server arasındaki bağlantılar dikkatlice yönetilmelidir.
Örnek Kod Yapısı:
Kod:
void CHARACTER::ChangeCharacter(int chIndex)[BR][/BR]{[BR][/BR] if (chIndex >= 0 && chIndex < GetPlayerCount()) {[BR][/BR] SetPlayerIndex(chIndex);[BR][/BR] LoadCharacterData(chIndex);[BR][/BR] SendCharacterInfoToClient();[BR][/BR] }[BR][/BR]}
Güvenlik Uyarısı
CH değiştirme işlemlerinde güvenlik çok önemlidir. Yanlış yapılandırılmış bir sistem, hatalı karakter erişimi, veri kaybı veya güvenlik açıklarına neden olabilir. Bu nedenle, CH değiştirme sırasında kullanıcı kimlik doğrulaması ve karakter kontrolü yapılmalıdır. Ayrıca, her işlem loglanmalı ve gerekirse yetkililerce izlenebilmelidir.
CH Değiştirme Sisteminin Kullanıcı Arayüzüne Entegrasyonu[/COORD]
CH değiştirme sistemi, genellikle uiscript ve py GUI kullanılarak oyun içi arayüze entegre edilir. Bu sayede oyuncular, karakter değiştirme işlemini doğrudan oyun içinden gerçekleştirebilirler. Py root dosyaları üzerinde geliştirilen bu arayüzler, kullanıcı dostu ve hızlı erişilebilir olmalıdır.
Metin2 Lobby Üzerinden Geliştirme
Metin2 Lobby, Metin2 özel sunucu geliştiricileri için kapsamlı kaynaklar sunar. Burada bulunan C++ source, server src, martysama projeleri ve diğer modlar, CH değiştirme gibi sistemleri uygulamak isteyen geliştiricilere rehberlik eder. Ayrıca, Metin2 compile konularında da destek almak mümkündür.
Sonuç
CH değiştirme sistemi, Metin2 özel sunucularında kullanıcı deneyimini artırmak için güçlü bir özelliktir. Doğru uygulandığında, oyuncuların daha esnek hareket etmesine ve karakterlerini daha iyi yönetmesine olanak tanır. Bu sistemin C++ ile güvenli ve verimli bir şekilde geliştirilmesi, game core ve DB core bilgisi gerektirir.
C++ CH Change System on Metin2 Lobby
In Metin2 private server development, changing CH (Character) is crucial for enhancing player experience and customizing server features. This system typically operates on a C++ based game core and is used to modify character appearance, name, level, or other attributes. In this article, we will examine in detail how to set up a CH change system with C++ and how it can be integrated into Metin2 private servers.
What is CH?
CH, short for Character, refers to the character played by the user. Each character has unique properties such as an ID number, name, class, level, equipment, etc. These attributes are managed by the game server and usually written to the database via DB core. To allow players to create multiple characters and switch between them, CH systems are implemented.
Why Is a CH Change System Needed?
In Metin2 private servers, it's common for players to create multiple characters under one account. These characters might represent different classes, equipment sets, or playstyles. However, some servers aim to enable quick switching between characters. That’s where CH change systems come into play. With this system, players can easily switch to another character from the login screen or in-game menu.
How to Build a CH Change System with C++?
The CH change system is generally developed in C++ on the game server side. During this process, source edit operations are performed. First, the current character list of the player is retrieved. Then, based on the selected character ID, the player is allowed to play that character. Managing the connection between the auth server and game server carefully is essential during this operation.
Sample Code Structure:
Kod:
void CHARACTER::ChangeCharacter(int chIndex)[BR][/BR]{[BR][/BR] if (chIndex >= 0 && chIndex < GetPlayerCount()) {[BR][/BR] SetPlayerIndex(chIndex);[BR][/BR] LoadCharacterData(chIndex);[BR][/BR] SendCharacterInfoToClient();[BR][/BR] }[BR][/BR]}
Security Warning
Security is critical during CH change operations. An incorrectly configured system may lead to unauthorized character access, data loss, or security vulnerabilities. Therefore, user authentication and character verification must be performed during CH changes. Additionally, every action should be logged and monitored by administrators if necessary.
Integration of CH Change System with User Interface
The CH change system is often integrated into the in-game interface using uiscript and py GUI. This allows players to perform character switching directly within the game. The interfaces developed on Py root files must be user-friendly and easily accessible.
Development Through Metin2 Lobby
Metin2 Lobby provides comprehensive resources for Metin2 private server developers. Resources like C++ source, server src, martysama projects, and other mods available here serve as guides for developers looking to implement systems like CH change. Moreover, support regarding Metin2 compile topics is also available.
Conclusion
The CH change system is a powerful feature for enhancing user experience in Metin2 private servers. When implemented correctly, it allows players to move more flexibly and manage their characters better. Developing this system securely and efficiently with C++ requires knowledge of game core and DB core.
