Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/triinne/public_html/mysqlconnect.php on line 3
Super-Lab protokoll

Programmi töökäik

Serveriga ühendumine

Klient saadab serverile teate liitumine (4).

Server vastab talle teatega liitumise aktsepteerimine (7).

Kui mäng ei käi, siis aktsepteerib server liitumise, andes teate kolmanda baidi väärtuseks 1, vastasel juhul 0. Neljanda baidi väärtuseks on 1 juhul kui antud kasutaja oli esimene serveriga liituja, vastasel juhul 0. Väärtus 1 märgib, et klient saab administraatori õigused. Teine bait on kasutaja ID-number.

Kui klient polnud esimene serveriga liituja, siis saadab server talle varem liitunud klientide arvu jagu teateid liitumine (4). Seejärel saadab server uuele liitujale teate kaart (6), kus on kirjas mänguplatsi number. Ühtlasi saadetakse varem liitunud klientidele teade liitumine selle uue kliendi andmetega.

Mängu alustamine

Administraatoriõigustes klient saadab serverile teate kaart (6), kus sisaldub mänguplatsi number.

Server saadab kõigile teistele klientidele seepeale teate kaart (6), mis sisaldab seda sama mänguplatsi numbrit.

Peale sobiva kaardi valimist saadab administraator teate start (2), server saadab omapoolse start-teate (2) edasi kõigile teistele klientidele ning mäng algab.

Mängu käik

Mängu alguses on kõik mängijad ühes punktis, mis on määratud vastavas kaardifailis baidiväärtusega 1.

Kui mängija asukoht mänguväljakul muutub, siis saadab klient serverile teate liikumine (0), kus sisalduvad kliendi uued koordinaadid mänguväljakul. Server saadab vastava liikumis-teate (0) kõigile klientidele. Selles teates sisaldub vastava mängija ID-number ning tema koordinaadid.

Kui mõni mängija jõuab kaardil sihtpunkti (tähistatud kaardifailis baidiväärtusega 2), siis saadab tema klient serverile teate võit (1). Kui serverile pole veel ühtegi võiduteadet saadetud, siis saadab server kõigile klientidele (kaasaarvatud võitja) teate võit (1) koos võitnud mängija ID-ga. Kui aga server on juba võiduteate saanud, siis vastavt teadet ignoreeritakse.

Peale võiduteate saamist loevad nii server kui kliendid mängu lõppenuks ning pöörduvad tagasi mängueelsesse staadiumisse.

Mängust lahkumine

Suvalisel hetkel võib klient saata serverile teate lahkumine (5). Kui klient oli tavakasutaja, siis saadetakse teistele klientidele serveri poolt teade lahkumine (5) koos vastava kliendi ID-numbriga.

Kui klient oli administraator, siis saadab server teistele klientidele teate lahkumine (5) kus on ID-ks iga kliendi isiklik ID. Oma ID-ga lahkumisteate saamise peale katkestab klient ühenduse serveriga (muidugi koos vastava teatega, et administraator on lahkunud). Ühtlasi lõpetab server omalt poolt mängu.

Mängu katkestamine

Kui administraator-klient saadab serverile mängu ajal teate stop (3), siis saadab server kõigile teistele klientidel samuti stop-teate (3). Seepeale lõpetavad nii kliendid kui server käesoleva mängu ning suunduvad tagasi mängueelsesse staadiumisse.

Super-Lab Suhtlemisprotokoll

Serveri poolt saadetavad teated

Liikumine:

Võit:

Start:

Stop:

Liitumine:

+järgneb nimepikkuse jagu baite, mis sisaldavad nime

Liitumise aktsepteerimine: (saadetakse liitujale)

Lahkumine:

Kaart:

Kasutajate poolt saadetavad teated:

Liikumine:

Võit:

Start (saadetav vaid hostija poolt):

Stop (saadetav vaid hostija poolt):

Liitumine:

+järgneb nimepikkuse jagu baite, mis sisaldavad nime

Lahkumine:

Kaart (saadetav vaid hostija poolt):