» TeamX (Архив Форума)«


Форум TeamX » Исследования » Offsets или полезные смещения (двиглоковыряние... исключительно в целях обучения :))

Переход по темам
<< Пред. След. >>
Единственная страница этой темы

 
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Вообще, надо сразу сказать, что сейчас смещениями плотно занялся Рейвен. Которого я настоятельно попрошу периодически скидывать инфу в темку .

Итак, выкладываю пыльные (и не очень архивы со своего винта.

Нумбер ван: древнейший документ неизвестного автора под названием offsets.txt (слегка мною дополненный).

------------------------------------------------------

Код:
Fallout1, Fallout2, Fallout1 demo, Mapper2 

Year
Version:                Hex Offset:
Fallout2 (US v1.0)  
Fallout2 (US v1.02d)    0009376C
Fallout2 (UK v1.01)     0009351C
Fallout2 (UK v1.02e)    0009391A
Fallout2 (GR v1.0)  
Fallout2 (GR v1.02d)    00093A3C
Fallout2 (FR v1.0)  
Fallout2 (FR v1.02d)    00093A3C
Fallout2 (LK v1.02)     0009363C
Fallout1 (WIN v1.1)     00081B7C
Fallout1 (WIN v1.2)     00081E2C
Fallout1 (DOS v1.1)     000C54AC
Fallout1 Demo           0005C42C
Mapper2                 000BD84C
( Fallout1 (2161) 08710000 )
( Fallout2 (2241) 08C10000 )

13 Year Limit (Not working totally...)
Version:                Hex Offset:
Fallout2 (US v1.0)  
Fallout2 (US v1.02d)    000938D8
Fallout2 (UK v1.01)     00093688
Fallout2 (UK v1.02e)    00093A88
Fallout2 (GR v1.0)  
Fallout2 (GR v1.02d)    00093BA8
Fallout2 (FR v1.0)  
Fallout2 (FR v1.02d)    00093BA8
( Fallout2 (315371520) 0003CC12 )
Change to FFFFFFFF (?)

Starting Time in ticks (not date)
Version:                Hex Offset:
Fallout2 (US v1.0)  
Fallout2 (US v1.02d)    00095601
Fallout2 (UK v1.01)     00095375
Fallout2 (UK v1.02e)    000957B1
Fallout2 (GR v1.0)  
Fallout2 (GR v1.02d)    000958D1
Fallout2 (FR v1.0)  
Fallout2 (FR v1.02d)    000958D1
Fallout2 (LK v1.02)     000954D1
Fallout1 (WIN v1.1)     00083785
Fallout1 (WIN v1.2)     00083A35
Fallout1 (DOS v1.1)     000C70B5
Fallout1 Demo           0005D70E
Mapper2                 000BF8BE
( Fallout1 (264600) 98090400 )
( Fallout2 (302400) 409D0400 )

Starting Month
Version:                Hex Offset:
Fallout2 (US v1.0)  
Fallout2 (US v1.02d)    00093782
Fallout2 (UK v1.01)
Fallout2 (UK v1.02e)    00093532 (?)
Fallout2 (GR v1.0)  
Fallout2 (GR v1.02d)    00093A52 (?)
Fallout2 (FR v1.0)  
Fallout2 (FR v1.02d)    00093A52 (?)
Fallout2 (LK v1.02)     00093652
Fallout1 (WIN v1.1)
Fallout1 (WIN v1.2)
Fallout1 (DOS v1.1)
Fallout1 Demo           0005C442
Mapper2        
( Fallout1 (DEC) 0C000000 )
( Fallout2 (JUL) 07000000 )

Starting day:
Fallout2 (US v1.0)  
Fallout2 (US v1.02d)    00093756
Fallout2 (UK v1.01)
Fallout2 (UK v1.02e)    
Fallout2 (GR v1.0)  
Fallout2 (GR v1.02d)    
Fallout2 (FR v1.0)  
Fallout2 (FR v1.02d)    
Fallout1 (WIN v1.1)
Fallout1 (WIN v1.2)
Fallout1 (DOS v1.1)
Fallout1 Demo      
Mapper2        
( Fallout1 )
( Fallout2 (25) 18 )

Starting map            Hex Offset:
Fallout2 (US v1.02d)    00107AC8
Fallout2 (LK v1.02)     00107AB8
( Fallout2 (artemple.map) 617274656D706C652E6D6170 )



(Добавление от  13:21 - 24 Фев., 2005.)


Исследования АБеля:

----------------------------------------------------

Код:
Fallout2 Levcorp Edition 1.02 

Встреча с Френки происходит не на 35й день, а сразу
fallout2.exe
000B09BA: 23 00

Выключить неслучайную встречу с Френки
fallout2.exe
000B09A8: 75 EB

Пипбой в начале
fallout2.exe
000872E1: 75 EB
0008FC7F: 74 90
0008FC80: 05 90

Нет снов
fallout2.exe
000939DF: 0F E9
000939E0: 85 95
000939E1: 94 00
000939E4: 00 90
00093A87: 75 EB


----------------------------------------------------

Код:
Fallout2 English 1.02d 

Встреча с Френки происходит не на 35й день, а сразу
fallout2.exe
000B0AEA: 23 00

Выключить неслучайную встречу с Френки
fallout2.exe
000B0AD8: 75 EB

Пипбой в начале, нет снов, все видео показаны
fallout2.exe
0003EF0E: 25 B8
0003EF0F: FF 01

Пипбой в начале
fallout2.exe
00087411: 75 EB
0008FDAF: 74 90
0008FDB0: 05 90

Нет снов
fallout2.exe
00093B0F: 0F E9
00093B10: 85 95
00093B11: 94 00
00093B14: 00 90
00093BB7: 75 EB



(Добавление от  13:23 - 24 Фев., 2005.)


Инфрмация с DAC (автор Andy-Spacetrain)

----------------------------------------------------------
Код:
 
[US 1.02]
Feature                     Memory  Fallout2.exe    Number      Original
                           Offset  File Offset     Of Bytes    Value

Enable Pipboy               497011  085611          1           0x7E
Remove City Limit           4BF3BB  0AD9BB          1           0x24
Disable Movies              44E690  03CC90          1           0x89
Male Start Appearance       5002E8  0EE8E8          6           hmwarr
Female Start Appearance     5002F0  0EE8F0          6           hfprim
Male Default Appearance     5002D8  0EE8E0          6           hfjmps
Female Default Appearance   5002E0  0EE8E0          6           hfjmps
Starting Map                5194C8  107AC8          12          artemple.map
DAT Name                    5023C8  0F09C8          13          patch%03d.dat
Mod Name (Main Menu)        50EA18  0FD018          19          FALLOUT II %d. %02d
Start Year                  4A336C  09196C          2           0x84A8
Start Month                 4A3382  091982          1           0x00
Start day                   4A3356  091956          1           0xF8
World Viewport X            10C42C  091956          2           0x0000
World Viewport Y            51DE30  10C430          2           0x0000



(Добавление от  13:24 - 24 Фев., 2005.)


Информация с DAC (автор Temaperacl)

---------------------------------------------------------

I believe I've figured out where Perks and Traits are stored, though (I haven't tested these in-game, so it might all be an elaborate mistake, but..):
Fallout2.exe
Traits: 0x10c184 (Just the location- I haven't looked at them any yet)
Perks: 0x1083cc (15A3A0 in mapper2.exe I believe)
Perks seem to have the following format (Up to Mutate! at least, after that it changes, and then seems to fall apart, so..):
Each perk appears to have the following format:

[00] - ? (Always 0000 0000)
[04] - ? (Always 0000 0000)
[08] - ID (Appears to be ID in PERK.MSG -29)
[0C] - Number of Ranks available.
[10] - Required Level
[14] - Stat Modified (entry in STAT.msg - 100) (FFFF FFFF = None)
[18] - Amount Stat Modified
[1C] - Skill 1 (SKILL.MSG - 100) (FFFF FFFF = None)
[20] - Amount for (in % points) Skill 1.
[24] - Type*
[28] - Skill 2 (SKILL.MSG - 100) (FFFF FFFF = None)
[2C] - Amount (in % points) for Skill 2.
[30] - Req. STR
[34] - Req. PER
[38] - Req. END
[3C] - Req. CHA
[40] - Req. INT
[44] - Req. AGI
[48] - Req. LUC

*- is 0000 0000 unless there are two skill entries (In these cases, it is a requirement I think) , in which case it looks like the entry is 0200 0000 if they are requirements and 0100 0000 if they are bonus (points the character gains).
(For the addiction perks, Ranks looks like it is always FFFF FFFF, and the Stat Req. Fields look like they are rather the change applied FEFF FFFF for -2 to the stat, for example.)

There are some problems- some perks are supposed to due more than can be encoded here, for example (Ignoring things that should be purely script based). For example, the Mr. Fixit should have requirements for 2 skills AND add points to 2 skills. In addition once we get past Mutate! / The Addiction entries, then the system appears to stop working as well- there are entries with the same ID's as earlier entries, and I'm not 100% sure all perks are accounted for. I'd guess (But it is just a guess with absolutely no backing yet) that multiple entries for a perk allow for the perk to do more than would be allowed with one entry. (Like the Mr. Fixit.)

In addition, I'm not sure about the ID- it works perfectly up through the addiction stuff, but it just seems odd to have it to be ID-29.


(Добавление от 13:36 - 24 Фев., 2005.)


Информация с DAC (авторы platon и dude_obj)

----------------------------------------------------

You can change the appearance of the player character as follows:

- Backup your fallout2.exe
- Get youself a hex editor
- Find the text string "hmwarr" in fallout2.exe
- Change the text string to some other critter
- Save and run the fallout2

And now the bad news: Some critters doesn't have run or secondary attack, and wielding weapons didn't work.

Note: Although you can change the player character to look like any critter, the player is then limited by the critter chosen. For example, dogs cannot use guns, and and the frank horrigan model can only use large guns and knives. There are limitations in the sprites that display various weapons and actions. This is why there is no "proper" way to show party members in their armor, there are no sprites of "Vic wearing combat armor" for example.


(Добавление от 13:45 - 24 Фев., 2005.)


Исследования Anchorite

---------------------------------------------------
Код:
 
Смещение    Описание  
0x0002ED50  Идентификаторы общих элементов
           пульта управления лифтом
           Формат:
           Размер: 3 x 4
           Размер  Тип  Описание  
             4     int  Нажатая кнопка  
             4     int  Опущенная кнопка
             4     int  Позиционер
0x0002ED5C  Идентификаторы специфичных
           элементов пульта управления
           лифтом  
           Размер: 24 x 2 x 4
           Формат:
           Размер  Тип  Описание  
             4     int  Основной вид
             4     int  Подписи к кнопкам
0x0002EE1C  Число кнопок на панели
           управления лифтом  
           Размер: 1 x 4
           Формат:
           Размер  Тип  Описание  
             4     int  Число кнопок
0x0002EE7C  Координаты точек выхода из лифта  
           Размер: 24 x 3 x 4
           Формат:
           Размер  Тип  Описание  
             4     int  Номер карты
             4     int  Уровень  
             4     int  Координата


Отправлено: 13:20 - 24 Фев., 2005
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

Всего: 408 сообщений

>>[00] - ? (Always 0000 0000)
>>[04] - ? (Always 0000 0000)

Первые два поля в описании перков хранят соответственно указатель на строку с названием перка и указатель на строку с описанием. В экзешнике они, естественно, занулены. Но если найти эту же структуру в памяти, то там будут указатели.

Что-то все вдруг за двиг взялись. Это радует :-)

