Tzeentch Опубликовано 30 марта, 2021 Поделиться Опубликовано 30 марта, 2021 Ковырял пиратку. Ломалось легко) Репак от "dixen18". Там патроны получилось сделать вообще патчем. Ломал броню просто так. Отключение урона здоровью достаточно. На здоровье фильтр понадобился. На врагов та же инструкция. Протестировал пару уровней полёт нормальный. NoDamagePlayerHealth: Обнуляет любой урон здоровью. Спойлер { Game : SeriousSam.exe Version: Date : 2021-03-29 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(NoDamagePlayerHealth,Engine.dll,D9 9E CC 00 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: ///фильтр cmp [esi+000000CC+18],#1 ///id игрока je return ///перепрыгиваем отнимание если игрок fstp dword ptr [esi+000000CC] jmp return NoDamagePlayerHealth: jmp newmem nop return: registersymbol(NoDamagePlayerHealth) [DISABLE] NoDamagePlayerHealth: db D9 9E CC 00 00 00 unregistersymbol(NoDamagePlayerHealth) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Engine.CLiveEntity::ReceiveDamage+3C Engine.CLiveEntity::ReceiveDamage+1C: 8B F1 - mov esi,ecx Engine.CLiveEntity::ReceiveDamage+1E: 85 F6 - test esi,esi Engine.CLiveEntity::ReceiveDamage+20: 89 75 F0 - mov [ebp-10],esi Engine.CLiveEntity::ReceiveDamage+23: 74 03 - je Engine.CLiveEntity::ReceiveDamage+28 Engine.CLiveEntity::ReceiveDamage+25: FF 46 18 - inc [esi+18] Engine.CLiveEntity::ReceiveDamage+28: 57 - push edi Engine.CLiveEntity::ReceiveDamage+29: D9 86 CC 00 00 00 - fld dword ptr [esi+000000CC] Engine.CLiveEntity::ReceiveDamage+2F: D8 65 10 - fsub dword ptr [ebp+10] Engine.CLiveEntity::ReceiveDamage+32: 8D 4D C4 - lea ecx,[ebp-3C] Engine.CLiveEntity::ReceiveDamage+35: C7 45 FC 00 00 00 00 - mov [ebp-04],00000000 // ---------- INJECTING HERE ---------- Engine.CLiveEntity::ReceiveDamage+3C: D9 9E CC 00 00 00 - fstp dword ptr [esi+000000CC] // ---------- DONE INJECTING ---------- Engine.CLiveEntity::ReceiveDamage+42: E8 B9 8B 03 00 - call Engine.EDamage::EDamage Engine.CLiveEntity::ReceiveDamage+47: 8B 7D 08 - mov edi,[ebp+08] Engine.CLiveEntity::ReceiveDamage+4A: C6 45 FC 01 - mov byte ptr [ebp-04],01 Engine.CLiveEntity::ReceiveDamage+4E: 85 FF - test edi,edi Engine.CLiveEntity::ReceiveDamage+50: 74 03 - je Engine.CLiveEntity::ReceiveDamage+55 Engine.CLiveEntity::ReceiveDamage+52: FF 47 18 - inc [edi+18] Engine.CLiveEntity::ReceiveDamage+55: 8B 45 CC - mov eax,[ebp-34] Engine.CLiveEntity::ReceiveDamage+58: 85 C0 - test eax,eax Engine.CLiveEntity::ReceiveDamage+5A: 8B C8 - mov ecx,eax Engine.CLiveEntity::ReceiveDamage+5C: 74 14 - je Engine.CLiveEntity::ReceiveDamage+72 } InfiniteArmor: При уроне броне заносится макс значение. Спойлер { Game : SeriousSam.exe Version: Date : 2021-03-29 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(InfiniteArmor,Entities.dll,D9 96 70 03 00 00) // should be unique alloc(newmem,$1000) label(code) label(return) newmem: code: ///[esi+00000370+C] ///[обычно] макс значение брони(float)100.0 fst dword ptr [esi+00000370] mov [esi+00000370],(float)200.0 ///[экстра] может быть и (float)200.0 максимум jmp return InfiniteArmor: jmp newmem nop return: registersymbol(InfiniteArmor) [DISABLE] InfiniteArmor: db D9 96 70 03 00 00 unregistersymbol(InfiniteArmor) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: Entities.CPlayer::ReceiveDamage+16B Entities.CPlayer::ReceiveDamage+146: 8B 4D 10 - mov ecx,[ebp+10] Entities.CPlayer::ReceiveDamage+149: 89 4D F0 - mov [ebp-10],ecx Entities.CPlayer::ReceiveDamage+14C: EB 42 - jmp Entities.CPlayer::ReceiveDamage+190 Entities.CPlayer::ReceiveDamage+14E: D9 45 10 - fld dword ptr [ebp+10] Entities.CPlayer::ReceiveDamage+151: D8 0D 34 94 3E 60 - fmul dword ptr [Entities.CPlayerWeapons::`vftable'+290] Entities.CPlayer::ReceiveDamage+157: D9 45 10 - fld dword ptr [ebp+10] Entities.CPlayer::ReceiveDamage+15A: D8 E1 - fsub st(0),st(1) Entities.CPlayer::ReceiveDamage+15C: D9 5D F0 - fstp dword ptr [ebp-10] Entities.CPlayer::ReceiveDamage+15F: D8 AE 70 03 00 00 - fsubr dword ptr [esi+00000370] Entities.CPlayer::ReceiveDamage+165: D8 15 EC 89 3E 60 - fcom dword ptr [Entities.CReminder::`vftable'+118] // ---------- INJECTING HERE ---------- Entities.CPlayer::ReceiveDamage+16B: D9 96 70 03 00 00 - fst dword ptr [esi+00000370] // ---------- DONE INJECTING ---------- Entities.CPlayer::ReceiveDamage+171: DF E0 - fnstsw ax Entities.CPlayer::ReceiveDamage+173: F6 C4 01 - test ah,01 Entities.CPlayer::ReceiveDamage+176: 74 16 - je Entities.CPlayer::ReceiveDamage+18E Entities.CPlayer::ReceiveDamage+178: D9 45 F0 - fld dword ptr [ebp-10] Entities.CPlayer::ReceiveDamage+17B: D8 E1 - fsub st(0),st(1) Entities.CPlayer::ReceiveDamage+17D: C7 86 70 03 00 00 00 00 00 00 - mov [esi+00000370],00000000 Entities.CPlayer::ReceiveDamage+187: D9 5D F0 - fstp dword ptr [ebp-10] Entities.CPlayer::ReceiveDamage+18A: DD D8 - fstp st(0) Entities.CPlayer::ReceiveDamage+18C: EB 02 - jmp Entities.CPlayer::ReceiveDamage+190 Entities.CPlayer::ReceiveDamage+18E: DD D8 - fstp st(0) } RevolverNoReload: В игре перезарядка есть только у Револьверов. Спойлер { Game : SeriousSam.exe Version: Date : 2021-03-29 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(RevolverNoReload,Entities.dll,48 6A 00 8B CE) // should be unique registersymbol(RevolverNoReload) RevolverNoReload: db 90 6A 00 8B CE ///перетираем один байт на отнимание [DISABLE] RevolverNoReload: db 48 6A 00 8B CE unregistersymbol(RevolverNoReload) { // ORIGINAL CODE - INJECTION POINT: Entities.CPlayerWeapons::FireDoubleColt+8F Entities.CPlayerWeapons::FireDoubleColt+66: 68 CC 9D 44 60 - push Entities.CPlayerWeapons_DLLClass+1994 Entities.CPlayerWeapons::FireDoubleColt+6B: FF 15 08 84 3E 60 - call dword ptr [Entities.dll+108408] Entities.CPlayerWeapons::FireDoubleColt+71: 83 C4 04 - add esp,04 Entities.CPlayerWeapons::FireDoubleColt+74: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+76: E8 75 7C FF FF - call Entities.CPlayerWeapons::DoRecoil Entities.CPlayerWeapons::FireDoubleColt+7B: 68 00 00 48 42 - push 42480000 Entities.CPlayerWeapons::FireDoubleColt+80: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+82: E8 19 B4 FF FF - call Entities.CPlayerWeapons::SpawnRangeSound Entities.CPlayerWeapons::FireDoubleColt+87: 8B 86 E0 02 00 00 - mov eax,[esi+000002E0] Entities.CPlayerWeapons::FireDoubleColt+8D: 6A 02 - push 02 // ---------- INJECTING HERE ---------- Entities.CPlayerWeapons::FireDoubleColt+8F: 48 - dec eax // ---------- DONE INJECTING ---------- Entities.CPlayerWeapons::FireDoubleColt+90: 6A 00 - push 00 Entities.CPlayerWeapons::FireDoubleColt+92: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+94: 89 86 E0 02 00 00 - mov [esi+000002E0],eax Entities.CPlayerWeapons::FireDoubleColt+9A: E8 D1 97 FF FF - call Entities.CPlayerWeapons::SetFlare Entities.CPlayerWeapons::FireDoubleColt+9F: 6A 00 - push 00 Entities.CPlayerWeapons::FireDoubleColt+A1: 6A 04 - push 04 Entities.CPlayerWeapons::FireDoubleColt+A3: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+A5: E8 C6 99 FF FF - call Entities.CPlayerWeapons::PlayLightAnim Entities.CPlayerWeapons::FireDoubleColt+AA: 8B 86 EC 00 00 00 - mov eax,[esi+000000EC] Entities.CPlayerWeapons::FireDoubleColt+B0: 6A 06 - push 06 } AmmoNoSub: Патроны не тратятся. Спойлер { Game : SeriousSam.exe Version: Date : 2021-03-29 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(AmmoNoSub,Entities.dll,29 08 5D C3 90) // should be unique registersymbol(AmmoNoSub) AmmoNoSub: db 90 90 5D C3 90 ///перетираем два байта на отниамание [DISABLE] AmmoNoSub: db 29 08 5D C3 90 unregistersymbol(AmmoNoSub) { // ORIGINAL CODE - INJECTION POINT: Entities.EReloadWeapon::EReloadWeapon+160D Entities.EReloadWeapon::EReloadWeapon+15F0: 55 - push ebp Entities.EReloadWeapon::EReloadWeapon+15F1: 8B EC - mov ebp,esp Entities.EReloadWeapon::EReloadWeapon+15F3: A1 24 82 3E 60 - mov eax,[Entities.dll+108224] Entities.EReloadWeapon::EReloadWeapon+15F8: 8B 08 - mov ecx,[eax] Entities.EReloadWeapon::EReloadWeapon+15FA: FF 15 20 82 3E 60 - call dword ptr [Entities.dll+108220] Entities.EReloadWeapon::EReloadWeapon+1600: 8B 48 54 - mov ecx,[eax+54] Entities.EReloadWeapon::EReloadWeapon+1603: 85 C9 - test ecx,ecx Entities.EReloadWeapon::EReloadWeapon+1605: 75 08 - jne Entities.EReloadWeapon::EReloadWeapon+160F Entities.EReloadWeapon::EReloadWeapon+1607: 8B 45 08 - mov eax,[ebp+08] Entities.EReloadWeapon::EReloadWeapon+160A: 8B 4D 0C - mov ecx,[ebp+0C] // ---------- INJECTING HERE ---------- Entities.EReloadWeapon::EReloadWeapon+160D: 29 08 - sub [eax],ecx // ---------- DONE INJECTING ---------- Entities.EReloadWeapon::EReloadWeapon+160F: 5D - pop ebp Entities.EReloadWeapon::EReloadWeapon+1610: C3 - ret Entities.EReloadWeapon::EReloadWeapon+1611: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1612: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1613: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1614: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1615: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1616: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1617: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1618: 90 - nop } 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2021 Поделиться Опубликовано 30 марта, 2021 2 часа назад, Tzeentch сказал: Обнуляет любой урон здоровью. Не обнуляет. А не дает записывать новое значение здоровья по адресу. А сам урон находится здесь Спойлер Engine.CLiveEntity::ReceiveDamage+2F: D8 65 10 - fsub dword ptr [ebp+10] ЗЫ: И если бы разрабы добавили проверку (отрицательное здоровье) после этой инструкции, то это был бы не Год. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 30 марта, 2021 Автор Поделиться Опубликовано 30 марта, 2021 4 минуты назад, Garik66 сказал: ЗЫ: И если бы разрабы добавили проверку (отрицательное здоровье) после этой инструкции, то это был бы не Год. Зато в этом случае как раз GodMod получается) В этой игре. С таким скриптом. Урон не проходит по игроку. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2021 Поделиться Опубликовано 30 марта, 2021 Только что, Tzeentch сказал: Зато в этом случае как раз GodMod получается) В этой игре. С таким скриптом. Урон не проходит по игроку. Урон проходит. но не записывается новое значение здоровья - читай код игровой Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 30 марта, 2021 Автор Поделиться Опубликовано 30 марта, 2021 2 минуты назад, Garik66 сказал: Урон проходит. но не записывается новое значение здоровья - читай код игровой Понял. Так тоже удобно вышло. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 30 марта, 2021 Поделиться Опубликовано 30 марта, 2021 1 минуту назад, Tzeentch сказал: Понял. Так тоже удобно вышло. Я не в упрек, но более правильно было перепрыгивать именно ту инструкцию - это на будущее. 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Tzeentch Опубликовано 3 апреля, 2021 Автор Поделиться Опубликовано 3 апреля, 2021 Здесь тоже на револьвер во одной руке и двух руках срабатывают 2 отдельные инструкции. По этому я прилагаю два скрипта по ним. Так лучше видно логи инструкций где они находятся. OneHandRevolverNoReload: Спойлер { Game : SeriousSam.exe Version: Date : 2021-04-03 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(OneHandRevolverNoReload,Entities.dll,4F 6A 00 8B CE) // should be unique registersymbol(OneHandRevolverNoReload) OneHandRevolverNoReload: db 90 ///перетираем один байт на отнимание [DISABLE] OneHandRevolverNoReload: db 4F unregistersymbol(OneHandRevolverNoReload) { // ORIGINAL CODE - INJECTION POINT: Entities.CPlayerWeapons::FireColt+90 Entities.CPlayerWeapons::FireColt+67: 68 B4 9D 44 60 - push Entities.CPlayerWeapons_DLLClass+197C Entities.CPlayerWeapons::FireColt+6C: FF 15 08 84 3E 60 - call dword ptr [Entities.dll+108408] Entities.CPlayerWeapons::FireColt+72: 83 C4 04 - add esp,04 Entities.CPlayerWeapons::FireColt+75: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireColt+77: E8 D4 80 FF FF - call Entities.CPlayerWeapons::DoRecoil Entities.CPlayerWeapons::FireColt+7C: 68 00 00 20 42 - push 42200000 Entities.CPlayerWeapons::FireColt+81: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireColt+83: E8 78 B8 FF FF - call Entities.CPlayerWeapons::SpawnRangeSound Entities.CPlayerWeapons::FireColt+88: 8B BE E0 02 00 00 - mov edi,[esi+000002E0] Entities.CPlayerWeapons::FireColt+8E: 6A 02 - push 02 // ---------- INJECTING HERE ---------- Entities.CPlayerWeapons::FireColt+90: 4F - dec edi // ---------- DONE INJECTING ---------- Entities.CPlayerWeapons::FireColt+91: 6A 00 - push 00 Entities.CPlayerWeapons::FireColt+93: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireColt+95: 89 BE E0 02 00 00 - mov [esi+000002E0],edi Entities.CPlayerWeapons::FireColt+9B: E8 30 9C FF FF - call Entities.CPlayerWeapons::SetFlare Entities.CPlayerWeapons::FireColt+A0: 6A 00 - push 00 Entities.CPlayerWeapons::FireColt+A2: 6A 04 - push 04 Entities.CPlayerWeapons::FireColt+A4: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireColt+A6: E8 25 9E FF FF - call Entities.CPlayerWeapons::PlayLightAnim Entities.CPlayerWeapons::FireColt+AB: 8B 86 EC 00 00 00 - mov eax,[esi+000000EC] Entities.CPlayerWeapons::FireColt+B1: 6A 06 - push 06 } TwoHandRevolverNoReload: Спойлер { Game : SeriousSam.exe Version: Date : 2021-03-29 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(TwoHandRevolverNoReload,Entities.dll,48 6A 00 8B CE) // should be unique registersymbol(TwoHandRevolverNoReload) TwoHandRevolverNoReload: db 90 ///перетираем один байт на отнимание [DISABLE] TwoHandRevolverNoReload: db 48 unregistersymbol(TwoHandRevolverNoReload) { // ORIGINAL CODE - INJECTION POINT: Entities.CPlayerWeapons::FireDoubleColt+8F Entities.CPlayerWeapons::FireDoubleColt+66: 68 CC 9D 44 60 - push Entities.CPlayerWeapons_DLLClass+1994 Entities.CPlayerWeapons::FireDoubleColt+6B: FF 15 08 84 3E 60 - call dword ptr [Entities.dll+108408] Entities.CPlayerWeapons::FireDoubleColt+71: 83 C4 04 - add esp,04 Entities.CPlayerWeapons::FireDoubleColt+74: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+76: E8 75 7C FF FF - call Entities.CPlayerWeapons::DoRecoil Entities.CPlayerWeapons::FireDoubleColt+7B: 68 00 00 48 42 - push 42480000 Entities.CPlayerWeapons::FireDoubleColt+80: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+82: E8 19 B4 FF FF - call Entities.CPlayerWeapons::SpawnRangeSound Entities.CPlayerWeapons::FireDoubleColt+87: 8B 86 E0 02 00 00 - mov eax,[esi+000002E0] Entities.CPlayerWeapons::FireDoubleColt+8D: 6A 02 - push 02 // ---------- INJECTING HERE ---------- Entities.CPlayerWeapons::FireDoubleColt+8F: 48 - dec eax // ---------- DONE INJECTING ---------- Entities.CPlayerWeapons::FireDoubleColt+90: 6A 00 - push 00 Entities.CPlayerWeapons::FireDoubleColt+92: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+94: 89 86 E0 02 00 00 - mov [esi+000002E0],eax Entities.CPlayerWeapons::FireDoubleColt+9A: E8 D1 97 FF FF - call Entities.CPlayerWeapons::SetFlare Entities.CPlayerWeapons::FireDoubleColt+9F: 6A 00 - push 00 Entities.CPlayerWeapons::FireDoubleColt+A1: 6A 04 - push 04 Entities.CPlayerWeapons::FireDoubleColt+A3: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+A5: E8 C6 99 FF FF - call Entities.CPlayerWeapons::PlayLightAnim Entities.CPlayerWeapons::FireDoubleColt+AA: 8B 86 EC 00 00 00 - mov eax,[esi+000000EC] Entities.CPlayerWeapons::FireDoubleColt+B0: 6A 06 - push 06 } 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
skip123 Опубликовано 4 апреля, 2021 Поделиться Опубликовано 4 апреля, 2021 (изменено) В 03.04.2021 в 11:45, Tzeentch сказал: Здесь тоже на револьвер во одной руке и двух руках срабатывают 2 отдельные инструкции. По этому я прилагаю два скрипта по ним. Так лучше видно логи инструкций где они находятся. OneHandRevolverNoReload: Показать контент { Game : SeriousSam.exe Version: Date : 2021-04-03 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(OneHandRevolverNoReload,Entities.dll,4F 6A 00 8B CE) // should be unique registersymbol(OneHandRevolverNoReload) OneHandRevolverNoReload: db 90 ///перетираем один байт на отнимание [DISABLE] OneHandRevolverNoReload: db 4F unregistersymbol(OneHandRevolverNoReload) { // ORIGINAL CODE - INJECTION POINT: Entities.CPlayerWeapons::FireColt+90 Entities.CPlayerWeapons::FireColt+67: 68 B4 9D 44 60 - push Entities.CPlayerWeapons_DLLClass+197C Entities.CPlayerWeapons::FireColt+6C: FF 15 08 84 3E 60 - call dword ptr [Entities.dll+108408] Entities.CPlayerWeapons::FireColt+72: 83 C4 04 - add esp,04 Entities.CPlayerWeapons::FireColt+75: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireColt+77: E8 D4 80 FF FF - call Entities.CPlayerWeapons::DoRecoil Entities.CPlayerWeapons::FireColt+7C: 68 00 00 20 42 - push 42200000 Entities.CPlayerWeapons::FireColt+81: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireColt+83: E8 78 B8 FF FF - call Entities.CPlayerWeapons::SpawnRangeSound Entities.CPlayerWeapons::FireColt+88: 8B BE E0 02 00 00 - mov edi,[esi+000002E0] Entities.CPlayerWeapons::FireColt+8E: 6A 02 - push 02 // ---------- INJECTING HERE ---------- Entities.CPlayerWeapons::FireColt+90: 4F - dec edi // ---------- DONE INJECTING ---------- Entities.CPlayerWeapons::FireColt+91: 6A 00 - push 00 Entities.CPlayerWeapons::FireColt+93: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireColt+95: 89 BE E0 02 00 00 - mov [esi+000002E0],edi Entities.CPlayerWeapons::FireColt+9B: E8 30 9C FF FF - call Entities.CPlayerWeapons::SetFlare Entities.CPlayerWeapons::FireColt+A0: 6A 00 - push 00 Entities.CPlayerWeapons::FireColt+A2: 6A 04 - push 04 Entities.CPlayerWeapons::FireColt+A4: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireColt+A6: E8 25 9E FF FF - call Entities.CPlayerWeapons::PlayLightAnim Entities.CPlayerWeapons::FireColt+AB: 8B 86 EC 00 00 00 - mov eax,[esi+000000EC] Entities.CPlayerWeapons::FireColt+B1: 6A 06 - push 06 } TwoHandRevolverNoReload: Показать контент { Game : SeriousSam.exe Version: Date : 2021-03-29 Author : Templar This script does blah blah blah } [ENABLE] aobscanmodule(TwoHandRevolverNoReload,Entities.dll,48 6A 00 8B CE) // should be unique registersymbol(TwoHandRevolverNoReload) TwoHandRevolverNoReload: db 90 ///перетираем один байт на отнимание [DISABLE] TwoHandRevolverNoReload: db 48 unregistersymbol(TwoHandRevolverNoReload) { // ORIGINAL CODE - INJECTION POINT: Entities.CPlayerWeapons::FireDoubleColt+8F Entities.CPlayerWeapons::FireDoubleColt+66: 68 CC 9D 44 60 - push Entities.CPlayerWeapons_DLLClass+1994 Entities.CPlayerWeapons::FireDoubleColt+6B: FF 15 08 84 3E 60 - call dword ptr [Entities.dll+108408] Entities.CPlayerWeapons::FireDoubleColt+71: 83 C4 04 - add esp,04 Entities.CPlayerWeapons::FireDoubleColt+74: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+76: E8 75 7C FF FF - call Entities.CPlayerWeapons::DoRecoil Entities.CPlayerWeapons::FireDoubleColt+7B: 68 00 00 48 42 - push 42480000 Entities.CPlayerWeapons::FireDoubleColt+80: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+82: E8 19 B4 FF FF - call Entities.CPlayerWeapons::SpawnRangeSound Entities.CPlayerWeapons::FireDoubleColt+87: 8B 86 E0 02 00 00 - mov eax,[esi+000002E0] Entities.CPlayerWeapons::FireDoubleColt+8D: 6A 02 - push 02 // ---------- INJECTING HERE ---------- Entities.CPlayerWeapons::FireDoubleColt+8F: 48 - dec eax // ---------- DONE INJECTING ---------- Entities.CPlayerWeapons::FireDoubleColt+90: 6A 00 - push 00 Entities.CPlayerWeapons::FireDoubleColt+92: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+94: 89 86 E0 02 00 00 - mov [esi+000002E0],eax Entities.CPlayerWeapons::FireDoubleColt+9A: E8 D1 97 FF FF - call Entities.CPlayerWeapons::SetFlare Entities.CPlayerWeapons::FireDoubleColt+9F: 6A 00 - push 00 Entities.CPlayerWeapons::FireDoubleColt+A1: 6A 04 - push 04 Entities.CPlayerWeapons::FireDoubleColt+A3: 8B CE - mov ecx,esi Entities.CPlayerWeapons::FireDoubleColt+A5: E8 C6 99 FF FF - call Entities.CPlayerWeapons::PlayLightAnim Entities.CPlayerWeapons::FireDoubleColt+AA: 8B 86 EC 00 00 00 - mov eax,[esi+000000EC] Entities.CPlayerWeapons::FireDoubleColt+B0: 6A 06 - push 06 } Могу добавить для кольта из двух рук и дробовик Для кольтов просто зажимаешь клавишу выстрела Спойлер { Game : SeriousSam.exe Version: 1.0 Date : 04-04-21 Author : [edit aamaker.lua and pastle Author] This script does blah blah blah Make by aamaker Lua plagin } [ENABLE] Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+21: db 90 90 90 90 90 90 90 90 90 90 [DISABLE] Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+21: db C7 86 E0 02 00 00 06 00 00 00 { // ORIGINAL CODE - INJECTION POINT: Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+21 Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+1: 8B EC - mov ebp,esp Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+3: 6A FF - push -01 Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+5: 68 06313E60 - push 603E3106 Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+A: 64 A1 00000000 - mov eax,fs:[00000000] Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+10: 50 - push eax Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+11: 64 89 25 00000000 - mov fs:[00000000],esp Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+18: 83 EC 08 - sub esp,08 Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+1B: 56 - push esi Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+1C: 8B F1 - mov esi,ecx Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+1E: 8D 4D EC - lea ecx,[ebp-14] // ---------- INJECTING HERE ---------- Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+21: C7 86 E0020000 06000000 - mov [esi+000002E0],00000006 // ---------- DONE INJECTING ---------- Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+2B: E8 20A4FBFF - call 6035A820 Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+30: 50 - push eax Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+31: 68 45009201 - push 01920045 Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+36: 8B CE - mov ecx,esi Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+38: C7 45 FC 00000000 - mov [ebp-04],00000000 Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+3F: FF 15 F8833E60 - call dword ptr [603E83F8] Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+45: 8B 4D F4 - mov ecx,[ebp-0C] Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+48: B8 01000000 - mov eax,00000001 Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+4D: 5E - pop esi Entities.CPlayerWeapons::H0x01920045_ReloadDoubleColt_04+4E: 64 89 0D 00000000 - mov fs:[00000000],ecx } Для дробовика Спойлер { Game : SeriousSam.exe Version: 1.0 Date : 04-04-21 Author : [edit aamaker.lua and pastle Author] This script does blah blah blah Make by aamaker Lua plagin } [ENABLE] Entities.EReloadWeapon::EReloadWeapon+160D: nop nop [DISABLE] Entities.EReloadWeapon::EReloadWeapon+160D: db 29 08 { // ORIGINAL CODE - INJECTION POINT: Entities.EReloadWeapon::EReloadWeapon+160D Entities.EReloadWeapon::EReloadWeapon+15F0: 55 - push ebp Entities.EReloadWeapon::EReloadWeapon+15F1: 8B EC - mov ebp,esp Entities.EReloadWeapon::EReloadWeapon+15F3: A1 24823E60 - mov eax,[603E8224] Entities.EReloadWeapon::EReloadWeapon+15F8: 8B 08 - mov ecx,[eax] Entities.EReloadWeapon::EReloadWeapon+15FA: FF 15 20823E60 - call dword ptr [603E8220] Entities.EReloadWeapon::EReloadWeapon+1600: 8B 48 54 - mov ecx,[eax+54] Entities.EReloadWeapon::EReloadWeapon+1603: 85 C9 - test ecx,ecx Entities.EReloadWeapon::EReloadWeapon+1605: 75 08 - jne 603976BF Entities.EReloadWeapon::EReloadWeapon+1607: 8B 45 08 - mov eax,[ebp+08] Entities.EReloadWeapon::EReloadWeapon+160A: 8B 4D 0C - mov ecx,[ebp+0C] // ---------- INJECTING HERE ---------- Entities.EReloadWeapon::EReloadWeapon+160D: 29 08 - sub [eax],ecx // ---------- DONE INJECTING ---------- Entities.EReloadWeapon::EReloadWeapon+160F: 5D - pop ebp Entities.EReloadWeapon::EReloadWeapon+1610: C3 - ret Entities.EReloadWeapon::EReloadWeapon+1611: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1612: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1613: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1614: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1615: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1616: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1617: 90 - nop Entities.EReloadWeapon::EReloadWeapon+1618: 90 - nop } А вот бесконечная броня Спойлер { Game : SeriousSam.exe Version: 1.0 Date : 04-04-21 Author : [edit aamaker.lua and pastle Author] This script does blah blah blah Make by aamaker Lua plagin } [ENABLE] Entities.CPlayer::ReceiveDamage+16B: db 90 90 90 90 90 90 [DISABLE] Entities.CPlayer::ReceiveDamage+16B: db D9 96 70 03 00 00 { // ORIGINAL CODE - INJECTION POINT: Entities.CPlayer::ReceiveDamage+16B Entities.CPlayer::ReceiveDamage+146: 8B 4D 10 - mov ecx,[ebp+10] Entities.CPlayer::ReceiveDamage+149: 89 4D F0 - mov [ebp-10],ecx Entities.CPlayer::ReceiveDamage+14C: EB 42 - jmp 60382470 Entities.CPlayer::ReceiveDamage+14E: D9 45 10 - fld dword ptr [ebp+10] Entities.CPlayer::ReceiveDamage+151: D8 0D 34943E60 - fmul dword ptr [603E9434] Entities.CPlayer::ReceiveDamage+157: D9 45 10 - fld dword ptr [ebp+10] Entities.CPlayer::ReceiveDamage+15A: D8E1 - fsub st(0),st(1) Entities.CPlayer::ReceiveDamage+15C: D9 5D F0 - fstp dword ptr [ebp-10] Entities.CPlayer::ReceiveDamage+15F: D8 AE 70030000 - fsubr dword ptr [esi+00000370] Entities.CPlayer::ReceiveDamage+165: D8 15 EC893E60 - fcom dword ptr [603E89EC] // ---------- INJECTING HERE ---------- Entities.CPlayer::ReceiveDamage+16B: D9 96 70030000 - fst dword ptr [esi+00000370] // ---------- DONE INJECTING ---------- Entities.CPlayer::ReceiveDamage+171: DFE0 - fnstsw ax Entities.CPlayer::ReceiveDamage+173: F6 C4 01 - test ah,01 Entities.CPlayer::ReceiveDamage+176: 74 16 - je 6038246E Entities.CPlayer::ReceiveDamage+178: D9 45 F0 - fld dword ptr [ebp-10] Entities.CPlayer::ReceiveDamage+17B: D8E1 - fsub st(0),st(1) Entities.CPlayer::ReceiveDamage+17D: C7 86 70030000 00000000 - mov [esi+00000370],00000000 Entities.CPlayer::ReceiveDamage+187: D9 5D F0 - fstp dword ptr [ebp-10] Entities.CPlayer::ReceiveDamage+18A: DDD8 - fstp st(0) Entities.CPlayer::ReceiveDamage+18C: EB 02 - jmp 60382470 Entities.CPlayer::ReceiveDamage+18E: DDD8 - fstp st(0) } Изменено 4 апреля, 2021 пользователем skip123 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти