Указатель может быть нулевым. Ссылка никогда не может быть нулевой.чем отличается указатель от ссылки ?
Указатель может быть нулевым. Ссылка никогда не может быть нулевой.чем отличается указатель от ссылки ?
Бля ты видел сурс собейта? Это грязный ад программиста блятьДа. Собейт в помощь. Там есть СХ
ctrl + F пробовал?Бля ты видел сурс собейта? Это грязный ад программиста блять
Да, в любом случае все переменные названы хуй знает как, много капса, всё в духе ебаных плюсовctrl + F пробовал?
Че сложного в спидхаке?Да, в любом случае все переменные названы хуй знает как, много капса, всё в духе ебаных плюсов
=> Хуй разберешь
Недавно начал пробовать сделать какой-нибудь чит на С++ для 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
А ну да забыл, это же адрес GTA.Зачем samp.dll вообще юзать? :facepalm2:
Локального хендла кара хватит для работы с головой.
Ну если ты его открывал 1 раз , то конечно хуй разберешь. Там достаточно всё понятно и по полочкам как раз.Да, в любом случае все переменные названы хуй знает как, много капса, всё в духе ебаных плюсов
=> Хуй разберешь
ты мб с клео путаешь? Если нет - то на какие менять?просто адреса меняешь и всё готово