Другое С/С++ Вопрос - Ответ

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Для того что бы сделать простенький СХ нужно всего лишь:
1 Узнать адрес скорости
2 Прочитать значение скорости
3 Добавить к нему некоторое значение (Увеличить скорость)
4 Записать полученное значение из пункта 3
Всё?
Да. Собейт в помощь. Там есть СХ
 
  • Нравится
Реакции: nt_qwark

Cookie doge

Новичок
24
8
Каким образом? Подскажи плес
Код:
if (SF->getSAMP()->getVehicles()->iIsListed[carid] != 1) continue;
            if (SF->getSAMP()->getVehicles()->iIsListed2[carid] != 1) continue;
            if (SF->getSAMP()->getVehicles()->pSAMP_Vehicle[carid] == NULL) continue;
            if (SF->getSAMP()->getVehicles()->pSAMP_Vehicle[carid]->pGTA_Vehicle == NULL) continue;



чем отличается указатель от ссылки ?
Что в твоем понятии ссылка?


Мышка всё равно невидимая и независимо от переменной Mouse интерфейс на неё реагирует (ImGUI)
Именю немного вопрос - как сделать так, чтоб мышка открывалась вместе с интерфейсом ImGUI и при этом игровое управление блокировалось? (Чтоб не открывался чат, список игроков, нельзя было бегать и т.п.)

попробуй вместо прессед SF->getGame()->isKeyDown
 
Последнее редактирование:

#Rin

Известный
Всефорумный модератор
1,214
1,036
Да, в любом случае все переменные названы хуй знает как, много капса, всё в духе ебаных плюсов
=> Хуй разберешь
Че сложного в спидхаке?
0xBA18FC // Vehicle CPED Pointer
0x44 // Vehicle Speed X
0x48 // Vehicle Speed Y

Читаешь значение из Vehicle CPED Pointer.
И это значение плюс Vehicle Speed X/Y - будет скорость т/c.
Плюсуешь к ним сколько-то или умножаешь.
И все это в цикле.
 
Последнее редактирование:
  • Нравится
Реакции: checkdasound и nt_qwark

132113123

Известный
7
0
Недавно начал пробовать сделать какой-нибудь чит на С++ для crmp(samp 0.3e). Столкнулся с такой проблемой, не могу сделать активацию функций чита командой. На легке сделал активацию комбинацией клавиш, а вот командой не знаю как. В гугле и на форумах ничего толкового не нашел. Может кто-то подскажет, как сделать такое или скинет простенький исходник такого чита/обучающий урок по этой теме(сам не нашел). Пробовал копаться в исходнике собейта, ничего из этого не вышло, слишком много функций, не понятно что откуда и зачем.
P.S. делаю так:
else if (GetAsyncKeyState(VK_MENU)) {
if (GetAsyncKeyState(VK_DOWN)) *reinterpret_cast<unsigned char *>(SA_Memory::eWeather) += 1;
} Альт+стрелочка вниз = меняется погода.
Хочу сделать чтобы была команда допустим /sweath и id погоды.
Заранее спасибо :)
 

itsOkke

Потрачен
86
38
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Недавно начал пробовать сделать какой-нибудь чит на С++ для crmp(samp 0.3e). Столкнулся с такой проблемой, не могу сделать активацию функций чита командой. На легке сделал активацию комбинацией клавиш, а вот командой не знаю как. В гугле и на форумах ничего толкового не нашел. Может кто-то подскажет, как сделать такое или скинет простенький исходник такого чита/обучающий урок по этой теме(сам не нашел). Пробовал копаться в исходнике собейта, ничего из этого не вышло, слишком много функций, не понятно что откуда и зачем.
P.S. делаю так:
else if (GetAsyncKeyState(VK_MENU)) {
if (GetAsyncKeyState(VK_DOWN)) *reinterpret_cast<unsigned char *>(SA_Memory::eWeather) += 1;
} Альт+стрелочка вниз = меняется погода.
Хочу сделать чтобы была команда допустим /sweath и id погоды.
Заранее спасибо :)
Регистрация SA-MP 0.3.7 R1 команд без использования SAMPFUNCS

CLEO:
// samp 0.3.7 R1
{$cleo .cs}
hex
    00 00
end
wait 5000

if 8AA2: 0@ = load_library "samp.dll" // IF and SET
then 0A93: end_custom_thread
end

var
    0@: integer
end
0AC6: 1@ = label @callback offset
0AC6: 2@ = label @cmdname offset

// write 31@ address to assembly code
1@ += 2
0AC7: 3@ = var 31@ offset                        
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 1
1@ -= 2
31@ = 0 // zeroing 31 var
0AB1: call_scm_func @registerClientCommand 3 dwSAMPHandle: 0@ szCommandName: 2@ CallBack: 1@

while true
    wait 0
    if 31@ == 1
    then
        print "Enable" 1000  
    else
        print "Disable" 1000
    end
end

:callback
hex
    83 35 11 11 11 11 01 // xor     [11111111], 01
    C3 // retn
end

:cmdname
hex
    "test" 0
end

:registerClientCommand // unsigned long dwSAMPHandle, char szCommandName[], CMDPROC CallBack
var
    3@: integer
    4@: integer
end

3@ = 0@ // dwSAMPHandle
3@ += 0x21A0E8 // struct
0A8D: 3@ = read_memory 3@ size 4 virtual_protect 1
4@ = 0@ // dwSAMPHandle
4@ += 0x65AD0 // function

0AA6: call_method 4@ struct 3@ num_params 2 pop 0 2@ 1@
0AB2: ret 0

upd
CLEO:
1@ += 9
0AC7: 3@ = var 30@ offset                        
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 1
1@ -= 9

1@ += 15
0AC7: 3@ = var 31@ offset                        
0A8C: write_memory 1@ size 4 value 3@ virtual_protect 1
1@ -= 15


:callback
hex
    51                      // push     ecx
    56                      // push     esi
    8B 74 24 0C             // mov     esi, [esp+0Ch]
    89 34 25 11 11 11 11    // mov     [11111111], esi
    83 35 11 11 11 11 01    // xor     [11111111], 01
    5E                      // pop     esi
    59                      // pop     ecx
    C3 // retn
end

просто адреса меняешь и всё готово
 

Dark_Knight

Me, me and me.
Друг
4,062
2,077
Зачем samp.dll вообще юзать? :facepalm2:
Локального хендла кара хватит для работы с головой.
 

iAmerican

Известный
Друг
615
257
Да, в любом случае все переменные названы хуй знает как, много капса, всё в духе ебаных плюсов
=> Хуй разберешь
Ну если ты его открывал 1 раз , то конечно хуй разберешь. Там достаточно всё понятно и по полочкам как раз.
Смотри сурс сф в моей тебе по сх и переводи куда тебе там надо.
Там как раз и есть движение по направлению машины