[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 488: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4787: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4789: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4790: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4791: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3922)
InsideQC Forums • View topic - Improved Gibbable Corpses Tutorial, and "Semisolid"

Improved Gibbable Corpses Tutorial, and "Semisolid"

Discuss programming in the QuakeC language.

Moderator: InsideQC Admins

Postby Seven » Tue Apr 12, 2011 7:56 am

@ Lightning Hunter

I cannot confirm, that head gibs and body corpses fade away like normal gibs.
I dont know if this is engine dependend. In DarkPlaces they stay forever as they should.


Regarding the body sinks into the floor:
This is an issue in EVERY gibable corpse mod, that exist until today.
The original setzise from Wazat makes them NEVER sink in the floor (at least in DP).
Thats why I was very happy about Wazats new mod.
The only negative thing was the big size (blocking bullets).

I couldnt test Wazats NEW setzise yet. This evening I will do it and tell you my experiences.
If it is really true, that now the body sinks into floors as well, it must have something to do with the new (smaller) setsize code.
In that case we will have to find the correct values as a compromise, where the body doesnt sink, but still have a reasonable height.
This will need finetuning then.


Regarding the "body hopping":
It does not exist in DP as well.
So either it is an engine issue or you put the call after the wrong animation sequenz Lightning Hunter ?


Thank you all for your great teamwork. That is the spirit from inside3D, that I love. :)

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

Postby Lightning Hunter » Tue Apr 12, 2011 8:39 am

Seven, I just now tested this mod on Glquake.exe, and obtained these same bugs. As far as I'm concerned, this means the bugs will happen on every engine except darkplaces. As great as Darkplaces is, many of us do not use it. I double checked the placement of the animation sequence, and it's identical to your version. Something else is causing the animation bug...
User avatar
Lightning Hunter
 
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Postby Lightning Hunter » Tue Apr 12, 2011 9:00 am

Hey Seven, would you be able to do me a favor and download the version I have compiled here, and see if those bugs are there for you? I'm just curious if our versions are different at all.

http://filebeam.com/f49b8a0b5ba9d5eb3b04ade73dbca1d2

Oh, and enjoy the new Wyvern Monster in the mod. :o
User avatar
Lightning Hunter
 
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Postby Seven » Tue Apr 12, 2011 11:18 am

Hello Lightning Hunter,

dont understand me wrong.
I dont say: DP is best, forget the rest.
Unfortunately I can only give Wazat feedback regarding DP behaviour,
because I use this engine for Quake.
I am fully aware, that many other amazing engines exist.
There is no doubt about that. Every engine has its pros and cons.
Directly related to your personal liking.

A mod must be able to be used for ALL engines if possible. I think we all agree on that. :)


I will use and test your mod this evening. Thank you for sharing.
In return, please do the same with my mod compilation (availabe at quakeone.com).
Unfortunately it can only be used with DP, due to dpextensions.qc usage.
But I am sure, that you have somewhere on your harddisc (maybe on a hidden partition) a DP installation.
Then we both know if we made a mistake ourselves during QC editing, or if it is really engine depending behaviour.


This will help Wazat in ironing out small issues in his mod.


Thank you for your understanding.
Seven
Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Postby Seven » Tue Apr 12, 2011 7:41 pm

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

Postby Lightning Hunter » Wed Apr 13, 2011 6:29 am

User avatar
Lightning Hunter
 
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Postby Seven » Wed Apr 13, 2011 3:52 pm

Hello Lightning Hunter,

regarding kickable gibs:
It is offtopic here, so I will make it short.
Feel free to contact me at quakeone.com for a more detailed discussion.

As a base I took Ivana Gibson´s mod.
This one has 2 serious issues (described in my mod thread at quakeone.com), that I had to remove.

Yes, you simply walk towards the gibs and automatically move them.


