Calling It In Worldspawn Exactly Where The Precaches Were Originally.
#2276 posted by czg on 2017/02/28 09:03:26
Randomized Velocity In A Range
#2277 posted by Bloodshot on 2017/03/01 03:31:21
Forgive me if this is more a general coding question but, is there a way to find a random number within a certain range? Like if I want a randomized x velocity from 150 to 300 for a gib
Or Rather
#2278 posted by Bloodshot on 2017/03/01 03:32:37
-150 to 300, sorry for not editing, forgot i had a login
#2278
#2279 posted by Kinn on 2017/03/01 03:41:20
(Random() * 450) - 150;
where Random() returns a random number from 0-1 - i assume QC has that?
A Better Answer
#2280 posted by Kinn on 2017/03/01 03:45:44
so yeah the general case for getting a random number between min and max is:
(random() * (max - min)) + min
where random() would be a builtin function returning a random number in the range 0-1
Thank You
#2281 posted by Bloodshot on 2017/03/01 04:01:56
How do i put a negative number in there? Like say i want a range from -250 to 250
#2282 posted by Kinn on 2017/03/01 04:06:04
It's no different, "min" is -250, "max" is 250, so that would be
(random() * 500) - 250
Thanks
#2283 posted by Bloodshot on 2017/03/01 04:12:48
First time i did it with negatives i must've entered something wrong, now it's working thank you
Any Way To Set Model Flags Through QC?
#2284 posted by Bloodshot on 2017/03/01 06:14:58
Hexen 2 has some extra model flags for trails that I can't set unless I merge models with QME, but I still can't get exactly what I want
@bloodshot
#2285 posted by Spike on 2017/03/01 10:20:20
random:
random(-250, 400) will give you a random number between -250 and 400.
this will work with any HexenC compiler, as well as fteqcc even when not targetting hexen2.
model flags:
fte and dp both have some .float modelflags; field.
unfortunately the networking only supports the first 8 bits, and isn't supported by any (non-fte) hexen2 engines, so it won't get you anyhwere.
you may need to resort to a hex editor. you want the 32bit int at offset 0x4c.
although I'd like to think that later versions of qme allowed setting arbitrary flags...
Good Point About QME
#2286 posted by Bloodshot on 2017/03/01 23:03:18
I've been using 30 because I couldn't find the download again for 31, but I think I might be able to grab it from my laptop and check
#2287 posted by R00k on 2017/03/02 04:48:50
i seem to have 3.1 ill look for a zip or i can make one i guess. I know i have it somewhere
#2288 posted by muk on 2017/03/02 04:52:45
#2289 posted by PRITCHARD on 2017/03/02 11:24:59
It's been about 5 months since the last time this was asked, that's a pretty good run I guess. Maybe six next time? :p
Can You Make Anonymous Functions In Qc?
#2290 posted by anonymous user on 2017/03/04 15:12:07
Fteqcc
#2291 posted by Spike on 2017/03/04 15:37:08
void() foo =
{
entity e = spawn();
e.think = (void()){
dprint("I THOUGHT!\n");
remove(self);
};
e.nextthink = time + 1;
};
such functions may still have undefined behaviour when it comes to saved games, especially when the progs itself is changed. so while you should probably still avoid it, the above works in most cases.
note that there's no enclosures - so you can't access the locals of the parent (static locals should work though).
+1 Sticky This Thread
#2292 posted by Qmaster on 2017/03/06 18:28:51
#2293 posted by PRITCHARD on 2017/03/06 22:27:06
Make the thread sticky on its 10 year anniversary.
Blood Splat Question
#2294 posted by Ruin on 2017/03/08 06:11:31
Ok, I was in the wrong thread last time...
Do you know how to make a blood splat on the walls in quake that will align with the wall? I've seen it done before, but I cannot cite my sources, unfortunately. I'd be happy to pay someone to make a .qc file for this.
Thanks.
Blood Splat Question
#2295 posted by Ruin on 2017/03/08 06:11:37
Ok, I was in the wrong thread last time...
Do you know how to make a blood splat on the walls in quake that will align with the wall? I've seen it done before, but I cannot cite my sources, unfortunately. I'd be happy to pay someone to make a .qc file for this.
Thanks.
Untested Suggestion
#2296 posted by Preach on 2017/03/08 08:40:37
Try adding the following to SplatTouch above the line which changes self.velocity:
//fire a trace in the direction of movement to
//try and hit what we collided with
traceline(self.origin, self.origin + self.velocity, 0, world);
//if we hit a surface with the trace
//face the angle of the surface normal
if(trace_fraction < 1)
����self.angles = vectoangles(trace_plane_normal);
It's ever so slightly hacky, because we need to try and reconstruct the collision. So we have a bit of logic to guard against failure, and we don't change the angle if it fails.
This code will fix the angle relative to the facing of the wall, but you may need to add a constant angle if it's consistently turned 90 degrees from true.
Preach
#2297 posted by Ruin on 2017/03/09 06:17:51
Preach, you brilliant bastard!
Can I compensate you for your help?
Thank you so much!
Nah, Cheers
#2298 posted by Preach on 2017/03/09 19:53:01
I'd risk getting a bit mercantile if I accepted that!
Bit Subtraction
#2299 posted by R00k on 2017/03/24 00:13:23
okay, I'm not a novice to QuakeC but, i have a question.
float FOO 64
float foo2 128
float foo3 256
so
is it incorrect to use:
value = value - FOO
vs
value = value - (value & FOO)
logically the first just subtracts 64.
I'm looking at OLD code and finding stuff like this.
I have always done it
value = value - (value & FOO);
to just turn off a value.
#2300 posted by Kinn on 2017/03/24 00:22:36
is it incorrect to use:
value = value - FOO
I imagine you'll find instances of this in the old code only in places where they knew 100% that the bit was set, so just needed to subtract it.
Even so, it's still always better to use
value = value - (value & FOO)
because it shows the coder intent.
|