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

Табличка СЕ для Fallout2 mod F2_Restoration_Project_2.3.3 1.01


Информация о файле

1. Введение.

Сейчас играю в самую любимую свою игру Fallout2, а точнее в мод для неё Restoration Project v.2.3.3.

Ранее я выкладывал Редактор сейвов к игре в этом посте. Он прекрасно работает.

Решил к нему немного добавить возможностей.

2. Видио-инструкция.

Торможения на видео по-видимому связаны с конфликтом м/у Бандикамом и графичским модом игры -> наверное используют в определённые моменты одно и тоже. Без Бандикама - торомозов в игре нет.

PS: подтвердилось. Вторую видео-инструкцию записывал с помощью Action!, там глюков не было.

3. Скрипты.

[ENABLE]aobscanmodule(WEIGHT_NPC,FALLOUT2.EXE,8B 44 98 04 83 C4 08)alloc(newmem,$64)label(return)registersymbol(WEIGHT_NPC)newmem:  cmp ebx,c  jne @f  mov [eax+ebx*4+00000090],#900@@:  mov eax,[eax+ebx*4+04]  add esp,08  jmp returnWEIGHT_NPC:  jmp newmem  db 90 90return:[DISABLE]WEIGHT_NPC:  db 8B 44 98 04 83 C4 08unregistersymbol(WEIGHT_NPC)dealloc(newmem)

[ENABLE]aobscanmodule(Money,FALLOUT2.EXE,8B 50 04 8B 00 E8 5A)alloc(newmem,$64)label(return)registersymbol(Money)newmem:  push ebx  mov ebx,[eax]  cmp [ebx+20],3  pop ebx  jne @f  add [eax+04],#20000@@:  mov edx,[eax+04]  mov eax,[eax]  jmp returnMoney:  jmp newmemreturn:[DISABLE]Money:  db 8B 50 04 8B 00unregistersymbol(Money)dealloc(newmem)

[ENABLE]aobscanmodule(Item,FALLOUT2.EXE,8B 49 04 8B 6C 24 10)alloc(newmem,$64)label(_item)label(return)registersymbol(_Item)registersymbol(Item)newmem:  cmp [_item],0  je @f  push [_item]  pop [ecx+04]@@:  mov ecx,[ecx+04]  mov ebp,[esp+10]  jmp return_item:dd 0Item:  jmp newmem  db 90 90return:[DISABLE]Item:  db 8B 49 04 8B 6C 24 10unregistersymbol(_Item)unregistersymbol(Item)dealloc(newmem)

[ENABLE]aobscanmodule(Moving,FALLOUT2.EXE,83 78 40 00 7F 09)alloc(newmem,$64)label(return)registersymbol(Moving)newmem:  mov dword ptr [eax+40],a  cmp dword ptr [eax+40],00  jg FALLOUT2.EXE+22879  jmp returnMoving:  jmp newmem  nopreturn:[DISABLE]Moving:  db 83 78 40 00 7F 09unregistersymbol(Moving)dealloc(newmem)

[ENABLE]aobscanmodule(GodMod,FALLOUT2.EXE,8B 40 58 5A C3)alloc(newmem,$64)label(code)label(return)label(GG)label(Vic)label(Sulik)label(Casidy)label(GodMod1)label(GodMod2)label(GodMod3)label(GodMod0)registersymbol(GodMod0)registersymbol(GodMod)newmem:  cmp [GodMod0],0  je GodMod2  cmp [GodMod0],1  je GodMod3  cmp [eax],00004650  jne @f    push [GG]    pop [eax+58]  @@:  cmp [eax],000046A9  jne @f    push [Casidy]    pop [eax+58]  @@:  cmp [eax],0000468E  jne @f    push [Vic]    pop [eax+58]  @@:  cmp [eax],000046B1  jne @f    push [Sulik]    pop [eax+58]  @@:    jmp codeGodMod2:  cmp [eax+24],60002404  je @f  cmp [eax+24],60002424  jne code  @@:  cmp [eax],00004650  jne @f    push [eax+58]    pop [GG]  jmp code  @@:  cmp [eax],000046A9  jne @f    push [eax+58]    pop [Casidy]  jmp code  @@:  cmp [eax],0000468E  jne @f    push [eax+58]    pop [Vic]  jmp code  @@:  cmp [eax],000046B1  jne @f    push [eax+58]    pop [Sulik]  jmp codeGodMod3:  cmp [eax+24],60002404  je GodMod1  cmp [eax+24],60002424  jne codeGodMod1:  mov [eax+58],#999code:  mov eax,[eax+58]  pop edx  ret   jmp returnGG:  dd 0Vic:  dd 0Sulik:  dd 0Casidy:  dd 0GodMod0:  db 0GodMod:  jmp newmemreturn:[DISABLE]GodMod:  db 8B 40 58 5A C3unregistersymbol(GodMod0)unregistersymbol(GodMod)dealloc(newmem)

