Перейти к содержанию

[Serious Sam - The First Encounter] Золотое издание v1.05


Рекомендуемые сообщения

Ковырял пиратку. Ломалось легко)

Репак от "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
Ссылка на комментарий
Поделиться на другие сайты

  • Xipho изменил название на [Serious Sam - The First Encounter] Золотое издание v1.05
2 часа назад, Tzeentch сказал:

Обнуляет любой урон здоровью.

Не обнуляет.
А не дает записывать новое значение здоровья по адресу.
А сам урон находится здесь
 

Спойлер

Engine.CLiveEntity::ReceiveDamage+2F: D8 65 10              - fsub dword ptr [ebp+10]

 

 

ЗЫ: И если бы разрабы добавили проверку (отрицательное здоровье) после этой инструкции, то это был бы не Год.

 

Ссылка на комментарий
Поделиться на другие сайты

4 минуты назад, Garik66 сказал:

ЗЫ: И если бы разрабы добавили проверку (отрицательное здоровье) после этой инструкции, то это был бы не Год.

 

Зато в этом случае как раз GodMod получается)

В этой игре. С таким скриптом. Урон не проходит по игроку.

Ссылка на комментарий
Поделиться на другие сайты

Только что, Tzeentch сказал:

Зато в этом случае как раз GodMod получается)

В этой игре. С таким скриптом. Урон не проходит по игроку.

Урон проходит. но не записывается новое значение здоровья - читай код игровой

 

Ссылка на комментарий
Поделиться на другие сайты

2 минуты назад, Garik66 сказал:

Урон проходит. но не записывается новое значение здоровья - читай код игровой

 

Понял. Так тоже удобно вышло.

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, Tzeentch сказал:

Понял. Так тоже удобно вышло.

Я не в упрек, но более правильно было перепрыгивать именно ту инструкцию - это на будущее.

 

  • Понравилось 2
Ссылка на комментарий
Поделиться на другие сайты

Здесь тоже на револьвер во одной руке и двух руках срабатывают 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
Ссылка на комментарий
Поделиться на другие сайты

В 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)
}

 

Изменено пользователем skip123
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.