ASI extraWS

Savchik Blazer

Но я, мечту свою лелея...
Автор темы
Проверенный
672
292
Версия SA-MP
  1. 0.3.7 (R1)
  2. 0.3.7-R2
  3. 0.3.7-R3
  4. 0.3.7-R4
  5. 0.3DL
  6. 0.3e (R1) / CR-MP
  7. CR-MP 0.3.7
  8. Любая
  9. Другая
обычная экстра только выполненная в .asi формате,
работает на всех версиях сампа/крмп



активация:
F2 (плагин при загрузке включен)

требования:
ASI loader
автор оригинального скрипта : @FYP
переписал на c++ @Savchik Blazer
исходник: клик
 

Вложения

  • extraWS.asi
    8.5 KB · Просмотры: 572
Последнее редактирование:
  • Эм
  • Грустно
Реакции: mramor444 и sаnеk

PanSeek

t.me/dailypanseek
Всефорумный модератор
899
1,742
почему не винпроком? типа того:
C++:
auto extra(const bool state) {
    const unsigned int addr[5] = {
        0x5109ACu,
        0x5109C5u,
        0x5231A6u,
        0x52322Du,
        0x5233BAu
    };

    for (char i = 0; i <= 4; i++) {
        if (state)    *reinterpret_cast<char*>(addr[i]) = 235;
        else        *reinterpret_cast<char*>(addr[i]) = i <= 1 ? 122 : 117;
    }
}

LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    if (uMsg == WM_KEYUP && wParam == VK_F2) {
        extra(*(char*)(0x5109AC) != 235);
    }
    return CallWindowProcA(/* win */, hwnd, uMsg, wParam, lParam);
}

// load:     extra(true)
// unload:     extra(false)
 

kin4stat

mq-team
Всефорумный модератор
2,731
4,693
Держите нормальный код, только без датарейсов и без крашей когда нет клео

C++:
#include <kthook/kthook.hpp>

bool state = false;
kthook::kthook_simple<unsigned(__stdcall*)(void*, unsigned, unsigned, unsigned)> hook{
    0x747EB0,
    [](const auto& hook, void* hwnd, unsigned umsg, unsigned wparam, unsigned lparam) {
        if (uMsg == WM_KEYDOWN && wparam == VK_F2 && !(lparam & KF_REPEAT)) {
            state = !state;
            for (auto value : {0x5109AC, 0x5109C5, 0x5231A6, 0x52322D, 0x5233BA}) {
                unsigned old;
                VirtualProtect(reinterpret_cast<void*>(value), 1, PAGE_READWRITE, &old);
                if (state) *reinterpret_cast<unsigned char*>(value) = 0xEB;
                else *reinterpret_cast<unsigned char*>(value) = (value <= 0x5109C5) ? 0x7A : 0x75;
                VirtualProtect(reinterpret_cast<void*>(value), 1, old, &old);
            }
        }
        return hook.get_trampoline()(hwnd, umsg, wparam, lparam);
    }
}
 

jenees.21

Участник
73
8
Держите нормальный код, только без датарейсов и без крашей когда нет клео

C++:
#include <kthook/kthook.hpp>

bool state = false;
kthook::kthook_simple<unsigned(__stdcall*)(void*, unsigned, unsigned, unsigned)> hook{
    0x747EB0,
    [](const auto& hook, void* hwnd, unsigned umsg, unsigned wparam, unsigned lparam) {
        if (uMsg == WM_KEYDOWN && wparam == VK_F2 && !(lparam & KF_REPEAT)) {
            state = !state;
            for (auto value : {0x5109AC, 0x5109C5, 0x5231A6, 0x52322D, 0x5233BA}) {
                unsigned old;
                VirtualProtect(reinterpret_cast<void*>(value), 1, PAGE_READWRITE, &old);
                if (state) *reinterpret_cast<unsigned char*>(value) = 0xEB;
                else *reinterpret_cast<unsigned char*>(value) = (value <= 0x5109C5) ? 0x7A : 0x75;
                VirtualProtect(reinterpret_cast<void*>(value), 1, old, &old);
            }
        }
        return hook.get_trampoline()(hwnd, umsg, wparam, lparam);
    }
}
не могу пересобрать, пишет kthook не распознан попробуйте добавить phc.h
 
Последнее редактирование: