Levering af flag

Når man har stjålet flag fra sine modstanderes modstanderes services skal de leveres til spil serveren for at udløse points.

Et flag kan kun stjæles én gang af hvert hold, og man kan ikke stjæle sit eget.

Flagene leveres på lidt tilfældige tidspunkter, men alle hold modtager flag samtidig. Dvs. at når flag leveres til service nr. 1, så får ALLE holds første service et nyt flag samtidig.

Alle hold har, på deres VM, et Bash shell script, som kan bruges til at levere flagene tilbage til spilserveren. Det implementerer en simpel netværksprotokol, som spilserveren forstår, men scriptet vedligeholder også en simpel database over allerede leverede flag (uanset om de gav points eller ej), så det undgår at levere det samme flag flere gange. Det undgår derved at spamme spil serveren med ugyldige flag.

Hvis I ikke vil bruge scriptet, kan I selv implementere protokollen.

Det er en simpel telnet baseret protokol. Det første I gør er at sende holdnavnet, efterfulgt af flagene. Hver levering afsluttes med newline (<CRLF> eller bare <CR>). Det kunne se således ud:

 

robert-laptop:~ $ telnet gameserver 6600
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
TEAM Team01
0: Team name received
FLAG 0D225CD868DC809076BC91D2B78DF5EF2018CE027DEFD8F4EA07BE9651346238
9: This is your own flag
FLAG 5DCF8E7F7E96167FE6959ECE57E2EAD47A308AFF995AFCAD332C1EB76994378A
0: Flag captured
^]
telnet> quit
Connection closed.
robert-laptop:~ $

 

Det burde ret simpelt kunne implementeres i alle sprog.

Navnet på holdet er det navn, som I har angivet, og som I også kan se her. Navnet er case sensitive, så I skal skrive det nøjagtig som på siden, og hvis jeres holdnavn indeholder udviddede tegn skal I enkode det med utf-8.

Scriptet kan kaldes således:

echo 0D225CD868DC809076BC91D2B78DF5EF2018CE027DEFD8F4EA07BE9651346238 | flag_deliver 192.168.122.10 6600 "My Team Name"

Spilserveren tillader højst tre samtidige forbindelser fra samme IP for at undgå at ét hold tager alle resourcerne.