Ich finde es seither sehr unschön, dass man bei Entities, welche per ent_create() dynamisch erstellt werden, 1 Frame zu warten hat, ehe man die min_x/ max_x (nach einem c_setminmax() Aufruf oder (NARROW | FAT))
ändern kann. Insbesondere ist dies bei Projektilen, Raketen und ähnlichen Dingen unschön, was sich besonders bei niedrigen Frameraten bemerkbar macht. Workarounds (wie ein verspätetes Setzen der Bounding Box Dimensionen und 1-Frame lange c_trace Kollision) sind daher gelegentlich notwendig.

Im Handbuch fand ich unter dem Eintrag zu "min_x" folgenden Hinweis, an welchen ich mich noch grob erinnern konnte:
Quote:
Bei Versionen unter 7.84, warten Sie einen Frame (wait(1)) nach Erstellen der Entity, ehe Sie die Bounding-Box setzen.

Heißt das aber, dass dieses Verhalten nach 7.84 nicht mehr eintreten sollte, das heißt dass ein Code der Form

Code:
void rocket_init()
{
	//c_setminmax(my);
	my.eflags |= NARROW | FAT;
	vec_set(my.min_x,vector(-8,-4,-4));
	vec_set(my.max_x,vector(24,4,4));
}

void rocket_create()
{
	you = ent_create("rocket.mdl",nullvector,rocket_init);
	...
}


die Bounding Box der Rakete ohne ein "wait(1)" tatsächlich manipulieren sollte?
Wenn ja, wo liegt der Fehler (ein Setzen von collision_mode = 2; bewirkt nichts)?

Last edited by Superku; 09/13/15 19:44.

"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends