Metin2 P2P Bağlantısını Kullanarak Web Sitesine Oyundan Anlık Veri Gönderip Almak

Garip bunla bir alakası olmaması lazım. :D
Birde ben kendi serverim de bakayım size dönüş yaparım.
 
P2P baglantısını yaptım ve online bilgilerini aldı isim olarak.
p2p baglantisi.webp
 
P2P baglantısını yaptım ve online bilgilerini aldı isim olarak.
1911 eklentisini görüntüle
evet bende benzerını yaptım problem yoktu hocam,

Konunuzdaki gibi ;
Adsizc61359e330c43aa7.png


fakat function yenı bır if sorgusu ekledım içinde o eslesen degeri yansıtmadı, zaten ?H8?... diye giden kısım, üsrekli değisiyor bazen "?h8" bazende "ch8" yazıyor yazıyor.

Buna benzer bir utp kanalı acıp oradan da ALPER diye ve ya BAGLANTI diye gelen ısteğe cevap vermesini istedim..

indir-1.png


Bunu yuguladım fakat değeri yazdıramadım okutturamadım.

Bana yine aktif user'ları verdi.

Sanku utp p2p sureklı onlıne kullanıcıları gönderiyor gibi hissetirdi
 
Ribunium src içinde ki input_api.cpp dosyasını inceleyin. Orada market bilgileri de alınmış. Bağlantı yaptıktan sonra sistemin size adminpage yetkisi verip vermediğini kontrol edin.
 
Ribunium src içinde ki input_api.cpp dosyasını inceleyin. Orada market bilgileri de alınmış. Bağlantı yaptıktan sonra sistemin size adminpage yetkisi verip vermediğini kontrol edin.
Benzer sistemleri barındıran örneklerin olduğu dosyalar var mı ?

su an src dosyalarını ındırıyorum kodları inceleyeceğim. Peki adminpage yetkisini nasıl kontrol edebilirim ?
 
Benzer sistemleri barındıran örneklerin olduğu dosyalar var mı ?

su an src dosyalarını ındırıyorum kodları inceleyeceğim. Peki adminpage yetkisini nasıl kontrol edebilirim ?
CONFIG dosyasında adminpageip olan yere p2p ile bağlantı kurmaya çalıştığınız ipyi yazmanız gerekiyor.
Rubinum dosyaları içinde web sitesine entegre edilmiş p2p bağlantı modülü de mevcut. Onları da inceleyebilirsiniz. :)
Bu arada uygulama güzel olmuş. Ellerinize sağlık.
 
CONFIG dosyasında adminpageip olan yere p2p ile bağlantı kurmaya çalıştığınız ipyi yazmanız gerekiyor.
Rubinum dosyaları içinde web sitesine entegre edilmiş p2p bağlantı modülü de mevcut. Onları da inceleyebilirsiniz. :)
Bu arada uygulama güzel olmuş. Ellerinize sağlık.

Evet Config birden fazla var
channel99
channel1
channel2
auth
Hepsinde de aynı olmalı mı birde p2p portları her biri diğerinden farklı hocam,

Yaptığım uyguluma güzel oldu çok emek verdim ama php sql bağlantıları sorguları derken bilgili bazı kişiler sunucun kasacaktır çok user olursa oyunda çok pazar olursa problem olur genelde geliştiriciler sql sorgularını azaltmaya çalışırlar bu sistemimde ise sürekli kontrol lazım dedi, p2p mevzusu var çoğu kişi istemez karamsar bakar ama işini görebilir. Araştırmalısın dedi örnek olarak konunuzu atmıştı bende merak ettim araştırdım derken kendimi buralarda buldum hocam :)) İnan kos koca ülkede bir kaynağı burada buldum..

Şimdide üzerine koyup uygulamaya çalışıyorum. rubinum'u kurmadan kodlarını okumaya çalışacağım bakalım nasıl bir sonuç alacağım hocam :) ve başka örnekler de varsa memnuniyetle inceleyebilirim.
 
