Inside3D!
     

Player walk through other players?
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Inside3d Forums Forum Index -> QuakeC Programming
View previous topic :: View next topic  
Author Message
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Tue Nov 17, 2009 7:21 am    Post subject: Player walk through other players? Reply with quote

Is there a way to make it so a player can walk through other players in QuakeC?

I swear I found some QuakeC to make this possible, but now what I recall having this feature doesn't have this feature.
Back to top
View user's profile Send private message
Orion



Joined: 12 Jan 2007
Posts: 413
Location: Brazil

PostPosted: Tue Nov 17, 2009 3:55 pm    Post subject: Reply with quote

Hmm there's noclip that you can type in the console, but you'll fly and also go through walls.

But doing it on QC, just make the player SOLID_NOT on PutClientInServer() (client.qc), replacing that SOLID_SLIDEBOX.
_________________
There's no signature here. Stop looking for one.
Back to top
View user's profile Send private message
r00k



Joined: 13 Nov 2004
Posts: 483

PostPosted: Tue Nov 17, 2009 4:38 pm    Post subject: Reply with quote

noclip powerup Very Happy
Back to top
View user's profile Send private message
Wazat



Joined: 15 Oct 2004
Posts: 732
Location: Middle 'o the desert, USA

PostPosted: Wed Nov 18, 2009 5:54 am    Post subject: Reply with quote

One option is to use darkplaces and use solid_corpse. If you change the player's solid during playerprethink and change it back in playerpostthink, that should do it. If I remember right, players take turns moving and go from prethink to move code to postthink.

If you don't want to use an engine feature, just raw QC, you may be able to get some use out of my semi-solid corpse code in Ace of Nails (not sure where it's downloadable anymore; I haven't had a website in years). If I remember right, the corpses exploit the "non-solid with .owner" relationship to allow players to pass inside of corpses upon touch. If the player touches a corpse, it sets the corpse's .owner to the player so they can no longer physically interact. At least, I *think* that's how it works... Can't remember after all these years. I forget how I allowed the player to still shoot the corpse with traceline weapons, but I think that worked too.

It would be worth a download and taking a gander at the code. I personally thought the Ace of Nails corpses were damn cool and I felt bad when they didn't make much of a splash in the community. *sad face*

One final option might be to set all other players' solids to SOLID_NOT and/or their movetypes to MOVETYPE_NOCLIP in player pre think. This way the only solid player during movement is the one performing movement at the time. Then restore player movements/solids in playerpostthink. The big trick here, assuming it works at all (and it just might!), is to make sure that if the player uses a weapon (especially traceline weapons like shotguns and lightning), it still hits enemy players. This means you have to change solid/movetype at the very end of prethink and back again at the very beginning of postthink, and then make sure no weapon attacks happen during the time between. I think player frames etc don't happen between prethink and postthink, so you should be covered...

It should be noted that if this trick does work, you might be able to exploit it even further by making it so players' traceline attacks travel through ally players but not enemies. Or make team doors that only team mates can pass through as though they didn't exist. Cool stuff like that. Very Happy

I hope that helps! Have fun!
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Back to top
View user's profile Send private message MSN Messenger
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Wed Nov 18, 2009 6:45 am    Post subject: Reply with quote

Wazat wrote:
One option is to use darkplaces and use solid_corpse. If you change the player's solid during playerprethink and change it back in playerpostthink, that should do it. If I remember right, players take turns moving and go from prethink to move code to postthink.

If you don't want to use an engine feature, just raw QC, you may be able to get some use out of my semi-solid corpse code in Ace of Nails (not sure where it's downloadable anymore; I haven't had a website in years). If I remember right, the corpses exploit the "non-solid with .owner" relationship to allow players to pass inside of corpses upon touch. If the player touches a corpse, it sets the corpse's .owner to the player so they can no longer physically interact. At least, I *think* that's how it works... Can't remember after all these years. I forget how I allowed the player to still shoot the corpse with traceline weapons, but I think that worked too.

