Otomatik Etkinlik Botu Yazımı (Metin2 & Knight Online PvP)

Geliştirici Alanı (PVP sunucu kurmak isteyenler için rehberler, script paylaşımları)
Cevapla
admin
Site Admin
Mesajlar: 359
Kayıt: Prş May 22, 2025 6:44 am
İletişim:

Otomatik Etkinlik Botu Yazımı (Metin2 & Knight Online PvP)

Mesaj gönderen admin »

🤖 [SCRIPT] Otomatik Etkinlik Botu Yazımı (Metin2 & Knight Online PvP)
📅 Haziran 2025 | MMO.net.tr Geliştirici Alanı Script Serisi
Açıklama yazdı: Bu rehberde, PvP sunucunuzda oyunculara belirli saatlerde otomatik olarak etkinlik başlatan bir sistem kurmayı öğreneceksiniz. Etkinlik botu örneği hem Metin2 (quest tabanlı) hem de Knight Online (cronjob + SQL + trigger) sistemleriyle uyumludur.
[hr]
📌 Metin2 – Lua Tabanlı Etkinlik Botu

Amaç: Her gün 21:00’da “Boss Event” başlaması, oyunculara duyuru gitmesi ve haritaya mob spawn edilmesi.

1. Quest Script (event_boss.lua)

Kod: Tümünü seç

quest event_boss begin
    state start begin
        when login with pc.is_gm() begin
            notice_all("Etkinlik sistemi başarıyla yüklendi.")
        end

        when 202306.update begin
            local saat = tonumber(os.date("%H"))
            local dakika = tonumber(os.date("%M"))
            if saat == 21 and dakika == 00 then
                notice_all("Boss Etkinliği Başladı!")
                d.spawn_mob(1093, 500, 500) -- Ejderha
            end
        end
    end
end
Kurulum:
  • Dosyayı /usr/game/share/locale/turkey/quest/ dizinine atın
  • Terminalden:

    Kod: Tümünü seç

    cd /usr/game/share/locale/turkey/quest
    ./qc event_boss.lua
    
  • CONFIG içinde `quest_event_timer_sec: 60` olarak ayarlayın
[hr]
📌 Knight Online – SQL + Cronjob Etkinlik Botu

Amaç: Belirli saatlerde etkinlik başlatılması ve oyunculara duyuru atılması (örnek: BDW, Juraid).

1. SQL Tabanlı Tetikleme (Event Queue)

Kod: Tümünü seç

CREATE TABLE event_queue (
  id INT AUTO_INCREMENT PRIMARY KEY,
  event_name VARCHAR(50),
  event_time TIME,
  active BOOLEAN DEFAULT 0
);
2. PHP Script (event_bot.php)

Kod: Tümünü seç

<?php
$conn = mysqli_connect("localhost", "user", "pass", "ko_db");

$now = date("H:i");
$query = mysqli_query($conn, "SELECT * FROM event_queue WHERE event_time = '$now' AND active = 0");

while($row = mysqli_fetch_assoc($query)) {
    mysqli_query($conn, "INSERT INTO notices (message) VALUES ('Etkinlik Başladı: {$row['event_name']}')");
    mysqli_query($conn, "UPDATE event_queue SET active = 1 WHERE id = {$row['id']}");
}
?>
3. Cronjob Ayarı:

Kod: Tümünü seç

* * * * * php /var/www/html/event_bot.php >/dev/null 2>&1
Ekstra:
  • Client'e duyuru gitmesi için notice sisteminiz varsa yukarıdaki script ona göre uyarlanmalı.
  • active flag sıfırlamak için gün sonu `UPDATE` kullanılabilir.
[hr]
📁 Ekstra Dosyalar (İleride yüklenecek):
  • Hazır “BDW Event Trigger” SQL paketi
  • Lua tabanlı Metin2 çoklu etkinlik örneği
  • Oyun içi sayacın gösterimi için UI scriptleri
[hr]
🎯 Not:
Sunucuya özel yapınıza göre spawn koordinatları, mob ID'leri ve sistem entegrasyonları farklılık gösterebilir. Yukarıdaki sistemler geliştiricilere yol göstermesi amacıyla sadeleştirilmiştir.

[hr]
✔️ Sonraki Konular:
  • [TASARIM] HTML5 Launcher UI Hazırlama
  • [PAYLAŞIM] Ücretsiz Metin2 Script Arşivi
  • [REHBER] Yedekleme & Geri Yükleme Otomasyonu
🧠 Geliştirici yorumlarınızı ve önerilerinizi bekliyoruz!
🎯 MMO.net.tr Geliştirici Ekibi olarak başarılar dileriz! ✌️
En büyük zenginlik sağlıktır. Sağlıkla para kazanabilirsin. Para ile sağlık satın alamazsın...
www.mmo.net.tr
Cevapla

“Geliştirici Alanı” sayfasına dön