[/FONT]
cmd.cpp açılır-aratılır:
Kod:
ACMD(do_stun);
Kod:
ACMD(do_uzaktan_ticaret); ACMD(do_uzaktan_ticaret_hayir); ACMD(do_uzaktan_ticaret_kabul);
Kod:
{ "mall_passwor", do_inputall, 0, POS_DEAD, GM_PLAYER },
Kod:
{ "uzaktan_ticaret", do_uzaktan_ticaret, 0, POS_DEAD, GM_PLAYER }, { "uzaktan_ticaret_hayir", do_uzaktan_ticaret_hayir, 0, POS_DEAD, GM_PLAYER }, { "uzaktan_ticaret_kabul", do_uzaktan_ticaret_kabul, 0, POS_DEAD, GM_PLAYER },
cmd_general.cpp açılır-aratılır:
Kod:
ACMD(do_observer_exit)
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Kod:
ACMD(do_uzaktan_ticaret_hayir) { char hedef[256]; one_argument(argument, hedef, sizeof(hedef)); LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(hedef); CCI * farklich = P2P_MANAGER::instance().Find(hedef); ///////////////////////////////////////////////////////////////////////// if (kimsin == ch){return;} if (!*hedef){ch->ChatPacket(CHAT_TYPE_INFO, "yanlis kullanim");return;} if (kimsin) { kimsin->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s isimli oyuncu uzaktan ticareti reddetti!"),ch->GetName()); } else if (!kimsin) { if (farklich) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi bu kanalda degil."), kimsin->GetName()); return; } else { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi oyunda degil"), hedef); } } } ACMD(do_uzaktan_ticaret_kabul) { char hedef[256]; one_argument(argument, hedef, sizeof(hedef)); LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(hedef); CCI * farklich = P2P_MANAGER::instance().Find(hedef); ///////////////////////////////////////////////////////////////// if (kimsin == ch){return;} if (!*hedef) {} if (kimsin) { ch->ExchangeStart(kimsin);//__Exchange.cpp__ } else if (!kimsin) { if (farklich) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi bu kanalda degil."), kimsin->GetName()); return; } else { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi oyunda degil"), hedef); } } } ACMD(do_uzaktan_ticaret) { char hedef[256]; one_argument(argument, hedef, sizeof(hedef)); LPCHARACTER kimsin = CHARACTER_MANAGER::instance().FindPC(hedef); CCI * farklich = P2P_MANAGER::instance().Find(hedef); //////////////////////////////////////////////////////////////////// if (!*hedef){return;} if (kimsin == ch) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("|cffFFC125Hata: Kendi ismini yazamazsin!")); return; } if (kimsin) { kimsin->ChatPacket(CHAT_TYPE_COMMAND, "sorgu %s %d", ch->GetName(), ch->GetLevel()); ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisine isteginiz iletildi."), kimsin->GetName()); } else if (!kimsin) { if (farklich) { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi bu kanalda degil."), kimsin->GetName()); return; } else { ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("%s kisisi oyunda degil"), hedef); return; } } }
exchange.cpp açılır-aratılır:
Kod:
if (iDist >= EXCHANGE_MAX_DISTANCE) return false;
Değiştirilir;
Kod:
/*if (iDist >= EXCHANGE_MAX_DISTANCE) return false;*/
Kod:
"ConsoleEnable" : self.__Console_Enable,
Kod:
"sorgu" : self.Uzaktan_ticaret_soru,
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Kod:
def Uzaktan_ticaret_soru(self, isim, level): uzaktan_sorusu = uiCommon.QuestionDialog() uzaktan_sorusu.SetText("|cffFDD017|H|h" + str(isim)+ "|cff00ccff" + "(Lv."+str(level)+")"+ "|h|r" + " Seninle uzaktan ticaret yapmak istiyor.") uzaktan_sorusu.SetAcceptEvent(lambda arg=TRUE: self.tamam_mk(isim)) uzaktan_sorusu.SetCancelEvent(lambda arg=FALSE: self.sie_mq(isim)) uzaktan_sorusu.Open() self.uzaktan_sorusu = uzaktan_sorusu return def tamam_mk(self, isim): #net.SendExchangeStartPacket(isim) net.SendChatPacket("/uzaktan_ticaret_kabul " + str(isim)) self.uzaktan_sorusu.Close() def sie_mq(self, isim): net.SendChatPacket("/uzaktan_ticaret_hayir " + str(isim)) self.uzaktan_sorusu.Close()
Kod:
"%s isimli oyuncu uzaktan ticareti reddetti!";"|cff00ccff%s |cffFFC125isimli oyuncu uzaktan ticareti reddetti."; "%s kisisi oyunda degil"; "|cff00ccff%s |cffFFC125isimli oyuncu oyunda değil."; "%s kisisi bu kanalda degil."; "|cff00ccff%s |cffFFC125isimli oyuncu bu kanalda değil."; "|cffFFC125Hata: Kendi ismini yazamazsin!"; "|cffFFC125Hata: Kendi ismini yazamazsın.";
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.
Uzaktan Ticaret Sistemleri ve Metin2 Özel Sunucularında C++ Kullanımı
Giriş
Metin2 özel sunucuları geliştirme dünyasında, oyuncuların oyun içi ekonomiyi daha dinamik hale getirecek sistemlerin entegrasyonu büyük önem taşır. Bu bağlamda, uzaktan ticaret gibi sistemler, oyuncuların doğrudan fiziksel olarak markete gitmeden veya diğer oyuncularla karşılaşıp pazarlık yapmadan eşya alım-satım yapabilmesini sağlar. Bu tür sistemler genellikle C++ dilinde yazılmış olan oyun çekirdek dosyalarına entegre edilerek çalışır. Bu yazıda, Metin2 özel sunucularında uzaktan ticaret sistemlerinin nasıl geliştirileceği ve C++ tabanlı kodlama süreçlerinin nasıl işlediği detaylıca ele alınacaktır.
Uzaktan Ticaret Nedir?
Uzaktan ticaret, oyuncuların belirli bir menzilde olmasalar bile oyun içinde eşya veya para alışverişinde bulunabilmesini sağlayan bir sistemdir. Oyuncular, bu sistem sayesinde mesafe farkı olmadan birbirleriyle ticaret yapabilir, markete eşya koyabilir veya satın alabilirler. Bu sistem genellikle bir sunucu tarafında çalışan ve veritabanına erişim sağlayan bir yapıdır. Bu yapı, game server üzerinde C++ ile geliştirilir.
C++ ve Metin2 Geliştirme Ortamı
Metin2 özel sunucularında geliştirme yaparken temel dillerden biri olan C++, hem game hem de auth sunucularında önemli rol oynar. Özellikle oyun içi sistemlerin kontrolü, veri akışı ve kullanıcı etkileşimleri bu dil üzerinden sağlanır. Uzaktan ticaret sistemi de C++ kullanılarak geliştirildiğinde, sunucu performansını etkilemeden yüksek seviyede güvenlik ve verimlilik sağlanabilir. Martysama ve benzeri geliştirici kaynakları, bu konuda geniş bir bilgi yelpazesi sunar.
Uzaktan Ticaret Sisteminin C++ ile Entegrasyonu
Uzaktan ticaret sisteminin C++ ile entegrasyonu birkaç adımda gerçekleşir:
- Oyun sunucusuna özel bir komut veya GUI arayüzü eklenir.
- Eşya listeleme, fiyat belirleme, alım-satım işlemleri için veritabanı sorguları hazırlanır.
- Bu işlemler db core üzerinden güvenli bir şekilde yönetilir.
- Sunucu taraflı işlemler server src dosyalarında tanımlanır.
Python ve GUI Entegrasyonu
Bazı durumlarda, uzaktan ticaret sistemi için bir arayüz gerekebilir. Bu arayüzler genellikle Python ile geliştirilen GUI sistemleri ile oluşturulur. Py root ve uiscript gibi yapılar, Metin2 istemcisi ile uyumlu arayüzler geliştirmek için kullanılır. Bu sayede oyuncular, grafiksel bir arayüz üzerinden uzaktan ticaret işlemlerini kolayca gerçekleştirebilirler.
Veritabanı ve Güvenlik
Uzaktan ticaret sistemi, DB üzerinde güvenli veri saklama ve işlem yönetimi gerektirir. Bu veriler, game server tarafından doğrulanmalı ve sahteciliğe karşı korunmalıdır. Core yapılar kullanılarak bu işlemler otomatikleştirilir ve sunucu güvenliği sağlanır. Metin2 development sürecinde bu tür güvenlik önlemleri hayati önem taşır.
Sonuç
Uzaktan ticaret sistemi, Metin2 özel sunucularında kullanıcı deneyimini ciddi anlamda artırabilecek güçlü bir özelliktir. C++ ve Python gibi dillerin birlikte kullanılmasıyla, hem sunucu tarafında hem de istemci tarafında verimli ve kullanıcı dostu çözümler üretmek mümkündür. Metin2 Lobby olarak bu tür gelişmiş sistemlerin entegrasyonunda uzmanlaşıyor ve topluluk odaklı çözümler sunuyoruz.
Remote Trade Systems and Use of C++ in Metin2 Private Servers
Introduction
In the world of Metin2 private server development, integrating systems that make the in-game economy more dynamic is crucial. In this context, systems like remote trade allow players to buy and sell items without having to physically go to the market or meet other players for negotiations. These types of systems are usually integrated into the game core files written in C++. This article will examine in detail how remote trade systems can be developed in Metin2 private servers and how C++ based coding processes work.
What Is Remote Trade?
Remote trade is a system that allows players to engage in item or currency transactions without being within a specific range in the game. Thanks to this system, players can trade with each other, place items on the market, or purchase items regardless of distance. This system typically operates through a structure running on the server side and accessing the database. This structure is developed using C++ on the game server.
C++ and the Metin2 Development Environment
When developing on Metin2 private servers, C++, one of the main languages used, plays a critical role in both game and auth servers. Especially for controlling in-game systems, data flow, and player interactions, this language is essential. When a remote trade system is developed using C++, high levels of security and efficiency can be achieved without affecting server performance. Developer resources such as Martysama provide extensive knowledge in this area.
Integration of Remote Trade System with C++
The integration of the remote trade system with C++ occurs in several steps:
- A custom command or GUI interface is added to the game server.
- Database queries are prepared for listing items, setting prices, and handling buying/selling transactions.
- These operations are securely managed via the db core.
- Server-side operations are defined in server src files.
Python and GUI Integration
In some cases, an interface may be required for the remote trade system. These interfaces are generally built using GUI systems developed in Python. Structures like Py root and uiscript are used to create interfaces compatible with the Metin2 client. Thus, players can easily perform remote trade operations through a graphical interface.
Database and Security
The remote trade system requires secure data storage and transaction management on the DB. These data must be validated by the game server and protected against fraud. By utilizing core structures, these operations can be automated and server security ensured. Such security measures are vital during Metin2 development.
Conclusion
The remote trade system is a powerful feature that can significantly enhance the user experience in Metin2 private servers. By combining languages like C++ and Python, efficient and user-friendly solutions can be created both on the server and client sides. At Metin2 Lobby, we specialize in integrating such advanced systems and providing community-oriented solutions.
