Skocz do zawartości

ALT

Użytkownicy
  • Postów

    795
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez ALT

  1. No więc, pytanie proste, czy jest jakiś ogólny artykuł który mam spis wszystkich

    potrzebnych funkcji do pracy z Android'em? Mam na myśli np. zamiennik mouse

    na ekrany dotykowe itp...

     

    P.S.: Moglibyście dodać osobny dział na GM:S, bo szukanie wcześniej

    zadanych pytań w tonach pytań o zwykłego Gm'a jest nie wygodne.

  2. Ja nie będę udawać że mi się podoba, grafikę już przetrwam, ale jak zobaczyłem

    komunikaty zrobione podstawowym show_message (Chociaż mogłeś trochę zmienić wygląd[Proszę, kup sobie słownik])

    i to że jak wchodzę po drabinie to utykam w ścianie to wyłączyłem, przyszedłem i dałem 1/5.

  3. Głupie pytanie, ale jeśli mam taki kod:

    GML
    clearbuffer();

    writebyte(3);

    writeshort(idd);

    writeshort(xx);

    writeshort(yy);

    sendmessage(pl[hiii]);

    I taki kod na odebranie:

    GML
    size=receivemessage(global.sock)

    i=readbyte()

    ii=readshort();;

    xx=readshort();

    yy=readshort();

    To informacje odbiorę odwrotnie, czyli 3,yy,xx,idd czy normalnie: 3,idd,xx,yy ?

  4. Więc mam w client'cie taki kod:

    GML
    clearbuffer();

    writebyte(3); //1-wysylanie id //2-wysylanie pozycji //3-wyjscie gracza //4-polaczenie gracza

    writeshort(global.idd);

    sendmessage(global.sock);

    Jest on w game_end, ale po wyłączeniu aplikacji przez X nie wysyła wiadomości o

    odłączeniu się gracza, więc slot na server'ze zostaje pełny. Jak to rozwiązać, lub

    może jak inaczej wykryć disconnect gracza.

  5. Więc napisałem sobie client i sever, wiadomo o co chodzi wszystko wykonane przy

    użyciu biblioteki 39DLL. Zamieszczam tutaj kod clien'ta i server'a, a problem polega

    na tym że gracze się nie widzą. Server widzi ich, wie kiedy gracz wchodzi i wychodzi,

    no i właśnie tego gracze nie widzą:

    SEVER

    GML (STEP)
    sock = tcpaccept(listen, 1);

    if(sock)

    {

    numb+=1

    global.players+=1

    global.pID[numb]=sock

    clearbuffer();

    writebyte(1);

    writeshort(global.players);

    writeshort(numb);

    }

     

    if global.players>0

    {

    while(ii<=global.players

    )

    {

    ii+=1

    size=receivemessage(global.pID[ii]);

    hii=readbyte();

    if size==0 or size<0{}

    else

    if hii==2

    {

    xx=readshort( );

    yy=readshort( );

    while(iii<=global.pID[iii])

    {

    iii+=1

    clearbuffer();

    writebyte(2);

    writebyte(iii);

    writeshort(xx);

    writeshort(yy);

    sendmessage(global.pID[iii]);

    }

     

    }

    else

    if hii==9

    {

    hi=readshort();

    global.pID[hi]=-1

    global.players-=1

    }

     

     

    }

    }

    ii=0

    iii=0

     

    CLIENT

     

    oOthers:

    GML (STEP)
    size = receivemessage(global.sock)

    ff=readbyte();

    fff=readbyte();

     

    if ff==2 and fff==idd

    {

    x=readshort();

    y=readshort();

    }

     

    oPlayer:

    GML (STEP)
    direction=random(260)

    speed=1

     

    clearbuffer();

    writebyte(2);

    writeshort(x);

    writeshort(y);

    sendmessage(global.sock);

     

    oConnect:

     

    GML (CREATE)
    dllinit(0,true,false)

    ip = get_string("Podaj IP do ktorego chcesz sie polaczyc:", "127.0.0.1");

    global.sock = tcpconnect(ip, 7777, 1);

    if(!global.sock)

    {

    game_end();

    exit;

    }

     

     

    size=receivemessage(global.sock)

    i=readshort();

    ii=readshort();

    idd=ii;

    ii=1;

    while(ii<=i)

    {

    if ii!=idd

    {

    a=instance_create(x,y,oOthers)

    a.idd=ii

    }

    ii+=1;

    }

×
×
  • Dodaj nową pozycję...