Jump to content

Problem With Vehicle Spawn


jmwgamingyt

Recommended Posts

Can someone try to identify what causes the game to crash when a vehicle is spawned, the source code is here - https://github.com/jmwgamingyt/JMWs-GTA-V-Mods/blob/eab3c1f857f47a705b0b80beecbc4c21fedbb8bf/Police%20Trainer/Trainer.cs . The vehicle spawning code is :

 

spawnPoint = (Game.LocalPlayer.Character.GetOffsetPositionFront(5F));

new Vehicle(selectedItem.Text, spawnPoint);

 

(selectedItem.Text being the label of a RageNativeUI button)

 

Thanks in advance

Link to comment
Share on other sites

Start a new Gamefiber, like this:
Gamefiber.StartNew(delegate
{
        spawnPoint = (Game.LocalPlayer.Character.GetOffsetPositionFront(5F));
        
new Vehicle(selectedItem.Text, spawnPoint);
});

 

The reason is that the ItemSelected event gets called from the FrameRender, but in the frame render you can't sleep its fiber/thread because it will crash, so you start a new one. The Vehicle constructor calls Model.LoadAndWait() internally, there is when your mod sleeps the frame render fiber/thread. 

There's some similar code in the RAGENativeUI examples: https://github.com/alexguirre/RAGENativeUI/blob/master/Example/MenuExample.cs#L140

Edited by alexguirre
Link to comment
Share on other sites

You may want to check for the sender of the eventargs to confirm it's really one of the vehicle items. This is also done in the ragenativeUI example so you can check the code there.

My YouTube: Click here. 

My Discord Server - https://discord.gg/0taiZvBSiw5qGAXU

Useful post? Let me and others know by clicking the Like button.
Check out my many script modifications! 
Having issues? LSPDFR Troubleshooter by Albo1125.

Link to comment
Share on other sites

22 minutes ago, alexguirre said:

Start a new Gamefiber, like this:
Gamefiber.StartNew(delegate
{
        spawnPoint = (Game.LocalPlayer.Character.GetOffsetPositionFront(5F));
        
new Vehicle(selectedItem.Text, spawnPoint);
});

 

The reason is that the ItemSelected event gets called from the FrameRender, but in the frame render you can't sleep its fiber/thread because it will crash, so you start a new one. The Vehicle constructor calls Model.LoadAndWait() internally, there is when your mod sleeps the frame render fiber/thread. 

There's some similar code in the RAGENativeUI examples: https://github.com/alexguirre/RAGENativeUI/blob/master/Example/MenuExample.cs#L140

 

22 minutes ago, Albo1125 said:

You may want to check for the sender of the eventargs to confirm it's really one of the vehicle items. This is also done in the ragenativeUI example so you can check the code there.

Thanks :)

Edited by jmwgamingyt
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...