ITJA Aviator Bahis Sistemi (Geliştirileblilir)

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
249818_51051970bcb2de22bedfe2998b9599f5.png



İstersen yang.ep.won vs vs. kafananıza göre entegre edersiniz

CMD GENERAL:

ACMD komut başlangıclarına ekle
Kod:
std::deque<float> g_AviatorMultipliers; std::deque<std::string> g_AviatorWinners; ACMD(do_aviator_info) {     ch->ChatPacket(CHAT_TYPE_INFO, "Last Multipliers:");     for (auto it = g_AviatorMultipliers.rbegin(); it != g_AviatorMultipliers.rend(); ++it)         ch->ChatPacket(CHAT_TYPE_INFO, "  %.2fx", *it);     ch->ChatPacket(CHAT_TYPE_INFO, "Top recent winners:");     for (auto it = g_AviatorWinners.rbegin(); it != g_AviatorWinners.rend(); ++it)         ch->ChatPacket(CHAT_TYPE_INFO, "  %s", it->c_str()); } EVENTINFO(aviator_event_info) {     LPCHARACTER ch;     aviator_event_info() : ch(NULL) {} }; EVENTFUNC(aviator_event) {     aviator_event_info* info = dynamic_cast<aviator_event_info*>(event->info);     if (!info || !info->ch) return 0;     LPCHARACTER ch = info->ch;     auto it = g_AviatorMap.find(ch->GetVID());     if (it == g_AviatorMap.end()) return 0;     SAviatorData& data = it->second;     if (!data.isPlaying) return 0;     data.multiplier += 0.05f;     ch->ChatPacket(CHAT_TYPE_INFO, "Çarpan: %.2fx", data.multiplier);     if (number(1, 1000) <= 30) {         ch->ChatPacket(CHAT_TYPE_INFO, "?? Uçak %.2fx çarpanda patladı!", data.multiplier);         data.isPlaying = false;         g_AviatorMap.erase(it);         return 0;     }     return PASSES_PER_SEC(1); } ACMD(do_aviator) {     char arg[256];     one_argument(argument, arg, sizeof(arg));     int bet = atoi(arg);     if (bet <= 0) {         ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /aviator [bahis]");         return;     }     if (g_AviatorMap.find(ch->GetVID()) != g_AviatorMap.end()) {         ch->ChatPacket(CHAT_TYPE_INFO, "Zaten oynuyorsun.");         return;     }     if (ch->GetGold() < bet) {         ch->ChatPacket(CHAT_TYPE_INFO, "Yeterli yang yok.");         return;     }     SAviatorData data;     data.bet = bet;     data.multiplier = 1.0f;     data.isPlaying = true;     aviator_event_info* info = AllocEventInfo<aviator_event_info>();     info->ch = ch;     data.event = event_create(aviator_event, info, PASSES_PER_SEC(1));     g_AviatorMap[ch->GetVID()] = data;     ch->PointChange(POINT_GOLD, -bet);     ch->ChatPacket(CHAT_TYPE_INFO, "?? Aviator başladı! Bahis: %d Yang", bet); } ACMD(do_bozdur) {     auto it = g_AviatorMap.find(ch->GetVID());     if (it == g_AviatorMap.end()) {         ch->ChatPacket(CHAT_TYPE_INFO, "Aktif oyunun yok.");         return;     }     SAviatorData& data = it->second;     if (!data.isPlaying) {         ch->ChatPacket(CHAT_TYPE_INFO, "Oyun zaten bitmiş.");         g_AviatorMap.erase(it);         return;     }     int kazanc = (int)(data.bet * data.multiplier);     ch->PointChange(POINT_GOLD, kazanc);     ch->ChatPacket(CHAT_TYPE_INFO, "? %.2fx çarpanda bozdurdun. Kazanç: %d Yang", data.multiplier, kazanc);     data.isPlaying = false;     event_cancel(&data.event);     g_AviatorMap.erase(it); }

cmd.cpp

Kod:
ACMD(do_aviator); ACMD(do_bozdur); ACMD(do_aviator_info);

cmd.cpp

Kod:
{ "aviator",        do_aviator,        0,            POS_DEAD,    GM_PLAYER    },     { "bozdur",        do_bozdur,        0,            POS_DEAD,    GM_PLAYER    },     { "aviator_info",        do_aviator_info,        0,            POS_DEAD,    GM_PLAYER    },

PY

Kod:
import ui import net class AviatorPanel(ui.BoardWithTitleBar):     def __init__(self):         ui.BoardWithTitleBar.__init__(self)         self.SetSize(380, 250)         self.SetCenterPosition()         self.AddFlag("movable")         self.AddFlag("float")         self.SetTitleName("Aviator Game")         self.inputLabel = ui.TextLine()         self.inputLabel.SetParent(self)         self.inputLabel.SetPosition(160, 40)         self.inputLabel.SetText("Bet Amount")         self.inputLabel.Show()         self.input = ui.EditLine()         self.input.SetParent(self)         self.input.SetPosition(130, 60)         self.input.SetSize(120, 20)         self.input.SetMax(7)         self.input.SetText("1000")         self.input.SetFocus()         self.input.Show()         self.startButton = ui.Button()         self.startButton.SetParent(self)         self.startButton.SetPosition(80, 100)         self.startButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")         self.startButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")         self.startButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")         self.startButton.SetText("START")         self.startButton.SetEvent(self.OnStart)         self.startButton.Show()         self.cashOutButton = ui.Button()         self.cashOutButton.SetParent(self)         self.cashOutButton.SetPosition(200, 100)         self.cashOutButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub")         self.cashOutButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub")         self.cashOutButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub")         self.cashOutButton.SetText("CASH OUT")         self.cashOutButton.SetEvent(self.OnCashOut)         self.cashOutButton.Show()         # Multipliers list         self.multiTitle = ui.TextLine()         self.multiTitle.SetParent(self)         self.multiTitle.SetPosition(40, 150)         self.multiTitle.SetText("Multipliers")         self.multiTitle.Show()         self.multiLines = []         for i in range(5):             line = ui.TextLine()             line.SetParent(self)             line.SetPosition(40, 170 + i * 15)             line.SetText("-")             line.Show()             self.multiLines.append(line)         # Winners list         self.winnerTitle = ui.TextLine()         self.winnerTitle.SetParent(self)         self.winnerTitle.SetPosition(210, 150)         self.winnerTitle.SetText("Winners")         self.winnerTitle.Show()         self.winnerLines = []         for i in range(5):             line = ui.TextLine()             line.SetParent(self)             line.SetPosition(210, 170 + i * 15)             line.SetText("-")             line.Show()             self.winnerLines.append(line)         # Bilgi çekmek için komutu tetikle         net.SendChatPacket("/aviator_info")     def OnStart(self):         bet = self.input.GetText()         if bet.isdigit():             net.SendChatPacket("/aviator " + bet)             self.input.SetText("")     def OnCashOut(self):         net.SendChatPacket("/bozdur")     def UpdateHistory(self, multiplierList, winnerList):         for i in range(5):             self.multiLines[i].SetText(multiplierList[i] if i < len(multiplierList) else "-")             self.winnerLines[i].SetText(winnerList[i] if i < len(winnerList) else "-") dlg = None def Open():     global dlg     if dlg:         dlg.Show()     else:         dlg = AviatorPanel()         dlg.Show() def UpdatePanelInfo(multis, winners):     if dlg and dlg.IsShow():         dlg.UpdateHistory(multis, winners)