4. Самое главное - что не сделал.

Я хотел взломать воровство, т.е., чтобы 100 % красть любое количество шмоток.

Но так и не разобрался (хотя игру очень хорошо знаю), от чего зависит это. Если увеличить само умение воровства до максимума 300 и взять все перки на воровство, всё равно воровать 100 % не удаётся. Мне даже показалось, что при начальном (не развитом) воровстве мне удаётся лучше воровать чем при развитом.

Если кто сможет понять, как сделать воровство 100 %, просьба - отпишитесь и в эту тему тоже. Заранее БЛАГОДАРЮ. :rolleyes:

5. В версии 1.01 таблицы добавлены скрипты;

[ENABLE]{$LUA}PlaySound(findTableFile([[Activate]])){$ASM}aobscanmodule(Characteristics,FALLOUT2.EXE,A3 74 6C 59 00)aobscanmodule(Characteristics1,FALLOUT2.EXE,8B 44 98 04 83 C4 08)alloc(newmem,$1000)label(newmem1)label(return)label(return1)label(name1)label(name2)label(name3)label(p_name)registersymbol(p_name)label(p_Character0)registersymbol(p_Character0)label(p_Character)registersymbol(p_Character)label(p_Character1)registersymbol(p_Character1)label(p_Character2)label(p_Character3)label(p_Character4)label(p_Character5)registersymbol(Characteristics)registersymbol(Characteristics1)newmem:  mov [FALLOUT2.EXE+196C74],eax  cmp [eax],00004650  jne @f  mov [p_Character0],006681ac  mov [p_name],0056d75c  mov [p_Character],eax  push [p_Character2]  pop [p_Character1]@@:  cmp [eax],000046A9  jne @f  push name1  pop [p_name]  mov [p_Character],eax  push [p_Character3]  pop [p_Character1]@@:  cmp [eax],0000468E  jne @f  push name2  pop [p_name]  mov [p_Character],eax  push [p_Character4]  pop [p_Character1]@@:  cmp [eax],000046B1  jne @f  push name3  pop [p_name]  mov [p_Character],eax  push [p_Character5]  pop [p_Character1]@@:  jmp returnnewmem1:  cmp [eax-20],01000000  jne @f  mov [p_Character2],eax@@:  cmp [eax-20],01000059  jne @f  mov [p_Character3],eax@@:  cmp [eax-20],0100003E  jne @f  mov [p_Character4],eax@@:  cmp [eax-20],01000061  jne @f  mov [p_Character5],eax@@:  mov eax,[eax+ebx*4+04]  add esp,08  jmp return1p_Character0:dd 0p_Character:dd 0p_Character1:dd 0p_Character2:dd 0p_Character3:dd 0p_Character4:dd 0p_Character5:dd 0p_name:dd 0name1:db CA FD F1 F1 E8 E4 E8 00name2:db C2 E8 EA E0 00 00 00 00name3:db D1 F3 EB E8 EA E0 00 00Characteristics:  jmp newmemreturn:Characteristics1:  jmp newmem1  db 90 90return1:[DISABLE]{$LUA}PlaySound(findTableFile([[Deactivate]])){$ASM}Characteristics:  // 0044BAD1  db A3 74 6C 59 00Characteristics1: // 004AF46A  db 8B 44 98 04 83 C4 08unregistersymbol(p_name)unregistersymbol(p_Character0)unregistersymbol(p_Character)unregistersymbol(p_Character1)unregistersymbol(Characteristics)unregistersymbol(Characteristics1)dealloc(newmem) 

[ENABLE]{$LUA}PlaySound(findTableFile([[Activate]])){$ASM}aobscanmodule(EXP,FALLOUT2.EXE,8B 04 85 AC 81 66 00)alloc(newmem,$64)label(return)registersymbol(EXP)newmem:  cmp eax,2  jne @f  add [eax*4+006681AC],64@@:  mov eax,[eax*4+006681AC]  jmp returnEXP:  jmp newmem  nop  nopreturn:[DISABLE]{$LUA}PlaySound(findTableFile([[Deactivate]])){$ASM}EXP: // "FALLOUT2.EXE"+AF908  db 8B 04 85 AC 81 66 00unregistersymbol(EXP)dealloc(newmem) 