От себя.
0xFEF54: D8 FF FF FF (=0xffffffd8 == -40) - пенальти для прицельного выстрела в голову
0xFEF58: E2 FF FF FF (=0xffffffe2 == -30) - пенальти для прицельного выстрела в руку
0xFEF5С: E2 FF FF FF (=0xffffffe2 == -30) - пенальти для прицельного выстрела в руку
0xFEF60: 00 00 00 00 (=0x00000000 == 0) - пенальти для прицельного выстрела в корпус
0xFEF64: EС FF FF FF (=0xffffffeс == -20) - пенальти для прицельного выстрела в ногу
0xFEF68: EС FF FF FF (=0xffffffeс == -20) - пенальти для прицельного выстрела в ногу
0xFEF6С: С4 FF FF FF (=0xffffffс4 == -60) - пенальти для прицельного выстрела в глаза
0xFEF70: E2 FF FF FF (=0xffffffe2 == -30) - пенальти для прицельного выстрела в пах
0xFEF74: 00 00 00 00 (=0x00000000 == 0) - пенальти для *не*прицельных выстрелов (для всех)

При Melee/HTH атаке все пенальти уменьшаются вдвое. Правые/левые конечности различайте сами :-) Все смещения - для английского Фола v1.02d. Чтобы найти их в вашей версии, организуйте поиск по строке: D8 FF FF FF E2 FF FF FF E2 FF FF FF.

Так что если вы решите в вашем моде сильно затруднить жизнь "снайперам" - знаете что делать :-)

Кусочек из письма в Теху:
-------------------------------------------
Теперь - интереснее [смещение:10b717h]:
------------------------------------------------------------
DGROUP:00560914 _skill_data     dd 0D701A0h             ; skill_name - указатель на строку с именем скила
DGROUP:00560914                 dd 0D706A8h             ; skill_descr - указатель на строку с описанием скила
DGROUP:00560914                 dd 0D7B790h             ; skill_val_str - указатель на строку вида X+Y*(STAT_1 [+STAT_2])
DGROUP:00560914                 dd 28                   ; num - номер. Чего - непонятно
DGROUP:00560914                 dd 5                    ; start_val - X из формулы
DGROUP:00560914                 dd 4                    ; multipler - Y
DGROUP:00560914                 dd 5                    ; stat_1 - STAT_1
DGROUP:00560914                 dd 4294967295           ; stat_2 - STAT_2
DGROUP:00560914                 dd 1                    ; anonymous_7 - всегда 1
DGROUP:00560914                 dd 0                    ; anonymous_8 - 25/50/100 для небоевых, нескриптовых скилов
(Doctor, Outdoorsman и т.п)
DGROUP:00560914                 dd 0                    ; anonymous_9 - 1 для Traps, Steal, Lockpick
<...>
------------------------------------------------------------
Строки для первых трёх полей берутся из skill.txt

Что можно с этим сделать? Можно переделать скилы.

Грузим экзешник, переходим на 10b9f0, меняем 06 (luck) на 04 (int), рядышком multipler (05) на нужное значение.
Добавляем начальный бонус, если надо. Правим поля в skill.msg, меняя Gambling на, например, "гуманитарные науки". А
обычный Science - на "Естественные науки".

Т.е. мы можем менять скриптовые, неиспользуемые движком скилы на то, что нам надо, задавая при этом нужные формулы для
вычислений стартового значения.
-------------------------------------------


(Добавление от  15:51 - 24 Фев., 2005.)


Блокеры (таблица _proto_blocking_list):
Смещение: 0x10ab10, 9 4-байтовых значений.
Код:
 
[00] 0x43000002 (=0x20000043==33554499) - PID обычного scenery-блокера
[04] 0x80000002 (=33554560)
[08] 0x8d000002 (=33554560)
[0C] 0x58010002 (=33554776)
[10] 0x6d020003 (=50332269)
[14] 0x6E020003 (=50332270)
[18] 0x0c000005 (=83886092)
[1C] 0x05000005 (=83886085)
[20] 0x31000002 (=33554481)



Если вдруг возникнет необходимость сделать из своего объекта блокер...


Радиация. Тут всё вкуснее. Чуть-чуть о том, как всё работает:
-------------------------------------------
Radiation
And now for some stuff on radiation, which does play a small part in the Fallout world. Sources of radiation include Fruit, golden geckos, and aliens and centaurs in random encounters. Whenever you get a huge dose all at once, the message window says "You have received a large dose of radiation." As explained in the patch notes, the radiation sign pops up once you've reached 66 rem.

As far as I can tell radiation damage works like this: some time after you absorb a dose of radiation, you'll get one of the messages listed below, and you may temporarily lose stat points, Healing Rate and current Hit Points. The severity of the "attack" depends on your total rem count, but also on the amount of recent radiation that triggered the message. After a few days, your stats will return to normal. A little confusingly, this is signalled by another message identical to the first one. If you absorb more radiation in the meanwhile, your current penalty may be replaced by a more severe one.

Here's a list of the penalties you may suffer. The rem figures are rough approximations.

Код:
 
Rem   Message                  HR  CHP  ST  PE  EN  CH  IN  AG  Other
>0    "very nauseous"                                           No effect
>150  "slightly fatigued"               -1
>300  "vomiting does not stop" -3       -1                  -1
>450  "hair is falling out"    -5  -5   -2      -1          -2
>600  "skin is falling off"    -10 -15  -4  -3  -3  -3  -1  -5
>1000  "intense agony"         -10 -20  -6  -5  -5  -5  -3  -6
>2000                                                           Possible instant death



