- Katılım
- 6 Mayıs 2022
- Konular
- 48,270
- Mesajlar
- 48,580
- Tepkime puanı
- 74
- M2 Yaşı
- 3 yıl 11 ay 10 gün
- Trophy Puan
- 48
- M2 Yang
- 488,669
merhaba benim gibi navicat ile otomatik event sistemi var ve tek tek eklemek zor olmasın diye otomatik sistem yaptım bunuda sizde faydalanın diye paylaşmak istedim
sistem otomatiktir dosya içine ayı ve başlangıç id sini yazıyorsunuz.
sistem otomatiktir dosya içine ayı ve başlangıç id sini yazıyorsunuz.
benim event tablom bu şekilde sizinki farklı ise php dosyası içinden düzenleyin.
Kod:
<?php /* =============================== METIN2 EVENT SQL GENERATOR TURKMMO - RADERDE =============================== */ $year = 2026; // Yıl $month = 5; // Ay (1-12) $startId = 1; // Başlangıç ID $outputFile = "event_{$month}_{$year}.sql"; $weeklyEvents = [ 0 => [ // Pazar ['DOUBLE_METIN_LOOT_EVENT','15:00','15:30',[0,0,0,100]], ['DOUBLE_BOSS_LOOT_EVENT','20:00','20:30',[0,0,0,100]], ], 1 => [ // Pazartesi ['BAGEL_EVENT','15:00','15:30',[30315,1,0,1]], ['MOONLIGHT_EVENT','20:00','20:30',[50011,1,0,1]], ], 2 => [ // Salı ['FOOTBALL_EVENT','15:00','15:30',[50096,1,0,1]], ['SOCK_EVENT','20:00','20:30',[50010,1,0,1]], ], 3 => [ // Çarşamba ['EXP_EVENT','20:00','20:30',[20,0,0,0]], ], 4 => [ // Perşembe ['CARD_EVENT','15:00','15:30',[79505,1,0,2]], ['HEXAGON_EVENT','20:00','20:30',[50037,1,0,1]], ['DOUBLE_METIN_LOOT_EVENT','15:00','15:30',[0,0,0,100]], ], 5 => [ // Cuma ['DOUBLE_BOSS_LOOT_EVENT','20:00','20:30',[0,0,0,100]], ['EXP_EVENT','21:00','21:30',[20,0,0,0]], ], 6 => [ // Cumartesi ['FOOTBALL_EVENT','15:00','15:30',[50096,1,0,1]], ['MOONLIGHT_EVENT','20:00','20:30',[50011,1,0,1]], ], ]; $daysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year); $id = $startId; $sql = "INSERT INTO event_table (id, eventIndex, startTime, endTime, empireFlag, channelFlag, value0, value1, value2, value3) VALUES\n\n"; for ($day = 1; $day <= $daysInMonth; $day++) { $date = sprintf("%04d-%02d-%02d", $year, $month, $day); $weekday = date('w', strtotime($date)); if (!isset($weeklyEvents[$weekday])) continue; foreach ($weeklyEvents[$weekday] as $event) { [$type, $start, $end, $values] = $event; $sql .= sprintf( "(%d,'%s','%s %s','%s %s',0,0,%d,%d,%d,%d),\n", $id++, $type, $date, $start, $date, $end, $values[0], $values[1], $values[2], $values[3] ); } } $sql = rtrim($sql, ",\n") . ";\n"; file_put_contents($outputFile, $sql); echo "✔ SQL dosyası oluşturuldu: {$outputFile}\n"; echo "✔ Başlangıç ID: {$startId}\n"; echo "✔ Bitiş ID: " . ($id - 1) . "\n";
verdiğim event.php dosya içini kendinize göre düzenleyin.
Kod:
$year = 2026; // Yıl $month = 5; // Ay (1-12) $startId = 1; // Başlangıç ID
başlangıç id ise tabloda başlayacağı id ben 1 den başlatıyorum eventleri ekledikçe yükselecek.
13. satırda başlayan bu kod bloğu
Kod:
$weeklyEvents = [ 0 => [ // Pazar ['DOUBLE_METIN_LOOT_EVENT','15:00','15:30',[0,0,0,100]], ['DOUBLE_BOSS_LOOT_EVENT','20:00','20:30',[0,0,0,100]], ], 1 => [ // Pazartesi ['BAGEL_EVENT','15:00','15:30',[30315,1,0,1]], ['MOONLIGHT_EVENT','20:00','20:30',[50011,1,0,1]], ], 2 => [ // Salı ['FOOTBALL_EVENT','15:00','15:30',[50096,1,0,1]], ['SOCK_EVENT','20:00','20:30',[50010,1,0,1]], ], 3 => [ // Çarşamba ['EXP_EVENT','20:00','20:30',[20,0,0,0]], ], 4 => [ // Perşembe ['CARD_EVENT','15:00','15:30',[79505,1,0,2]], ['HEXAGON_EVENT','20:00','20:30',[50037,1,0,1]], ['DOUBLE_METIN_LOOT_EVENT','15:00','15:30',[0,0,0,100]], ], 5 => [ // Cuma ['DOUBLE_BOSS_LOOT_EVENT','20:00','20:30',[0,0,0,100]], ['EXP_EVENT','21:00','21:30',[20,0,0,0]], ], 6 => [ // Cumartesi ['FOOTBALL_EVENT','15:00','15:30',[50096,1,0,1]], ['MOONLIGHT_EVENT','20:00','20:30',[50011,1,0,1]], ], ];
48. satırdaki
Kod:
$sql = "INSERT INTO event_table (id, eventIndex, startTime, endTime, empireFlag, channelFlag, value0, value1, value2, value3) VALUES\n\n";
şimdi dosyayı kaydedip websitenizde uygun bir yere attıktan sonra
tarayıcıdan örneğin
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
yazıyoruz ve dosyamız çalışır ekranda SQL dosyası oluşturuldu: yazar ve sitemizin dizininde event_xx_xx_xx.sql adında bir dosya oluşur.dosyayı sitenin dizininden bilgisayarımıza indiriyoruz. ve navicatı açıyoruz.
event tablosunun olduğu databeseyi açıyoruz.
üst menüden query e basıyoruz bu ekranda new query i kullanmıyoruz...
query menüsünde boş bir yere sağ tıklıyoruz OPEN EXTERNAL QUERY e tıklıyoruz ve siteden aldığımız event dosyasını seçiyoruz
kodlarımız geldi burda CTRL+R tuşuna basıyoruz ve verileri tabloya işliyoruz.
veriler işlenmiş şimdi birde oyunda bakalım.
tüm etkinlikler gelmiş php dosyasında ay kısmını 6 yaparsanız haziran için otomatik liste yapar tek tek navicatta eklemek yerine websitesi üzerinden tek tuşlama ile aylık event listesi yapabilirsiniz.
Otomatik Event İçin Aylık Liste Yapıcı Sistemi
Metin2 özel sunucularında oyun deneyimini artırmak için düzenli olarak etkinlikler düzenlenmelidir. Bu etkinliklerin planlanması ve takibi manuel olarak yapıldığında zaman alıcı ve karmaşık olabilir. Bu nedenle otomatik event için aylık liste yapıcı sistemleri, Metin2 geliştiricileri için oldukça değerlidir.
Neden Otomatik Etkinlik Listesi Gereklidir?
Metin2 özel sunucularında oyuncu katılımını artırmak ve sunucuyu aktif tutmak için düzenli etkinlikler hayati öneme sahiptir. Ancak bu etkinliklerin takvimi manuel olarak oluşturulduğunda hatalar oluşabilir veya bazı etkinlikler gözden kaçabilir. Bu durumda, otomatik event listesi sistemi devreye girer. Bu sistem sayesinde, etkinlikler belirlenen zamanlara göre otomatik olarak yayınlanır ve sunucuda çalıştırılır.
Aylık Takvim Sistemi Nasıl Çalışır?
Aylık liste yapıcı, her ayın başlangıcında belirlenen etkinlikleri otomatik olarak oluşturur. Bu sistem genellikle bir cron job veya sunucu tarafında çalışan bir script tarafından yönetilir. Etkinlikler, önceden tanımlanmış zaman aralıklarına göre belirlenir ve oyunculara bildirim şeklinde gönderilir. Örneğin:
- Her pazartesi PvP turnuvası
- Her cumartesi Sunucu içi raid etkinliği
- Her ayın 15 inde özel ödül etkinliği gibi
Python GUI Kullanımı ile Etkinlik Planlayıcı
Python tabanlı GUI uygulamaları, Metin2 geliştiricileri için etkinlik planlama sürecini daha kullanıcı dostu hale getirir. PySide2 veya Tkinter gibi kütüphaneler kullanılarak, etkinliklerin eklendiği, düzenlendiği ve silindiği bir arayüz oluşturulabilir. Bu sayede etkinlik takvimi kolayca yönetilebilir. Böyle bir sistemde, her etkinlik için:
- Tarih ve saat
- Etkinlik tipi (PvP, PvE, özel)
- Hedeflenen seviye aralığı
- Ödüller
gibi bilgiler girilebilir ve sistem bu bilgiler doğrultusunda etkinlikleri planlayabilir.
C++ Kaynak Kod ile Oyun İçinde Dinamik Takvim
Sunucu tarafında C++ ile yazılmış bir sistem, oyun içi etkinlik takvimini gerçek zamanlı olarak güncelleyebilir. Bu sayede oyuncular oyun içinde takvim panelinden etkinlikleri görebilir. Bu sistem genellikle DB Core ve Game Core ile entegre çalışır. Takvim verileri veritabanında tutulur ve oyun başlatıldığında sunucu tarafından yüklenir. Böylece oyuncular, oyun içi takvim üzerinden yaklaşan etkinlikleri takip edebilir.
Otomatik Bildirim Sistemi
Otomatik event sistemi aynı zamanda oyunculara etkinlik başlamadan önce bildirim gönderme özelliğine sahip olabilir. Bu bildirimler, sunucu chat üzerinden ya da oyun içi mail sistemiyle yapılabilir. Bildirimlerde etkinlik türü, zamanı ve ödülleri yer alabilir. Bu sayede oyuncular, etkinliklerden haberdar olur ve katılım oranı artar.
Liste Yapıcı Sistemleri Geliştirmek
Metin2 geliştiricileri için bu tarz sistemlerin geliştirilmesi, hem zaman tasarrufu sağlar hem de sunucu deneyimini artırır. Bu sistemlerde Python GUI, C++ server side scripting, DB Core entegrasyonu gibi teknolojiler bir araya gelerek güçlü çözümler ortaya çıkarır. Bu sayede otomatik etkinlik takvimi sistemi, Metin2 özel sunucuları için standart bir özellik haline gelebilir.
Sonuç
Otomatik event için aylık liste yapıcı sistemleri, Metin2 özel sunucularında oyun içi etkinlik yönetimini kolaylaştırır ve oyuncu katılımını artırır. Bu sistemler, doğru şekilde tasarlandığında hem geliştirici hem de oyuncu için büyük kolaylıklar sağlar.
Monthly Event List Builder for Automatic Events
To enhance the gaming experience on Metin2 private servers, regular events must be organized. When planning and tracking these events manually, the process can become time-consuming and complex. Therefore, automatic event list builders are highly valuable for Metin2 developers.
Why Is an Automatic Event List Necessary?
Regular events are vital to increase player engagement and keep the server active on Metin2 private servers. However, when event schedules are created manually, errors may occur or some events might be overlooked. In such cases, the automatic event list system comes into play. This system automatically publishes and executes events according to predetermined times.
How Does the Monthly Calendar System Work?
The monthly list builder automatically creates events at the beginning of each month. This system is usually managed by a cron job or a script running on the server side. Events are scheduled based on predefined intervals and sent to players as notifications. For example:
- PvP tournament every Monday
- Raid event every Saturday
- Special reward event on the 15th of every month
Event Scheduler with Python GUI
Python-based GUI applications make the event scheduling process more user-friendly for Metin2 developers. Using libraries like PySide2 or Tkinter, an interface can be created where events can be added, edited, and removed. In such a system, information such as:
- Date and time
- Event type (PvP, PvE, special)
- Target level range
- Rewards
can be entered, and the system can schedule events accordingly.
Dynamic Calendar Inside the Game with C++ Source Code
A system written in C++ on the server side can update the in-game event calendar in real-time. Players can then view upcoming events from an in-game calendar panel. This system typically integrates with DB Core and Game Core. Calendar data is stored in the database and loaded by the server upon startup. Thus, players can track upcoming events via the in-game calendar.
Automatic Notification System
The automatic event system can also send notifications to players before an event starts. These notifications can be sent through the server chat or in-game mail system. Event type, timing, and rewards can be included in the notification messages, ensuring players stay informed and participation rates increase.
Developing List Building Systems
For Metin2 developers, developing such systems saves time and enhances the server experience. Technologies such as Python GUI, C++ server-side scripting, and DB Core integration come together to create powerful solutions. As a result, an automatic event calendar system can become a standard feature for Metin2 private servers.
Conclusion
Monthly event list builders for automatic events simplify in-game event management and increase player engagement on Metin2 private servers. Properly designed, these systems offer significant benefits for both developers and players.
