From 8f7ecbc44e452ccd5518ad836892f135193d4ce5 Mon Sep 17 00:00:00 2001 From: stpohle Date: Mon, 5 May 2003 15:53:26 +0000 Subject: [PATCH] Multiplayer Startpositionen Fix. --- README | 71 +++++++++++++++++++++++++++++++++++++++++++-------- TODO | 3 +++ src/field.c | 8 +++--- src/network.c | 10 +++----- src/packets.c | 3 ++- src/single.c | 3 ++- 6 files changed, 76 insertions(+), 22 deletions(-) diff --git a/README b/README index 7954400..68b5173 100644 --- a/README +++ b/README @@ -50,6 +50,47 @@ Linux: src/bomberclone + +Problems +======== + +1. Starting a networkgame in a LAN network isn't working. + - disable to notify the masterserver + +2. Players are jumping around, player are running thought walls + won't die. + - packet loss, network to slow + right now the game tryes to send as much as possible, + if it can't send anymore it will bring down the network + traffic, but this only works for a while. + after version 0.9.8 with debuging mode enabled, + you can see how good or bad the connection is, on the bottom + of the screen you will find 8 numbers, which indicated the speed + to every other player. + 1 = very very good (disabled 'cause some other problems showed up) + 2- 8 = playable + 9-10 = not very well playable (this should be only there + for a short time) + +3. You start a server but noone can join it, even the other + people can see your game on the master server. + - the game needs in the current state always direct access to the + UDP Port 11000, if you change it over the (-port) parameter you need + to open this port. + + - If you sit behind a firewall, make sure that the gameport is forwarded and + if you send something, your firewall won't change the source-port. + The game and the masterserver need this information to identify your + Game and Player later. + (i have seen some games was logged by the gameserver with port numbers + above 30000, which mostly indicates that there is some problem + with a firewall or router) + + +If you have other problems, or just want to say something about the game, you +just need to send me an email to : steffen@bomberclone.de + + Network ======= @@ -70,28 +111,36 @@ The Dieing sequence will be in version 0.4 Image: left | right | up | down | dieing - F1 | F1 | F1 | F1 | F1 - F2 | F2 | F2 | F2 | F2 - F3 | F3 | F3 | F3 | F3 - F4 | F4 | F4 | F4 | F4 - F5 | F5 | F5 | F5 | F5 + F1 | F1 | F1 | F1 | F1 Frame 1 + F2 | F2 | F2 | F2 | F2 Frame 2 + F3 | F3 | F3 | F3 | F3 Frame 3 + F4 | F4 | F4 | F4 | F4 Frame 4 + F5 | F5 | F5 | F5 | F5 Frame 5 Testers ======= - Linux : Marcus, Patty, x-coder - Windows: boogieman, deadlock + Linux : Marcus, Patty, x-coder, Steffen + Windows: boogieman, deadlock, acid Contact ======= -programming : Steffen Pohle stpohle@gmx.net -graphic : TekkRat -no email yet- +Steffen Pohle steffen@bomberclone.de + +Or on our Project Page + http://sourceforge.net/projects/bomberclone + + +Thanks +====== +Thanks to TekkRat who mage all the diffrent players for us. + You can find us on : - irc://irc.d-t-net.de #programmierer + irc://irc.d-t-net.de #bomberclone -http://stpohle.bei.t-online.de/bomberclone +http://www.bomberclone.de diff --git a/TODO b/TODO index e093237..283cbf5 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,7 @@ +- network selection menu, there have to be an + other menu für chaning the map settings + - animated fire - better gfx, more players, a better fire. diff --git a/src/field.c b/src/field.c index ae467c3..aebb883 100644 --- a/src/field.c +++ b/src/field.c @@ -1,4 +1,4 @@ -/* $Id: field.c,v 1.8 2003/05/05 04:14:55 stpohle Exp $ */ +/* $Id: field.c,v 1.9 2003/05/05 15:53:27 stpohle Exp $ */ /* field.c - procedures which are needed to control the field */ #include @@ -252,6 +252,7 @@ void field_set_playerposition (int usermap) { } for (i = 0; i < MAX_PLAYERS; i++) { + printf ("Playerpos [%d,%d]\n", PLX, PLY); PLX = PLX << 8; PLY = PLY << 8; } @@ -307,6 +308,9 @@ field_new (char *filename) } } + /* Set the Playerinformation */ + field_set_playerposition (fmap != NULL); + nb_try = 100; // to prevent infinite loops (maybe there are no stones) /* put the fire powerups in the field */ for (d = 0, x = 0, y = 0; d < GAME_SPECIAL_ITEMFIRE * fkt; d++) { @@ -362,6 +366,4 @@ field_new (char *filename) bman.field[x][y].special = FT_death; x = y = 0; } - - field_set_playerposition (fmap != NULL); } diff --git a/src/network.c b/src/network.c index 75934da..4cd547b 100644 --- a/src/network.c +++ b/src/network.c @@ -1,4 +1,4 @@ -/* $Id: network.c,v 1.11 2003/05/05 04:14:55 stpohle Exp $ */ +/* $Id: network.c,v 1.12 2003/05/05 15:53:27 stpohle Exp $ */ /* network routines. */ @@ -635,7 +635,8 @@ net_delplayer (int pl_nr) send_quit (&bman.players[i].net.addr, host, port); j++; } - gamesrv_sendmode (bman.maxplayer, j); + if (bman.notifygamemaster) + gamesrv_sendmode (bman.maxplayer, j); } } @@ -731,16 +732,13 @@ net_new_game () int p, i; - // set players thier fields + // reset playerposition for (i = 0; i < MAX_PLAYERS; i++) bman.players[i].pos.y = bman.players[i].pos.x = -1; bman.players_nr = 0; bman.players_nr_s = 0; for (p = 0; p < MAX_PLAYERS; p++) { - bman.players[p].pos.x = bman.players[p].pos.x << 8; - bman.players[p].pos.y = bman.players[p].pos.y << 8; - bman.players[p].frame = 0; bman.players[p].frameto = 0; diff --git a/src/packets.c b/src/packets.c index 8116f9e..9a5984f 100644 --- a/src/packets.c +++ b/src/packets.c @@ -167,7 +167,8 @@ do_playerid (struct pkg_playerid *p_id, _net_addr * addr) for (j = 0, i = 0; i < bman.maxplayer; i++) if (PS_IS_used (bman.players[i].state)) j++; - gamesrv_sendmode (bman.maxplayer, j); + if (bman.notifygamemaster) + gamesrv_sendmode (bman.maxplayer, j); } else if (GS_WAITRUNNING) { diff --git a/src/single.c b/src/single.c index 1bfff32..a381149 100644 --- a/src/single.c +++ b/src/single.c @@ -1,4 +1,4 @@ -/* $Id: single.c,v 1.4 2003/05/05 04:14:56 stpohle Exp $ */ +/* $Id: single.c,v 1.5 2003/05/05 15:53:27 stpohle Exp $ */ /* single player */ #include "basic.h" @@ -38,6 +38,7 @@ single_game_new (int ai_players) bman.last_ex_nr = 1; field_new (bman.fieldpath); + bman.players_nr_s = 1; bman.players_nr = 1; bman.gametype = GT_single;