En son bir moderatör tarafından düzenlenmiş:
Her kanal için ayrı ayrı bağlanmanız gerekiyor. Söylediğim oyunun panel ve oyun kodlarını incelerseniz sizde fark edeceksiniz. :)
 
Her kanal için ayrı ayrı bağlanmanız gerekiyor. Söylediğim oyunun panel ve oyun kodlarını incelerseniz sizde fark edeceksiniz. :)

Şunu anladım kulladıgım oyun dosyalarında ne yaparsam yapıyım he şekilde bana online kullanıcıların listesini gönderiyor.. p2p yi sadece onlıne user listesi için ayarlamış olabilir mi samsunlum :S :)
 
Önemli değil hocam. :) Umarım projeyi bitirebilirsiniz. Size söylediğim dosyaları inceleyin. Onların içinde web sitesi ve admin panelde var. Bir çok yerde p2p kullanıyor. Lakin game/src/input_api.cpp adıyla bir dosya eklemişler. Normal fileslerde bulunmuyor. Sizde almak veya göndermek istediğiniz verilere göre düzenleme yapmanız lazım.
 
Önemli değil hocam. :) Umarım projeyi bitirebilirsiniz. Size söylediğim dosyaları inceleyin. Onların içinde web sitesi ve admin panelde var. Bir çok yerde p2p kullanıyor. Lakin game/src/input_api.cpp adıyla bir dosya eklemişler. Normal fileslerde bulunmuyor. Sizde almak veya göndermek istediğiniz verilere göre düzenleme yapmanız lazım.

Teşekkurler sayın Adminim çok yardımcı olmaya çalıştınız fakat konuya biraz uzak olduğumdan ve c++ bilgim çok çok az olduğudan içinden çıkamayacağım, zaten input_api.cpp hicbir yerden çekilmemiş sadece build ederken listeye eklenmiş nasıl projeye dahil onu da anlamadım :) içeriğine baktım ama fazla yorumlayamadım tutup çekebıleceğım bıryer yoktu :P Atıyorum. Admın panelınden aktıf oyuncuya dc atarsın, ve ya all den yazarsın gm duyuru seklınde oyle bır gırdı var mı yok mu onu da goremedım .s neyse :) Minettarım hocam, ben araştırmaya devam ediyim en iyisi. Konuyla ilgisiz fakat yaptığım projede çok fazla sql sorgusu var ortalama 20 civarı anlık bazı sayfalarda 4 5 kez cekmek zornda kalıyorum guvenlık ıcın sql den kontroller için, bu da oyunu şişirir mi ? Bilinmez :)
 
game/src makefile dosyasından ekleniyor. CFLAGS değişkenine derlenecek cpp dosyalarının listesi var. Ekleyip tekrar serleyebilirsiniz. Uğraştıkça tecrübe kazanırsınız. Bende uğraşa uğraşa bir şeyler yapmaya çalışıyorum. [emoji23]

Sql sorgularından çokda korkmamak gerek. Bu sitede bile 200’den fazla tablo var ve bir sürü sql işlevi yapıyor.
 
game/src makefile dosyasından ekleniyor. CFLAGS değişkenine derlenecek cpp dosyalarının listesi var. Ekleyip tekrar serleyebilirsiniz. Uğraştıkça tecrübe kazanırsınız. Bende uğraşa uğraşa bir şeyler yapmaya çalışıyorum. [emoji23]

Sql sorgularından çokda korkmamak gerek. Bu sitede bile 200’den fazla tablo var ve bir sürü sql işlevi yapıyor.
Vallahi hatırlarmısın eskilerden kralonly diye files vardı :) o arkadaş bir anda mesaj attı sosyal ortamda sıstemı p2p ile yapman daha ıyı olur.
en iyi 700bin item olacak. o zaman da aktif pazarlarda 10k item olabilir o zaman her işlem icin sorgu kullanırsan sistem kasacaktır game ve php sunucundaki cpu tavan yapacaktır problemcıkartabılır. dedi bende bılmıyordum bu benı uzdu bıraz kafam karstı dedım o da işin başındayken yöntemi değiş diye yazdım dedi. O da benzer bir sistem gelistiriyormus. p2p dan bahsetti bu konu linkini attı :)

