ASI TimeWeatherChanger

kiselqa

Известный
Автор темы
10
8
Версия SA-MP
  1. 0.3.7 (R1)
Смена погоды и времени на asi.

Большое спасибо @FYP и @SR_team за помощь.


Активация:

Погода
[ LAlt + ↑ ] и [ LAlt + ↓ ]
(+1 к значению)ㅤ(-1 от значения)

Время
[ LAlt + ← ] и [ LAlt + → ]
ㅤㅤ (+1 час)ㅤㅤㅤㅤㅤ(-1 час)



При смене значений возможны моргания текстур. Данный плагин не рекомендуется к использованию людям с эпилепсией. В дальнейшем постараюсь исправить.




Код:
main.cpp:
#include <Windows.h>
#include <process.h>
#include <string>
#include "main.h"

std::string GetterOutput;
int TimeValue = 0;

void __cdecl MainThread(void* pArg)
{
    while (true)
    {
        Sleep(1); //Thx FYP <3
        Offset_TimeSA = TimeValue;
        if ((GetAsyncKeyState(VK_LMENU)) && (GetAsyncKeyState(VK_UP)))
        {
            if (WeathSA >= 45) { AddMessageJumpQ((char*)"Weather now: 45", 100, NULL, false); }
            else
            {
                WeathSA += 1;
                GetterOutput = "Weather now: " + std::to_string(WeathSA);
                AddMessageJumpQ((char*)&GetterOutput, 100, NULL, false);
                Sleep(100);
            }
        }

        if ((GetAsyncKeyState(VK_LMENU)) && (GetAsyncKeyState(VK_DOWN)))
        {
            if (WeathSA <= 0){AddMessageJumpQ((char*)"Weather now: 0", 100, NULL, false);}
            else
            {
                WeathSA -= 1;
                GetterOutput = "Weather now: " + std::to_string(WeathSA);
                AddMessageJumpQ((char*)&GetterOutput, 100, NULL, false);
                Sleep(100);
            }
        }

        if ((GetAsyncKeyState(VK_LMENU)) && (GetAsyncKeyState(VK_LEFT)))
        {
            if (TimeValue == 23) {AddMessageJumpQ((char*)"Time now: 23", 100, NULL, false);}
            else
            {
                TimeValue += 1;
                GetterOutput = "Time now: " + std::to_string(TimeValue);
                AddMessageJumpQ((char*)&GetterOutput, 100, NULL, false);
                Sleep(100);
            }
        }

        if ((GetAsyncKeyState(VK_LMENU)) && (GetAsyncKeyState(VK_RIGHT)))
        {
            if (TimeValue == 0){AddMessageJumpQ((char*)"Time now: 0", 100, NULL, false);}
            else
            {
                TimeValue -= 1;
                GetterOutput = "Time now: " + std::to_string(TimeValue);
                AddMessageJumpQ((char*)&GetterOutput, 100, NULL, false);
                Sleep(100);
            }
        }
    }
}

BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ PVOID lpvReserved)
{
    if (fdwReason == DLL_PROCESS_ATTACH) _beginthread(MainThread, NULL, nullptr);
    return TRUE;
}


main.h:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0
#define Offset_TimeSA *(char*)0x00B70153
#define WeathSA *(char*)0xC81320

void AddMessageJumpQ(PCHAR text, UINT time, USHORT flag, bool bPreviousBrief)
{
    ((void(__cdecl*)(PCHAR, UINT, USHORT, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
 

Вложения

  • TWC.asi
    13 KB · Просмотры: 18
Последнее редактирование:

diva

Известный
248
44
можете ли вы каким-то образом изменить клавиши с цифровой панели 1 на кнопки?