GameMaker Studio MultiPlayer Dersleri - 7 Veri Almak ve Oyuncu Listesi
UstaDerslik Soru-Cevap Yararlı Araçlar
arama ikon
Diller
Türkçe Türkçe

bilgi UstaDerslik
Bu uyari kutusudur.
Tamam
Anasayfa
İletişim
Üyeler

GameMaker Studio MultiPlayer Dersleri - 7 Veri Almak ve Oyuncu Listesi

profil
cArleone
BEĞEN(0)
BEĞENME(0)
GÖRÜNTÜLENME(1666)
RAPOR ET
Gamemaker studio multiplayer serimize devam ediyoruz.Bu derste,geçen derste yolladığımız verileri alıp bir online kullanıcılar listesi yapacağız.Kodlara geçelim.

Serverda networking kısmında network_type_data içinde verileri alıyoruz.

var veri_al=ds_map_find_value(async_load,"buffer");
Yollanan bufferı bu şekilde alıyoruz.

buffer_seek(veri_al,buffer_seek_start,0);
Gelen bufferda araştırmamızı yapıyoruz.

var islem=buffer_read(veri_al,buffer_u8);

Burda da verimizi alıyoruz.Dikkat etmemiz gereken nokta verileri nasıl yollarsanız o şekilde alırız.Örneğin buffer_u8 şeklinde yollarsak buffer_u8 şeklinde alırız.Veriyide bu şekilde alıyoruz.

Server networking :
var baglanti_tipi=ds_map_find_value(async_load,"type");
//bu network olaylarını yakalayan bir komut.eğer işem var ise aşağıda işlemi yakalayacağız.

switch(baglanti_tipi){
case network_type_connect:

var osocket=ds_map_find_value(async_load,"socket");//oyuncunun socket nosunu al
ds_list_add(oyuncu_sayisi,osocket);//listeye ekle

break;
case network_type_disconnect:

var osocket=ds_map_find_value(async_load,"socket");//oyuncunun socket nosunu al
var arama=ds_list_find_index(oyuncu_sayisi,osocket);//listede ara

if(arama>=0){//eğer var ise
ds_list_delete(oyuncu_sayisi,arama)//listeden sil.
}

break;
case network_type_data:

var veri_al=ds_map_find_value(async_load,"buffer");//tüm verileri paket şeklinde aldık.
buffer_seek(veri_al,buffer_seek_start,0);//verileri içini araştırdık.almaya hazırız.
var islem=buffer_read(veri_al,buffer_u8);//işlem için yolladığımız veri.

if(islem=1){
var isim=buffer_read(veri_al,buffer_string);//isimi aldık.
ds_list_add(oyuncu_isimleri,isim);//isimi listeye ekledik
}else if(islem=2){
var isim3=buffer_read(veri_al,buffer_string);//yollanan isimi alıyoruz.
var isim_ara=ds_list_find_index(oyuncu_isimleri,isim3);//listede isimi arıyoruz.

if(isim_ara>0){//isim varsa
ds_list_delete(oyuncu_isimleri,isim_ara);//isimi listeden siliyoruz.
}
}

break;
}


İndir : http://ustaderslik.com/dosya/Gamemaker%20Multiplayer-3.zip

Video :




monsterG
monsterG 2 Yıl Önce Cevaplandı
giriş yapınca servera bağlanan sayısı artıyor, yazdığım isim ekranda çıkıyor. çıkış yapınca oyuncu ismi siliniyor fakat servera bağlanan sayısı azalmıyor. nerede hata yaptığımı bir türlü tespit edemedim. Sorun nerede olabilir?
cArleone
cArleone 2 Yıl Önce Cevaplandı
@monsterG eğer dersi baz alıp yapıyorsan normaldir.çünkü dersleri hazırlarken çıkışlarda bufferları silmedim.oyun çalıştığı için bir veri yoğunluğu oluyor.bu çıkış olayını yakalamaya biliyor.
monsterG
monsterG 2 Yıl Önce Cevaplandı
@cArleone anladım. ben android için bir oyun planlıyorum. bir odada geçecek ve 4 kişi olacak. multiplayer için anlatmış olduğunuz bu 12 ders benim için yeterli olur mu?
cArleone
cArleone 2 Yıl Önce Cevaplandı
@monsterG 12 derste temelini anlattım.eğer bu 12 derste anlattığımı anlarsan gerisi istediğin gibi yaparsın.temel mantık,veri gönder,veri al.geri kalan senin gamemaker language bilgine kalıyor.bu veriler ile oyunu oynatman gerek.
monsterG
monsterG 2 Yıl Önce Cevaplandı
@cArleone anladım. yaptığınız çalışmalar için teşekkür ederim. bu konularda türkçe kaynak sınırlı. çok güzel bir site yapmışsınız.
Gm-Bjk
Gm-Bjk 2 Yıl Önce Cevaplandı
Her şey norlaml fakat clientte kapadığım zaman hata veriyor ve server kapanıyor

"" illegal buffer "" gibisinden bir hata veriyor
cArleone
cArleone 2 Yıl Önce Cevaplandı
@Gm-Bjk o tür bir hata hiç almadım.sebebini bilmiyorum.
Gm-Bjk
Gm-Bjk 2 Yıl Önce Cevaplandı
http://i.hizliresim.com/rg1DWm.png


işte bu hatayı veriyor



Kod
Kalın
Vurgu
Resim
Video
Url
CEVAPLA
Tüm Hakları Saklıdır. ©Arleone 2013-2014 UstaDerslik






Giriş
Şifremi Unuttum...
Şifre Talep
  Kuralları Kabul Ediyorum.
Kaydol