Dokumentace k souboru b_net.c

Popis souboru | Konstanty | Proměnné | Funkce

Popis souboru (1)

Sitove funkce, sitova hra

Konstanty (1)

JménoHodnotaDokumentace
min_servertick40minimalni pocet msec mezi posilanim updatu (aby se nzahltila sit nadbytecnymi pakety, pokud by se spustil server na prilis rychlem pocitaci)

Proměnné (27)

JménoTypPočáteční hodnotaDokumentace
*score_names*char?nacachovany score array;
chat_lenint?pocet zprav v chatkonzoli [EXT]
chat_max_lenint3pocet zprav (vyska chatwindow) [EXT]
chat_timeoutint3000timeout v milisekundach [EXT]
chatc0*net_chat_console?prvni zanzam v chatkonzoli
chatc9*net_chat_console?posledni zaznam v chatkonzoli
dsinglevector?kam miri .... rychlost a smer
deathsint?pocet smrti hrace
fragsint?pocet fragu hrace
headsinglevector?heading
leftsinglevector?heading
msgs*char0buffer na zpravy
net0pnet_con_list[num_socket_type]?konexe roztridene dle typu
net9pnet_con_list[num_socket_type]?konexe roztridene dle typu
net_countint[num_socket_type]?pocet spojeni daneho typu
net_obj*object_netque?objekty urcene k poslani pres sit
num_playersint?pocet hracu
psinglevector?poloha
packet_serialint160seriove cislo paketu - cas od casu pretece, ale s tim se pocita
pingint?jeho ping time
score_array*net_scoreboard_item?nacachovany score array;
score_array_lenint0alokovana velikost poli score_names a score_array
score_headnet_scoreboard_header?nacachovany score header;
score_names2*char0promenna na udrzeni jmen pro score
timeint?jak dlouho je pripojen na serveru
topsinglevector?heading
you_areint?ktyery z nich je ten, komu je to posilano

Funkce (68)

