Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

MMO türü oyunlarda (SAM) yerleşik tam yetkili sunucu hareketi

  • Konuyu başlatan Konuyu başlatan Eddy'
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 11
  • Görüntüleme Görüntüleme 2K
5.00 yıldız(lar) 2 Değerlendirme Değerlendirenler

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

Merhaba, sorduğunuz soruyu yanıtlamak için ancak müsait olabildim. En azından bu soruyu bu konu altından sormanızı beklerdim, sanırım sizde müsait olamadınız. Dolayısı ile biraz geç oldu üzgünüm.

Metin 2 oyununun ağ yapısını tam olarak bilmiyorum, dolayısı ile söyleyebileceğim tek şey kuracağınız mimaride hareket, saldırı hızı, saldırı türü temel istatistikleri benzersiz bir şekilde ele almalısınız, örneğin istatistikler yalnızca gerektiğinde oyuncuya gönderilebilir olmalıdır, her zaman değil. Bu şekilde sunucu yükünü dengelemiş olursunuz. Örneğin oyuncunun hp değerini değiştirecek bir eşyayı envanterinde donandığı zaman olduğu gibi, bu sadece o zaman gönderilir, ancak herhangi bir değişiklik olmazsa o zaman istatistiklerle ilgili paketleri göndermez. Mimariyi kurarken dikkat etmeniz gereken püf noktalardan birisi zaten temel oyuncu faktörlerini doğrudan sorgu üzerinden ele almamanızdır. Peki nasıl yapacağım derseniz, bir örnek vereyim hareket sistemini farklı şekilde ele alabilirsiniz. Peki ya nasıl?
  1. Oyuncu açık dünyada istediği gibi hareket edebilir, sunucu ise bu istatistiğin değeri kendi sahipliği tarafından değiştiği sürece sadece hareket hızının yeni değerini istemciye gönderir. Fakat oyuncu sunucu sahipliği (yetkisi dışında) hile yapmaya ve hareket hızını değiştirmeye çalışırsa (sahipliği değiştirmek isterse) ağ taraflı rpc olmayacağından (diğer oyuncular için bu görülmeyecektir) kendi ekranında daha hızlı hareket edebilir ancak sunucu istemcinin calculate ettiği mesafeyi önceki ve yeni pozisyonuna ve mevcut hareket hızına göre hareket edip edemeyeceğini kontrol eder ve sunucu o kadar uzağa hareket edememesi gerektiğini algılarsa, önceki konumuna geri zorlayarak düzeltecektir. Elbette bu işlem kuracağınız düzeneğe bağlı farklı şekillendirilebilir. Bu tamamen sizin nasıl bir mimari kurduğunuz ile doğrudan bağlantılıdır.

  2. Diğer şekilde aynı anda tüm oyuncular için bunu yapması sizin için olumsuz bir faktörse ve yinede paketler ile çalışmak istiyorsanız, bu paketleri tek bir partide göndermek için belirli bir milisaniyelik süreyi bekleyen bir aggregator kullanabilirsiniz.

    Herhangi bir merak ettiğiniz soru olursa sormaktan çekinmeyin, elimden geldiği kadar yardımcı olmaya çalışırım.
    Esen kalın keyifli forumlar.
Hocam yorumunuzu okumuştum fakat o zaman acelem vardı dışarı çıktım ve aklımdan uçtu gitti kusura bakmayın.
Saldırı hızı, hareket hızı gibi hileleri sunucu tarafından sorgulatarak engelleme şansımız var tabi ki, oluşacak yük şuan konuya dahil bile değil, orası da bir şekilde hallolur.
Fakat metin2'de engellenmesi gereken şey saldırı hızı hareket hızı hilesi değil, farm botu hilesi. Pvp'lerde farm metin kesme odaklı küçükten büyüğe her sunucuda aynı. Zaten adı üstünde "metin". Metin kesme botu istemci üzerinden metni belirler ve karakterin o metne tıklaması döngüsünü sağlar, metni belirlemek ve tıklamak istemci üzerinde olması gerektiğinden hile sunucu üzerinden engellenemez. Bu konu hakkında çözümünüz veya bir düşünceniz var mı?
 
