Neler yeni

ws arenası space sorunu

ws arenası space sorunu Pvp turnuvasında sayaç bitmeden space basılarak oyuncunun yanına gidilebiliyor space engeli nasıl getiririm

“WS arenası” PvP turnuvasında sayaç (countdown) bitmeden space (boşluk) tuşuna basılarak rakibin yanına ışınlanma / gidilme açığını kapatmak istiyorsun. Bu sorun aslında Metin2 event/arena scripti içindeki space fonksiyonunun kontrolsüz bırakılmasından kaynaklanıyor.




Neden Oluyor?​


  • Arena veya WS event kodunda sayaç bitmeden karakter hareketine izin veriliyor.
  • space tuşu ile yapılan warp (goto / move) işlemi, zaman kontrolü yapılmadan çağrılıyor.
  • Bu yüzden countdown tamamlanmadan oyuncular rakibin yanına ışınlanabiliyor.



Çözüm Mantığı​


Bunu düzeltmek için space fonksiyonuna bir kilit/engel koyman gerekiyor:


  1. Sayaç (timer) ile ilişkilendir
    • Sayaç sıfırlanana kadar space fonksiyonunun tetiklenmesini engelle.
    • Yani if countdown_active then return end gibi bir kontrol koymalısın.
  2. Arena state değişkeni ekle
    • Arena başlarken state = "countdown" olarak ayarla.
    • Sayaç bittiğinde state = "fight" olsun.
    • space fonksiyonuna if state != "fight" kontrolü eklersen countdown sırasında çalışmaz.
  3. Server-side kontrol
    • Bu tip exploitler client tarafında engellense bile, asıl güvenlik sunucu tarafında olmalı.
    • Yani warp veya goto çağrısı geldiğinde sunucu, arena state’ini kontrol etmeli. Eğer savaş başlamadıysa işlemi reddetmeli.

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

Eğer quest dosyası kullanıyorsan:

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

  • Space engeli, arena state veya countdown kontrolü ile rahatça getirilebilir.
  • Çözümün mantığı: Savaş başlamadan space warp fonksiyonunun çalışmasına izin verme.
  • En güvenli yöntem: Sunucu tarafında warp talebini reddetmek.
 
Kişi Yorumladı
Oyla 0
Geri
Üst