EDITED:
Regardind your issue with corpses "fall" through the floor (which I dont encounter in DP):
Due to the fact, that this is a setsize issue, please try playing with slightly different limit values.
Example:
instead of: min_z = ent.mins_z;
try this: min_z = ent.mins_z + 0.3;


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

Postby Lightning Hunter » Wed Apr 13, 2011 6:58 pm

Wait, I figured out why they fall through the floors! It happens if you are standing inside the body before the death animations finish. Try killing an ogre close up, and quickly stand inside the ogre before the death animation completes. The Ogre will fall through the floor 100% of the time, at least in Qrack and GLquake.
User avatar
Lightning Hunter
 
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Postby Seven » Wed Apr 13, 2011 7:24 pm

Thats why it could also happen if a monster dies and a nearby monster walks into him during death animation. Right ?

I tried to simulate it in DarkPlaces but could not. Standing directly in a solder, dog and ogre during their death animation.

Hmmm, its realy a pitty that engines behaves differently in that case.
Seven
 
Posts: 301
Joined: Sat Oct 06, 2007 8:49 pm
Location: Germany

Postby Lightning Hunter » Wed Apr 13, 2011 7:30 pm

User avatar
Lightning Hunter
 
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

Postby ooppee » Wed Apr 13, 2011 8:32 pm

ooppee
 
Posts: 70
Joined: Thu Oct 28, 2010 2:57 am

Postby Lardarse » Thu Apr 14, 2011 1:29 am

Roaming status: Testing and documentation
User avatar
Lardarse
 
Posts: 266
Joined: Sat Nov 05, 2005 1:58 pm
Location: Bristol, UK

Postby Wazat » Thu Apr 14, 2011 1:32 am

Interesting. I'm not sure what would cause this bodyhopping. Are you doing this tutorial in fresh QC or in a mod? If you're doing it in a mod, try doing a fresh QC implementation and let me know if it still happens.


As for falling through the floor... hmm... Being too thin would have been my first guess. I'll increase the size in the original post since that at least seems to alleviate the problem somewhat.

As for the player being in the body at the time, the player only makes the body non-solid while the player is moving. The body's physics run only while the body is solid. Plus, having a solid of SOLID_NOT only causes it to go through other entities like players and monsters, not walls (in vanilla quake, corpses are always solid_not).

My guess is that being inside another solid object while running its physics makes the corpse stop clipping entirely, allowing it to fall through the floor.


Corpses and heads disappearing after the 4th one:
The bodyque is a linked loop data structure.
a -> b -> c -> d -> a
When all the corpses are used up, it just naturally loops around and starts recycling old corpses. It sounds to me like the linked loop is too small, allowing for too few corpses. Here's the solution:

Open world.qc and replace the InitBodyQue function with this:

void() InitBodyQue =
{
local entity e, prev;
local float numBodies, num;
numBodies = 10; // how many corpses to allow in the world at once

num = 0;
prev = world;
bodyque_head = world;
while(num < numBodies)
{
// Spawn another body
e = spawn();
e.classname = "bodyque";

// If this is the first, set the bodyque_head pointer (start of the list)
if(bodyque_head == world)
bodyque_head = e;
// Link up to previous item to form the linked list
if(prev != world)
e.owner = prev;
// Point prev to the new item
prev = e;

// Track how many we've made so we don't have an infinite loop
num = num + 1;
}

// Now that all corpse entities are created, turn the linked list into a linked loop
bodyque_head.owner = prev;
};

I'll add this as a step in the first post.
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.
Wazat
 
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Postby Wazat » Thu Apr 14, 2011 1:53 am

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.
Wazat
 
Posts: 771
Joined: Fri Oct 15, 2004 9:50 pm
Location: Middle 'o the desert, USA

Postby Lightning Hunter » Thu Apr 14, 2011 3:54 am

User avatar
Lightning Hunter
 
Posts: 169
Joined: Wed Nov 28, 2007 6:15 am

PreviousNext

Return to QuakeC Programming

Who is online

Users browsing this forum: No registered users and 2 guests