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

    1. Red Dead Redemption 2

      1. Gameplay
      2. Missions
      3. Help & Support
    2. Red Dead Online

      1. Gameplay
      2. Find Lobbies & Outlaws
      3. Help & Support
    1. Crews & Posses

      1. Recruitment
    2. Events

    1. GTA Online

      1. Arena War
      2. After Hours
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Grand Theft Auto Series

    3. GTA Next

    4. GTA V

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

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

    7. GTA Vice City Stories

    8. GTA Liberty City Stories

    9. GTA San Andreas

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

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

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

      1. GTA Advance
      2. GTA 2
      3. GTA
    13. 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. 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. News

    2. Forum Support

    3. 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

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  

  • 2 Users Currently Viewing
    0 members, 0 Anonymous, 2 Guests

×
×
  • Create New...

Important Information

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