Bende üye olup incelemeye ve sizinle sohbet etmeye başladım :)

Şimdi de başka bir forumda aynı sistemin farklı kullanımını paylaştılar kaynak kodu şu şekilde;

Ve sonu olarak yine bana aktif kullanıcıların listesini dönderdi :) galiba sistemde bir engel var ne yaparsan yap sana aktif kullanıcıları gönderiyor :P


PHP:
Genişlet Daralt Kopyala
<?php


function P2P($IpAdresi,$Port,$Komut,$Sifre)
{
    if (($SocketBaglanti = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false)
    {
        echo "socket_create()  başarısız oldu: sebep: " .socket_strerror(socket_last_error()) . "\n";
    }
 
    if (socket_connect($SocketBaglanti,$IpAdresi, $Port) === false)
    {
        echo "socket_connect()  başarısız oldu: sebep: " .socket_strerror(socket_last_error($SocketBaglanti)) . "\n";
    }
     
 
    $SifreKomutu = "\x40".$Sifre."\x0A";
    if (socket_write($SocketBaglanti, $SifreKomutu, strlen($SifreKomutu)) === false)
    {
        echo "socket_create()  başarısız oldu: sebep: " . socket_strerror(socket_last_error()) . "\n";
    }
 
    if (socket_recv($SocketBaglanti, $DonenCevap, 256, 0) === false)
    {
         echo "socket_create()  başarısız oldu: sebep: " . socket_strerror(socket_last_error()) . "\n";
    }
    echo 'Dönen değer : '.$donendeger=$DonenCevap;
    return $DonenCevap;
 
   echo $GonderilenKomut = "\x40".$Komut."\x0A";
    if (socket_write($SocketBaglanti, $GonderilenKomut, strlen($GonderilenKomut)) === false)
    {
        echo "socket_create()  başarısız oldu: sebep: " . socket_strerror(socket_last_error()) . "\n";
    }
    else
    {
        if (socket_recv($SocketBaglanti, $KomutDonenCevap, 512, 0) === false)
        {
             echo "socket_create()  başarısız oldu: sebep: " .socket_strerror(socket_last_error()) . "\n";
        }
        else
        {
            echo 'Komut Dönen cevap : ';
            $komutdonen= $KomutDonenCevap;
            return $KomutDonenCevap;
        }
    }
 
    socket_close($SocketBaglanti);
}

$p2pport=14001;
$oyunIP = "192.168.1.7";
$p2pSifre = "sifrem";
$komut = "DC COMBAT";
    P2P($oyunIP,$p2pport,$komut,$p2pSifre);    
   
?>
 
Linkleri görebilmek için giriş yap veya kayıt ol.


Bakın bu url benim modemin ip adresi ve locale'de kurulu site mevcut.
Files ise VirtualBox üzerinde oradaki pazarları kontrol edebiliyorsun.

Server : Fetih Online
Hesap Adı : alper

Diger bilgilerde
Hesap Adı : //
Parola : //

en son 500 item ekledim ve itemleri sayfalı olarak göstermeye işlevini yaptırdım :)
 
En son bir moderatör tarafından düzenlenmiş:
Şöyle bir şey öğrendim. Bilinmeyen paket başlığı şeklinde syserr yazıyordu. Bir arkadas şunu dedi packet numaralarınız çakışıyor ondan oluyor.

HEADER_CG_ENTERGAME = 10,
HEADER_CG_TEXT = 64

Bunlarla alakalı degıstırmen lazım dedi :)
 
Şöyle bir şey öğrendim. Bilinmeyen paket başlığı şeklinde syserr yazıyordu. Bir arkadas şunu dedi packet numaralarınız çakışıyor ondan oluyor.

HEADER_CG_ENTERGAME = 10,
HEADER_CG_TEXT = 64

Bunlarla alakalı degıstırmen lazım dedi :)
Kesin bir şey söyleyemem. p2p açığı üzerinde yoğunlaşırken az çok bilgi kazanmıştım. Denemekten zarar gelmez ama. :D
 
Geri
Üst