You can actually live with a much higher rem count (15,000 or even more) and still run around with no penalty whatsoever. In any normal game, radiation is not a significant factor; in fact, in order to reach even 300 rem you'd have to run several laps around the Gecko reactor room or purposely hang around the Toxic waste dump. As far as I can tell, there is never any permanent damage resulting from radiation.
-------------------------------------------

К сожалению, я не нашёл место, где хранятся пороги (150, 300 ...). Зато я нашёл две интересных таблички.

Таблица _rad_stat [0x10694c]:
8 dword-полей, в каждом - номер статса, затрагиваемого радиацией. По умолчанию это 0, 1, 2, 3, 4, 5, 23h(35), 0Eh(14). Открываем define.h, проматывает к макроопределениям и видим:
-------------------------------------
#define STAT_st              (0)
#define STAT_pe              (1)
#define STAT_en              (2)
#define STAT_ch              (3)
#define STAT_iq              (4)
#define STAT_ag              (5)
#define STAT_lu              (6)
<...>
#define STAT_heal_rate       (14)
<...>
#define STAT_current_hp      (35)
<...>
-------------------------------------

Всё совпадает :-)

Поэтому следующая табличка (_rad_bonus, 0x106978) никаких проблем не вызывет. Она состоит из шести блоков. Каждый блок из 8-ми dword-значений. Первый блок заполнен нулями (аналог первой строчки таблицы). Второй содержит 0xFFFFFFFF (-1) во втором поле. Ну и т.д.

Подправив значения, можно сделать влияние радиации менее/более сильным. Кроме того, рано или поздно я таки найду все эти пороговые значения и влияние радиации Пустоши на хрупкий организм Чузена будет полностью определятся волей модера :-) ИМХО, давно пора сделать радиацию в Фоле чем-то *реальным*...

Stay on-line.

(Отредактировал(а) Raven - 22:53 - 24 Фев., 2005)

(Отредактировал(а) Raven - 23:13 - 24 Фев., 2005)

Отправлено: 14:25 - 24 Фев., 2005
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

Всего: 408 сообщений

Артилеристам с хекс-эдитором на заметку:
0x753F0 [03] - радиус взрыва ракет
0x753E0 [02] - радиус взрыва гранат

Сдаётся мне, Throwing Weapons и Big Guns можно си-и-ильно "усилить"...

[EDIT]

Это всё в Мапере, есессно.

(Отредактировал(а) Raven - 15:01 - 2 Марта, 2005)

Отправлено: 8:00 - 2 Марта, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Очень интересные вещи обсуждаются на форуме NMA. Советую прочитать тему до конца. За линк спасибо Izuken'у.

Отправлено: 9:30 - 2 Марта, 2005
YikxX
Пользователь

Откуда: NCR :)
Регистрация: Февр. 2004

Всего: 304 сообщения

Также вот еще полезная тема на NMA.

За линк спасибо АО.

-----
Обломись! Я подложил туда носок...

Отправлено: 10:11 - 2 Марта, 2005
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

А вот ещё результаты ковыряния движка от зарубежных коллег: Fallout2Patcher_V2.

-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 13:33 - 7 Марта, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

информация от Рейвена:
Цитата:

Вышла новая версия патчера. Список изменений:

Version 3:
The game is still unplayable, but some things have been fixed while other have been destroyed

New:
* New style of patching the executable added - the patcher reads from the patchData.txt file
* Sections for future compatibility with other versions added (still only works with US 1.02d)
* Some interface additions/fixes for the patcher itself

Fixes:
* Most of the graphics work on the dialogs now, but not the main picture that shows who you are talking to unless it's a talking head
* You can now move the mouse to any corner/side of the screen to move the world map around istead of the default 640x480 edges

Bugs:
* Picture of who you are talking to is messed up in non-talking head dialogs
* Accessing custom settings on your party members crashes


ЗЫ Рейвен, плиз, обновляй темку не только на фол.ру :)


(Добавление от 9:49 - 12 Марта, 2005.)


Ссылку забыла :). Воть.

Отправлено: 9:47 - 12 Марта, 2005
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

Всего: 408 сообщений

>>Рейвен, плиз, обновляй темку не только на фол.ру

Угумсь. Просто здесь живого интереса никто не проявил, я и ...

Отправлено: 14:42 - 12 Марта, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

А мы просто ждём :). Авось, кто добрый все последние достижения систематизирует и сведёт в документик со смещениями и описаниями... ;)

ЗЫ Шютю. На самом деле, Рейвен, раз уж ты этим занялся... ты ж, вроде, одновременно с "иностранцами" эту фишку раскопал?

Отправлено: 16:30 - 12 Марта, 2005
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

Обновился Fallout Loader Creator: ссылка на файл

-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 15:20 - 13 Марта, 2005
Raven
Пользователь

Откуда: Владик
Регистрация: Февр. 2004

Всего: 408 сообщений

Похоже, китайско-японским гражданам удалось запустить Фол в окне.

Картинка: http://img214.exs.cx/my.php?loc=img214&image=111085653009bq.jpg
Патч (~750 kb): http://www.geocities.jp/menopem/D3DWindower.lzh

Ещё не проверял. Говорят, тормозит сильно.

Отправлено: 6:18 - 20 Марта, 2005
Anchorite
Пользователь

Откуда: Не здесь
Регистрация: Янв. 2003

Всего: 283 сообщения

Стартовое положение на карте мира (смещения даны относительно начала файла):

0x000AD008 DWORD X
0x000AD00D DWORD Y

Величины измеряются в точках относительно левого верхнего угла карты.

Будте осторожнее при правке.
Эти данные являются частью команд занесения данных в регистры.
Верны для Fallout2.exe версии 1.02d.

Эффект проявляется при первом выходе на Worldmap из города после начала новой игры.

Отправлено: 22:45 - 20 Марта, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Изменяем имя файлов acm с музыкой для карты мира:

fallout2.exe UK 1.02d

Смещение    Значение
0x0FDD90     23world
0x0FDD98     20car

Отправлено: 8:48 - 21 Марта, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Изменение музыки в главном меню:

(для Фаргусовской версии)

000F9480 | 30 37 64 65 73 65 72 74 00 00 00 00 6C 61 6E 67 | 07desert

Соответственно заменить 07desert на нужный файл из папки music.

Для других версий можно просто найти 07desert.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 15:19 - 22 Марта, 2005
B A Z i K
Пользователь

Откуда: Киев, Украина
Регистрация: Авг. 2004

Всего: 36 сообщений

Патч, позволяющий грузить карты комбинацией сtrl+v:

fallout2.exe 1.02d US
               Ориг.  Изм.
0003395E: 0A    8E
0003395F: E3    F4
00033960: FE    03
00033961: FF    00

Иногда с этим патчем игруха вылетает в форточки, особенно при скриптовом добавлении перка чузу

Патч, решающий проблему очень шустрого перемещения по карте мира:

fallout2.exe 1.02d US
                Ориг.  Изм.
000B025D: E8      E9
000B025E: 16      54
000B025F: 8D      B1
000BB3B4: 74      EB
000BB3B6: E8      50
000BB3B7: D1      33
000BB3B8: 06      C0
000BB3B9: 00      40
000BB3BA: 00      3D
000BB3BB: 89      00
000BB3BC: C1      00
000BB3BD: E8      00
000BB3BE: EE      01
000BB3BF: 01      7C
000BB3C0: 00      F8
000BB3C1: 00      58
000BB3C2: 89      E8
000BB3C3: EA      B1
000BB3C4: 89      DB
000BB3C5: F8      FF
000BB3C6: E8      FF
000BB3C7: D1     E9
000BB3C8: FF      96
000BB3C9: FF      4E
000BB3CB: 89      FF
000BB3CC: C2     90
000BB3CD: 85     90
000BB3CE: C0     90
000BB3CF: 75     90
000BB3D0: 07     90
000BB3D1: 89     90
000BB3D2: C8     90
000BB3D3: E8     90
000BB3D5: 05     90
000BB3D6: 00     90
000BB3D7: 00     90
000BB3D8: 89     90
000BB3D9: D0     90
000BB3DA: E9     90
000BB3DB: C5     90
000BB3DC: 01     90
000BB3DD: 00     90
000BB3DE: 00     90

Наверное, ручками будет влом все это прописывать, так что вот линк на патчер:
http://jdoe407.com/cpp/precompiled/console/FO2-WorldMapPatcher_V1.zip

Вот еще пару новинок

