16.11.2018, 20:35
(
Последний раз редактировалось DarkBr; 18.11.2018 в 21:51.
)
Is it possible to recreate a kind of "train" with a random object that follows the same route as the San Andreas railway?
Of course it is possible. If it's an object that you can use as train (not an actual train vehicle) you can move it wherever you want.
The coords of the original train lines are somewhere in the data/maps directory. If you want to build your own railroad track you can make a path for it. |
I did some research and was able to detect the use of the files of rail in GTA
Grand Theft Auto/data/Paths From what I saw: the first line serves to indicate the number of cordenades and the last line is totally empty tracks.dat: The default path around San Andreas, containing 926 rows of coordinates XYZ & 0 at the end (I do not know what that 0 is for) tracks2.dat: Route between the San Fierro station and the ocean port tracks3.dat: it's the San Fierro cable car tracks4.dat: It is only for missions I imagine it is possible to make an object follow the course using the original data of "tracks.dat" I think of creating a three-dimensional Array with the coordinates X, Y and Z (tracks.dat) And make the object move at each point to point. Is it possible? |
Yes.
You can use sscanf to parse the files easily. Either load them everytime you start the server into an array, or output the data as array to put it into your mode directly (the first will make it easier to edit, but considering the track won't change you will probably never need to do that anyway). Then you can just create an object and move it from node to node. May be a bit hard to find a good object for it, but the movement etc is really easy to do. You also need to calculate the object's rotation for each node. So if the object moves for example from Node 40 to 41 you can use atan2 and acos to get the angle between the coords of those nodes. I can give you an example for that if you wish. One thing however is that trains (the vehicles) move on the track by two axes per wagon. So each end of the train wagon follows the track just like a real train. An object just has one axis to rotate around, which is most likely the center. So the rotation while moving might look a bit wrong compared to actual trains. This is fixable but a bit tricky since you need to rearrange the nodes to make the rotation happen only on the actual turn, not while approaching the turn. The easiest fix would be doubling the amount of nodes, so that there is one node in between two turns and one exactly where the rail bends. But I'd do that later, and only if the current result is not satisfying enough. |