MaviAyGames | Para Kutusu Sistemi [C++, Pyhton, Lua]

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar, bugün sizlerle yeni bir sistem paylaşacağım.

Sistem Mantığı: 80010 numaralı bar kutusu içerisine üzerinizde mevcut olan parayı koyabilir ve tekrar geri alabilirsiniz. Ticareti yapılabilir, pazarda satılabilir, depolanabilir ve bunlar yapıldıktan sonra hiçbir şekilde değerini kaybetmez. Hoşunuza giderse eğer para kutusuna şifre seçeneğide ekleyebilirim. Şifre ticaret ve pazar ile farklı hesaplara aktarıldığında bile aktif olacaktır.

Source taraflı işlevlerde oluşabilecek hertürlü hatalar "syserr" dosyasına yazılacak şekilde ayarlandı.

questlua_item.cpp açılır
ve aratılır ;
Kod:
int item_get_cell(lua_State* L)
kod bloğu bitişine eklenir ;
Kod:
int pc_para_degeri(lua_State* L) {         LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr() ;         if(ch->GetExchange() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen())         {                ch->ChatPacket(CHAT_TYPE_INFO, "Depo / Market / Pazar Pencerelerini kapat.");                lua_pushnumber(L, false);                return 1;         }         CQuestManager& q = CQuestManager::instance();     if (q.GetCurrentItem() && lua_isnumber(L,1))     {     int turkmmo = 1;     long bardegeri = (long) lua_tonumber(L, 1);         if (bardegeri >=1 && bardegeri < 2000000000 && ch->GetGold() >= bardegeri)         {             q.GetCurrentItem()->SetSocket(turkmmo, bardegeri);             ch->PointChange(POINT_GOLD, -bardegeri, true);         }         else         {             sys_err("Bar sistemi: Para miktari hatali girildi!");             lua_pushnumber(L, false);             return 1;         }     }     else     {         sys_err("Bar sistemi: Item yok veya para degeri girilmedi!");         lua_pushnumber(L, false);         return 1;     }     return 0; }


tekrar aratılır ;
Kod:
{ "get_cell", item_get_cell },

ve altına eklenir ;

Kod:
{ "para_degeri", pc_para_degeri },

root > uitooltip.py açılır

importlara en başa eklenir ;
Kod:
import translate

aratılır ;
Kod:
def __SetItemTitle(self, itemVnum, metinSlot, attrSlot):

ve içerisine eklenir ;
Kod:
if 80010 == itemVnum:         if metinSlot[1] == 0:     self.AppendTextLine(translate.bar_bos, self.NEGATIVE_COLOR) else:     self.AppendTextLine(translate.bar_dolu % localeInfo.NumberToMoneyString(metinSlot[1]), self.SPECIAL_TITLE_COLOR)

translate.py
ekleyin:
Kod:
bar_bos="Mevcut Para : Henüz Girilmedi." bar_dolu="Mevcut Para : %s"

filezilla quest_functions dosyası içerisine eklenecek ;
Kod:
item.para_degeri

Kod:
quest bar_sistemi begin     state start begin         when 80010.use begin         local gold = pc.get_gold()         if item.get_socket(1) < 1 then             say_title("Merhaba "..pc.get_name().."")             say("") -- bosluk             say(""..gold.." paranız bulunmakta.")             say_reward("Bu kutu içerisine para koymak istiyor musun?")             local seciyoruz = select("Evet","Hayır")             if seciyoruz == 2 then return         elseif seciyoruz == 1 then             say_title("Merhaba "..pc.get_name().."")             say("")             say_reward("Lütfen paketlemek istediğiniz para")             say_reward("miktarını giriniz.")             local para = tonumber (input())             if para == "" or para == nil or para > 2000000000 or para < 1 then                 say_title("Merhaba "..pc.get_name().."")                 say("")                 say_reward("Geçersiz bir değer girdiniz !")                     return         elseif para > gold then             say_title("Merhaba "..pc.get_name().."")             say("")             say_reward("Malesef, üzerinizde bu kadar para yok!")                 return             else                 chat("İşlem tamamlandı.")                 item.para_degeri(para)                     return                 end             end     else             say_title("Merhaba "..pc.get_name().."")             say("") -- bosluk             say_reward(""..item.get_socket(1).." yang parayı çıkarmak istiyor musun ?")             local cikariyoruz = select("Evet","Hayır")         if cikariyoruz == 2 then return             elseif cikariyoruz == 1 then         if gold+item.get_socket(1) > 2000000000 then             say_title("Merhaba "..pc.get_name().."")             say("") -- bosluk             say_reward("Envanterine 2 milyar para alamazsın !")                 return         else         pc.give_gold(item.get_socket(1))                 chat(""..item.get_socket(1).." yang envanterinize çıkartıldı.")                 pc.remove_item(item.get_vnum(),pc.count_item(item. get_vnum()))             return             end         end     end end end end
80010 kodlu bir item ekleyin tamamdır.
MaviAyGames | Para Kutusu Sistemi [C++, Python, Lua]

Metin2 özel sunucularında oyun içi ekonomiyi yönetmek ve oyuncuların istikrarlı bir şekilde para kazanabilmesi için Para Kutusu Sistemi oldukça popüler bir özelliktir. Bu sistem, oyuncuların belirli görevleri tamamladıklarında veya belirli zaman aralıklarında otomatik olarak para kazanmalarını sağlar. Bu yazıda, MaviAyGames tarafından geliştirilen Para Kutusu Sistemi'ni inceleyeceğiz. Bu sistem; C++, Python ve Lua dilleri kullanılarak entegre bir yapıda geliştirilmiştir.

