Quantcast
Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
    1. Welcome to GTAForums!   (84,693 visits to this link)

    2. News

    1. GTA Online

      1. Find Lobbies & Players
      2. Guides & Strategies
      3. Vehicles
      4. Content Creator
      5. Help & Support
    2. Crews

      1. Events
      2. Recruitment
    1. Grand Theft Auto Series

    2. GTA Next

    3. GTA V

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

      1. Episodes from Liberty City
      2. Multiplayer
      3. Guides & Strategies
      4. Help & Support
      5. GTA Mods
    5. GTA Chinatown Wars

    6. GTA Vice City Stories

    7. GTA Liberty City Stories

    8. GTA San Andreas

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

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

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

      1. GTA Advance
      2. GTA 2
      3. GTA
    12. Wiki

      1. Merchandising
    1. GTA Modding

      1. GTA V
      2. GTA IV
      3. GTA III, VC & SA
      4. Tutorials
    2. Mod Showroom

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

      1. DYOM
      2. OpenIV
      3. GTA: Underground
      4. GTA: Liberty City
      5. GTA: State of Liberty
    1. Red Dead Redemption 2

    2. Red Dead Redemption

    3. Rockstar Games

    1. Off-Topic

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

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

    2. Site 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;	}}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

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