Inside3D!
     

OrionTF beta
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> General Discussion
View previous topic :: View next topic  
Author Message
ceriux



Joined: 06 Sep 2008
Posts: 969
Location: Florida, USA

PostPosted: Wed Apr 28, 2010 9:30 pm    Post subject: Reply with quote

btw i know im a lil late, but this looks sexy wish i had the chance to play.
_________________
QuakeDB - Quake ModDB Group
Back to top
View user's profile Send private message Yahoo Messenger
scar3crow
Inside3D Staff


Joined: 18 Jan 2005
Posts: 837
Location: Las Vegas, NV

PostPosted: Sun May 02, 2010 7:38 pm    Post subject: Reply with quote

Tried it again, with the teamplay settings on. Pretty fun, though it seems like some bots are exceptionally better than others. A single soldier killed me four times in a row, along with three of my teammates, multiple times. I would think it was just me sucking, but none of my bot teammates could stand up to him. He just racked up the frags outside of a spawn room in 2fort5.

Also, I got kicked out of the game for cheating, due to my speed? I don't know, I entered a respawn room, grabbed, some ammo, and was exiting the respawn room when I got kicked from my own game.
_________________
...and all around me was the chaos of battle and the reek of running blood.... and for the first time in my life I knew true happiness.
Back to top
View user's profile Send private message AIM Address
Orion



Joined: 12 Jan 2007
Posts: 413
Location: Brazil

PostPosted: Sun May 02, 2010 8:33 pm    Post subject: Reply with quote

@scar3crow This also happened to me. Often. Mainly if I'm a Scout.
At that time I didn't figure out how to fix that, but I realized that I just needed to change some numbers on the cheat checking function. That function is to prevent players changing their cl_forwardspeed and so to values higher than the class' default speed.

Also, on PlayerPostThink() I added some lines that prevents a player to bunnyhop. Sure he can bunnyhop normally, but it he reaches a certain speed, when he hits the ground, will result in a complete stop, giving him a major disadvantage, depending on the case. The criteria is if he reaches the class' speed + 200 units (say soldier's speed is 240, so the maximum is 440) while bunnyhopping, he'll have a complete stop when landing on the floor. But this won't kick a player out of the server. Also, you may notice some "stops" when you try to wallhug.

I also let the bot's aim a bit less botlike, but I'm waypointing some more maps, and I'll then release a patch. Smile
_________________
There's no signature here. Stop looking for one.
Back to top
View user's profile Send private message
Sajt



Joined: 16 Oct 2004
Posts: 1026

PostPosted: Sun May 02, 2010 9:59 pm    Post subject: Reply with quote

These Satanic hacks are where (vanilla) Quake shows its age (and inexplicability of some of the programmer's decisions)... The sensible thing to do is to send movement values in the 0-1 range and send the status of the run key, rather than multiplying to get the desired player speed on the client-side. And the equally abominable "anti-bunnyhop" hacks wouldn't be necessary if SV_PlayerPhysics were modified. If you are intending this mod for vanilla engines, it's like the outbreak of world war... senseless and horrifying but there's not much I can do about it. I would like to just run away and pretend this world doesn't exist.
_________________
F. A. Špork, an enlightened nobleman and a great patron of art, had a stately Baroque spa complex built on the banks of the River Labe.
Back to top
View user's profile Send private message
Pulseczar



Joined: 12 Aug 2006
Posts: 37

PostPosted: Mon May 03, 2010 2:15 pm    Post subject: Reply with quote

Just tried to run this in WinQuake. When I spawn a bot, the game crashes with i >= cl.maxclients. I tried setting 'maxclients' but discovered that it doesn't exist in NetQuake.
Back to top
View user's profile Send private message AIM Address
Orion



Joined: 12 Jan 2007
Posts: 413
Location: Brazil

PostPosted: Mon May 03, 2010 4:00 pm    Post subject: Reply with quote

Try -listen 16 on the command line.
Then set deathmatch to a value other than zero, teamplay to 1 or 2, and maxplayers to 16. On NQ the command is maxplayers, not maxclients. Wink
_________________
There's no signature here. Stop looking for one.
Back to top
View user's profile Send private message
Dr. Shadowborg
Inside3D Staff


Joined: 16 Oct 2004
Posts: 726

PostPosted: Mon May 03, 2010 4:25 pm    Post subject: Reply with quote

Forgot to mention it in my earlier post, but scar3crow's post reminded me, I too got kicked for speed cheating a few times (even though I wasn't), seemed to happen on any class.
_________________
"Roboto suggests Plasma Bazooka."
Back to top
View user's profile Send private message
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Mon May 03, 2010 4:41 pm    Post subject: Reply with quote

