multitheftauto / mtasa-blue

Multi Theft Auto is a game engine that incorporates an extendable network play element into a proprietary commercial single-player game.
https://multitheftauto.com
GNU General Public License v3.0
1.38k stars 424 forks source link

Add ropes #2488

Open PlatinMTA opened 2 years ago

PlatinMTA commented 2 years ago

Is your feature request related to a problem? Please describe. In the vanilla game there is a rope system already implemented. It is used with magnets on the cranes and with a Leviathan on one mission: https://youtu.be/hl48M4Asiqo?t=45

It should be possible to add this functionality into MTA, and it should be faster than the lua alternatives you can create.

Describe the solution you'd like Add a function to create a rope.

Describe alternatives you've considered None. I am not sure how difficult would be to implement this, I am not even sure if it's possible.

Additional context

lopezloo commented 2 years ago

I was working on this at some point. https://www.youtube.com/watch?v=mbAYMzY_eI4

I have working code with 8 streamed ropes and some functions. Never submitted PR because I wasn't sure if anyone would actually need it. Also, I didn't have tested how does it would behave with multiple players.

The 8 streamed ropes limit could be lifted by reallocating ropes array.

gta191977649 commented 2 years ago

I've also done something similar, https://www.youtube.com/watch?v=pS7ATKOmg9A https://www.youtube.com/watch?v=WCyjRVE2w5M A trick you can use is using a sandbag attach to the vehicle and make it transparent, in this case, you will get spring physics

PlatinMTA commented 2 years ago

I've also done something similar, https://www.youtube.com/watch?v=pS7ATKOmg9A https://www.youtube.com/watch?v=WCyjRVE2w5M A trick you can use is using a sandbag attach to the vehicle and make it transparent, in this case, you will get spring physics

Using a punchingbag (1985) is really clever it would never have occured to me.

lopezloo commented 2 years ago

I made Lua implementation (based on this article): https://youtu.be/vXTj-YIlMKc. Rope physics alone already works better than SA one but entity attachement isn't quite working properly. It doesn't interact with world the same way SA rope would. Needs some tweaking.

lopezloo commented 2 years ago

It's possible to create SA rope by creating object with ID 1382. It spawns with functional rope and magnet which can pick up vehicle. But you can't really manipulate it as MTA lack functionality.

It's possible via this PR: https://github.com/multitheftauto/mtasa-blue/pull/1868 I didn't even know until now. @TheNormalnij

Personally I would disable all SA rope related stuff (so it will be possible to create this object but it won't create rope with magnet). It's unfinished in current state as you can't manipulate it and there is 8 ropes limit.