Yes, it was a FitzSDL issue. The server / mod works fine.
Announcement
Collapse
No announcement yet.
Remake Quake 2009 Multiplayer Demo RELEASE
Collapse
X
-
Thanks, we'll fix that. Keep reporting bugs, it helps us a lot!I noticed that when players leave the server, there is no "ghost-removal" which means that the mod still takes the votes of players who left long ago into account (until the map changes that is) making it impossible to vote for a new map if you are the only player left on the server..
Comment
-
My limited QuakeC knowledge is that this is the more or less the required fix in client.qc in ClientDisconnect:
Someone like Rook or Bam or Zop would be better source:
In Bam's vote-qc stuff, after the last above he clears the client vote params.Code:bprint (" left the game with "); bprint (ftos(self.frags)); bprint (" frags\n"); sound (self, CHAN_BODY, "player/tornoff2.wav", 1, ATTN_NONE); set_suicide_frame (); setmodel (self, string_null); setsize (self, '0 0 0', '0 0 0'); self.effects = 0; self.classname = "disconnected"; self.health = 0; self.solid = SOLID_NOT;
The code above really just makes it so there isn't some white ghost player that is solid.Quakeone.com - Being exactly one-half good and one-half evil has advantages. When a portal opens to the antimatter universe, my opposite is just me with a goatee.
So while you guys all have to fight your anti-matter counterparts, me and my evil twin will be drinking a beer laughing at you guys ...
Comment
-
RMQ .def and .fgd files for mapping:
def
4shared.com - online file sharing and storage - download remakequake.def
fgd
4shared.com - online file sharing and storage - download remakequake.fgd
These are snapshots, of course, as the project is unfinished.
Comment
-
Wow, cool stuff. I had a look at the dm maps first. I liked them, the rooms seem higher and cleaner, the maps feel less cramped for some reason. Changes are small but seem to make sense.
I also played e3m1rq. Love that map, it's got a great style with all the rocks, rain, acid. Creates a dense, Q2-like atmosphere. 18:05, 3/8, 107/0. (Don't ask me about the last one, it's not a typo. It's what the intermission screen told me.)dfsp*spirit
my FPS maps
Comment
-
RMQ doesn't display the total monster count. Darkplaces will just show "Kills: 107" while other engines will say "Kills: 107/0".
The dm maps are a little larger - then again, players also generally move faster today than they did in 1996. In RemakeQuake, you have several additional movement options.
Glad you enjoy it.
Comment
-
This is my entire code when someone disconnects, in CAxOriginally posted by Baker View PostMy limited QuakeC knowledge is that this is the more or less the required fix in client.qc in ClientDisconnect:
Someone like Rook or Bam or Zop would be better source:
In Bam's vote-qc stuff, after the last above he clears the client vote params.Code:bprint (" left the game with "); bprint (ftos(self.frags)); bprint (" frags\n"); sound (self, CHAN_BODY, "player/tornoff2.wav", 1, ATTN_NONE); set_suicide_frame (); setmodel (self, string_null); setsize (self, '0 0 0', '0 0 0'); self.effects = 0; self.classname = "disconnected"; self.health = 0; self.solid = SOLID_NOT;
The code above really just makes it so there isn't some white ghost player that is solid.
This following code sends an impulse to each client, which is a stuffcmd, that will be sent to the server in return, once every 5 seconds. if after 15 seconds and no reply (impulse 39) the server declares that client LAGGED. After 30 seconds of no reply, it disconnects them. also, when an impulse is received i reset the finaldest_x flag (this is just a reUsed variable from default progs instead of assigning a NEW variable.)Code:/* =========== ClientDisconnect called when a player disconnects from a server ============ */ void() ClientDisconnect = { local string pl,s; local entity e,tmp; if (!(self.style & CA_CONNECTED)) return; if (!(self.style & CA_KICK_TARGET)) { s = ftos (self.frags); pl = strings_szplural(self.frags); if (self.frags > 0) bprint6 (self.netname, " left the game with ", s, " frag", pl,"\n"); else bprint2 (self.netname," disconnected.\n"); sound (self, CHAN_BODY, "player/tornoff2.wav", 1, ATTN_NONE); } // PRACTICE OBJECT e = find (world, classname, "practice_object"); if (e != world && e.movetarget == self) { remove (e); bprint ("Practice object \bremoved\n"); } if (self.next_team) { RemoveFromTeam(); } if (self.style & CA_BALL_CARRIER) DropQball(0); if (ca_gametype & CA_ELIMINATION_MODE)//R00k: Hmm, might cause a problem to respawn everyone who this guy killed? { e = find (world, classname, "player"); while (e) { if ((self == e.enemy) && (e.player_flag == STATE_DEAD) && (e != self)) { tmp = self; self = e; observer_end (); self = tmp; } e = find (e, classname, "player"); } } setname (self, ""); self.effects = 0; self.team2 = TEAM_SPECTATOR; self.frags = 0; //self.cnt = 0; self.hack_timeout = 0; self.finaldest_x = -30; self.state = 0; self.myip = string_null; self.takedamage = DAMAGE_NO; self.airborn_pos = 0; self.afk_time = 0; self.cc_queue = 0;//R00k self.cc_queue_vote = 0;//R00k admin_disconnect_notify (self); observer_disconnect_notify (self); self.style = self.style - (self.style & (CA_KICK_TARGET | CA_CONNECTED | CA_AFK_CLIENT | CA_MUTED)); self.nextthink = -1; self.think = SUB_Null; set_suicide_frame (); setmodel(self, string_null); setsize (self, '0 0 0', '0 0 0'); self.classname = string_null; self.health = 0; motd_top5 = string_null; motd_top6 = string_null; };
in StartFrame, i have this...
Code:if (time >= ca_lagcheck) { player = nextent(world); while (player != world) { if (player.classname == "player") { if ((player.style & CA_CONNECTED)) { if (time > ((player.finaldest_x) + 5)) { msg_entity = player; WriteByte(MSG_ONE, SVC_STUFFCMD); WriteString(MSG_ONE, "impulse 39\n"); } if ((time >= (player.finaldest_x + 15))&&(time < (player.finaldest_x + 16))) { player.plag = TRUE; player.hack_timeout = player.hack_timeout + 15;//client lagged, refresh botscan if (!((player.style & CA_OBSERVER) && (boss.state != CA_MATCH_WAITING))) { bprint2 (player.netname," is \blagged\b.\n"); bprint("\[lag protection activated\]\n"); } } if (time > ((player.finaldest_x) + 25)) { player.style = (player.style | CA_KICK_TARGET);//sanity check ca_kick_mode = KICK_NONE; kick_player(player); } } else { if (!(player.style & CA_NEW_CLIENT))//R00k v1.52 clean { local entity tmp; tmp = self; self = player; ClientDisconnect(); self = tmp; } } } player = nextent(player); } ca_lagcheck = (time + 5); }then where i check for impulses,Code:void (entity p) kick_player = { local string temp; local entity oself; if (p.style & CA_ADMIN) { p.style = p.style - (p.style & CA_KICK_TARGET); ca_kick_mode = 0; return;//crashproof! } if (!(p.style & CA_CONNECTED)) { p.style = p.style - (p.style & CA_KICK_TARGET); ca_kick_mode = 0; return; } if (p.style & CA_NEW_CLIENT) { p.style = p.style - (p.style & CA_KICK_TARGET); ca_kick_mode = 0; return; } if (!(p.style & CA_KICK_TARGET)) { ca_kick_mode = 0; return; } if(debug) bprint("kick_player called\n"); p.takedamage = DAMAGE_NO; if (ca_kick_mode == KICK_KICK) { announce2 (p.netname, " was kicked!"); stuffcmd (p,"echo You have been kicked from this server by an admin.\n"); temp = ftos(p.colormap); localcmd3 ("kick # ", temp, "\n"); } else { if (ca_kick_mode == KICK_BAN) { bprint2 (p.netname, " was banned!\n"); banent = p; utils_make_scheduled_event(ban_kick_client,0.05); } else { if (ca_kick_mode == KICK_NONE) { bprint2 (p.netname, " lost connection to the server.\n"); temp = ftos(p.colormap); localcmd3 ("kick # ", temp, "\n"); } } } oself = self; self = p; ClientDisconnect(); self = oself; ca_kick_mode = 0; };
Code:if (self.impulse == 39)//reply to lag detection { self.lagcheck = self.finaldest_x; self.finaldest_x = time; if (self.finaldest_x - self.lagcheck <= 5 ) { self.lagcount = self.lagcount + 1; } if (self.lagcount > 2) { self.lagcount = 0.00; self.plag = 0.00; } } else
Hope this helps.Last edited by R00k; 03-16-2010, 10:15 PM.
Comment
-
I actually REALLY like the remake.
Even though it doesn't sound like regular Quake,
I find the Place of 2 Deaths remake very peaceful.
The Clustrophobopolis is pretty good - I like that giant spinning cog replacement, though I don't like those glowing orange pillars.
Rubic is quite nice - needs a visible starry night skybox though.
You should also get rid of the pentagrams from the levels.
Nailguns need ricochet sounds. Chainsaw sound needs fixes. Remove all the Q3 sounds; they really ruin the atmosphere.
The health vials in MP should have a different pickup sound than SP's.
Less candles.
The remake scrags sound weird and their 'shadow tele' effect doesn't fix with Quake.
Monster VOs should be redone - the current ones sound a bit unprofessional (except for the Enforcer)
Maybe some ejecting shells for the shotgun (double barred shotguns don't eject)Last edited by Ranger; 06-15-2010, 11:13 PM.
Comment
-
Multiplayer patch released.
Format : pak1.pak
Usage should be clear to anyone who plays Quake.
http://www.quaketastic.com/upload/fi..._MP_patch1.zip
Blog post:
Point Release The Realm of Blog Magic
10 MB download. We fixed practically all issues that were reported.
There is a new move. You can now Dash like in Warsow, in addition to the walljump that existed before. Bind a key to "boost".
Bots do it, too - on higher skill levels. They'll pretty much wipe the floor with even decent players. And they'll also let you know that you suck, as usual.
Comment





Comment