Skip to content

Instantly share code, notes, and snippets.

@udoprog
Created April 14, 2019 01:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save udoprog/7642e8f07492faadf19497c1679817de to your computer and use it in GitHub Desktop.
Save udoprog/7642e8f07492faadf19497c1679817de to your computer and use it in GitHub Desktop.
using System;
using GTA;
using GTA.Native;
using System.Windows.Forms;
namespace Chaos
{
enum Speed
{
Normal,
Slow1,
Slow2,
Slow3,
}
public class SlowDown : Script
{
Speed speed = Speed.Normal;
public SlowDown()
{
this.KeyDown += OnKeyDown;
}
private void OnKeyDown(object sender, KeyEventArgs e)
{
Speed? update = null;
if (e.KeyCode == Keys.K)
{
switch (speed)
{
case Speed.Normal:
break;
case Speed.Slow1:
update = Speed.Normal;
break;
case Speed.Slow2:
update = Speed.Slow1;
break;
case Speed.Slow3:
update = Speed.Slow2;
break;
}
}
if (e.KeyCode == Keys.J)
{
switch (speed)
{
case Speed.Normal:
update = Speed.Slow1;
break;
case Speed.Slow1:
update = Speed.Slow2;
break;
case Speed.Slow2:
update = Speed.Slow3;
break;
case Speed.Slow3:
break;
}
}
if (update.HasValue)
{
speed = update.Value;
float scale = 1.0f;
switch (speed)
{
case Speed.Normal:
break;
case Speed.Slow1:
scale = 0.5f;
break;
case Speed.Slow2:
scale = 0.25f;
break;
case Speed.Slow3:
scale = 0.125f;
break;
}
UI.ShowSubtitle("Speed: " + scale + "X");
Function.Call(Hash.SET_TIME_SCALE, scale);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment