.:: 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 06: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 07: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 08: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 11:15

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

Austin 24-02-2005 20: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 20: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 21: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 00: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 07: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 10: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;
}


koraX 25-02-2005 14:07

Re: v_angle.y is always 0 ???
 
Quote:

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;
}


bad solution, if angle is big number, subtracting 360 won't help and you have deadlock.

http://wiki.bots-united.com/index.ph...Angle_facility

And for austin, all about angles

Pierre-Marie Baty 25-02-2005 14:25

Re: v_angle.y is always 0 ???
 
good, KoraX ;)
Feed our wiki, guys, feed our wiki :)

Rick 25-02-2005 16:17

Re: v_angle.y is always 0 ???
 
Quote:

Originally Posted by koraX
bad solution, if angle is big number, subtracting 360 won't help and you have deadlock.

http://wiki.bots-united.com/index.ph...Angle_facility

And for austin, all about angles

Heh I just copied that code from Cube :-\ Something is wrong if you have very big numbers anyway...
But I like your macros, going to use that :)

stefanhendriks 25-02-2005 16:24

Re: v_angle.y is always 0 ???
 
Quote:

Originally Posted by Austin
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.

perhaps you could turn up your warning level of y our compiler? I used to set the MSVC compiler on pretty high (level 4?) so it would complain about every 'conversion' i did with %d (and use floats, etc)...

Whistler 26-02-2005 06:48

Re: v_angle.y is always 0 ???
 
Quote:

perhaps you could turn up your warning level of y our compiler? I used to set the MSVC compiler on pretty high (level 4?) so it would complain about every 'conversion' i did with %d (and use floats, etc)...
then you will get a lot (really lot!) of warnings from Valve's code, Metamod code and STL files :) And that's actually why I 'stripped' all the external codes like Valve SDK and Metamod, only necessary part is left.

koraX 26-02-2005 09:51

Re: v_angle.y is always 0 ???
 
Quote:

Originally Posted by Whistler
then you will get a lot (really lot!) of warnings from Valve's code, Metamod code and STL files :) And that's actually why I 'stripped' all the external codes like Valve SDK and Metamod, only necessary part is left.

I heavily stripped metamod (into one file) because it collided with my code.
I also stripped SDK a lot.
I've got warning level 4, I'm using STL everywhere and get no warning. So it is possible :)

Austin 26-02-2005 20:22

Re: v_angle.y is always 0 ???
 
1) The reason I don't chagne my warning level is as you say, it generates too many warnings to be useful. You could use pragma warning but that is a hassle and probably not worth the effort except in certain cases.

2) By modify source from 3rd parties you get into a difficult situation.
What do you do when updates come out? You have to re-clean the 3rd party source. Time consuming and not fun. Perhaps it is ok with the hl1 sdk that doesn't change much if at all, but what about the new source sdk that is and will be changing "every time you logon to steam?..."

sfx1999 27-02-2005 01:39

Re: v_angle.y is always 0 ???
 
You could probably optimize that so if the loop goes five times, you would use modulus intead. It probably won't go five times anyway, but try it.


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

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