[ENABLE]{$LUA}PlaySound(findTableFile([[Activate]])){$ASM}aobscanmodule(Perki,FALLOUT2.EXE,8B 04 90 C3 8D 40 00)alloc(newmem,$64)label(return)registersymbol(Perki)newmem:  mov [eax+edx*4],1  mov eax,[eax+edx*4]  ret   lea eax,[eax+00]  jmp returnPerki:  jmp newmem  nop  nopreturn:[DISABLE]{$LUA}PlaySound(findTableFile([[Deactivate]])){$ASM}Perki: // "FALLOUT2.EXE"+96B89  db 8B 04 90 C3 8D 40 00unregistersymbol(Perki)dealloc(newmem) 

Скрипт Perki не для чита, а просто для ознакомления какие перки есть в игре, их там очень много (есть положительные, есть отрицательные), поэтому не стал писать на конкретное добавление. Написать скрипт на добавление нужного Вам перка не сложно, по сути все перки это флаги (0 - нет перка, 1 - есть).

[ENABLE]{$LUA}PlaySound(findTableFile([[Activate]])){$ASM}aobscanmodule(Reputation_of_the_city,FALLOUT2.EXE,8B 04 90 83 F8 1E 7C 0F)alloc(newmem,$4000)label(return)label(OK)label(Read)label(Save)Label(Foolproof)registersymbol(Save)label(Arroyo)registersymbol(Arroyo)label(Klamath)registersymbol(Klamath)label(Den)registersymbol(Den)label(Vault_City)registersymbol(Vault_City)label(Modoc)registersymbol(Modoc)label(Gecko)registersymbol(Gecko)label(Military_Base_Sierra)registersymbol(Military_Base_Sierra)label(Broken_Hills)registersymbol(Broken_Hills)label(New_Reno)registersymbol(New_Reno)label(Redding)registersymbol(Redding)label(NCR)registersymbol(NCR)label(Vault_13)registersymbol(Vault_13)label(San_Francisco)registersymbol(San_Francisco)label(Abbey)registersymbol(Abbey)label(EPA)registersymbol(EPA)label(Tribe_Umbra)registersymbol(Tribe_Umbra)label(Raiders)registersymbol(Raiders)label(Vault_15)registersymbol(Vault_15)label(Farm_of_Horrors)registersymbol(Farm_of_Horrors)registersymbol(Reputation_of_the_city)newmem:  cmp [Save],1  jne Read  cmp [Foolproof],0  je OK  cmp edx,2f  jne @f  push [Arroyo]  pop [eax+edx*4]  jmp OK@@:  cmp edx,30  jne @f  push [Klamath]  pop [eax+edx*4]  jmp OK@@:  cmp edx,31  jne @f  push [Den]  pop [eax+edx*4]  jmp OK@@:  cmp edx,32  jne @f  push [Vault_City]  pop [eax+edx*4]  jmp OK@@:  cmp edx,33  jne @f  push [Modoc]  pop [eax+edx*4]  jmp OK@@:  cmp edx,34  jne @f  push [Gecko]  pop [eax+edx*4]  jmp OK@@:  cmp edx,35  jne @f  push [Military_Base_Sierra]  pop [eax+edx*4]  jmp OK@@:  cmp edx,36  jne @f  push [Broken_Hills]  pop [eax+edx*4]  jmp OK@@:  cmp edx,37  jne @f  push [New_Reno]  pop [eax+edx*4]  jmp OK@@:  cmp edx,38  jne @f  push [Redding]  pop [eax+edx*4]  jmp OK@@:  cmp edx,39  jne @f  push [NCR]  pop [eax+edx*4]  jmp OK@@:  cmp edx,3b  jne @f  push [Vault_13]  pop [eax+edx*4]  jmp OK@@:  cmp edx,3d  jne @f  push [San_Francisco]  pop [eax+edx*4]  jmp OK@@:  cmp edx,3f  jne @f  push [Abbey]  pop [eax+edx*4]  jmp OK@@:  cmp edx,40  jne @f  push [EPA]  pop [eax+edx*4]  jmp OK@@:  cmp edx,41  jne @f  push [Tribe_Umbra]  pop [eax+edx*4]  jmp OK@@:  cmp edx,42  jne @f  push [Raiders]  pop [eax+edx*4]  jmp OK@@:  cmp edx,126  jne @f  push [Vault_15]  pop [eax+edx*4]  jmp OK@@:  cmp edx,134  jne @f  push [Farm_of_Horrors]  pop [eax+edx*4]  jmp OKOK:  mov eax,[eax+edx*4]  cmp eax,1E  jmp returnRead:  mov eax,[eax+edx*4]  cmp edx,2f  jne @f  mov [Arroyo],eax@@:  cmp edx,30  jne @f  mov [Klamath],eax@@:  cmp edx,31  jne @f  mov [Den],eax@@:  cmp edx,32  jne @f  mov [Vault_City],eax@@:  cmp edx,33  jne @f  mov [Modoc],eax@@:  cmp edx,34  jne @f  mov [Gecko],eax@@:  cmp edx,35  jne @f  mov [Military_Base_Sierra],eax@@:  cmp edx,36  jne @f  mov [Broken_Hills],eax@@:  cmp edx,37  jne @f  mov [New_Reno],eax@@:  cmp edx,38  jne @f  mov [Redding],eax@@:  cmp edx,39  jne @f  mov [NCR],eax@@:  cmp edx,3b  jne @f  mov [Vault_13],eax@@:  cmp edx,3d  jne @f  mov [San_Francisco],eax@@:  cmp edx,3f  jne @f  mov [Abbey],eax@@:  cmp edx,40  jne @f  mov [EPA],eax@@:  cmp edx,41  jne @f  mov [Tribe_Umbra],eax@@:  cmp edx,42  jne @f  mov [Raiders],eax@@:  cmp edx,126  jne @f  mov [Vault_15],eax@@:  cmp edx,134  jne @f  mov [Farm_of_Horrors],eax@@:  mov [Foolproof],1  cmp eax,1E  jmp returnSave:dd 0Foolproof:dd 0Arroyo:dd ffffffffKlamath:dd ffffffffDen:dd ffffffffVault_City:dd ffffffffModoc:dd ffffffffGecko:dd ffffffffMilitary_Base_Sierra:dd ffffffffBroken_Hills:dd ffffffffNew_Reno:dd ffffffffRedding:dd ffffffffNCR:dd ffffffffVault_13:dd ffffffffSan_Francisco:dd ffffffffAbbey:dd ffffffffEPA:dd ffffffffTribe_Umbra:dd ffffffffRaiders:dd ffffffffVault_15:dd ffffffffFarm_of_Horrors:dd ffffffffReputation_of_the_city:  jmp newmem  nopreturn:[DISABLE]{$LUA}PlaySound(findTableFile([[Deactivate]])){$ASM}Reputation_of_the_city: // 0043BF50  db 8B 04 90 83 F8 1Eunregistersymbol(Save)unregistersymbol(Arroyo)unregistersymbol(Klamath)unregistersymbol(Den)unregistersymbol(Vault_City)unregistersymbol(Modoc)unregistersymbol(Gecko)unregistersymbol(Military_Base_Sierra)unregistersymbol(Broken_Hills)unregistersymbol(Reputation_of_the_city)unregistersymbol(New_Reno)unregistersymbol(Redding)unregistersymbol(NCR)unregistersymbol(Vault_13)unregistersymbol(San_Francisco)unregistersymbol(Abbey)unregistersymbol(EPA)unregistersymbol(Tribe_Umbra)unregistersymbol(Raiders)unregistersymbol(Vault_15)unregistersymbol(Farm_of_Horrors)dealloc(newmem) 