game.py Dosyasını Aç
Kod:
import aviator

onPressKeyDict taraflarına ekle

Kod:
onPressKeyDict[app.DIK_F10] = lambda: aviator.Open()

interfaceModule.py

Kod:
import aviator

2. class Interface içinde, def __init__(self): fonksiyonunu bul

Kod:
self.aviatorButton = ui.Button() self.aviatorButton.SetParent(self) self.aviatorButton.SetPosition(600, 340)  # ekran pozisyonu, istersen değiştir self.aviatorButton.SetUpVisual("d:/ymir work/ui/public/middle_button_01.sub") self.aviatorButton.SetOverVisual("d:/ymir work/ui/public/middle_button_02.sub") self.aviatorButton.SetDownVisual("d:/ymir work/ui/public/middle_button_03.sub") self.aviatorButton.SetText("AVIATOR") self.aviatorButton.SetEvent(aviator.Open) self.aviatorButton.Show()




[KANIT]

ITJA Aviator Bahis Sistemi (Geliştirilebilir)


ITJA Aviator Bahis Sistemi Nedir?

ITJA Aviator Bahis Sistemi, oyuncuların gerçek zamanlı olarak bahis yapabildiği ve kâr oranlarını takip edebildiği gelişmiş bir sistemdir. Bu sistem, özellikle Metin2 private server geliştiricileri tarafından ilgiyle karşılanmaktadır. ITJA Aviator, oyuncuların bahis yaptıkları miktarı belirledikten sonra, belirli bir hızla artan bir uçak simulasyonu üzerinde bahislerini nasıl sonuçlandıracağına karar verdikleri bir yapıdır. Eğer oyuncu, uçak düşmeden önce bahsini çekerse, yatırdığı miktarın katları kadar kâr elde eder. Aksi takdirde, bahsi kaybeder.

Sistem Özellikleri ve Kullanımı

