Otomatik Etkinlik Botu Yazımı (Metin2 & Knight Online PvP)
Gönderilme zamanı: Sal Haz 24, 2025 5:37 pm
[hr]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.
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
- 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
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
);
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']}");
}
?>
Kod: Tümünü seç
* * * * * php /var/www/html/event_bot.php >/dev/null 2>&1
- 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.
- 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
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]
- [TASARIM] HTML5 Launcher UI Hazırlama
- [PAYLAŞIM] Ücretsiz Metin2 Script Arşivi
- [REHBER] Yedekleme & Geri Yükleme Otomasyonu