Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. The Diamond Casino Heist
      2. Find Lobbies & Players
      3. Guides & Strategies
      4. Vehicles
      5. Content Creator
      6. Help & Support
    2. Red Dead Online

      1. Frontier Pursuits
      2. Find Lobbies & Outlaws
      3. Help & Support
    3. Crews

    1. Red Dead Redemption 2

      1. PC
      2. Gameplay
      3. Missions
      4. Help & Support
    2. Red Dead Redemption

    1. Grand Theft Auto Series

    2. GTA 6

      1. St Andrews Cathedral
    3. GTA V

      1. PC
      2. Guides & Strategies
      3. Help & Support
    4. GTA IV

      1. The Lost and Damned
      2. The Ballad of Gay Tony
      3. Guides & Strategies
      4. Help & Support
    5. GTA Chinatown Wars

    6. GTA Vice City Stories

    7. GTA Liberty City Stories

    8. GTA San Andreas

      1. Guides & Strategies
      2. Help & Support
    9. GTA Vice City

      1. Guides & Strategies
      2. Help & Support
    10. GTA III

      1. Guides & Strategies
      2. Help & Support
    11. Top Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. GTA Mods

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Red Dead Mods

      1. Documentation
    3. Mod Showroom

      1. Scripts & Plugins
      2. Maps
      3. Total Conversions
      4. Vehicles
      5. Textures
      6. Characters
      7. Tools
      8. Other
      9. Workshop
    4. Featured Mods

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Rockstar Games

    2. Rockstar Collectors

    1. Off-Topic

      1. General Chat
      2. Gaming
      3. Technology
      4. Movies & TV
      5. Music
      6. Sports
      7. Vehicles
    2. Expression

      1. Graphics / Visual Arts
      2. GFX Requests & Tutorials
      3. Writers' Discussion
      4. Debates & Discussion
    3. Gangs

    1. Announcements

    2. Support

    3. Suggestions

Sign in to follow this  
VDH-SOFT

C# Best practice for a timer

Recommended Posts

VDH-SOFT

Hi,

 

I have seen multiple older topics about using Timers in a C# code. But it doesn't work well for me. When I debug my code the null reference exception occurs.

 

I don't know what the best practice is for setting a timer in the code, everyone have different solutions. What I try to do is the next:

 

I have a mod menu (nativeUI). When I save my settings from the menu another method from another static class will be called AmbientManager.EnableAmbients();

 

This method needs to set the timer to start and excecute another void. Sometimes it works and the game spawns over 1000 of cars in a second, but I have the timer set to 5 seconds per spwaning vehicle..

 

Next code I have at the moment:

 

static System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();

public AmbientManager()
{
t.Interval = 5000;
t.Tick += new EventHandler(SearchForPoliceCars);
t.Tick += SearchForPoliceCars;
}
private void SearchForPoliceCars(object sender, EventArgs e)
{
Vehicle test = World.CreateVehicle("NINEF", new GTA.Math.Vector3(Game.Player.Character.Position.X, Game.Player.Character.Position.Y, Game.Player.Character.Position.Z));
}
Now it says the object null reference exception, on the Vehicle. But I think it's the timer that causes the error becasue on a keydown the vehicle will spawn.
In another topic I saw that t.Tick was only Tick without the "t." -> When I do that, the game will crash and spawn over 1000 of cars in a second..

 

Share this post


Link to post
Share on other sites
Jitnaught

It's best to keep all GTA-related code within the Tick, KeyDown, and KeyUp events. There's two ways you could do what you're wanting:

public AmbientManager(){	Interval = 5000;	Tick += SearchForPoliceCars;}private void SearchForPoliceCars(object sender, EventArgs e) //all code will be called every 5 seconds{	 Vehicle test = World.CreateVehicle("NINEF", new GTA.Math.Vector3(Game.Player.Character.Position.X, Game.Player.Character.Position.Y, Game.Player.Character.Position.Z));}

or

public AmbientManager(){	Interval = 100;	Tick += SearchForPoliceCars;}int lastTime = 0;private void SearchForPoliceCars(object sender, EventArgs e){	if (Game.GameTime > lastTime + 5000) //only some code will be called every 5 seconds. you can still  have other code that's run faster	{	 	Vehicle test = World.CreateVehicle("NINEF", new GTA.Math.Vector3(Game.Player.Character.Position.X, Game.Player.Character.Position.Y, Game.Player.Character.Position.Z));		lastTime = Game.GameTime;	}}
  • Like 2

Share this post


Link to post
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.

Sign in to follow this  

  • 1 User Currently Viewing
    0 members, 0 Anonymous, 1 Guest

×
×
  • Create New...

Important Information

By using GTAForums.com, you agree to our Terms of Use and Privacy Policy.