Frictional Games Forum (read-only)

Full Version: Player Position and System Time
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
Hi guys!

I have a couple of advanced scripting questions:

1. Do you know if there is any way to get the player position in the level at any given time and print it to the .log file?

2. Can I somehow get the system time? (and print it again to the .log)

Thanks!
For player position you can always turn on the player info in the debug menu. There's no way that I know of to print it to the log file though, nor how to get the system time.
There is no way to retrieve X and Y and Z positions of the player (though the game can report it to you on the top left). If you really need to know where the player is, the extreme method is by using dozens of script areas and checking for collision.

System time can not be retrieved in HPL2, but i don't think it would be useful anyway even for debugging purposes.
mmm, I see...maybe I'll use the collision method to roughly keep track of player's movements!
it's for another kind of project, not exactly a game mod, that's why I was also interested in the system time.

Thank you guys!
(09-30-2011, 09:23 AM)diabi85 Wrote: [ -> ]mmm, I see...maybe I'll use the collision method to roughly keep track of player's movements!
it's for another kind of project, not exactly a game mod, that's why I was also interested in the system time.

Thank you guys!
I've been working on a system to track the players position - all you have to add to the map is some scripting and ONE script area. It isn't hugely precise (but easily as precise as hundreds of script areas) but is certainly enough! I can post it up if you would like (though i'd have to make some alterations as i have somewhat specialised it for my project).
(09-30-2011, 06:46 PM)Apjjm Wrote: [ -> ]
(09-30-2011, 09:23 AM)diabi85 Wrote: [ -> ]mmm, I see...maybe I'll use the collision method to roughly keep track of player's movements!
it's for another kind of project, not exactly a game mod, that's why I was also interested in the system time.

Thank you guys!
I've been working on a system to track the players position - all you have to add to the map is some scripting and ONE script area. It isn't hugely precise (but easily as precise as hundreds of script areas) but is certainly enough! I can post it up if you would like (though i'd have to make some alterations as i have somewhat specialised it for my project).
Sure, I'd love it!


(10-01-2011, 10:52 AM)diabi85 Wrote: [ -> ]
(09-30-2011, 06:46 PM)Apjjm Wrote: [ -> ]
(09-30-2011, 09:23 AM)diabi85 Wrote: [ -> ]mmm, I see...maybe I'll use the collision method to roughly keep track of player's movements!
it's for another kind of project, not exactly a game mod, that's why I was also interested in the system time.

Thank you guys!
I've been working on a system to track the players position - all you have to add to the map is some scripting and ONE script area. It isn't hugely precise (but easily as precise as hundreds of script areas) but is certainly enough! I can post it up if you would like (though i'd have to make some alterations as i have somewhat specialised it for my project).
Sure, I'd love it!
Hey Apjjm any news? Hope is not too hard to change it.

Sorry been a little busy recently - will post it up tomorrow Smile.
Download link:
http://www.mediafire.com/?5ijr4e73j4diidc

Basically, create an entity at any position - make sure it is static.
Go into the code, find the line that read:
Code:
const float[] _ORIGIN = { 0.0f,0.0f ,0.0f };
Put the coords of the entity into that array {X,Y,Z}.

Then call whenever you want to track the player's position the trackingBegin routine. An example of this is included w/ the test map.
Code:
//Create an Array with the position of the player {X,Y,Z}
float[] position = { 10.0f, 0.9f, 13.25f };
//Pass this into trackingBegin along with the origin object name.
trackingBegin(position,"object_origin");

Then, whenever you want to get the player location, do something like:
Code:
float[] p = trackingGetPosition();

Where:
Code:
p[0] = <x coord>
p[1] = <y coord>
p[2] = <z coord>
Note that all positions will be down to the accuracy of the const "_PADDING" - i have set this to "1" in the code as this is what i feel to be a reasonable value (good trade-off of accuracy and not creating a tonne of objects).

Please note, try to use this only when necessary (e.g at the start of where you want position tracking). Adding lots of collide callbacks & attach objects will eventually crash the game (about 10k ish), so don't go overboard with precision and amount of tracking. You can stop tracking by either hitting the object limit "_TRACKMAXNO" or calling:
Code:
trackingEnd();
COOL!!!
Thanks man! I'll try this immediately! Big Grin
Pages: 1 2