Announcement

Collapse
No announcement yet.

Team Fortress and such....

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #31
    Flanders is running TF at flanders.quake1.net port 26002
    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

    Comment


    • #32
      Originally posted by Polarite View Post
      Flanders is running TF at flanders.quake1.net port 26002
      Haha

      [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


      • #33
        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


        • #34
          Originally posted by ShockLTK View Post
          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
          Thanks for the offer. I guess I'll idle there and see what happens, but I'm not around quite as much as is perceived

          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


          • #35
            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


            • #36
              sounds 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

              Comment


              • #37
                Originally posted by ShockLTK View Post
                sounds 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 think that is the "true target" crosshair Rook implemented from DarkPlaces. The crosshair goes to where it will strike a target.

                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


                • #38
                  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


                  • #39
                    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


                    • #40
                      I'd totally play on this, I love TF. its going to be interesting with no bhopping.


                      PLAY QUAKE DODGEBALL!

                      http://www.moddb.com/mods/quake-dodgeball

                      Trickle's VWeps

                      Comment


                      • #41
                        we should organize these nights, I see a lot of mods on nq come and go because there are never any meets.


                        PLAY QUAKE DODGEBALL!

                        http://www.moddb.com/mods/quake-dodgeball

                        Trickle's VWeps

                        Comment


                        • #42
                          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


                          • #43
                            Originally posted by LockNLoad View Post
                            we 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


                            • #44
                              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


                              • #45
                                Originally posted by avirox View Post
                                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.
                                I've not tried that and someday I will definitely need to experiment with that. I think that for something non-competitive it would be fine.

                                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

                                Working...
                                X