non-solid zombies

Post a reply


This question is a means of preventing automated form submissions by spambots.
Smilies
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode is ON
[img] is ON
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: non-solid zombies

by RocketGuy » Tue Mar 13, 2007 8:39 am

aguirRe wrote:However, there's another bug in the code where the zombies try to get up; if they can't get up for some reason, they'll stay non-solid lying down and can't be killed. It requires some more code to get around.

Code: Select all

	if (self.last_thought > 10)
	    T_Damage(self, self, self, self.max_health, "", 0);
:P

by Canadian*Sniper » Mon Mar 12, 2007 9:57 pm

Actually the bug that gunter found out (not sure how) was that the zombies were squished by the elevator and their entity was too skinny. A simple check on the point size was the fix.

As for zombies not getting up, their entire body will lay on a playform but they require something at their feet area to get up. There are some ways Peg and I cured this without cheats or mod fixes :)

by aguirRe » Mon Mar 12, 2007 7:09 pm

My usual fix in Q1 mods is to just put a self.solid = SOLID_SLIDEBOX line last in the zombie_run1 function. As far as I've seen, it works. However, there's another bug in the code where the zombies try to get up; if they can't get up for some reason, they'll stay non-solid lying down and can't be killed. It requires some more code to get around.

non-solid zombies

by Canadian*Sniper » Sun Mar 11, 2007 8:02 pm

Gunter brought this bug to my attention (I knew that fvf had this bug long ago, I always thought it was just a fvf bug) that zombies can bypass the self.solid = SOLID_SLIDEBOX; call when getting up from "death". The zombie is forever SOLID_NOT and cannot be damaged (unless you use splash damage or monsters). Gunter proposed a solution by adding a check in the zombie's walk and run macro frames. I gave it a try and it did NOT work. Let's try to figure out a solution to this bug :)

To trigger this bug easily, knock down the 3 zombies in e1m3's start in the NailGun trap just before being squished. The zombies will get up and stay in SOLID_NOT.

Code: Select all

void() zombie_walk1		=[	$walk1,		zombie_walk2	] {
	// Fix for active non solid zombie bug by Gunter
	if (self.solid != SOLID_SLIDEBOX)
		self.solid = SOLID_SLIDEBOX;
	ai_walk(0);
};
...
void() zombie_run1		=[	$run1,		zombie_run2	] {
	// Fix for active non solid zombie bug by Gunter
	if (self.solid != SOLID_SLIDEBOX)
		self.solid = SOLID_SLIDEBOX;
	ai_run(1);
	self.inpain = 0;
};
yes I've already tried putting the check before and after those other calls.

Top