В скрипт "Репутация" добавлена защита от невнимательных, т.е. прежде чем изменять значения, нужно считать игровые значения. Просто так изменить значения - скрипт не даст.

Города в игре в таблицу Репутации попадают постепенно, если Вы ещё не взаимодействовали с городом (т.е. не получили информацию об нём и местоположение на карте), то в СЕ таблице, после считывания информации, напротив таких городов будет стоять "-1".

6. Видео-инструкция к добавленным скриптам:

7. Но самое главное, что хотел взломать (Шанс своровать -100 %), пока так и не сделал. Пересмотрел с 10 структур, перелопатил кучу игрового кода, пытался выйти на нужную инструкцию и через сворованный предмет и через сам навык воровства и через перки связанные с воровством, а также через характеристики НПС, у кого ворую- например его Восприятие.

Также хочу изменить скрипт GodMod, так как не люблю не игровые значения, а в нём я был вынужден временно увеличивать текущее здоровье ГГ и НПС.

Так что ещё поработаю над этой игрой. :-D


Что нового в версии 1.01

Размещено

  • В таблицу:
  • 1. Добавлены стандартные звуки СЕ активации/деактивации скриптов.
  • 2. Добавлены несколько скриптов, позволяющих менять большое количество характеристик ГГ (главного героя) и 3-х напарников (Сулика, Кэссиди и Вика).
  • Почему именно этих напарников, потому что предпочитаю в игре ходить именно в 4-ом и именно с этими напарниками.
  • Если кому-то нужны будут характеристики другого напарника, то не сложно чуть-чуть добавить в основной скрипт, если не сумеете - пишите в эту тему - помогу.
  • Характеристики НПС собраны для удобства, подобно как в игре по окнам.
  • 3. Добавлены ссылки на видео-инструкции и эту тему.

×
×
  • Создать...

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

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