ModifikátorJménoParametryDokumentace
voidchatconsole_add(const char *s)prida message do chatconsole
const char *chatconsole_printstring()vrati text chatu, orizly na max. velikost obrazovky a jednotlive radky oddelene newlinem
voidchatconsole_setlen(int newlen)omezi delku chatconsole na newlen, odmazavaje stare zpravy, pokud je potreba
voidcmd_connect(const char *param)pripoji se na danou adresu
voidcmd_disconnect(const char *param)odpoji se jako kllient od serveru
voidcmd_killserver(const char *param)odstreli pripojene hrace a prestane naslouchat
voidcmd_listen(const char *param)zacne naslouchat na danem portu
voidcmd_net_connections(const char *param)debugovaci prikaz na vypis konexi
voidcmd_nickname(const char *param)prikaz na zmenu jmena
voidcmd_say(const char *param)say - poslani zpravy vsem
voiddisplay_chat_message(const char *s)zobrazi chat message na obrazovku a do chatconsole
voidgl_show_scoreboard()gl show scoreboard (volano pri if (score is down) pro kazdeho hrace)
voidkillclient(client *c)odmazne ze hry jednoho klienta
voidmap_change_handler()vola se po zmene mapy - po siti se posle info
voidnet_accept_object_delete()prijme a zpracuje paket oznamujici smazani objektu
voidnet_accept_object_info()prijme a zpracuje paket posilajici uplne informace o objektu (vc. classname a modellu ...)
voidnet_accept_object_update()prijme a zpracuje paket menici jeden objekt (poloha, rychlost, atd ...)
voidnet_accept_world(int datalen,void *data)prijme a zpracuje seznam idcek objektu tvorici svet. Inteligentne smnaze neexistujici objekty a prida nove (ackoliv nezna jejich pozici a co jsou zac, ty obvykle prichazeji pozdeji v jinem paketu (object_info))
voidnet_add_player(net_con_list *ctx)prida sitoveho klienta do hry
net_con_list *net_add_sock(SOCKET s,socket_type typ,ip_addr ip,ip_port port)prida socket do poolu socketu a zavre pripadna predchozi/shnila/neplatna/nakompatibilni spojeni
voidnet_addobject(object3d *obj)pridani objektu - server posle zpravu o objektu
voidnet_check_servername()zkontroluje servername a pripadne ho upravi (nesmi byt prazdny nebo NULL)
voidnet_checknick()zkontroluje nick a pripadne ho upravi (nesmi byt prazdny nebo NULL)
voidnet_checkstringpacket(game_packet *p)zkotroluje packet typu string, jestli tam jsou rozumna data (a zadne divoke znaky)
voidnet_client()jede tick na klientu
intnet_clientdisconnect(const char *param)odpoji se jakozto client (parametr je reason)
vraci 1 pri uspechu, nebop 0 pokud neni pripojen
voidnet_close(void)konec site
net_con_list *net_connect(ip_addr ip,ip_port port)vytvori pripojeni k pocitaci (ip:port) vraci 0 pri chybe nebo vraci kontext spojeni pri uspechu
voidnet_debug_print_packet(char *info,game_packet *p)vypise informace o prislem paketu na konzoli
char *net_getsockerror()zjisti kod chyby
voidnet_handle_client(net_con_list *c)obslouzi jiz pripojeny socket z klienta na server
voidnet_handle_server_packet_in(pnet_con_list c)obslouzi socket naslouchajici na serverru
voidnet_init(void)inicializace site
net_con_list *net_ip_context(SOCKET s,ip_addr ip,int16 port)pro dany ip/port vrati kontext, pokud kontext neexistuje, vytvori novy
voidnet_killobject(object3d *obj)odebrani objektu - server posle zpravu o objektu
voidnet_killqueue(socket_type typ)uzavre vsechny spojeni daneho typu
intnet_killserver(const char *reason)sestreli server - uzavre vsechny naslouchajici a obsluhovane sockety
vraci 1 pri uspechu, nebop 0 pokud server nebezi
intnet_listen(ip_port port)zacne naslouchat na danem portu. Vraci 0 pri chybe
voidnet_print_connections(socket_type typ,const char *description)vypise informace o konexich daneho typu
voidnet_receive_scoreboard(int datalen,void *data)prijme a zpracuje paket obsahujici score tabulku pro vsechy pripojene hrace
voidnet_remove_player(net_con_list *ctx)odstrani sitoveho klienta ze hry
voidnet_scan(const char *param)proscanuje servery (posle broadcast packet) na danem portu
voidnet_send_object(net_con_list *ctx,object3d *o,int only_update)posle cely objekt, nebo eventuelne jenom update paket
voidnet_send_player_update(net_con_list *ctx,client *c,object3d *shot)posle na sevre svoje zmeny
voidnet_send_playerinfo(net_con_list *ctx,client *c)posla hraciinformace o nem samem
voidnet_send_scoreboard(net_con_list *ctx)posle score po siti
voidnet_send_world(net_con_list *ctx,worldspawn *w)do site posle idcka vsech objektu a pak pro kazdy objekt jeste kompletni init packet
voidnet_sendpacket(net_con_list *c,packet_type pcode,int datalen,const void *data)posle po siti herni paket po danem socketu
voidnet_sendpacket_all(socket_type typ,packet_type pcode,int datalen,const void *data)posle herni paket vsem socketum v seznamu
voidnet_sendpacket_s(net_con_list *c,packet_type pcode,packet *p)posla vykonstruovany paket po siti
voidnet_server()jeden tick na serveru
voidnet_server_chatmessage(const char *nick,const char *msg)posle zpravu msg od nick vsem pripojenym
voidnet_servertick(net_con_list *ctx)posilani zprav ktere nejsou reakci na jine (updaty ze serveru, atd ....)
voidnet_updateobject(object3d *obj)pridani objektu - server posle update objektu
intnet_validate_packet(game_packet *p,int16 packet_len)vraci true, pokud je packet platny (spravna verze, delka, atd ....)
voidnetque_add(object3d *obj,object_netque_action a)prida objekt do fronty objektu k poslani
voidpacket_add(packet **p,int len,const void *data)prida do paketu data
voidpacket_add_byte(packet **p,char data)prida do paketu byte
voidpacket_add_int(packet **p,int data)prida do paketu int
voidpacket_add_rot(packet **p,rotation v)prida do paketu rotation (s konverzi do singlevectoru)
voidpacket_add_string(packet **p,const char *s)prida do paketu sdring (pascal style)
voidpacket_add_vect(packet **p,vector v)prida do paketu vektor (s konverzi do singlevectoru)
packet *packet_create(int alloc_len)vytvori paket k poslani pres sit
intpparse(int *datalen, void **data,int reslen,void *result)packet parse: get data
intpparse_int(int *datalen, void **data,int *result)packet parse: get int
intresolve_ip(const char *name,ip_addr *oip,int16 *oport,int16 default_port)ze jmena(muze obsahovat i port) ziska ip a port (defaultni port je pouzit,
pokud neni jiny specifikovan)
voidscoreboard_setlen(int n_players)nastavi pocet zaznamu ve scorebardu (vcetne realokace/aloikace pameti)
voidupdate_scoreboard(object3d *you_are)updatuje scoreboard

Dokumentace z 12.09.2003 18:06:39