It would be worth a download and taking a gander at the code. I personally thought the Ace of Nails corpses were damn cool and I felt bad when they didn't make much of a splash in the community. *sad face*

One final option might be to set all other players' solids to SOLID_NOT and/or their movetypes to MOVETYPE_NOCLIP in player pre think. This way the only solid player during movement is the one performing movement at the time. Then restore player movements/solids in playerpostthink. The big trick here, assuming it works at all (and it just might!), is to make sure that if the player uses a weapon (especially traceline weapons like shotguns and lightning), it still hits enemy players. This means you have to change solid/movetype at the very end of prethink and back again at the very beginning of postthink, and then make sure no weapon attacks happen during the time between. I think player frames etc don't happen between prethink and postthink, so you should be covered...

It should be noted that if this trick does work, you might be able to exploit it even further by making it so players' traceline attacks travel through ally players but not enemies. Or make team doors that only team mates can pass through as though they didn't exist. Cool stuff like that. Very Happy

I hope that helps! Have fun!


This gives me a hint as to the options.

What I am looking for is a FINAL solution to coop spawn points without telefragging.

The idea that a map author is going to make 16 or 32 or more spawn points for a cooperative is insane. I think a single info_player_start should suffice.

I get annoyed in coop by being telefragged in perfectly coopable maps.
Back to top
View user's profile Send private message
Team Xlink



Joined: 25 Jun 2009
Posts: 320

PostPosted: Wed Nov 18, 2009 8:25 pm    Post subject: Reply with quote

Wazat wrote:
One option is to use darkplaces and use solid_corpse. If you change the player's solid during playerprethink and change it back in playerpostthink, that should do it. If I remember right, players take turns moving and go from prethink to move code to postthink.

If you don't want to use an engine feature, just raw QC, you may be able to get some use out of my semi-solid corpse code in Ace of Nails (not sure where it's downloadable anymore; I haven't had a website in years). If I remember right, the corpses exploit the "non-solid with .owner" relationship to allow players to pass inside of corpses upon touch. If the player touches a corpse, it sets the corpse's .owner to the player so they can no longer physically interact. At least, I *think* that's how it works... Can't remember after all these years. I forget how I allowed the player to still shoot the corpse with traceline weapons, but I think that worked too.

It would be worth a download and taking a gander at the code. I personally thought the Ace of Nails corpses were damn cool and I felt bad when they didn't make much of a splash in the community. *sad face*

One final option might be to set all other players' solids to SOLID_NOT and/or their movetypes to MOVETYPE_NOCLIP in player pre think. This way the only solid player during movement is the one performing movement at the time. Then restore player movements/solids in playerpostthink. The big trick here, assuming it works at all (and it just might!), is to make sure that if the player uses a weapon (especially traceline weapons like shotguns and lightning), it still hits enemy players. This means you have to change solid/movetype at the very end of prethink and back again at the very beginning of postthink, and then make sure no weapon attacks happen during the time between. I think player frames etc don't happen between prethink and postthink, so you should be covered...

It should be noted that if this trick does work, you might be able to exploit it even further by making it so players' traceline attacks travel through ally players but not enemies. Or make team doors that only team mates can pass through as though they didn't exist. Cool stuff like that. Very Happy

I hope that helps! Have fun!



So that is what the Solid_Corpse does.

I added that to my engine a while ago and never had the chance to look through it fully.

Now I am going to put it to good use.

Thank you.

Would it be possible to just remove the collision between the player entities and other player entities?
_________________
Anonymous wrote:
if it works, it works. if it doesn't, HAHAHA!
Back to top
View user's profile Send private message
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Wed Nov 18, 2009 9:08 pm    Post subject: Reply with quote

tbh, just make it so that SV_Move ignores entities that start solid, and remove the teledeath on coop spawn, thus allowing players to spawn on the same spot and move out and away from each other.
DP should already do this.
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
Downsider



Joined: 16 Sep 2008
Posts: 478

PostPosted: Wed Nov 18, 2009 9:44 pm    Post subject: Reply with quote

