Как я могу обновлять sh значения переменных каждую секунду в C# с помощью Scripthookvdo tnet для GTA5 - PullRequest
0 голосов
/ 06 августа 2020

Итак, у меня есть 5 переменных

string name, int health, bool alarm, float someFloat, int dirt

In a void (void VehicleInfo())

Как я могу заставить эти переменные обновлять sh каждые второй? Я ищу ответ несколько дней и ничего не могу найти ..

void VehicleInfo(){

        string name = Game.Player.Character.CurrentVehicle.DisplayName;
        int health = Game.Player.Character.CurrentVehicle.Health;
        bool alarm = Game.Player.Character.CurrentVehicle.AlarmActive;
        float someFloat = Game.Player.Character.CurrentVehicle.DirtLevel;
        int dirt = (int)Math.Round(someFloat);

       

        UIMenu VehInfo = modMenuPool.AddSubMenu(mainMenu, "Vehicle Info");

        UIMenuItem Name;
        UIMenuItem Health;
        UIMenuItem Dirt;
        UIMenuItem Alarm;

        Name = new UIMenuItem("Vehicle Name: " + name);
        VehInfo.AddItem(Name);
        
        Health = new UIMenuItem("Vehicle Health: " + health);
        VehInfo.AddItem(Health);

        Dirt = new UIMenuItem("Vehicle Dirt Level: " + dirt);
        VehInfo.AddItem(Dirt);

        Alarm = new UIMenuItem("Does This Vehicle Have Alarm: " + alarm);
        VehInfo.AddItem(Alarm);`

Мне нужно обновить sh переменные из значений игры

1 Ответ

0 голосов
/ 06 августа 2020

Посмотрите примеры на github

Вы можете наследовать от Script

Затем в конструкторе вы указываете интервал (каждые X миллисекунд) и обработчик события, когда происходит тик.

public YourClass()
{
   Tick += OnTick;
   Interval = 1000; // Every Second 
}

// This method is called every 1 second, based on the Interval
private void OnTick(object sender, EventArgs e)
{
   string name = Game.Player.Character.CurrentVehicle.DisplayName;
   int health = Game.Player.Character.CurrentVehicle.Health;
   bool alarm = Game.Player.Character.CurrentVehicle.AlarmActive;
   float someFloat = Game.Player.Character.CurrentVehicle.DirtLevel;
   int dirt = (int)Math.Round(someFloat);
   // The rest of your code
}

См. исходный код класса script , чтобы лучше понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...