fallout2.exe 1.02d US
41b979- GUI - Карта в ПИП-бое
41e027- GUI - Создание персонажа -> опции -> загрузка
41ec22- GUI - Создание персонажа -> опции -> сохранение
42626b- GUI - Прицельный выстрел (Targeted attack)
42c860- Скорее всего начало работы с функцией показа авторов (Credits) Еще не проверено
42c958- GUI - Сама функция показа авторов (Credits)
432de8- GUI - Информация о чаре
436c8e- GUI - Создание персонажа -> Изменение имени
437045- GUI - Создание персонажа -> Изменение возраста
43769b- GUI - Создание персонажа -> Измененить пол
43800a- GUI - Создание персонажа -> Опции
43f560  - GUI - Лифт
443fb2- GUI - Экран Help'а
445997- GUI - Диалог -> просмотреть диалог
4462a7- GUI - Диалог (Текст NPC)
446387- GUI - Диалог (Текст игрока)
44718f- GUI - Бекграунд(background) который показывается при начале диалога
448333- GUI - Диалог -> Торговля
4487ce- GUI - Диалог -> Настройки однопартийцев
44976f- GUI - Диалог -> Настройки однопартийцев -> Ручная настройка(custom settings)
44a6e4- GUI - Начало работы с функцией диалога
44e7e3- GUI - Начальные мувики
45d8bc- GUI - Начало работ с главным интерфейсом
4615fa- Расположение надписи "Stealth" на экране при использовании соответсвуещего скила
4615ff- GUI - Сама надпись "Stealth"
46ed0e- GUI - Инвентарь
46edc9- GUI - Инвентарь (диалог -> торговля)
47b88c- Функция: Сохранение игры
47bca3- Вызов функции сохранения игры
47c640- Функция: Загрузка игры
47c6f2- GUI - Быстрая загрузка игры (Quickload)
47ca74- Вызов функции загрузки игры
47d529- GUI - Экран загрузки
47ed8c- GUI - Сохранение игры -> название сейва
480b0d- GUI - Загрузка игры (Главное меню)
481680- GUI - Главное меню
490474- GUI - Окошко паузы
490961- GUI - Настройки
497405- GUI - ПИП-бой
4a7496- GUI - Изменение персонажа/повышение уровня
4ac260- GUI - Вызов окошка со скилами (главный интерфейс)
4c0111- JMP если нет енкаунтера(encounter), если есть, то грузить енкаунтер
4c23a7- GUI - Карта мира
4c6f48- Функция: Вывод отладочного сообщения
4da7c1- GUI - Меню загрузки карты (По нажатию ctrl+r)
4db500- GUI - Меню загрузки карты -> Имя карты

Все вышеперечисленные смещения - это(если не оговорено обратного) начало работ с соответсвуещей функцией.

Если кто-то юзает версию фола 1.0 (может есть такие), и вас достает ограничение
на кол-во городов, то лечится это так:
fallout2.exe
                               Нач. Изм.
US v1.00   000AECE7: 74   EB


Вот таким образом включается Debug-patch Noid'a:

fallout2.exe 1.02d US
               Нач.   Изм.
00034E64: 83     E8
00034E65: FE     27
00034E66: 01     23
00034E67: 0F     08
00034E68: 85     00
00034E69: 21     E9
00034E6A: 01     20
00034E6B: 00     01
00034E6D: B9     00
00034E6E: 34     90
00034E6F: 27     90
00034E70: 50     90
00034E71: 00     90

Понятно конечно, что ручками это никто править не будет, но может кому пригодится сей текст...

Вот еще исследования jdoe407. Советую почитать.

З.Ы. 2WG: Аня, а наработки по мапперу тоже сюда постить, или новую тему создавать?

-----
B@ZiK was here!

Отправлено: 2:40 - 31 Марта, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Пость... пости... запощивай... э-э-э-э :) ... В общем, кидай сюда :).

Отправлено: 12:18 - 31 Марта, 2005
B A Z i K
Пользователь

Откуда: Киев, Украина
Регистрация: Авг. 2004

Всего: 36 сообщений

Некоторые моды при установке заменяют исполняемый файл fallout2.exe. Так вот, если подобный мод установить на версию от Фаргуса, то вся озвучка персонажей превратится в противное шипение. Лечится так:

fallout2.exe            
0000A998: 74  EB

Кстати в очередной раз обновился Fallout2Patcher. Текущая версия патчера 3с.

И напоследок...

fallout2.exe
0x69583 [02] - радиус взрыва гранат
0x6958B [03] - радиус взрыва ракет

То есть тоже самое, что отписал Рейвен много постов назад, но для fallout2.exe.


Теперь по Мапперу (BIS ессно):

Снятие ограничения на кол-во городов:

mapper2.exe
000DBD3C: 74 EB


Заставить маппер воспринимать 255 локаций вместо 160 можно так:

mapper2.exe
00087DCC: A0 FF

Под локацией подразумевается одна запись вида [Map XXX] в файле maps.txt.


Можно заставить маппер сохранять карты при значении override_librarian=1.
Какими глюками это грозит, и грозит ли вообще - неизвесно. Делается так:

mapper2.exe
000874B2: 75 90
000874B3: 50 90
00087883: 0F 90
00087884: 85 90
00087885: 7B 90
00087886: FC 90
00087887: FF 90
00087888: FF 90


Пока фсё

-----
B@ZiK was here!

Отправлено: 2:10 - 2 Апр., 2005
B A Z i K
Пользователь

Откуда: Киев, Украина
Регистрация: Авг. 2004

Всего: 36 сообщений

Здается мне, я нашел место, где индекс города из city.txt привязывается к ГВАРе репутации в этом самом городе.

Формат такой:
Первые четыре байта указывают на номер(а не на строку в файле vault13.gam) ГВАРы. Вторые четыре байта указывают на номер города из city.txt.(По типу [Area XX], где ХХ - номер города.)

Посмотрим на примере Рейдеров(106BCC):

           42 00 00 00 19 00 00 00
           /                   \
          /                     \
Номер ГВАРы(66)       Номер города(25)

Открываем vaul13.gam. Ищем 66-ю ГВАРу. И называется она GVAR_TOWN_REP_RAIDERS. Все совпадает

Начиная с нижеуказанных смещений начинается привязка ГВАРы к городу. Формат записей Интеловский.

Для американки 1.02д эти привязки сидят по адресу 106B4C.
Для американки 1.00 тут:105D8C
У ЛК спрятано здесь:106B3C
Ну а для Маппера спрятано аж здесь:152B68

Очередность привязки гвар к городам такая же, как и очередность размещения соответствующих гвар в vault13.gam. То есть сначала для Арройо, потом для Кламата ... и так до Наварро.

Предположения о том, что для репутации в городах можно юзать неиспользованые ГВАРы GVAR_TOWN_REP_BURIED_VAULT(58) и GVAR_TOWN_REP_COLUSA(60), были ошибочными, т.к. эти ГВАРы не прописаны в екзешнике.

То есть ситуация не очень хорошая. По идее эту таблицу с привязками можно сместить в другое место ехе-шеника, предназначенное, например для проверки/рапортов ошибок, или еще куда.
А на ее место прописать ссылки на новую созданную нами таблицу. Как я понял подобный метод использовался в НВ для ограничения использования новой наркоты.
Сорри, если объяснил по-ламерски. Темный я в Ассемблере...

На этом про ГВАРы репутации все.

В фолле(анг 1.02д) Начиная со смещения 106BE0 идут 8 записей про ГВАРы ADDICT'ов(привыканий). Порядок такой же, как и размещение этих самых гвар в vault13.gam. То есть начиная с GVAR_NUKA_COLA_ADDICT(21) по GVAR_ALCOHOL_ADDICT(26). А вот эти 2 ГВАРы не совпадают с размещением в vault13.gam, а именно:

106BFC - ГВАРа привыканию Джету(296).
106C00 - ГВАРа привыканию к карточной игре Трагик(295).

Проверял, 100% оно. Менял номер гвары в ехе,
потом в игре менял значение гвары, на которую я поменял в ехе, и получал соответствующий ADDICT

После этого идут еще какие-то записи, но к ГВАРам они не относятся

Вот, предположительно расположение еще одной двиговой ГВАРы(для англ 1.02д):
106B34 - GVAR_LOAD_MAP_INDEX(27)

З.Ы. Немного не в тему, но близко. Отображение квестов в пип-бое от этой самой ГВАРы репутации никак не зависит. Эта ГВАРа отображает только репутацию для конкретной локации, которую можно посмотреть в хар-ках персонажа. Типа любят, нейтрально, ненавидят и т.д.
Насчет квестов. У меня квесты в новых созданных городах отображаются нормально.
Конечно еще перепроверю, но вроде все работаетъ.
Сорри за оффтоп.