Spike wrote:
tbh, just make it so that SV_Move ignores entities that start solid, and remove the teledeath on coop spawn, thus allowing players to spawn on the same spot and move out and away from each other.
DP should already do this.


That's a solution, but I thought the whole idea was to do it in QC?
Back to top
View user's profile Send private message
Wazat



Joined: 15 Oct 2004
Posts: 732
Location: Middle 'o the desert, USA

PostPosted: Thu Nov 19, 2009 5:37 am    Post subject: Reply with quote

I'm glad to know my post helped people. I have fun talking about this kind of stuff. ^_^

If anyone ever does the team walls that are only nonsolid for allies this way, let me know. I wanna see that.
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Back to top
View user's profile Send private message MSN Messenger
ceriux



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

PostPosted: Thu Nov 19, 2009 8:02 am    Post subject: Reply with quote

wouldnt it be easier in other ways?

basically just go if (other.pteam = 1)

and changes the wall's solidity?

if pteam == 2 then then the opposite for team 2?
_________________
QuakeDB - Quake ModDB Group
Back to top
View user's profile Send private message Yahoo Messenger
Baker



Joined: 14 Mar 2006
Posts: 1538

PostPosted: Thu Nov 19, 2009 9:33 am    Post subject: Reply with quote

Downsider wrote:
That's a solution, but I thought the whole idea was to do it in QC?


I'll take any solution to the problem, I don't care the means.

In fact, I was certain I experienced the solution in DarkPlaces but didn't realize the mod was apparently using an extension.
Back to top
View user's profile Send private message
Spike



Joined: 05 Nov 2004
Posts: 944
Location: UK

PostPosted: Thu Nov 19, 2009 12:39 pm    Post subject: Reply with quote

I *think* its an extension at least. It certainly is for QW engines.
Its probably a 1-liner or so in SV_ClipToEntity (I think). Ensure that the subentity trace is not used if startsolid is true (basically this means that startsolid is only true if the ent is stuck in the world.
I'm not sure how this affects trains/doors/plats...
_________________
What's a signature?
Back to top
View user's profile Send private message Visit poster's website
lth



Joined: 11 Nov 2004
Posts: 129

PostPosted: Thu Nov 19, 2009 1:30 pm    Post subject: Reply with quote

Certainly in the horror I simply removed the teledeath line from PutClientInServer and it works fine co-op. Though again that might be darkplaces just fixing things by itself.
_________________
randomviolence - tactical combat boardgame
Back to top
View user's profile Send private message
Wazat



Joined: 15 Oct 2004
Posts: 732
Location: Middle 'o the desert, USA

PostPosted: Thu Nov 19, 2009 2:21 pm    Post subject: Reply with quote

lth wrote:
Certainly in the horror I simply removed the teledeath line from PutClientInServer and it works fine co-op. Though again that might be darkplaces just fixing things by itself.


Darkplaces and stock Quake handle entities stuck inside each other differently. I think players can get stuck inside each other in stock quake without teledeath, but in darkplaces an entity inside another simply doesn't clip with it (but still does so with other entities & world).

I think monsters in DP still get stuck inside each other because their movement code won't let them move out, but they'd probably be able to get out of each other by velocity means (fiend jump). Not sure. Some mods actually depend on this to hold monsters in place, ala freezing them in a solid ice block or capturing them in a greater ball of capturing or whatever. Smile
_________________
When my computer inevitably explodes and kills me, my cat inherits everything I own. He may be the only one capable of continuing my work.
Back to top
View user's profile Send private message MSN Messenger
lth



Joined: 11 Nov 2004
Posts: 129

PostPosted: Thu Nov 19, 2009 5:32 pm    Post subject: Reply with quote

Oh, well, I totally cheated for my freeze perk in the horror - I just set every monster's nextthink to time+10 Smile
_________________
randomviolence - tactical combat boardgame
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Inside3d Forums Forum Index -> QuakeC Programming All times are GMT
Goto page 1, 2  Next
Page 1 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