Jump to content
    1. Welcome to GTAForums!

    1. GTANet.com

    1. GTA Online

      1. The Criminal Enterprises
      2. Updates
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Red Dead Online

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

    1. Grand Theft Auto Series

      1. Bugs*
      2. St. Andrews Cathedral
    2. GTA VI

    3. GTA V

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

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

      1. Classic GTA SA
      2. Guides & Strategies
      3. Help & Support
    6. GTA Vice City

      1. Classic GTA VC
      2. Guides & Strategies
      3. Help & Support
    7. GTA III

      1. Classic GTA III
      2. Guides & Strategies
      3. Help & Support
    8. Portable Games

      1. GTA Chinatown Wars
      2. GTA Vice City Stories
      3. GTA Liberty City Stories
    9. Top-Down Games

      1. GTA Advance
      2. GTA 2
      3. GTA
    1. Red Dead Redemption 2

      1. PC
      2. Help & Support
    2. Red Dead Redemption

    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. Design Your Own Mission
      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
    1. Announcements

    2. Support

    3. Suggestions

*DO NOT* SHARE MEDIA OR LINKS TO LEAKED COPYRIGHTED MATERIAL. Discussion is allowed.

[C#] Timer Problem


Kolopsel
 Share

Recommended Posts

Hello, ive got a problem with my Timer.

It is somehow not beeing executed by the Script.

Can you please tell me what i am doing wrong ?

This is my Code :

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using GTA;using GTA.Native;using System.Windows.Forms;using System.Timers;namespace Example{    public class Example : Script    {        public Example()        {            Tick += onTick;            KeyDown += onKeyDown;        }        private void onTick(object sender, EventArgs e)        {        }        private void onKeyDown(object sender, KeyEventArgs e)        {        }        public class Timer        {            private static System.Timers.Timer aTimer;            public static void Main()            {                // Create a timer and set a two second interval.                aTimer = new System.Timers.Timer();                aTimer.Interval = 2000;                // Hook up the Elapsed event for the timer.                 aTimer.Elapsed += OnTimedEvent;                // Have the timer fire repeated events (true is the default)                aTimer.AutoReset = true;                // Start the timer                aTimer.Enabled = true;            }            private static void OnTimedEvent(Object source, System.Timers.ElapsedEventArgs e)            {                UI.Notify("IT WORKS !");            }                    }  }

Thank you for reading !

Link to comment
Share on other sites

You've create a class called Timer, in that you have a System.Timer but you never create an instance of your Timer class to initiate the System.Timer.

 

You also have the event handler inside the Timer class (that never gets instantiated). I would advise re-reading on how System Timers work, because you have a lot of crossed concepts here that are tripping over each other.

Link to comment
Share on other sites

Ok, now the Timer "kinda" works, but after the Timer perfomed the Task it crashes.

 

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using GTA;using GTA.Native;using System.Windows.Forms;using System.Timers;namespace Example{    public class Example : Script    {        public Example()        {            Tick += onTick;            KeyDown += onKeyDown;        }        private void onTick(object sender, EventArgs e)        {        }        private void onKeyDown(object sender, KeyEventArgs e)        {            System.Timers.Timer timer = new System.Timers.Timer(5000); // create new instance of a timer            timer.Start(); // start the timer            timer.Elapsed += (Object source, System.Timers.ElapsedEventArgs d) =>            {                UI.Notify("It Works");            };        }                   }}

Thank you for reading !

Edited by Kolopsel
Link to comment
Share on other sites

I don't mean this to sound rude, but how much C# programming have you done before? It seems like you are jumping into scripting without the fundamental basics in C# practices and that is going to make things twice as difficult as modding inside a game already is.

 

You are doing things in the onKeyDown() that shouldn't really be done in there and that might be what is causing the problems. Spend some time getting to grips with C# basics, like how and where to declare variables/fields/properties. Learn to understand scope and how to assign event handlers.

 

But do all that in simple WinForms applications, where you can debug code outside a game environment and see what is actually happening. Once you have the basics under control, then move on to scripting mods.

 

Of course, you are free to ignore all this and stick with jumping in at the deep end but as someone who has spent 30 years as a game developer, I wouldn't advise it to be honest. You might never create a usable winforms application but it's a much more controlled environment to learn in. If your winform crashes, it simply complains and lets you try again. When your script crashes the game, you could end up having to reload the game, which can add to the frustration.

 

I have a small test application that has a few buttons, a couple of labels and some text boxes and all I do, is change what those buttons do when I want to test something. Sometimes I need to see how data is getting moved about and that's easy to do in an application.

Link to comment
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
 Share

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