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. Diamond Casino & Resort
      2. DLC
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. Help & Support
    2. Grand Theft Auto Series

    3. GTA 6

    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  
Kolopsel

[C#] Timer Problem

Recommended Posts

Kolopsel

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 !

Share this post


Link to post
Share on other sites
Guest

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.

Share this post


Link to post
Share on other sites
Kolopsel

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

Share this post


Link to post
Share on other sites
Guest

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.

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.