Merhaba, teknik olarak aslında sunucu tarafında temel istatistiklerin oyuncu tarafından bypass edilememesini sağlamak teoride bir tür hile engelidir.
Farming'e yönelik bir bot olduğunu, ve bu botun "metin taşı" isimli modeli (bir tür bulguya yönelik) bulduğunu ve oyuncu karakterini yani (pawn) için bir target oluşturduğunu söylüyorsunuz.

Sizi çok iyi anladım, fakat şöyle bir şey söylemek istiyorum eğer bu söyleyeceğim yeterli değilse, size bunu nasıl engelleyebileceğinize dair basit bir öngörü hazırlayacağım ve mümkün olabilen en kısa sürede sunacağım.

Hayal edelim:
Mimarinizi şekillendirdiğinizi, ve pointerleri oyuncu tarafından bypass edilemeyecek seviyede sunucu tarafından yetkilendirdiğinizi düşünün. Oyuncu hiç bir şekilde harici bir Client-AC ihtiyacı olmadan temel sunucu faktörleri olan (saldırı hızı, hareket hızı, saldırı gücü vb.) istatistiklerini değiştiremiyor.

Hadi bununda ötesinde düşünerek, binlerce oyuncu için bu paketleri tek bir partide göndermek için bir aggregator kullandığınızı da hesaba katalım. Şimdi farz edin oyuncu hiç bir şekilde metin taşına hareket hızı arttırarak ulaşamaz, hiç bir şekilde normal oyuncu standartlarının üstünde bir saldırı hızıyla metin taşına vuramaz. Tek yapabildiği, bu metin taşını takip edebilmek ve bunu sunucu tarafında hiç bir ihlale yol açmadan yapmak.

Sadece pawn'ın yapabildiği tek şey, metin stone için belirlenen koşulda target almak, ve diğer sıradan oynayan oynatıcılar gibi ona belirlenen sunucu sınırlarında ulaşmak.. Fakat ne hızlı vurabiliyor, ne de hızlı hareket edebiliyor veya saldırı güçlendirebiliyor. Bunun ne tür bir zararı olabilir sunucunuz için? : ) Düşünün aslında siz o hileyi engellediniz, tek faktörü target alıyor. Bunuda engellersiniz, ancak bunun için sunacağım şema biraz daha farklı olurdu.

Eğer bu sizin için yeterli değilse, belirtin sizin için bir diagram oluşturayım ve en kısa sürede sunayım : )

Keyifli forumlar dilerim, esen kalın.
Cevabınız için teşekkürler, hızlı gitmesi veya vurması dediğim gibi çok önemli değil.
Metin2 oynadınız mı bilgim yok ama diğer MMORPG oyunları gibi tek client ile oynanan bir oyun değil, genelde PvP sunucularında 2 veya 3 client sınırı oluyor fakat hile sahipleri bunu da aşıp herbirerinde farm botu hilesini kullanıyorlar ve bunu bilgisayar başında yokken de devam ettirdiklerinde ortaya çok kötü sonuçlar çıkabiliyor.
Örnek olması açısından size bir video linki bırakıyorum demek istediğimi anlatan en iyi videolardan biridir kendisi.
Video bana ait olmamakla beraber, sesini kısıp izlemenizi öneririm.


Videoyu izlediyseniz neye çözüm aradığımı anlamışsınızdır. Client tarafında olması gereken metin bulma ve yönelme olayı. Botlar şuan buna yoğunlaşmış durumda.
 
Tekrar merhaba, hocam Metin 2 oyununu tabii ki çok uzun zaman oynadım ve hatta bu oyunla alakalı büyük girişimlerde bulundum. Ben zaten Metin3 tanımına sahip olabilecek bir mmorpg sahibiyim. Söylemeye çalıştığınız şeyi detaylandırdığınız için ayrıca çok teşekkür ederim, fakat bunu zaten anlamıştım.

Pekala o zaman gelin birlikte biraz derine inelim, sizin istediğiniz şey tamamen oynatıcıyı sınırlamak. Pekala nasıl ele alabiliriz bir ön inceleme ile önce bakalım.

Önce işlevi anlayalım ki, daha sonra yorumlaya-bilelim;
Bu tür bir farming botun python veya java ile yazıldığını öngörüyorum kaldı ki böyle bir botun engellenmesi client-ac tarafında neredeyse imkansız. Çünkü bu tür bir bot bir çok defa aşılabilir bir bypass illaki sunacaktır. Kaldı ki çalışma mantığı pointercheck'den ziyade target destekli.

