View previous topic :: View next topic |
Author |
Message |
Baker

Joined: 14 Mar 2006 Posts: 1538
|
Posted: Tue Nov 17, 2009 7:21 am Post subject: Player walk through other players? |
|
|
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 |
|
 |
Orion

Joined: 12 Jan 2007 Posts: 413 Location: Brazil
|
Posted: Tue Nov 17, 2009 3:55 pm Post subject: |
|
|
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 |
|
 |
r00k
Joined: 13 Nov 2004 Posts: 483
|
Posted: Tue Nov 17, 2009 4:38 pm Post subject: |
|
|
noclip powerup  |
|
Back to top |
|
 |
Wazat
Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA
|
Posted: Wed Nov 18, 2009 5:54 am Post subject: |
|
|
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.
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 |
|
 |
Baker

Joined: 14 Mar 2006 Posts: 1538
|
Posted: Wed Nov 18, 2009 6:45 am Post subject: |
|
|
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.
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 |
|
 |
Team Xlink
Joined: 25 Jun 2009 Posts: 320
|
Posted: Wed Nov 18, 2009 8:25 pm Post subject: |
|
|
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.
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 |
|
 |
Spike
Joined: 05 Nov 2004 Posts: 944 Location: UK
|
Posted: Wed Nov 18, 2009 9:08 pm Post subject: |
|
|
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 |
|
 |
Downsider

Joined: 16 Sep 2008 Posts: 478
|
Posted: Wed Nov 18, 2009 9:44 pm Post subject: |
|
|
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 |
|
 |
Wazat
Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA
|
Posted: Thu Nov 19, 2009 5:37 am Post subject: |
|
|
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 |
|
 |
ceriux

Joined: 06 Sep 2008 Posts: 969 Location: Florida, USA
|
Posted: Thu Nov 19, 2009 8:02 am Post subject: |
|
|
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 |
|
 |
Baker

Joined: 14 Mar 2006 Posts: 1538
|
Posted: Thu Nov 19, 2009 9:33 am Post subject: |
|
|
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 |
|
 |
Spike
Joined: 05 Nov 2004 Posts: 944 Location: UK
|
Posted: Thu Nov 19, 2009 12:39 pm Post subject: |
|
|
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 |
|
 |
lth

Joined: 11 Nov 2004 Posts: 129
|
Posted: Thu Nov 19, 2009 1:30 pm Post subject: |
|
|
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 |
|
 |
Wazat
Joined: 15 Oct 2004 Posts: 732 Location: Middle 'o the desert, USA
|
Posted: Thu Nov 19, 2009 2:21 pm Post subject: |
|
|
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.  _________________ 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 |
|
 |
lth

Joined: 11 Nov 2004 Posts: 129
|
Posted: Thu Nov 19, 2009 5:32 pm Post subject: |
|
|
Oh, well, I totally cheated for my freeze perk in the horror - I just set every monster's nextthink to time+10  _________________ randomviolence - tactical combat boardgame |
|
Back to top |
|
 |
|