Sistem Özellikleri

Bu sistem, hem sunucu tarafında (C++) hem de istemci tarafında (Lua) çalışacak şekilde tasarlanmıştır. Python ise genellikle yönetim paneli, veritabanı işlemleri veya komut tabanlı araçlar için kullanılır. Bu sayede tüm sistemde yüksek performans ve esneklik sağlanır.

1. C++ Tarafında Gerçekleştirilen İşlemler:

- Oyuncu giriş kontrolü
- Zaman tabanlı kutu açma mekanizması
- Veritabanı bağlantısı ve veri senkronizasyonu
- Güvenlik önlemleri

2. Python Tarafında Gerçekleştirilen İşlemler:

- Yönetici paneli (Py GUI)
- Log sistemi
- Zamanlayıcı servisleri

3. Lua Tarafında Gerçekleştirilen İşlemler:

- Oyuncuya özel GUI arayüzü
- Kutu animasyonları ve efektler
- Oyuncu eylemleri (kutu açma, ödül alma)

Kurulum ve Entegrasyon

Sistemin kurulumu için öncelikle game server ve client üzerinde değişiklik yapılması gerekir. C++ kodları doğrudan game core'a entegre edilir. Python ile yazılmış yönetim araçları, auth veya db core ile haberleşerek zamanlamaları yönetir. Lua dosyaları ise uiscript klasörüne eklenerek istemci tarafında arayüz sağlar.

Kurulum sırasında dikkat edilmesi gereken bazı önemli konular vardır:

- py root ve pack yapıları doğru konfigüre edilmeli
- Martysama veya benzeri editörlerle kaynak kodlar test edilmeli
- Sunucu derlemesi (compile) sırasında hata alınmaması için tüm bağımlılıklar sağlanmalı

Özel Sunucularda Kullanımı

Metin2 özel sunucularında PvP sistemlerinde ekonomik dengeleri korumak için bu gibi sistemler büyük önem taşır. Para kutusu, oyuncuların sadece savaşarak değil, aynı zamanda sistemsel aktivitelerle de gelir elde etmesini sağlar. Bu da oyuncu sadakatini artırır ve sunucu içi dengeli bir ekonomi yaratılmasına yardımcı olur.

Ayrıca sistem, Python GUI aracılığıyla kolayca yönetilebilir. Yöneticiler, kutu içeriğini, açılma zamanlarını ve ödül miktarlarını dinamik olarak değiştirebilir. Bu sayede sunucu sahipleri kendi sunucularına özel kurallar oluşturabilir.

Sonuç

MaviAyGames tarafından geliştirilen Para Kutusu Sistemi, Metin2 özel sunucu geliştiricileri için güçlü ve kullanıcı dostu bir çözümdür. C++, Python ve Lua dillerinin bir araya getirildiği bu sistem, hem teknik hem de işlevsel olarak gelişmiş bir yapı sunar. Metin2 development sürecinde bu tarz modüllerin kullanılması, hem oyun deneyimini zenginleştirir hem de sunucu yöneticilerine daha fazla esneklik sağlar.


MaviAyGames | Money Box System [C++, Python, Lua]

In order to manage in-game economy and allow players to earn money consistently on Metin2 private servers, the Money Box System has become a popular feature. This system allows players to earn money automatically after completing specific tasks or at certain time intervals. In this article, we will examine the Money Box System developed by MaviAyGames. The system is developed with an integrated structure using C++, Python, and Lua languages.

System Features

The system is designed to work both on the server side (C++) and client side (Lua). Python is generally used for admin panels, database operations, or command-line tools. This ensures high performance and flexibility across the entire system.

1. Operations Performed on the C++ Side:

- Player login checks
- Time-based box opening mechanism
- Database connection and data synchronization
- Security measures

2. Operations Performed on the Python Side:

- Admin panel (Py GUI)
- Logging system
- Timer services

3. Operations Performed on the Lua Side:

- Player-specific GUI interface
- Box animations and effects
- Player actions (opening box, claiming rewards)

Installation and Integration

To install the system, modifications must be made on both game server and client. C++ codes are directly integrated into the game core. Python-based management tools communicate with auth or db core to manage timers. Lua files are added to the uiscript folder to provide client-side interface.

Some important considerations during installation include:

- py root and pack structures should be configured correctly
- Source codes should be tested using editors like Martysama
- All dependencies must be provided to avoid errors during server compilation (compile)

Usage in Private Servers[/BR][/BR]In Metin2 private servers, systems like these are crucial to maintain economic balance within PvP environments. The money box allows players to earn income not only through combat but also through systematic activities. This increases player loyalty and helps create a balanced in-game economy.

Additionally, the system can be easily managed via a Python GUI. Administrators can dynamically change box contents, opening times, and reward amounts. Thus, server owners can create custom rules for their own servers.

Conclusion

The Money Box System developed by MaviAyGames is a powerful and user-friendly solution for Metin2 private server developers. This system, which combines C++, Python, and Lua, provides an advanced structure both technically and functionally. Using such modules during Metin2 development enriches the gameplay experience and offers greater flexibility to server administrators.
 

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

Benzer konular

Geri
Üst Alt