SV_PlayerPhysics? DIE! DIE HORRIBLY! SERIOUSLY, DIE!!!

That extension is an abomination that mucks up prediction big time.

If you want to prevent QW-style acceleration in zquake/mvdsv/fte just set pm_bunnyspeedcap 1
Same physics, no bunnyhop acceleration.
Note that you can still propel yourself quickly using rockets, but you'll slow down again if you turn... At least I think you will.

Speedcheating in QuakeWorld is detected by checking the duration of the movement frame which the client sends to the server. Its not due to your actual speed (as that would break as soon as you bunny).
In other words: lower your client's framerate (or packetrate in clients that support that).
If you're running the mod in DP, you need to reduce the server's ticrate down to no more than 77 tics per second, I assume.
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
Orion



Joined: 12 Jan 2007
Posts: 413
Location: Brazil

PostPosted: Mon May 03, 2010 5:04 pm    Post subject: Reply with quote

Spike wrote:
If you want to prevent QW-style acceleration in zquake/mvdsv/fte just set pm_bunnyspeedcap 1
Same physics, no bunnyhop acceleration.
Note that you can still propel yourself quickly using rockets, but you'll slow down again if you turn... At least I think you will.


OMG! *facepalm*
The mod is NQ-only, but if I host it on an FTE dedicated server, any QW client can join. And this command is also on FTE. Smile
So I'm gonna take out my server-side bunny limiter. But the speed cheat check will be still there. I raised some numbers a bit, and when I played, at least I didn't get kicked on a 15-minute match, but I gotta test it again to guarantee. Because anyone can change their cl_forwardspeed and so to values higher than their class' speed, and this function will reset the commands to the class' original speed and if that happen repeatedly, that player is kicked from the server.

At least when I play on DP or FTE, these commands are latched, as they're stuffcmd()'d.

EDIT: Forget to mention that the speed cheat is checked every 2 seconds. It's not checked every frame, otherwise you'd be kicked in a matter of seconds. I just made the function less sensible.
_________________
There's no signature here. Stop looking for one.
Back to top
View user's profile Send private message
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Mon May 03, 2010 6:30 pm    Post subject: Reply with quote

How do you measure speed?
Does this also consider rocket impacts on people running? Gravity?
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
Orion



Joined: 12 Jan 2007
Posts: 413
Location: Brazil

PostPosted: Mon May 03, 2010 6:45 pm    Post subject: Reply with quote

Actually I didn't made the code, I taken it from TF source code and adapted it to my mod.

Code:

void() CheckSpeedHack =
{
   local float tf, pf;
   local vector vplf, vf, ang;
   
   self.nextthink = time + 2;
   
   if (self.owner.deadflag)
      return;
   
   if (!(self.owner.flags & FL_ONGROUND) || self.velocity_z != 0)
      return;
   
   vplf = self.owner.velocity;
   
   ang = self.owner.v_angle;
   ang_x = ang_z = 0;
   makevectors (ang);
   
   vf = v_forward;
   vf_z = 0;
   
   vf = normalize(vf);
   
   tf = (vplf_x * vf_x) + (vplf_y * vf_y);
   
   pf = self.owner.speed + 200;
   
   if (tf > pf)
   {
      pf = pf + 200;
      
      if (tf > pf)
      {
         dprint (self.owner.netname);
         dprint (" had his speeds reset\n");
         self.nextthink = time + 2;
         self.owner.cheat_lev = self.owner.cheat_lev + 300;
      }
      else
      {
         dprint (self.owner.netname);
         dprint (" had his speeds cautiously reset\n");
         self.nextthink = time + 3;
         self.owner.cheat_lev = self.owner.cheat_lev + 150;
      }
      
      SetSpeed (self.owner, self.owner.speed);
   }
   
   if (self.owner.cheat_lev > 1200)
   {
      self.owner.cheat_lev = 0;
      
      bprint (self.owner.netname);
      bprint (" has been kicked for cheating\n");
      sprint (self.owner, "You have been kicked for cheating, because of your speed.\n");
      stuffcmd (self.owner, "disconnect\n");
   }
};


It only works if you're on the ground. You can still move quickly via a rocket-jump, grenade-jump, gun knockbacks and such.
_________________
There's no signature here. Stop looking for one.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> General Discussion All times are GMT
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2004 phpBB Group