Metin2 Sunucusunda NPC Script ile Kısıtlı Süre Kaza Etkinliği Nasıl Yapılır?

AyHanX

Yeni Üye
Katılım
Eyl 2026
Konular
1
Mesajlar
1
Tepki puanı
0
Görüntülenme
0

1. Zamanlama Mantığını Tanımlama​

  • Kaza etkinliğinin hangi saatte başlayacağı ve kaç saniye sürdüğü startTime, duration değişkenleriyle belirlenir.
  • Örnek:
    Kod:
    local startTime = 3600   -- 01:00:00 (saniye cinsinden)
    local duration  = 1800   -- 30 dakika

2. Anlık Kontrol Mekanizması​

  • Sunucu tekrar başlatıldığında etkinliğin hâlâ geçerli olup olmadığını kontrol etmek için os.time() kullanılır.
  • ```lua
    local now = os.time()
    local eventActive = (now >= startTime) and (now <= startTime + duration)
    Kod:
    ## 3. NPC davranışını güncelleme
    - Etkinlik açıkken NPC’nun konuşma, ödül ve yükleme davranışları değişir.  
    - ```lua
    if eventActive then
        NPC_SetTalk( NpcId, "Kaza etkinliğine hoş geldiniz!" )
        NPC_AddLoot( NpcId, "Kaza_Puan" )
    else
        NPC_SetTalk( NpcId, "Şu an etkinlik yok." )
    end

4. Script’i Sunucuya Yükleme​

  • npc.lua dosyasını /data/call.npc klasörüne koyun.
  • npc /data/call.npc komutuyla yeniden yükleyin.
  • Yedek almayı unutmayın: cp /data/call.npc /data/call.npc.bak.

5. Sık Yapılan Hatalar​

HatayıNeden SorunDoğru Çözüm
startTime ve duration değerlerini 12‑saat formatında yazmakos.time() saniye cinsinden çalışır.Saatleri saniyeye çevirerek (hh*3600 + mm*60 + ss) belirtin.
eventActive değişkenini global tutmakSunucu yeniden başladığında değer kaybolur.Her script çağrısında now ile hesaplayın.
NPC_AddLoot yerine NPC_SetLoot kullanmakTek seferlik ödül yerine sürekli ödül verir.NPC_AddLoot sadece etkinlik süresince aktif olur.
Script’i otomatik yeniden yükleme yoksaKaza etkinliği güncel kalmaz.AddTimer(300, "reload npc.lua") ekleyin.

6. Artı‑Eksiler​

YöntemArtılarEksiler
Temel timer (os.time)Kolay kurulum, hafif kaynak tüketimiSüre değişikliği sunucu kapanışında kaybolabilir
DB tabanlı zamanlamaDeğişiklikleri kalıcı, web arayüzüyle yönetilebilirEk veritabanı sorgusu, artan gecikme

Özet​

Kısa Lua kodu ile NPC’ye zamanlı kaza etkinliği eklemek mümkün. Doğru zaman formatı, anlık kontrol ve doğru script yükleme adımları hatasız çalışmayı sağlar. Hata yakalama ve yedekleme, istikrarlı sunucu yönetiminin anahtarıdır.

Siz hangi zamanlama yöntemini tercih edersiniz?

İlgili konular​

 
Geri
En Üst