Пока фсе

(Отредактировал(а) B A Z i K - 21:03 - 24 Апр., 2005)

-----
B@ZiK was here!

Отправлено: 20:58 - 18 Апр., 2005
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

>Вот, предположительно расположение еще одной двиговой ГВАРы(для англ 1.02д):
106B34 - GVAR_LOAD_MAP_INDEX(27)


А это что за гвара?

>Отображение квестов в пип-бое от этой самой ГВАРы репутации никак не зависит.

А разве должно? По-моему, они вообще никаким боком не связаны.

За один последний год об экзешнике стало известно больше, чем начиная с далекого 98-го. Так мы пожалуй его на винтики разберем.
Крутые исследования, решпект.

Отправлено: 23:23 - 18 Апр., 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Решпект, решпект. Крут ;).

GVAR_LOAD_MAP_INDEX это такая гвара в которую обычно пишется число, определяющее режим входа на карту. Смутно, да? Вот пример:

Код:
   if (global_var(GVAR_LOAD_MAP_INDEX) == LOAD_MAP_NORMAL) then 
      override_map_start_hex(25075, 0, 3);
  if (global_var(GVAR_LOAD_MAP_INDEX) == LOAD_MAP_RETURN_DWNTWN) then
      override_map_start_hex(23087, 0, 5);


Отправлено: 7:17 - 19 Апр., 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

>>За один последний год об экзешнике стало известно больше, чем начиная с далекого 98-го. Так мы пожалуй его на винтики разберем

меня тоже посещала такая мысль

По существу:
(Фаргус version only)

1)
Со смещения:
0x0F1900
по
0x0F19D0
находятся все ролики включённые в игру. Обратить особое внимание, что для нескольких из них используется своя палитра (я ничего не путаю?). Соответственно сразу за перечислением роликов идёт местонахождение pal (например art\cuts\introsub.pal)

2)
Для меня более интересная инфа. (И найти было намного сложнее)
Смотреть:
0x0B3190

Есть там такое значение - B101 . Это не что иное, как номер из INTRFACE.LST (433) Отвечает за картинку используемую на карте мира во время движения машины (низ\право).
Есть ещё пара идей про машину, но это позже.




(Добавление от 0:45 - 21 Апр., 2005.)


Забыл.

0x0B2DF0 - значение 6E01 (366) : картинка, когда мы передвигаемся по карте на своих двоих.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 0:25 - 21 Апр., 2005
B A Z i K
Пользователь

Откуда: Киев, Украина
Регистрация: Авг. 2004

Всего: 36 сообщений

2Perceptron:
Цитата:

А это что за гвара?


Интересная гвара Добиться ее динамического(в смысле не ручками) измененения в игре у меня так и не получилось И насчет того что по данному смещению именно она я тоже на 100% не уверен. Так теория, догадки.

Вот, что мне удалось нарыть...
Отлична от нуля в таких скриптах:

ENCDOCK.SSL, GSTCAV1.SSL, KLAGRAZ.SSL, MCSLGGRD.SSL, NCR1.SSL,  
NCRENT.SSL, NEWRCS.SSL, REDDTUN.SSL, V13ENT.SSL.  

В игре может принимать значения: 0, 2, 5, 10, 13, 777, 888, 999.
Исходя из трех последних значений говорить о том, что в эту ГВАРу запоминается индекс текущей карты, как-то не получается.
Вот еще один случай, когда название гвары не говорит о ее предназначении.
Цитата:

А разве должно? По-моему, они вообще никаким боком не связаны.


Цитирую WG:
Цитата:

Если "отметить в ПИПбое" означает отобразить репу и квесты, то никак. ГВАРина репы жёстко привязана к номеру локации. В движке. Так что увы..        



Вот я и подумал, что со своими квестами - никак, из-за того, что в двиге гвара не зарезервирована. Опровержение этого стало для меня настоящим открытием. Может конечно это уже все знают, а я как всегда пропустил новость...

Привязку гвар к с своим городам можно сделать(но долго и муторно) как я указал в предыдущем посте. А можно позаимствовать эти самые гвары репутации у городов, которым они "не очень нужны"
То есть в ехе находим привязку реповой гвары к Сьерре, Рейдерам, Анклаву или Наварро, и меняем адреса на свои локации. В итоге получится 7 городов
с репой(эти четыре + три неиспользованых).


2WG:
Цитата:

GVAR_LOAD_MAP_INDEX это такая гвара в которую обычно пишется число, определяющее режим входа на карту.


Сенксь. Будем знать. Из этой оперы есть еще двиговые  GVAR_MAP_EXIT_TILE(46) и GVAR_MAP_NEXT_TILE(67). Их работа соответствует названию?


2All:
З.Ы. В процессе ковыряния двига нашел еще пару вкусностей. Может для кого-то они не новость.

Параметр days_played для worldmap.txt. То есть проверка сколько дней мы играем.
В игре он не юзается, но работает.
Пример: в параметрах енкаунтера пишем If(days_played > 30), и этот енкаунтер
сможем встретить не раньше истечения этих самых 30-ти дней.

И еще один параметр pipboy_active для maps.txt. Может принимать значения Yes\No.
Зачем нужен, и что делает пока неясно.


-----
B@ZiK was here!

Отправлено: 1:25 - 21 Апр., 2005
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

>Вот я и подумал, что со своими квестами - никак, из-за того, что в двиге гвара не зарезервирована. Опровержение этого стало для меня настоящим открытием. Может конечно это уже все знают, а я как всегда пропустил новость...

А я однажды просто попробовал добавить свой квест в ПИП-бой, и все прекрасно прокатило. Это вообще в текстовых файлах прописывается. Не знаю, почему Аня про квесты речь завела.
Помню, Raven как-то признался, что считал невозможным добавление новых ГВАР. О ФОлле вообще много мифов ходит.

Отправлено: 3:04 - 21 Апр., 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Я и не говорила, что отображение квестов связано с репой. Я сомневалась, не прошита ли в движке привязка квестов к локациям. Оказывается, нет, всё гораздо проще. Тем лучше :).
Цитата:
Сенксь. Будем знать. Из этой оперы есть еще двиговые  GVAR_MAP_EXIT_TILE(46) и GVAR_MAP_NEXT_TILE(67). Их работа соответствует названию?

Угу. Они тоже в скриптах юзаются. Например, для того, чтобы сымитировать убегание криттера с карты. И инициализируются скриптово. Не знаю, меняет ли их как-то движок.

Отправлено: 15:14 - 22 Апр., 2005
B A Z i K
Пользователь

Откуда: Киев, Украина
Регистрация: Авг. 2004

Всего: 36 сообщений

Цитата:

Я и не говорила, что отображение квестов связано с репой. Я сомневалась, не прошита ли в движке
привязка квестов к локациям. Оказывается, нет, всё гораздо проще. Тем лучше .

Значит неправильно понял. Сорри за поднятый шум.

Цитата:

Угу. Они тоже в скриптах юзаются. Например, для того, чтобы сымитировать убегание криттера с
карты. И инициализируются скриптово. Не знаю, меняет ли их как-то движок.


Попробуем выяснить. А вот ГВАРа RUNNING_BURNING_GUY(28) - 100% двиговая.

С картами есть еще один неисследованый кусок. Это привязка номера карты к отображению этой самой карты в пип-бое. Или попросту говоря отображение автокарты. В игре не у всех локаций есть автокарты(напр. у конющен возле НР нету), то есть индексы карт из maps.txt в двиге привязываются к отображению в пипбое.

(Отредактировал(а) B A Z i K - 21:00 - 24 Апр., 2005)

-----
B@ZiK was here!

Отправлено: 18:56 - 24 Апр., 2005
Perceptron
Модератор

Откуда: Ivanovo
Регистрация: Май 2003

Всего: 502 сообщения

Координаты стартового города.

Как многие уже знают, если поменять координаты Арройо в city.txt, то город, конечно сместится, и игрок будет находится на нужном месте, только вот камера на карте мира будет висеть над старым местом, и девять квадратов вокруг старого местоположения Арройо будут подсвечены.
Положение камеры располагается по следующим смещениям:

Смещение    кол-во байт    нач. знач.      название
10C42C:     2              0х0000          World Viewport X
10C430:     2              0х0000          World Viewport Y

Эти нули означают, что камера находится в точке 184, 133 (стартовое положение игрока на карте). Чтобы сместить камеру вправо и вниз, используйте положительные значения (т.е., чтобы сместить в точку 384, 133, пропишите в X число 200 (т.е. 0xC8)).
Не помню кем найдено, но Andy-Spacetrain реализовал это в своих прогах.