ITJA Aviator sistemi, C++ tabanlı sunucularda entegre edilebilir. Bu sayede sunucuya özel geliştirilmeler yapılabilir. Sistem, hem game server hem de client tarafında değişiklikler gerektirir. Oyuncular, UI Script üzerinden açılan arayüzde bahis miktarlarını belirleyebilir, simulasyonu izleyebilir ve anlık olarak kâr durumlarını görebilirler. Bu işlem sırasında Python GUI veya Py Root gibi sistemler de kullanılabilir.

Aviator Bahis Sisteminin Metin2 Sunucularına Entegrasyonu

Metin2 özel sunucularında ITJA Aviator sistemini çalıştırmak için, öncelikle server src dosyalarında gerekli düzenlemelerin yapılması gerekir. Özellikle game core ve db core yapılarında, bahis miktarları, kâr oranları ve oyuncu bakiyesi gibi verileri kontrol edecek fonksiyonlar geliştirilmelidir. Ayrıca, auth server ile senkronize çalışabilmesi için veri akışı dikkatlice planlanmalıdır. Bu sistemlerde Martysama veya benzeri Metin2 development kaynaklarından faydalanmak mümkündür.

Sistemin Geliştirilebilirliği

ITJA Aviator sistemi, Metin2Dev çerçevesinde oldukça genişletilebilir bir yapıya sahiptir. Geliştiriciler, sistem üzerine bonus devreler, özel animasyonlar, hediye sistemleri ve turnuvalar ekleyebilir. Bu tür eklentiler, C++ source edit işlemleriyle sağlanabilir. Aynı zamanda, sistem DB üzerinde log tutarak, her bahis sonucunu analiz etmek üzere kaydedebilir. Böylece sunucu yöneticileri, istatistiksel verilerle daha iyi kararlar alabilir.

Aviator Sisteminin Avantajları

ITJA Aviator, oyuncuların eğlenceli vakit geçirmesini sağlarken, aynı zamanda sunucunuzdaki aktifliği artırır. Bu sistem sayesinde, oyuncuların ekonomik etkileşimleri daha da artar. Sunucu sahipleri, sistem üzerinden pack veya özel item satışları ile gelir elde edebilir. Bu tür sistemler, PvP sunucularında da popüler olabilir çünkü oyuncular, savaş harcamalarını telafi edebilecekleri ekstra gelir kanallarına ihtiyaç duyarlar.

Sonuç

ITJA Aviator Bahis Sistemi, Metin2 private server geliştiricileri için harika bir ek modül sunar. Geliştirilebilir yapısı sayesinde, sunucuya özgü özellikler eklenebilir ve oyuncu deneyimi zenginleştirilebilir. C++ ve Python tabanlı yapıları sayesinde bu sistem, profesyonel düzeyde entegre edilebilir. Metin2Lobby.com olarak, bu tür sistemlerin geliştirilmesinde size yardımcı olmaya devam edeceğiz.


ITJA Aviator Betting System (Expandable)


What is the ITJA Aviator Betting System?

The ITJA Aviator Betting System is an advanced system that allows players to place bets in real-time and track profit ratios. This system is particularly welcomed by developers of Metin2 private servers. ITJA Aviator simulates a plane that increases speed over time, allowing players to decide whether to cash out before the plane crashes. If the player withdraws their bet before the crash, they earn a multiple of their initial stake. Otherwise, they lose the bet.

System Features and Usage

The ITJA Aviator system can be integrated into C++-based servers, enabling custom developments for specific servers. The system requires modifications on both the game server and the client side. Players can set betting amounts, watch the simulation, and view real-time profit status through a UI designed via UI Script. Systems such as Python GUI or Py Root can also be used during this process.

Integration of the Aviator Betting System into Metin2 Servers

To run the ITJA Aviator system on Metin2 private servers, necessary adjustments must be made to server src files. Particularly in game core and db core structures, functions should be developed to manage betting amounts, profit ratios, and player balances. Additionally, data flow must be carefully planned to ensure synchronization with the auth server. Developers may use sources like Martysama or similar Metin2 development resources for these implementations.

Expandability of the System

Within the Metin2Dev framework, the ITJA Aviator system has a highly expandable structure. Developers can add features such as bonus rounds, special animations, reward systems, and tournaments. These additions can be achieved through C++ source edit operations. Additionally, the system can log every bet outcome in the DB, allowing server administrators to make better decisions based on statistical data.

Advantages of the Aviator System

ITJA Aviator provides entertainment for players while increasing activity on your server. It enhances economic interactions among players. Server owners can generate revenue through pack sales or special item offers within the system. Such systems are popular even on PvP servers since players often seek additional income streams to compensate for combat-related expenses.

Conclusion

The ITJA Aviator Betting System offers a great add-on module for Metin2 private server developers. Its expandable nature allows for unique server-specific features, enriching the player experience. Thanks to its C++ and Python-based structures, the system can be integrated at a professional level. At Metin2Lobby.com, we will continue to assist you in developing such systems.
 

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

Benzer konular

Geri
Üst Alt