.:: Bots United ::.

.:: Bots United ::. (http://forums.bots-united.com/index.php)
-   Half-Life 1 SDK (http://forums.bots-united.com/forumdisplay.php?f=33)
-   -   v_angle.y is always 0 ??? (http://forums.bots-united.com/showthread.php?t=3644)

Austin 24-02-2005 07:02

v_angle.y is always 0 ???
 
In cz, client, these are always 0.
LOG_CONSOLE(PLID, "v_angle= %d\n",serverEntity->v.v_angle.y);
LOG_CONSOLE(PLID, "angles = %d\n",serverEntity->v.angles.y);

Why is that?
I need to
1) have the direction the player is pointing (like when you turn using the mouse and look in some direction)
2) I need to set the direction to 0 to force the player to look in the 0 direction.

Whistler 24-02-2005 08:21

Re: v_angle.y is always 0 ???
 
the "serverEntity" seems to be INDEXENT(0), which is the worldspawn entity instead of players...

also I don't think CZero is different from CS 1.6, as the dll file is actually the same (use "fc" in Windows or diff in GNU/Linux to check). The client's pev->angles.y and pev->v_angle.y shouldn't be zero

Whistler 24-02-2005 09:06

Re: v_angle.y is always 0 ???
 
I think I've found your problem... the problem is about the "%d":
PHP Code:

whistler@www:~$ cat 1.c
#include <stdio.h>
main()
{
 
float a 20;
 
printf("%d\n"a);
 
printf("%f\n"a);
}

whistler@www:~$ gcc 1.c
whistler
@www:~$ ./a.out
0
20.000000
whistler
@www:~$ 

use %f instead, or cast it to integer value and you'll get the right result

Pierre-Marie Baty 24-02-2005 12:15

Re: v_angle.y is always 0 ???
 
aren't you ashamed of asking questions like that, Austin man... :D

Austin 24-02-2005 21:13

Re: v_angle.y is always 0 ???
 
Da! -DAAAAAhh!!!
Ok can I say it was REALLY late last night!
Noooo. please wipe delete this msg from the server!...
Ashamed, yes, totally shamed... Balaaagg...

But even so you wouldn't think the implicit cast would work that way now do ya...


Either give me a compile warning, or do a "reasonable" cast ok?

tx. everyone.

Rick 24-02-2005 21:53

Re: v_angle.y is always 0 ???
 
Its better to use %f than casting...
Otherwise you can try c++ style casting:
Code:

LOG_CONSOLE(PLID, "v_angle= %d\n",static_cast<int>(serverEntity->v.v_angle.y));

Pierre-Marie Baty 24-02-2005 22:52

Re: v_angle.y is always 0 ???
 
that's the problem with you guys overused to C++... you cannot even format a printf string properly :D

If you want to round a float value use %.nf, where n is the number of digits you want after the dot.

dub 25-02-2005 01:46

Re: v_angle.y is always 0 ???
 
ex.
Code:

LOG_CONSOLE (PLID, "v_angle= %0.2f\n", serverEntity->v.v_angle.y);


round it to two decimal points ;).
Sorry guys i haven`t been here for awhile, ive been really busy helping out a cs : s clan :D.

Austin 25-02-2005 08:57

Re: v_angle.y is always 0 ???
 
Ok, now that I am printing out the angles.
I am trying to create spawn points for my map editor.

I need to generate a line like this:
"angles" "0 90 0"
For spawn points the angles are 0,90,180,270,

My primitive understanding of angles is:
In the map we have x,y,z coordinates.

If I spawn into the map with a spawnpoint like this:
{
"origin" "16 -1872 -416"
"angles" "0 0 0"
"classname" "info_player_deathmatch"
}

I will spawn into the map aligned on the x axis facing the direction where x “get smaller”

This is true for the MAP coordinates I guess.
But it looks like the angles go from 0 to180 and 0 to –180.

I could do the conversion but I bet there is some standard code or a function call to convert this to 0-360.

Any suggestions?

Rick 25-02-2005 11:35

Re: v_angle.y is always 0 ???
 
Just substract -180 from the y and z angle and wrap them with something like this:
Code:

float WrapYZAngle(float angle)
{
        while (angle >= 360.0f) angle -= 360.0f;
        while (angle < 0.0f) angle += 360.0f;

        return angle;
}



All times are GMT +2. The time now is 07:42.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.