Координаты подсветки располагаются по следующим смещениям:

Смещение    кол-во байт       нач. знач.        название
0AD008:     4                 0хAD000000        World Highlight X
0ACD90:     4                 0хAD000000        World Highlight X
0AD00D:     4                 0х7A000000        World Highlight Y
0ACD95:     4                 0х7A000000        World Highlight Y

AD - это 173, 7A - 122. 173, 122 - стартовые координаты Арройо. Просто меняйте эти значения на новые стартовые координаты.
Откопал это Anchorite (см. выше).
Откуда взялись еще два смещения? Просто в коде это значение меняется в двух местах. У меня, например, при начале новой игры подсветка не смещалась, пришлось покопаться в экзешнике.

Т.е. поменяли 6 смещений в EXE, подправили city.txt и вот вам Арройо на новом месте.

Кстати, чтобы получить смещения в памяти, прибавьте к смещениям в EXE число 411A00.

Отправлено: 23:42 - 9 Мая, 2005 | ИСПРАВЛЕНО: Perceptron - 0:36 - 28 Июня, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Кто знает, подскажите плз. смещение для движка Ф2 (любой версии) на снятие ограничения на кол. карт (именно карт, а не локаций коих 49). По какому адресу надо изменить байт на FF.


(Добавление от 0:43 - 24 Мая, 2005.)


Да, если это будет не фаргусовская версия, напишите значение соседних байт

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 23:02 - 23 Мая, 2005
B A Z i K
Пользователь

Откуда: Киев, Украина
Регистрация: Авг. 2004

Всего: 36 сообщений

Цитата:

Кто знает, подскажите плз. смещение для движка Ф2 (любой версии) на снятие ограничения на кол. карт (именно карт, а не локаций коих 49). По какому адресу надо изменить байт на FF.

Try this:
fallout2.exe (1.02d)
          Нач.  Изм.
98344: A0    FF

Это дело все не проверено, сказал навскидку, так что если это не то, сорри, сейчас времени нету. И для фаргуса это дело наверное тоже катит, т.к. у них екзешники только одним байтом различаются.

З.Ы. А что мы собственно ломаем? Первый раз слышу про ограничение на кол-во карт для fallout2.exe :\

-----
B@ZiK was here!

Отправлено: 9:11 - 24 Мая, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Что-то меня глючит. Я был свято уверен, что без ковыряния двига не получится исспользовать больше 160 карт. Это моя личная ошибка из той же оперы, что и определённое количество гвар. Однако, за помощь спасибо.

P.S. Действительно для фаргуса подходит.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 12:19 - 24 Мая, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Цитата:

Некоторые моды при установке заменяют исполняемый файл fallout2.exe. Так вот, если подобный мод установить на версию от Фаргуса, то вся озвучка персонажей превратится в противное шипение. Лечится так:

fallout2.exe            
0000A998: 74  EB



ЛК, в отличие от Гуся, воспринимает как "родной" звук, так и свой "особый". Никто не в курсе, как заставить английский экзешник 1.02d понимать ЛКшный звук?

Отправлено: 10:32 - 6 Июня, 2005
B A Z i K
Пользователь

Откуда: Киев, Украина
Регистрация: Авг. 2004

Всего: 36 сообщений

Цитата:

ЛК, в отличие от Гуся, воспринимает как "родной" звук, так и свой "особый". Никто не в курсе, как заставить английский экзешник 1.02d понимать ЛКшный звук?


Кажись вот это:
fallout2.exe(1.02d en)

Здесь был бред. Сори

Кстати, чтобы вылечить шипение голосов у Фаргусевого первого Фолла делаем так:
falloutw.exe (1.01 en)
00009FD8: 74 EB

(Отредактировал(а) B A Z i K - 16:59 - 7 Июня, 2005)

-----
B@ZiK was here!

Отправлено: 13:56 - 7 Июня, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Цитата:
Здесь был бред.

И всё-таки... есть варианты?

Отправлено: 11:09 - 8 Июня, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Был и есть список в котором написано, что мы можем делать с двигом, а что нет (пока нет). Так вот, у кого есть время и воображение ответьте: что вообще (желательно по мере важности) можно найти в двиге. Списком. Ну например:

1)Стартовые координаты
2)Ограничение на локации

И т.д. Желательно как можно подробнее. В том числе что уже известно, и что хотелось бы найти. У меня не хватает воображения.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 23:28 - 30 Июня, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Мой предыдущий пост. Как исковеркать англичанку, чтобы она начала понимать ЛК?

Отправлено: 12:14 - 1 Июля, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Это конечно хорошо, но кроме этого пожалуйста и список всего остального.

2 WG:

А можешь выложить где-нить файлик килл до 300 с ЛК звуком(можно на мыло). Двиги у меня есть все, а звук нет.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 13:01 - 1 Июля, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Помогите разобраться со следующими размышлениями (сомнениями).
Цитата:

13 Year Limit (Not working totally...) Version:                Hex Offset: Fallout2 (US v1.0)   Fallout2 (US v1.02d)    000938D8 Fallout2 (UK v1.01)     00093688 Fallout2 (UK v1.02e)    00093A88 Fallout2 (GR v1.0)   Fallout2 (GR v1.02d)    00093BA8 Fallout2 (FR v1.0)   Fallout2 (FR v1.02d)    00093BA8 ( Fallout2 (315371520) 0003CC12 ) Change to FFFFFFFF (?)



Я так понимаю автора найти не получится, но мне вот что интересно:
1) Что конкретно означает фраза Not working totally... В чем подвох? Я долго тестил, но проблем не возникло. Может у кого-то что-то было?
2) То с чем я не смог разобраься. Насколько мне известно исчисление в фолле идёт от "нулевого" года (2241), который зашит в двиге (впрочем местонахождение известно). Для начала я не пользовался начальными данными. Легко смог выяснить, что лимит в 13 лет не привязан к конкретной дате (в нашем формате yyyy.mm.dd). Также стало понятно, что зависит от стартового, "нулевого года". Это всё легко проверяется. Далее. Посмотрев данные приведеные в начале сообщения и вспомнив исчесление в фоле, стало понятно, что дата окончания игры исчисляется в секундах, прошедших от начала игры, от "нулевого" года. Но ответит ли мне кто-нибудь почему все говорят, что ограничение в 13 лет, а если перевести данные из двига - получается всего 10 лет?

Самый главный, конечно, первый вопрос... но всё-же.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 14:33 - 20 Июля, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

После нескольких часов рутинной работы следующие новости:

Снять лимит в 13 лет крайне легко. Взяв чистый двиг и сделав 40~60 тестов игра работала стабильно. Итак, единственная проблема, которая была - это та самая фраза Not working totally... А означало это произвольное окончание игры (заставка the end и т.д.) Выяснилось, что не такое уж и произвольное. Такое было всякий раз, когда вызывался сейв во время режима боя. Для нормальной работы требуется исправить значения в двух местах:

0x00938D8  ----  0003CC12 заменить на FFFFFFFF
0x009392D  ----  0003CC12 заменить на FFFFFFFF

У кого есть время - погоняйте плз. Мною глюков не замечено.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 0:23 - 23 Июля, 2005
Dar
Пользователь

Откуда: Воронеж
Регистрация: Дек. 2004

Всего: 289 сообщений

Вроде уже есть патчеры позволяюшие лимит убирать, да и давно.

Вот скажи, пожалуста (моя в двиге не гу,гу), заметить лимит в 13 лет на лимит в 1 год, 2 года и т.п. можно?

Как обрабатываются скилы?

Например: науку на Браминов можно применить, а на всех остальных критеров нельзя,( вроде).  
И тот же using_skill({ObjectPtr who}, {int skill}) нельзя ли расширить с чека на красться - на все остальные скилы.
и т.п.

Отправлено: 4:34 - 23 Июля, 2005 | ИСПРАВЛЕНО: Dar - 4:44 - 23 Июля, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

2Dar Твои вопросы относятся скорее к концепции объектов, чем к движковым ограничениям. Скиллы обрабатываются из скрипта. using_skill проверяет активный скилл, что идеологически верно лишь для скилла "красться", потому что лишь он может быть активен продолжительное время.

Отправлено: 9:47 - 23 Июля, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

>>Вроде уже есть патчеры позволяюшие лимит убирать, да и давно.

Есть. Правда я лично не видел, но....
1)Я исходных кодов не видел, не знаю что они правят.
2)В первоначальном сообщении данные не точны.
Я просто искал точную и рабочюю инфу.

