Forum

Duration for gibs and bodies in Quake [using DP]

Discuss anything not covered by any of the other categories.

Moderator: InsideQC Admins

Duration for gibs and bodies in Quake [using DP]

Postby Seven » Thu Jul 22, 2010 6:28 pm

Dear all,

I have a question, which seems to be hard to answer.
Maybe this is the place, where somoene has a hint for me :)


There is a really good page, which shows all DarkPlaces console variables:
Console Variables - DarkPlaces Wiki

Unfortunately I cannot find one which handles the:
duration time, before gibs and killed monsters fade away.

Is there a possibility to change this time (which is about 20 seconds
by default) with a command line / variable ?
(something similar like "cl_decals_fadetime" for decals)
Or do we have to go deeper into qc files to edit it ?
(which I dont want, cause I dont want to use a new progs.dat)

Thank you very much for your suggestions and hints.

Best wishes,
Seven

PS: I also asked Lord Havoc a couple of days ago, but he seems to be too busy with Nexuiz project.
Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Postby Spike » Thu Jul 22, 2010 7:22 pm

gibs+dead monsters are controlled by qc, not the engine.
Spike
 
Posts: 2892
Joined: Fri Nov 05, 2004 3:12 am
Location: UK

Postby Sajt » Thu Jul 22, 2010 7:24 pm

If it was possible without modifying the QuakeC, it would be an evil hack. By default, corpses never disappear, nor do head gibs (which are, for all effects and purposes, corpses). Only normal gibs. Some large maps with hundreds of monsters come with modified progs.dat including corpse removal. If you want this in your own map or coop server or whatever you're trying to do, you'll have to modify the QuakeC... or sin against humanity and hack the engine.
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.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby frag.machine » Thu Jul 22, 2010 8:23 pm

QuakeC is the way to go, isn't worth the hassle to treat this engine side.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
User avatar
frag.machine
 
Posts: 2090
Joined: Sat Nov 25, 2006 1:49 pm

Postby mh » Thu Jul 22, 2010 9:44 pm

(ahem) - from DirectQ:

Code: Select all
void PF_Remove (void)
{
   edict_t   *ed;
   
   ed = G_EDICT(OFS_PARM0);

   if (sv_permagibs.value)
   {
      // permanent gibs
      model_t *mod = sv.models[(int) ed->v.modelindex];

      if (mod)
         if (mod->type == mod_alias)
            if (!strnicmp (mod->name, "progs/gib", 9))
               return;
   }

   ED_Free (ed);
}


:D

Note that it's a server cvar so if you're in a MP game (1) it must be available on the server, and (2) the server admin (or someone else with the necessary authority) must have enabled it. It's good fun for SP though.

A better alternative would be to convert the edict to a static entity and remove it from the server. Would need more code, but not much more.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Sajt » Fri Jul 23, 2010 4:33 am

Oh, duh, that's what he was after. I thought he wanted everything to disappear, but it makes more sense that he'd want gibs to stay. It is an evil hack, but not too bad I guess.
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.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby Seven » Fri Jul 23, 2010 7:31 am

Thank you very much for all your answers.
I knew, this is the best place to ask ;)

First of all, I am sorry if I described my question not clear enough.
English is not my mother tounge.

This is what I wanted:
I ONLY play single player Quake with DarkPlaces engine.
So there is no server problem. I only play SP maps / episodes.

Secondly, Sajt said, that corpses never disappear by default (nor head gibs).
Well this must be different in DarkPlaces:
When I kill or when I gib a monster. All body parts fade away after 20 seconds.
And this is excatly what I wanted to change.
I want them to stay a little longer. Lets say 1 Minute.
It can be done with trhe blood decals (which also fade away in DP after 20 secdonds) with "cl_decals_fadetime"

So, is it true, that DarkPlaces handles the corpses "fade away" behaviour different than other engines ?
Because DarkPlaces does not touch the original Quake qc files.
If so, then there must must be a way to change the fade time with a console variable.

