- 11
 
- 8
 
- Версия SA-MP
 - 
	
		
			
- 0.3.7 (R1)
 
 
Смена погоды и времени на asi.
Большое спасибо @FYP и @SR_team за помощь.
Активация:
Погода
[ LAlt + ↑ ] и [ LAlt + ↓ ]
(+1 к значению)ㅤ(-1 от значения)
Время
[ LAlt + ← ] и [ LAlt + → ]
ㅤㅤ (+1 час)ㅤㅤㅤㅤㅤ(-1 час)
При смене значений возможны моргания текстур. Данный плагин не рекомендуется к использованию людям с эпилепсией. В дальнейшем постараюсь исправить.
Код:
	
	
		
			
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		
	
	
	
		
			
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
		
	
			
			Большое спасибо @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);
}
	Вложения
			
				Последнее редактирование: