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 :