What do you think ? Am I completely wrong ?

Thank you again for all your replies.

Best wishes,
Seven
Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Postby mankrip » Fri Jul 23, 2010 8:27 am

As mh said, the most network-friendly solution would be to make all gibs static when they stop moving, but makestatic only works during map startup. However, this would probably prevent stopped gibs on the top of moving platforms from following them, since static entities are never updated by the server.

Using CSQC could probably be the best answer then.
Ph'nglui mglw'nafh mankrip Hell's end wgah'nagl fhtagn.
==-=-=-=-=-=-=-=-=-=-==
Dev blog / Twitter / YouTube
User avatar
mankrip
 
Posts: 915
Joined: Fri Jul 04, 2008 3:02 am

Postby mh » Fri Jul 23, 2010 9:03 am

Even if you're only playing SP, a Quake server is still running. It just happens to be running on the same machine as the Quake client, and switched into SP mode, but it's running all the same, so server matters are relevant.

The default Quake behaviour is to fade away all gibs after a short time, 20 seconds sounds about right. This happens in DOS Quake, it happens in WinQuake, it happens in Linux Quake, it happens in GLQuake. There's no different behaviour in different Quake engines.

Heads and full bodies stay, that has also always been the way things happen.

Now, the hack I did above is quite evil - if nothing else there will be hundreds more models (and entities) on the server taking up memory and processing time. This explains why they need to fade out.

So you want to change how long they stay. There are two ways - the right way and the wrong way. The right way is to modify the QuakeC and change their nextthink, the wrong way is to do something like my evil hack above.

If DarkPlaces has implemented something different as a cvar you would need to wait until LordHavoc shows up (if he ever does; he's busy at the moment and might not even see this thread) for a definitive answer.
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Seven » Fri Jul 23, 2010 9:28 am

Thank you mh for your clear statement. Now its clear to me.

EDITED
Failure was on my side.
EDITED

Thank you again. I will not bother you more.

Best wishes,
Seven
Last edited by Seven on Sat Jul 24, 2010 12:30 pm, edited 1 time in total.
Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Postby Sajt » Fri Jul 23, 2010 5:45 pm

Are you sure you're playing id1 (no mod), and not DPMod?
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.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby mh » Sat Jul 24, 2010 12:55 am

Sajt wrote:Are you sure you're playing id1 (no mod), and not DPMod?

:?: Good question, never thought of that. :?:
We had the power, we had the space, we had a sense of time and place
We knew the words, we knew the score, we knew what we were fighting for
User avatar
mh
 
Posts: 2292
Joined: Sat Jan 12, 2008 1:38 am

Postby Sajt » Sat Jul 24, 2010 1:54 am

mk wrote:Using CSQC could probably be the best answer then.


You shouldn't worry too much about network bandwidth if you're using DarkPlaces, because of the optimized protocol. If the gibs aren't moving, they'll only be networked when they come into your PVS. Of course, if you have a TON of gibs in one area this could still create some stutters in entity updating (hopefully the gibs are prioritized at the bottom of everything though), but it should be sufficient. Anyway, Seven said he only plays singleplayer...
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.
Sajt
 
Posts: 1215
Joined: Sat Oct 16, 2004 3:39 am

Postby Seven » Sat Jul 24, 2010 12:09 pm

Thank you very much for your question Sajt !

I must tell you, that basically I dont use dpmod. I only start Darkplaces.exe without extentions.

BUT:
You are absolutely right.
I added 3 years ago one additional dpmod qc file because I wanted the nice torchlight sprite from dpmod in "normal" Darkplaces Quake.
So I created a new progs.dat, wich I added into my pak0.pak !

Today, because of your question, I restored the original "progs.dat" and viola: The corpses stay.
Just like you and mh describe it.

So the mistake was on my side.

Thank you for this important question, which helped me to find the solution for my problem.

Best regards,
Seven
Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 1 guest