Pekala, yorumlayalım;
Böyle bir botun daha öncesinde client-ac ile engellenemeyeceğini dile getirdik, peki nasıl engellenebilir? Bu aslında basit demeyi çok isterdim, ancak oynatıcının render alanına giren bir nesneyi targetlediği için bunun temel olarak ne bir sunucu ne de client-ac tarafında engeli pek mümkün değildir. Fakat bir kaç yolu daha var. Bu yollara gelin sırasıyla göz atalım;

1) Oynatıcı ile sunucu arasında güvenli bir bağlantı oluşturun ve bunu ara ara sunucuya kontrol ettirin;
2) Oynatıcı ile targeti (metin taşı) arasında bir trigger (tetikleyici) oluşturun ve bunun belirlediğiniz bir koşul içerisinde tekrar etmesini sağlayın, eğer koşul sağlanmazsa istediğiniz bir değeri döndürün. (banned, disconnect etc.)

3) Her ikisinide kullanın ve mükemmel bir sonuç oluşturun.
4) Oyun içerisinde metin taşı ile ilgili oyun faktörünü değiştirin.

Eğer birinci yöntemi kullanmayı isterseniz, bir tür sertifika veya size özel bir algoritma ile belirlediğiniz istemci ve sunucu arasında kontrol sağlaması gibi bir kural oluşturmanız gerekir. Bu kural sunucu tarafından istemciye iletilecek bir dizi koşulun tamamının karşılanması veya birinin yada daha fazlasının karşılanmaması ile birlikte yapacağı bir geri dönüşü tetikleyecektir. Bu tür algoritmalarda genelde openssl, bcastle gibi bir kütüphane tercih edilir.

İkinci yöntemi kullanmak isterseniz oyuncuyla sunucu arasında bir trigger algoritma oluşturmanız gerekir, örneğin oynatıcı bot tarafından hedeflenen target'e (metin taşı) gönderildiğinde oynatıcı sunucu tarafından (metin taşı için) belirlenen trigger alanına girdiğinde sunucu tarafından oynatıcıya yönelik tetiklenen bir eylemi çalıştırabilirsiniz. Bu eylem örnek olarak oynatıcıyla aynı donanıma sahip bilgisayarda birden fazla istemcinin çalışıp çalışmadığını sorgulatma, veya sadece 2 tanesine izin vermek olabilir, veya başka istediğiniz bir koşuluda sunabilirsiniz. Bu tamamen sizin nasıl bir algoritma tasarladığınız ile doğrudan bağlantılıdır.

Her iki yöntemi kullanmak isterseniz uzun vadede bir çalışma sonucunda yüksek güvenlikli bir client/server iletişimi kurabilirsiniz. Bu sayede yine başta söylediğim gibi client-ac gereksinimi olmadan her türlü isteminiz dışında gelişecek olayları önceden engelleyebilirsiniz.

Sonuncu olarak çok çılgınca gelsede aslında bunu yapabilirsiniz diye düşünüyorum, oyun içerisinde bu tür metin taşı sistemini kaldırın ve daha efektif bir yol sunun oynatıcılarınıza. Örneğin Inferna Online isimli bir grup geliştiricinin yaptığı bir oyun var ve bu oyunda benim esasen çok hoşuma giden bir şey var. Metin taşı mantığı yerine, Rift olayı getirmişler. Aslında oldukça güzel en azından



Bunun aynısı değil, ancak bir benzerini yapabilirseniz gerçekten hem bu sorundan kurtulmuş, hemde özgün bir fikri hayata geçirmiş olursunuz.

Yine de bu durumla alakalı olarak size bir diagram yapmaya çalışacağım, belki konuyu hep birlikte ele alırsak bir sonuca ulaşmak mümkündür.

Keyifli forumlar.

Her türlü oyunda bir şekilde farm botu var buna Lost Ark, New World Knight oyunlarını örnek verebiliriz.
Hangi farm olayını getirirsek getirelim yine de ortada botlar olacak bunun engeli yok diye düşünüyorum. Çünkü işlemler client üzerinden yapılmak zorunda. İlla ki hile korumaları gelir hile çöp olur sonra bypass atılır hile tekrar gelir. Zaten sadece kendisi kullandığı için yayılmayan ve çalışan o kadar bot var ki oyunlarda. :D
 
Paylaşım için teşekkürler....
 
Emeğinize sağlık, paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst