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 Cayo Perico Heist
      2. The Diamond Casino Heist
      3. Find Lobbies & Players
      4. Guides & Strategies
      5. Vehicles
      6. Content Creator
      7. 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. Help & Support
    2. Red Dead Redemption

    1. Grand Theft Auto Series

    2. GTA VI

      1. St. Andrews Cathedral
    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. Guides & Strategies
      2. Help & Support
    6. GTA Vice City

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

      1. Guides & Strategies
      2. 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. 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
    3. Gangs

    1. Announcements

    2. Support

    3. Suggestions

Sign in to follow this  
Mornedil

[SOLVED] Drawing text on screen? (c#, scriptHookVDotNet)

Recommended Posts

Mornedil

How can I draw text on the UI for an indefinite amount of time?

I'm coding in C# and using ScriptHookVDotNet.

 

What I've tried so far:

Spoiler

 

 

I've tried creating a text element:

var pos = new PointF(0f, 0f);
testText = new TextElement("Hello", pos, 5f, Color.White, GTA.UI.Font.HouseScript, Alignment.Center, true, true);
testText.Enabled = true;

The above code creates the text element, but it doesn't draw it on the screen.

The reference description for TextElement.Enabled is "Gets or sets a value indicating whether this GTA.UI.TextElement will be drawn.",

but setting it to enabled still doesn't make it show on the screen.

 

So I tried this:

void OnTick(object sender, EventArgs e)
    {
        testText.Draw();
    }

But this causes the text to flash on the screen, because TextElement.Draw() only draws the text for 1 game frame at a time, so this doesn't work out for me (and I don't want the tick running more often than it already does).

 

 

 

Edited by Mornedil
Solved

Share this post


Link to post
Share on other sites
Tanjitsu

You do require all of the code you posted together to function.
You can use testText.Enabled to enable or disable the element.
But you have to call testText.Draw() every frame you want it displayed.


If it is flashing then your Script.Interval is too long.

If you want your main Script too be on a longer interval, then you need to add another script to control the UI.
Large mods with multiple system do not run from just 1 script.

 

I personally have 
1 Script for Drawing the UI (every frame).
1 Script for updating the UI (every 500ms).
1 Script for my main systems (every 1 second).
ect ect.

 

If you are using ScriptHookDotNet V3 then i added a function for you too be able to create dynamic scripts.

If you look at ScriptInstances it will show how you can create and pause / dispose of scripts on the fly.

If you are using ScriptInstances then you can use 1 main script which then creates and operates multiple other scripts.

 

 

Edited by Tanjitsu
  • Like 1

Share this post


Link to post
Share on other sites
LeeC22
On 2/7/2020 at 12:06 AM, Tanjitsu said:

Large mods with multiple system do not run from just 1 script.

I have many large mods with multiple systems that run from a single script, including ones with full GUI interfaces. If you do it properly, it's never a problem.Back in the 1980's, there was just the CPU and no threads, yet there were some very complex games... like Elite for instance. I learned many tricks back then that are still valid today. All you need is a proper set of manager classes and game states, and correct time management to update those classes when required... but this is where a lot of people go wrong.

 

If you have scripts that only update at periodic intervals, you risk causing performance spikes, which can induce stutter. Update every frame, keep the load constant and assign update tasks to your manager classes as required. Balanced performance is better than up and down spikes. Create timer classes that fire off events to update things that only need to happen occasionally if required but don't let them suddenly do a large number of tasks that could have been spread across multiple frames.

 

If every mod starts creating multiple script instances, the game is going to grind to a halt under the load. There are simple business mods out there that are the equivalent of running 22 mods, because of multiple script instances. That's madness when you can do it more efficiently with just 1 script and properly managed classes. As a result, you can only run 2 or 3 of them together, when you could run them all from a single script with no issues.

 

I did a test mod with 10 hypothetical businesses, each with 10 locations, all with full distance checking and prioritised processing that had no visible impact on performance. There's a page on my website here, that explains it in more detail. http://gtavmodding.digital-essence.co.uk/modpages/Time_Management.html

Edited by LeeC22

Share this post


Link to post
Share on other sites
Tanjitsu

I also was coding in the 80's and things have moved on.
The are benefits to using both methods.
I personally have 31 instances + alot of other mods.... this has little effect on performance as they are managed.

I require no over complex system to control them, its simple and effective.

This all comes down to how well the mod is written and how it handles everything it tries too do.
70% of the mods i de-complied from gta5-mods.com  where not written by coders and do have many faults or things which can be improved.
But this is a game and these are people having fun, not writing paid software.

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.