- Katılım
- 6 Mayıs 2022
- Konular
- 48,291
- Mesajlar
- 48,601
- Tepkime puanı
- 75
- M2 Yaşı
- 3 yıl 11 ay 10 gün
- Trophy Puan
- 48
- M2 Yang
- 488,879
Dün offline shop log adlı konu altına bu eklentiyi paylaşmamı isteyenler olmuş buyrun.
İnput.h
Üstüne ekle:
İnput_p2p.cpp
Ekle:
Arat:
Altına ekle:
Packet.h
Arat:
Sıralama en altına ekle:
Uygun alana ekle:
Packet_info.cpp
Arat:
Altına ekle:
Shop.cpp
Arat:
MaviAyGames | Offline Shop Satış Yapınca PM Bildirisi Sistemi
Metin2 özel sunucularında kullanıcı deneyimini artırmak ve satış süreçlerini daha verimli hale getirmek için birçok geliştirici, gelişmiş sistemler geliştirmektedir. Bu bağlamda, MaviAyGames tarafından sunulan Offline Shop sistemi, oyuncuların oyun dışındayken bile satın alma yapabilmesini sağlar. Ancak satış gerçekleştiğinde geliştirici veya yetkiliye bildirim gönderilmesi oldukça önemli bir özelliktir. İşte tam burada devreye PM Bildirimi sistemi giriyor.
Offline Shop Nedir?
Offline Shop, oyuncuların sunucuda aktif olmasalar bile, belirli bir mağaza arayüzü üzerinden eşya alıp satabileceği bir sistemdir. Bu sistem genellikle C++ tabanlı sunucu tarafında geliştirilir ve veritabanı (DB) ile entegre çalışır. Özellikle PvP sunucularında popüler olan bu sistem, oyuncuların zamanında olmayan karakterlerine bile gelir sağlamak açısından oldukça faydalıdır.
Satış Gerçekleşince Neden PM Bildirimi Gerekir?
Bir oyuncu Offline Shop üzerinden bir eşya satın aldığında, eşyanın doğru şekilde teslim edildiğinden emin olmak gerekir. Ayrıca, satışın izlenebilir olması ve olası hile durumlarında müdahale edebilmek için geliştiricinin veya yetkilinin haberdar olması kritik öneme sahiptir. Bu nedenle, satış yapıldığında otomatik olarak yetkiliye bir özel mesaj (PM) gönderilmesi büyük kolaylık sağlar.
PM Bildirimi Nasıl Çalışır?
Sistem, bir satış işlemi gerçekleştiğinde, sunucu tarafında çalışan bir C++ fonksiyonu sayesinde belirlenen yetkiliye özel mesaj gönderir. Bu mesajda genellikle şu bilgiler yer alır:
- Satın alan oyuncu adı
- Alınan eşya ismi
- Eşya miktarı (varsa)
- Satış tarihi ve saati
- Kullanılan para miktarı
Bu bilgiler, geliştiricinin veya yetkilinin satışları takip edebilmesini sağlar. Ayrıca, Python tabanlı GUI sistemlerle entegre edilirse, bu veriler daha detaylı analiz edilebilir.
MaviAyGames Tarafından Sağlanan Özellikler
MaviAyGames, bu sistemi kolayca entegre edilebilir şekilde sunmaktadır. Kurulumu oldukça basittir ve mevcut Metin2 sunucu yapılandırmasına zarar vermez. Geliştiriciler, bu sistemi sadece Offline Shop değil, diğer e-ticaret benzeri sistemlerde de kullanabilirler. Ayrıca, Martysama tarzı modülasyonlarla da uyumlu çalışabilmektedir.
Teknik Detaylar ve Entegrasyon
Offline Shop sistemi genellikle game core kısmında çalışır ve db core ile senkronize edilir. C++ source edit işlemleri sırasında dikkat edilmesi gereken bazı önemli noktalar vardır. Örneğin, veritabanı tablolarında gerekli değişiklikler yapılmalı ve satış işleminin tamamlandığı anda PM fonksiyonu çağrılmalıdır. Bu tür sistemlerde auth server ile olan bağlantı da önemlidir çünkü kullanıcı doğrulaması bu şekilde sağlanır.
Sonuç
MaviAyGames tarafından geliştirilen Offline Shop sistemi, Metin2 özel sunucuları için oldukça değerli bir özelliktir. Satış yapıldığında otomatik olarak yetkiliye PM gönderilmesi, hem güvenliği artırır hem de yönetim kolaylığı sağlar. Geliştiriciler bu sistemi kullanarak oyuncu memnuniyetini artırırken, aynı zamanda sunucularının performansını da optimize edebilirler.
MaviAyGames | Offline Shop PM Notification Upon Sale
To enhance the user experience on Metin2 private servers and make sales processes more efficient, many developers create advanced systems. In this context, the Offline Shop system provided by MaviAyGames allows players to make purchases even while they are offline. However, sending a notification to the developer or admin when a sale occurs is a highly important feature. This is where the PM Notification system comes into play.
What is Offline Shop?
Offline Shop is a system that allows players to buy and sell items through a specific shop interface even if they are not active in the game. This system is usually developed on the server-side with C++ and works integrated with a database (DB). Particularly popular on PvP servers, this system is very useful for generating income for characters that players cannot log in with regularly.
Why is PM Notification Needed When a Sale Occurs?
When a player purchases an item via Offline Shop, ensuring the item is delivered correctly is essential. Additionally, for tracking sales and intervening in potential fraud cases, it is critical for the developer or admin to be informed. Therefore, automatically sending a private message (PM) to the admin upon a sale provides significant convenience.
How Does PM Notification Work?
When a sale occurs, a C++ function running on the server side sends a private message to the designated admin. The message typically includes:
- Buyer character name
- Item name purchased
- Quantity of the item (if applicable)
- Date and time of the sale
- Amount of currency used
These details allow the developer or admin to track sales effectively. Moreover, if integrated with Python-based GUI systems, this data can be analyzed more thoroughly.
Features Provided by MaviAyGames
MaviAyGames offers this system in an easily integrable way. Installation is straightforward and does not harm existing Metin2 server configurations. Developers can use this system not only for Offline Shop but also in other e-commerce-like systems. Furthermore, it is compatible with modular structures like Martysama.
Technical Details and Integration
Offline Shop usually runs within the game core and synchronizes with db core. There are several important points to consider during C++ source edit operations. For instance, necessary changes must be made to database tables, and the PM function must be called immediately after the sale is completed. Connections with the auth server are also important in such systems, as user validation relies on this connection.
Conclusion
The Offline Shop system developed by MaviAyGames is a valuable feature for Metin2 private servers. Automatically sending a PM to admins upon sales increases both security and management ease. Developers can use this system to increase player satisfaction while optimizing their server's performance.
İnput.h
Kod:
public: CPacketInfoGG m_packetInfoGG; };
Üstüne ekle:
Kod:
void SendOfflineShopMessage(LPDESC d, const char * c_pData);
İnput_p2p.cpp
Ekle:
Kod:
void CInputP2P::SendOfflineShopMessage(LPDESC d, const char * c_pData) { TPacketGGOfflineShopMessage * p = (TPacketGGOfflineShopMessage *)c_pData; LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(p->dwTargetPID); if (ch) { LPDESC pkVictimDesc = ch->GetDesc(); if (pkVictimDesc) { char msg[CHAT_MAX_LEN + 1]; snprintf(msg, sizeof(msg), LC_TEXT("Your item %s sold, buyer is: %s."), p->szItemName, p->szName); TPacketGCWhisper pack; int len = MIN(CHAT_MAX_LEN, strlen(msg) + 1); pack.bHeader = HEADER_GC_WHISPER; pack.wSize = sizeof(TPacketGCWhisper)+len; pack.bType = WHISPER_TYPE_SYSTEM; strlcpy(pack.szNameFrom, "[Market Tezgahı]", sizeof(pack.szNameFrom)); TEMP_BUFFER buf; buf.write(&pack, sizeof(TPacketGCWhisper)); buf.write(msg, len); pkVictimDesc->Packet(buf.read_peek(), buf.size()); } } }
Arat:
Kod:
} return (iExtraLen); }
Altına ekle:
Kod:
case HEADER_GG_OFFLINE_SHOP_SEND_MESSAGE: SendOfflineShopMessage(d, c_pData); break;
Packet.h
Arat:
Kod:
HEADER_GG_LOGIN = 1, HEADER_GG_LOGOUT = 2, HEADER_GG_RELAY = 3, HEADER_GG_NOTICE = 4, HEADER_GG_SHUTDOWN = 5,
Kod:
HEADER_GG_OFFLINE_SHOP_SEND_MESSAGE = 53,
Uygun alana ekle:
Kod:
typedef struct SPacketGGOfflineShopMessage { BYTE bHeader; DWORD dwTargetPID; char szName[CHARACTER_NAME_MAX_LEN + 1]; char szItemName[ITEM_NAME_MAX_LEN + 1]; } TPacketGGOfflineShopMessage;
Packet_info.cpp
Arat:
Kod:
CPacketInfoGG::CPacketInfoGG()
Altına ekle:
Kod:
Set(HEADER_GG_OFFLINE_SHOP_SEND_MESSAGE, sizeof(TPacketGGOfflineShopMessage), "OfflineShopUpdateMessage", false);
Shop.cpp
Arat:
Kod:
#ifdef FULL_YANG snprintf(buf, sizeof(buf), "%s %u(%s) %lld %u", pkNewItem->GetName(), mpid, m_pkPC->GetName(), dwPrice, pkNewItem->GetCount()); LogManager::instance().ItemLog(ch, pkNewItem, szBuy.c_str(), buf); snprintf(buf, sizeof(buf), "%s %u(%s) %lld %u", pkNewItem->GetName(), ch->GetPlayerID(), ch->GetName(), dwPrice, pkNewItem->GetCount()); LogManager::instance().ItemLog(m_pkPC, pkNewItem, szSell.c_str(), buf); #else snprintf(buf, sizeof(buf), "%s %u(%s) %u %u", pkNewItem->GetName(), mpid, m_pkPC->GetName(), dwPrice, pkNewItem->GetCount()); LogManager::instance().ItemLog(ch, pkNewItem, szBuy.c_str(), buf); snprintf(buf, sizeof(buf), "%s %u(%s) %u %u", pkNewItem->GetName(), ch->GetPlayerID(), ch->GetName(), dwPrice, pkNewItem->GetCount()); LogManager::instance().ItemLog(m_pkPC, pkNewItem, szSell.c_str(), buf); #endif
Kod:
LPCHARACTER BuyPMCh = CHARACTER_MANAGER::instance().FindByPID(m_pkPC->GetPrivShopOwner()); if (BuyPMCh) { char msg[CHAT_MAX_LEN + 1]; snprintf(msg, sizeof(msg), LC_TEXT("Your item %s x%u sold, buyer is: %s."), pkNewItem->GetName(), pkNewItem->GetCount(), ch->GetName()); LPDESC pkVictimDesc = BuyPMCh->GetDesc(); if (pkVictimDesc) { TPacketGCWhisper pack; int len = MIN(CHAT_MAX_LEN, strlen(msg) + 1); pack.bHeader = HEADER_GC_WHISPER; pack.wSize = sizeof(TPacketGCWhisper)+len; pack.bType = WHISPER_TYPE_SYSTEM; strlcpy(pack.szNameFrom, "[Market Tezgahı]", sizeof(pack.szNameFrom)); TEMP_BUFFER buf; buf.write(&pack, sizeof(TPacketGCWhisper)); buf.write(msg, len); pkVictimDesc->Packet(buf.read_peek(), buf.size()); } } else { TPacketGGOfflineShopMessage p; p.bHeader = HEADER_GG_OFFLINE_SHOP_SEND_MESSAGE; p.dwTargetPID = m_pkPC->GetPlayerID(); strlcpy(p.szItemName, pkNewItem->GetName(), sizeof(p.szItemName)); strlcpy(p.szName, ch->GetName(), sizeof(p.szName)); P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGOfflineShopMessage)); }
MaviAyGames | Offline Shop Satış Yapınca PM Bildirisi Sistemi
Metin2 özel sunucularında kullanıcı deneyimini artırmak ve satış süreçlerini daha verimli hale getirmek için birçok geliştirici, gelişmiş sistemler geliştirmektedir. Bu bağlamda, MaviAyGames tarafından sunulan Offline Shop sistemi, oyuncuların oyun dışındayken bile satın alma yapabilmesini sağlar. Ancak satış gerçekleştiğinde geliştirici veya yetkiliye bildirim gönderilmesi oldukça önemli bir özelliktir. İşte tam burada devreye PM Bildirimi sistemi giriyor.
Offline Shop Nedir?
Offline Shop, oyuncuların sunucuda aktif olmasalar bile, belirli bir mağaza arayüzü üzerinden eşya alıp satabileceği bir sistemdir. Bu sistem genellikle C++ tabanlı sunucu tarafında geliştirilir ve veritabanı (DB) ile entegre çalışır. Özellikle PvP sunucularında popüler olan bu sistem, oyuncuların zamanında olmayan karakterlerine bile gelir sağlamak açısından oldukça faydalıdır.
Satış Gerçekleşince Neden PM Bildirimi Gerekir?
Bir oyuncu Offline Shop üzerinden bir eşya satın aldığında, eşyanın doğru şekilde teslim edildiğinden emin olmak gerekir. Ayrıca, satışın izlenebilir olması ve olası hile durumlarında müdahale edebilmek için geliştiricinin veya yetkilinin haberdar olması kritik öneme sahiptir. Bu nedenle, satış yapıldığında otomatik olarak yetkiliye bir özel mesaj (PM) gönderilmesi büyük kolaylık sağlar.
PM Bildirimi Nasıl Çalışır?
Sistem, bir satış işlemi gerçekleştiğinde, sunucu tarafında çalışan bir C++ fonksiyonu sayesinde belirlenen yetkiliye özel mesaj gönderir. Bu mesajda genellikle şu bilgiler yer alır:
- Satın alan oyuncu adı
- Alınan eşya ismi
- Eşya miktarı (varsa)
- Satış tarihi ve saati
- Kullanılan para miktarı
Bu bilgiler, geliştiricinin veya yetkilinin satışları takip edebilmesini sağlar. Ayrıca, Python tabanlı GUI sistemlerle entegre edilirse, bu veriler daha detaylı analiz edilebilir.
MaviAyGames Tarafından Sağlanan Özellikler
MaviAyGames, bu sistemi kolayca entegre edilebilir şekilde sunmaktadır. Kurulumu oldukça basittir ve mevcut Metin2 sunucu yapılandırmasına zarar vermez. Geliştiriciler, bu sistemi sadece Offline Shop değil, diğer e-ticaret benzeri sistemlerde de kullanabilirler. Ayrıca, Martysama tarzı modülasyonlarla da uyumlu çalışabilmektedir.
Teknik Detaylar ve Entegrasyon
Offline Shop sistemi genellikle game core kısmında çalışır ve db core ile senkronize edilir. C++ source edit işlemleri sırasında dikkat edilmesi gereken bazı önemli noktalar vardır. Örneğin, veritabanı tablolarında gerekli değişiklikler yapılmalı ve satış işleminin tamamlandığı anda PM fonksiyonu çağrılmalıdır. Bu tür sistemlerde auth server ile olan bağlantı da önemlidir çünkü kullanıcı doğrulaması bu şekilde sağlanır.
Sonuç
MaviAyGames tarafından geliştirilen Offline Shop sistemi, Metin2 özel sunucuları için oldukça değerli bir özelliktir. Satış yapıldığında otomatik olarak yetkiliye PM gönderilmesi, hem güvenliği artırır hem de yönetim kolaylığı sağlar. Geliştiriciler bu sistemi kullanarak oyuncu memnuniyetini artırırken, aynı zamanda sunucularının performansını da optimize edebilirler.
MaviAyGames | Offline Shop PM Notification Upon Sale
To enhance the user experience on Metin2 private servers and make sales processes more efficient, many developers create advanced systems. In this context, the Offline Shop system provided by MaviAyGames allows players to make purchases even while they are offline. However, sending a notification to the developer or admin when a sale occurs is a highly important feature. This is where the PM Notification system comes into play.
What is Offline Shop?
Offline Shop is a system that allows players to buy and sell items through a specific shop interface even if they are not active in the game. This system is usually developed on the server-side with C++ and works integrated with a database (DB). Particularly popular on PvP servers, this system is very useful for generating income for characters that players cannot log in with regularly.
Why is PM Notification Needed When a Sale Occurs?
When a player purchases an item via Offline Shop, ensuring the item is delivered correctly is essential. Additionally, for tracking sales and intervening in potential fraud cases, it is critical for the developer or admin to be informed. Therefore, automatically sending a private message (PM) to the admin upon a sale provides significant convenience.
How Does PM Notification Work?
When a sale occurs, a C++ function running on the server side sends a private message to the designated admin. The message typically includes:
- Buyer character name
- Item name purchased
- Quantity of the item (if applicable)
- Date and time of the sale
- Amount of currency used
These details allow the developer or admin to track sales effectively. Moreover, if integrated with Python-based GUI systems, this data can be analyzed more thoroughly.
Features Provided by MaviAyGames
MaviAyGames offers this system in an easily integrable way. Installation is straightforward and does not harm existing Metin2 server configurations. Developers can use this system not only for Offline Shop but also in other e-commerce-like systems. Furthermore, it is compatible with modular structures like Martysama.
Technical Details and Integration
Offline Shop usually runs within the game core and synchronizes with db core. There are several important points to consider during C++ source edit operations. For instance, necessary changes must be made to database tables, and the PM function must be called immediately after the sale is completed. Connections with the auth server are also important in such systems, as user validation relies on this connection.
Conclusion
The Offline Shop system developed by MaviAyGames is a valuable feature for Metin2 private servers. Automatically sending a PM to admins upon sales increases both security and management ease. Developers can use this system to increase player satisfaction while optimizing their server's performance.