>>Вот скажи, пожалуста (моя в двиге не гу,гу), заменить лимит в 13 лет на лимит в 1 год, 2 года и т.п. можно?

Можно. Хоть в 300 лет. Я лично ставил 1,2,10,50 лет. Проверял на 1 и 50 годах. Правда немного хитрые числа надо вводить.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 13:07 - 23 Июля, 2005
Dar
Пользователь

Откуда: Воронеж
Регистрация: Дек. 2004

Всего: 289 сообщений

Wasteland Ghost

>>using_skill проверяет активный скилл, что идеологически верно лишь для скилла "красться", потому что лишь он может быть активен продолжительное время.

Это логически понятно/очевидно.
С браминами-нет.  Неоскриптованный брамин отличается от неоскриптованного дикаря на предмет
науки. Ткнуть наукой на последнего просто нельзя.  и флагов в pro вроде никаких специфических.

И вот чуть глубже: перевести скил из категории неактивных в активные  - т.е. сделать то же воровство активным как "красться" ?
Это ведь двиговая вотчина?

Ray
Примерчик - другой можно?

и можно ли при этом
-оставить мульт. (гм, можно и скриптом вызвать)
-"убить" деревню (ну, это тоже скрипт)
-**незакончить игру** - разрешить игроку гулять в свое удовольствие, как после победного окончания игры.

Извините, если я торможу

Отправлено: 17:10 - 23 Июля, 2005 | ИСПРАВЛЕНО: Dar - 17:12 - 23 Июля, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

>>Примерчик - другой можно?

01E13380 (в двиге это будет выглядеть как 8033E101) - год и 4 месяца (и сколько-то дней). Точнее влом переводить.

>>и можно ли при этом
-оставить мульт. (гм, можно и скриптом вызвать)
-"убить" деревню (ну, это тоже скрипт)
-**незакончить игру** - разрешить игроку гулять в свое удовольствие, как после победного окончания игры.

Извини, но вопросы не верны по определению. Лимит на 13 лет означает, что после прошествии этого времени путешествуя на карте у тебя вылетит заставка THE END и игра выйдет в главное меню. Соответственно первое и второе не имеют смысл т.к. мы результата всё равно не увидим. С карты мира вызвать скрипт пока нельзя. По поводу последнего - можно просто убрать лимит. Точнее выставить очень большое число вместо 13 лет. А именно около 140 лет. После этого игра всё равно закончится.


(Добавление от 19:03 - 23 Июля, 2005.)


Ну и чтобы подвести черту добавлю:

Если не менять второе число (см. предыдущие сообщ.), то конец игры будет вызываться после окончания своего хода (режим боя).

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 18:48 - 23 Июля, 2005
Dar
Пользователь

Откуда: Воронеж
Регистрация: Дек. 2004

Всего: 289 сообщений

Все понял, спасибо.

Отправлено: 23:09 - 23 Июля, 2005
Spy
Реалист

Откуда: Все там будем...
Регистрация: Май 2005

Всего: 374 сообщения

Вот, чего расковырял (1.02d):

0x10с18с : Картинка для Fast metabolism, точнее соотв строка из skilldex.lst.
0x10с198 : -\\- для Bruiser
0x10с1a4 : -\\- для Small Frame
0x10с1b0 : -\\- для One Hander
0x10с1bc : -\\- для Finesse
0x10с1c8 : -\\- для Kamikaze
0x10с1d4 : -\\- для Heavy Handed
0x10с1e0 : -\\- для Fast Shot
0x10с1ec : -\\- для Bloody Mess
0x10с1f8 : -\\- для Jinxed
0x10с204 : -\\- для Good Natured
0x10с210 : -\\- для Chem Reliant
0x10c21c : -\\- для Chem Resistant
0x10с228 : -\\- для Sex Appeal
0x10c234 : -\\- для Skilled
0x10с240 : -\\- для Gifted

Дальше идёт 19 пустых байт, затем надпись "   Bugs...?Dammit Gus! I`m a dessert chef, not a programmer.", после чего непонятно пока чего...
Кстати, эта надпись встречается в дальнейшем в двиге дикое кол-во раз подряд...

-----
Хочешь, чтобы что-то было сделано хорошо - сделай сам.

Отправлено: 14:49 - 6 Сент., 2005 | ИСПРАВЛЕНО: Spy - 14:57 - 6 Сент., 2005
Fozzy
Пользователь

Откуда: Украина,Киев
Регистрация: Апр. 2004

Всего: 81 сообщение

Вот нашел пару строчек, подумываю о добавлении нового premade перса.

HEX: 0010AE50-0010AED0

Что с этим можно зделать?
З.Ы. Или я бред написал?

-----
Последний патрон в поржавевшем стволе - Остаток надежды на то что бы выжить.
И две банки джета в моем рюкзаке - Реальность, которой уже не увижу. (С)Fozzy

Отправлено: 19:19 - 25 Сент., 2005
Alchemist
Модератор

Откуда: Арзамас-17
Регистрация: Дек. 2004

Всего: 298 сообщений

Ну, ты накопал массив строк. Чтобы сделать что-то большее, чем изменение трёх имён файлов со стандартными персонажами, на другие три имени, придётся сначала отыскать в движке процедуру, к этому массиву обращающуюся. Ограничение на три персонажа жёстко зашито в ней.

-----
/// What'ya be sain'? Vault 100+? We need nothing o'that!

Отправлено: 21:29 - 26 Сент., 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Есть ли какие-нибудь отличия в оригинальном двиге (english version) и в двиге от Фаргуса? Я что-то так и не нашёл. Ну хоть в каких-нибудь байтах.

P.S. Между Eng/Фаргусом и ЛК можно не говорить. И так видно.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 21:59 - 11 Окт., 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Один байт. Что-то там связанное с командой безусловного перехода. Гусёвый экзешник "перепрыгивает" кусок кода, отвечающий за декодирование acm-файлов речи. Уже об этом в теме говорили. Кажись, вот оно:
0000A998: 74  EB

По поводу ЛК. У них экзешник версии 1.02, а не 1.02d. Был такой, оказывается.

Отправлено: 10:48 - 12 Окт., 2005
Mynah
Модератор

Откуда: Пермь
Регистрация: Окт. 2004

Всего: 469 сообщений

Я тут немножко плюшками баловался:)

Большая просьба людям, имеющим в своём распоряжении русификацию ЛК, проверить - будут ли шипеть головы с этим двигом.

-----
Scio me nihil scire

Отправлено: 17:23 - 17 Окт., 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Если это тот же вариант, что ушёл мне на мыло, то у меня он шипит .

Отправлено: 9:21 - 18 Окт., 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Цитата:

>>Вот скажи, пожалуста (моя в двиге не гу,гу), >>заменить лимит в 13 лет на лимит в 1 год, 2 года и >>т.п. можно?

R>Можно. Хоть в 100 лет. Я лично ставил 1,2,10,50 R>лет. Проверял на 1 и 50 годах. Правда немного R>хитрые числа надо вводить.




Признавать свои ошибки тяжело, но необходимо. Как я раньше проводил тесты старых значений и у меня всё работало - догадываюсь смутно. То, что это было не правильно - абсолютно точно. Дело ведь не в самом способе. Ну для начала вот более точный и безглючный:

Ограничение в 13 лет снимается так:

   Offset        Оригинал         Изменения

0x0093944        0D                      FF
0x00938EC        0D                      FF


Это позволит "коректно" вырубить проверку (вернее ограничение станет не 13 лет, а 255). Но есть одно но... Ребята в БИС всё-таки ограничение не с потолка придумали. Дело в том, что дата в фолле считается как количество прошедших секунд*10 от начала "нулевого" года (от 2241). Для записи этого времени используется переменная длинной в 4 байта. А это: FF FF FF FF ~ 13 с небольшим лет. И получается, что проверку можно увеличит с 13 лет до 255, но по прошествии 13 с копейками лет игра вешается в глухую. Вот такие дела. Так что ограничение лучше уж не трогать, лишние пол года игры думаю ничего не изменят.



2 Wasteland Ghost:

если есть желание - можешь поменять значения в доке на приведеные выше, но лучше совсем убрать данные по ограничению в 13 лет.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 1:55 - 20 Ноября, 2005 | ИСПРАВЛЕНО: Ray - 19:27 - 21 Ноября, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Version: "Фаргус" или English

 offset         Оригинал
0x070DDA          10

