Flanders is running TF at flanders.quake1.net port 26002
Announcement
Collapse
No announcement yet.
Team Fortress and such....
Collapse
X
-
My servers for the gamers:
bigfoot.servequake.com / damage.servequake.com
port 26000 EuroQuake
port 26001 EuroQuake Coop
newyork.quakeone.com
Offline ATM
fvf.servequake.com
flanders.servegame.org / flanders.servequake.com
Offline ATM
newdm.servequake.com
port 26010
http://bigfoot.servequake.com (EuroQuake)
sigpic
-
Originally posted by Polarite View PostFlanders is running TF at flanders.quake1.net port 26002
[To others: Flanders is a European server. We still need one in the USA.]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
-
We're building the community on irc.
irc.gamesurge.net #QuakeTF
Baker it'd be nice if you could idle there. We are hosting a .txt file until we get a webpage up. I talked to a few other people so several servers will be going up.
http://avirox.amnesiagames.com/QuakeTF/QuakeTF.txt
Comment
-
Originally posted by ShockLTK View PostWe're building the community on irc.
irc.gamesurge.net #QuakeTF
Baker it'd be nice if you could idle there. We are hosting a .txt file until we get a webpage up. I talked to a few other people so several servers will be going up.
http://avirox.amnesiagames.com/QuakeTF/QuakeTF.txt
In general forums work a lot better for me because there isn't the expectation of an immediate response.
[One thing that will suck, is that I know relatively little about Team Fortress.]
However, the source code is in the server .zip. I might try to add vote-map into it sometime in the next week.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
-
Last note for the night ...
I think I'm going to add vote-map to the server sometime tomorrow; and maybe add pq_teamscores support as well (if I can figure it out). And see about making available a Qrack model and textures pack optional download.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
-
Originally posted by ShockLTK View Postsounds good. btw, i loaded it all up to check out the textures and maps and play around a little. what is with the like bouncing of the crosshair like footsteps? that's kind of annoying. lol
I'll go through settings and see if I can write up a FAQ or something.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
-
For safe keeping ...
Bam's vote-map vote.qc customized for Team Fortress
Code:void (string mapcmd, float imp) vote_alias_make = { local string s; stuffcmd (self, "alias "); stuffcmd (self, mapcmd); stuffcmd (self, " \"vote0; w5; w5; impulse "); s = ftos (imp); stuffcmd (self, s); stuffcmd (self, "; w5\"\n"); //s = ftos (VOTE_PRIMARY_IMPULSE); //stuffcmd (self, s); //stuffcmd (self, ";w5;impulse "); }; void () vote_aliases = { local string s; vote_alias_make ("2base2", 1); vote_alias_make ("2brave1", 2); vote_alias_make ("2cast2", 3); vote_alias_make ("2castle6", 4); vote_alias_make ("2evil2f", 5); vote_alias_make ("2fort_32", 6); vote_alias_make ("2fort_sk", 7); vote_alias_make ("2fort4", 8); vote_alias_make ("2fort4r", 9); vote_alias_make ("2fort5", 10); vote_alias_make ("2fort5r", 11); vote_alias_make ("2tech3", 12); vote_alias_make ("32smooth", 13); vote_alias_make ("apart6a", 14); vote_alias_make ("aquabase15", 15); vote_alias_make ("bam4", 16); vote_alias_make ("bh1", 17); vote_alias_make ("border1", 18); vote_alias_make ("canalzon", 19); vote_alias_make ("chaos1", 20); vote_alias_make ("colony1", 21); vote_alias_make ("crusher", 22); vote_alias_make ("dzone1", 23); vote_alias_make ("dzone21", 24); vote_alias_make ("ftend1", 25); vote_alias_make ("havoc32b", 26); vote_alias_make ("hedge5f4", 27); vote_alias_make ("introseq", 28); vote_alias_make ("ironfort", 29); vote_alias_make ("jftf3", 30); vote_alias_make ("mayan1", 31); vote_alias_make ("mayan3", 32); vote_alias_make ("rock1", 33); vote_alias_make ("sfort", 34); vote_alias_make ("street1", 35); vote_alias_make ("wall", 36); vote_alias_make ("well6", 37); vote_alias_make ("wellgl1", 38); s = ftos (VOTE_YES_IMPULSE); stuffcmd (self, "alias yes \"impulse "); stuffcmd (self, s); stuffcmd (self, "\"\n"); s = ftos (VOTE_NO_IMPULSE); stuffcmd (self, "alias no \"impulse "); stuffcmd (self, s); stuffcmd (self, "\"\n"); s = ftos (VOTE_PRIMARY_IMPULSE); stuffcmd (self, "alias vote0 \"impulse "); stuffcmd (self, s); stuffcmd (self, "\"\n"); stuffcmd (self, "alias w5 \"wait;wait;wait;wait;wait\"\n"); }; string (float n) number_to_map = { if (n == 1) return "2base2"; else if (n == 2) return "2brave1"; else if (n == 3) return "2cast2"; else if (n == 4) return "2castle6"; else if (n == 5) return "2evil2f"; else if (n == 6) return "2fort_32"; else if (n == 7) return "2fort_sk"; else if (n == 8) return "2fort4"; else if (n == 9) return "2fort4r"; else if (n == 10) return "2fort5"; else if (n == 11) return "2fort5r"; else if (n == 12) return "2tech3"; else if (n == 13) return "32smooth"; else if (n == 14) return "apart6a"; else if (n == 15) return "aquabase15"; else if (n == 16) return "bam4"; else if (n == 17) return "bh1"; else if (n == 18) return "border1"; else if (n == 19) return "canalzon"; else if (n == 20) return "chaos1"; else if (n == 21) return "colony1"; else if (n == 22) return "crusher"; else if (n == 23) return "dzone1"; else if (n == 24) return "dzone21"; else if (n == 25) return "ftend1"; else if (n == 26) return "havoc32b"; else if (n == 27) return "hedge5f4"; else if (n == 28) return "introseq"; else if (n == 29) return "ironfort"; else if (n == 30) return "jftf3"; else if (n == 31) return "mayan1"; else if (n == 32) return "mayan3"; else if (n == 33) return "rock1"; else if (n == 34) return "sfort"; else if (n == 35) return "street1"; else if (n == 36) return "wall"; else if (n == 37) return "well6"; else if (n == 38) return "wellgl1"; return string_null; }; float (string s) map_to_number = { if (s == "2base2") return 1; else if (s == "2brave1") return 2; else if (s == "2cast2") return 3; else if (s == "2castle6") return 4; else if (s == "2evil2f") return 5; else if (s == "2fort_32") return 6; else if (s == "2fort_sk") return 7; else if (s == "2fort4") return 8; else if (s == "2fort4r") return 9; else if (s == "2fort5") return 10; else if (s == "2fort5r") return 11; else if (s == "2tech3") return 12; else if (s == "32smooth") return 13; else if (s == "apart6a") return 14; else if (s == "aquabase15") return 15; else if (s == "bam4") return 16; else if (s == "bh1") return 17; else if (s == "border1") return 18; else if (s == "canalzon") return 19; else if (s == "chaos1") return 20; else if (s == "colony1") return 21; else if (s == "crusher") return 22; else if (s == "dzone1") return 23; else if (s == "dzone21") return 24; else if (s == "ftend1") return 25; else if (s == "havoc32b") return 26; else if (s == "hedge5f4") return 27; else if (s == "introseq") return 28; else if (s == "ironfort") return 29; else if (s == "jftf3") return 30; else if (s == "mayan1") return 31; else if (s == "mayan3") return 32; else if (s == "rock1") return 33; else if (s == "sfort") return 34; else if (s == "street1") return 35; else if (s == "wall") return 36; else if (s == "well6") return 37; else if (s == "wellgl1") return 38; return FALSE; }; void () vote_map_change = { changelevel (request_mapname); }; //----------------------------------------------------------------------------------------- // Vote system - the skeleton/rules handling of voting void () vote_yes = { self.vflag = self.vflag | POQ_VOTE_YES; vote_print (2); }; void () vote_no = { self.vflag = self.vflag | POQ_VOTE_NO; vote_print (2); }; void (string vsound) vote_sound = { sound (self, CHAN_AUTO, vsound, 1, ATTN_NONE); }; void () vote_remove = { local entity e; e = find (world, classname, "player"); while (e != world) { if (e.vflag & POQ_VOTE_YES) e.vflag = e.vflag - (e.vflag & POQ_VOTE_YES); if (e.vflag & POQ_VOTE_NO) e.vflag = e.vflag - (e.vflag & POQ_VOTE_NO); e = find (e, classname, "player"); } e = find (world, classname, "vote_counter"); if (e) remove (e); }; void () vote_cancel = { vote_remove (); bprint ("\bVote canceled\n"); vote_sound ("doors/drclos4.wav"); }; void () vote_init_consider = { // Second impulse still hasn't come, wait for it if (self.impulse == VOTE_PRIMARY_IMPULSE) return; self.vflag = self.vflag - (self.vflag & POQ_VOTE_IDENTIFY); // // Found second impulse (add impulse handling below) // if (self.impulse >= 1 && self.impulse <= 38) // maps { request_mapname = number_to_map (self.impulse); vote_init (request_mapname, vote_map_change); } self.impulse = 0; }; void (string s, void () func) vote_init = { local entity e; local string post; e = find (world, classname, "vote_counter"); if (e != world) { // If the command is the same as the // current vote, might as well yes it. if (s == e.message) vote_yes (); else sprint (self, "Vote in progress.\n"); return; } self.vflag = self.vflag | POQ_VOTE_YES; vote_spawn (s, func); }; float () vote_count = { local float yes, no, need, total, require; local entity e; e = find (world, classname, "player"); while (e) { if (e.vflag & POQ_VOTE_YES) yes = yes + 1; else if (e.vflag & POQ_VOTE_NO) no = no + 0.5; total = total + 1; e = find (e, classname, "player"); } require = total * 0.51; need = yes - no; need = ceil (require - need); return need; }; void (float print) vote_print = { local string s, desc; local entity e; local float need; e = find (world, classname, "vote_counter"); if (map_to_number (e.message) != 0) desc = "\bchange map to "; need = vote_count (); s = ftos (need); if (print == 1 && need > 0) // person who started vote, dont print if passable { vote_sound ("misc/talk.wav"); bprint (e.owner.netname); bprint (" \bvoted to\b "); bprint (desc); if (map_to_number (e.message) != 0) bprint (e.message); bprint (" �"); bprint (s); bprint ("‘\n"); bprint ("Type \byes\b or \bno\b in console\n"); } else if (print == 2) // other people's votes { bprint (self.netname); bprint (" \bvoted\n"); } // Enough votes, execute vote if (need <= 0) { e.use (); vote_remove (); vote_sound ("doors/drclos4.wav"); return; } // Vote status every so often if (print == 3) { vote_sound ("misc/talk.wav"); bprint ("\bVote to "); bprint (desc); if (map_to_number (e.message) != 0) bprint (e.message); bprint (" �"); bprint (ftos(need)); bprint ("‘\n"); bprint ("Type \byes\b or \bno\b in console\n"); } }; void () vote_think = { // Not enough votes? cancel the vote if (self.vcount >= VOTE_PRINT_COUNT) { vote_cancel (); return; } // Print vote status every 10 seconds if (self.vdelay < time) { self.vdelay = time + VOTE_PRINT_DELAY; self.vcount = self.vcount + 1; if (self.vcount < 5) vote_print (3); } self.nextthink = time + 0.25; }; void (string mode_name, void () func) vote_spawn = { local entity e; if (intermission_running) return; e = spawn (); e.owner = self; e.use = func; e.classname = "vote_counter"; e.message = mode_name; e.vdelay = time + VOTE_PRINT_DELAY; e.vcount = 0; e.think = vote_think; e.nextthink = time + 0.25; vote_print (1); }; void () vote_impulse = { local entity e; e = find (world, classname, "vote_counter"); if (!e) { sprint (self, "No vote in progress.\n"); return; } // Vote yes if (self.impulse == VOTE_YES_IMPULSE) { if (self.vflag & POQ_VOTE_NO) { sprint (self, "You \bremoved\b your no vote\n"); self.vflag = self.vflag - (self.vflag & POQ_VOTE_NO); } if (!self.vflag & POQ_VOTE_YES) vote_yes (); } // Vote no else if (self.impulse == VOTE_NO_IMPULSE && e.owner != self) // player who started vote cant remove his vote { if (self.vflag & POQ_VOTE_YES) { sprint (self, "You \bremoved\b your yes vote\n"); self.vflag = self.vflag - (self.vflag & POQ_VOTE_YES); } if (!self.vflag & POQ_VOTE_NO) vote_no (); } };
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
-
I have the NQ Team Fortress 2.5 with the vote-map code merged in ... except that for some reason the impulses don't seem to trigger nor do the binds get sent. In addition, I'm not 100% sure what #PRINT_HIGH in a bprint means or if that was the right substitution.
However it is merged in there (not as easy as I thought it would be) and it does compile with no errors.
http://www.quake-1.com/files/sourcec...map_almost.zip
Anyway, the code is close and I'm uploading it so...
a) I don't lose it and have a copy of it available before I start playing around.
b) In the event that someone l33t wants to look at it and see what the issue is. Just run preqcc to precompile and then proqcc to compile. (I could also use FTEQCC but I'm sticking with the intended compiler until it works).
It's close. Now it is a matter of trying to determine how Team Fortress handles the impulses, which is a little different. Also, I would prefer to add in a "levels" command to list the maps available.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
-
I'd totally play on this, I love TF. its going to be interesting with no bhopping.
Comment
-
we should organize these nights, I see a lot of mods on nq come and go because there are never any meets.
Comment
-
You can use the opensourced megatf CE vote code if you wish. It needs either CPQWSV, mvdsv (or mvdsv xe), or ftesv though.
http://avirox.amnesiagames.com/Sourc...illa%20&%20CE/
PS. also note that if you use ftesv, it's multi-compatible between quakeworld and netquake, so you wont have to recompile tf 2.9 as a qw mod.
Comment
-
Originally posted by LockNLoad View Postwe should organize these nights, I see a lot of mods on nq come and go because there are never any meets.
Well with the amount of players it looks like we will have, we are going to have public servers to play on with people playing whenever they want to. However, it is a goal to eventually have enough players to run some type of league. Whether it's a quad league, or 5v5, or a pick up league. We'll see how it all turns out.
Comment
-
Thanks Avirox, I'll take a look at the vote code in there and see if I can either use that or if it can guide me as to where I need to check the impulse commands.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
-
Originally posted by avirox View PostPS. also note that if you use ftesv, it's multi-compatible between quakeworld and netquake, so you wont have to recompile tf 2.9 as a qw mod.
In a competitive game, I think a problem that would quickly be encountered is that that an experienced Quakeworld player would be able to utilize the bunnyhop and would get to fire sooner due to using predicted shots, in effect allowing the to shoot earlier than someone using the realtime minus ping that effectively is how NetQuake works.
At least this is how I'd theoretically think it would probably work.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
Comment