Номер ролика, который проигрывается последним при загрузке игры ("Война... Война никогда не меняется...." Соответственно 10 (16 система исчисления) - 16 (10 с.с.)= credits.mve

А вот так можно вообще выключить все вступительные ролики:

 offset           Оригинал          Изменения

0x070DE0      E8ABDCFCFF       E900000000
0x070DD4      E8B7DCFCFF       E900000000
0x070DCB      E8C0DCFCFF       E900000000

Правда, есть маааленький глюк с прорисовкой экрана, после отключения mve'шек. Но он не напрягает. Если сумею - уберу, но он ни сколько не мешает. Сами смотрите.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 20:26 - 21 Ноября, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

А не проще выключить вступительные ролики, поменяв их имена в fallout2.exe на другие?

Отправлено: 8:46 - 22 Ноября, 2005
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

>>А не проще выключить вступительные ролики, поменяв их имена в fallout2.exe на другие?

Проще. Но только тогда станет недоступной самая первая кнопка в меню игры - "История". А так только вступительные ролики.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 10:15 - 22 Ноября, 2005
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Есть ещё охотники движок поковырять?

Вот задачка: найти в движке место, отвечающее за изменение игрового времени в процессе движения по карте мира. Т.е. нужно не визуально замедлить/ускорить перемещение, а в игровом времени (тиках).

Отправлено: 22:59 - 4 Янв., 2006
Dar
Пользователь

Откуда: Воронеж
Регистрация: Дек. 2004

Всего: 289 сообщений

Кто-нить может ковырнуть двиг или надоумить как ковырнуть (((хексЪедитор имется)))

scr_return(1);

Используется, чтобы делить итемы при юзанье их в инвентаре, но делит только те в которых скрипт с ней
можно найти в оригинале.
Как  прописать/добавить свои пиды итемов соответственно?

Отправлено: 21:35 - 27 Янв., 2006
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Выключение кнопки 0 в диалогах (для Фаргуса, Eng и 1С):

Offset: 0x36C48
Старое значение: 0x30
Новое значение: 0x31

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 12:37 - 22 Июля, 2007 | ИСПРАВЛЕНО: Ray - 11:42 - 22 Июля, 2007
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Цитата:

Координаты стартового города.
Как многие уже знают, если поменять координаты Арройо в city.txt, то город, конечно сместится, и игрок будет находится на нужном месте, только вот камера на карте мира будет висеть над старым местом, и девять квадратов вокруг старого местоположения Арройо будут подсвечены.
Положение камеры располагается по следующим смещениям:

Смещение    кол-во байт    нач. знач.      название
10C42C:     2              0х0000          World Viewport X
10C430:     2              0х0000          World Viewport Y

Эти нули означают, что камера находится в точке 184, 133 (стартовое положение игрока на карте). Чтобы сместить камеру вправо и вниз, используйте положительные значения (т.е., чтобы сместить в точку 384, 133, пропишите в X число 200 (т.е. 0xC8)).

Не помню кем найдено, но Andy-Spacetrain реализовал это в своих прогах.


можете дать ссылку на эту программу

Цитировать надо правильно.
WG

Отправлено: 19:49 - 17 Авг., 2007
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Зачем это тебе? Неужели так сложно исправить самому?

К томуже эти данные не полные. Посмотри в доки по оффсетам в Документации. Там точнее.

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 20:18 - 17 Авг., 2007
Wasteland Ghost
Маленькое Злое Привидение

Откуда: Россия, Самара
Регистрация: Дек. 2002

Всего: 2251 сообщение

Прямо перед глазами. Раздел "Патчи и загрузчики".

Отправлено: 19:49 - 20 Авг., 2007
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Небольшие лирические размышления на тему замедления передвижения по карте мира

На данный момент мне неизвестен не один корректный способ, который позволил бы "правильно" замедлить передвижение по карте мира. Те способы, которые существуют сейчас, в том числе и приведнный в данной теме создают лишь илюзию замедления. В определённом месте ставиться безусловный переход в другое место движка, где создан цикл, который в зависимости от автора инкрементом увеличивает значение регистра от нуля до (как приведено в этой теме) 0x100000000
Фактически процессор просто загружается работой счётчика. После чего стоит указатель на старое место в двиге и продолжается выполнение ф-ии. Что ни коим образом не влияет на случайные встречи. Исключительно визуальное решение, толку от которого нет совсем. Так что применения этого я не вижу никакого смысла.

Господа "двиглоковырятели"  есть у кого идеи насчёт ф-ии обработки карты мира (которая начинается 0xB020C)?

Для тех, кому достаточно исключительно визуального решения, но при применении патча (приведённого в данной теме) не даёт достаточного результата можно увеличить количество шагов счётчика. Увеличте значение по адресу 0xBB3BB. 00000001 сделайте его больше.

P.S. Кто знает - то замедление по карте, которое делал Mynah работает по тому же принципу?

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 20:00 - 25 Авг., 2007
Freeman
Пользователь

Регистрация: Февр. 2007

Всего: 24 сообщения

Что-то не понимаю почему от такого способа толку нет совсем. Хотя если определение есть ли встреча находится вне этого цикла то понятно. Можешь выложить дизасеммблеренный код процедуры и прокомментировать основные места? Или просто объяснить принцип по которому там всё работает?

Отправлено: 22:10 - 25 Авг., 2007
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Цитата:
Что-то не понимаю почему от такого способа толку нет совсем


На простом примере. Допустим у нас есть такая ф-ия

Код:
 
worldmap()
{
 func1(); //отрисовка
 while(true)
 {
    func2(); //обработка нажатых клавиш
    func3(); //обработка перемещения
    func4(); //слежение за машиной (топливо и пр.)
    func5(); //обработка случайных встреч
 }
}



существующие "замедлялки" делают следующее

Код:
 
worldmap()
{
 func1(); //отрисовка
 while(true)
 {
    SLOW();
    func2(); //обработка нажатых клавиш
    func3(); //обработка перемещения
    func4(); //слежение за машиной (топливо и пр.)
    func5(); //обработка случайных встреч
 }
}

SLOW()
{
 int eax = 0;
 while (eax< 0x100000000)
 {
   eax++;
 }
}



Комментарии нужны? Вставляется "холостой" цикл, который просто загружает временно проц. Но на игру он никак не влияет. Функция карты просто временно приостанавливается что мы и видим визуально. Но полезности от этого 0.

Цитата:
Можешь выложить дизасеммблеренный код процедуры и прокомментировать основные места?


Я только начал разбирать функцию. Это долгий процесс. К тому же она просто огромна. Если интересно найди в инете такую вещь как REC и найди в нём ф-ию "L004BFE0C"
(http://www.backerstreet.com/rec/rec.htm) А я потом поделюсь своими комментариями

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 23:30 - 25 Авг., 2007
Ray
Модератор

Откуда: Донецк,Украина
Регистрация: Янв. 2004

Всего: 746 сообщений

Цитата:
Есть ещё охотники движок поковырять?  



А как же

Цитата:
Вот задачка: найти в движке место, отвечающее за изменение игрового времени в процессе движения по карте мира. Т.е. нужно не визуально замедлить/ускорить перемещение, а в игровом времени (тиках)


Ещё надо? За правильное решение задачи ожидаю только 5 баллов

Offset Значение
0xB04E5 50460000


Для Фаргуса, Американки v1.02d. Всё тестилось.

Комментарии: Движёк фола делает так - разбивает путь игрока на отрезки равной длинны (отрезки заранее определённого размера). На каждом шаге цикла перемещает игрока на один такой отрезок (в случае с машиной в зависимости от условий на 8 отрезков за раз). Как  бы то ни было на каждом шаге он прибавляет к дате пол часа (18000 тиков). По этому смещению и находится это число. Надо замедлить передвижение (ускорить течение времени) - увеличь число. Ускорить - умеши.
Как уже сказал число записано в тиках. Проще не придумаешь

P.S. Извини что так поздно

-----
Не бывает невозможных задач – бывает мало времени.

Отправлено: 19:24 - 26 Авг., 2007
Jordan 63
Пользователь

Откуда: Россия, Самара
Регистрация: Июль 2007

Всего: 228 сообщений

Я писал

Цитата:

По каким офсетам можно изменить что бы при выходе на карту мира игрок находился в таких координатах

X=823
Y=72

А также чтобы все тайлы возле арройо не были подсвещены. Очень нужно!



Я нашел ответ нужно было просто посмотреть документацию.

Отправлено: 22:42 - 16 Янв., 2008 | ИСПРАВЛЕНО: Jordan 63 - 22:51 - 16 Янв., 2008
 

Переход по темам
<< Пред. След. >>
Единственная страница этой темы


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com