Listing and Reversing ASM ~for 艾爾卡特's LF2 EXE
Comments
 Share
The version of the browser you are using is no longer supported. Please upgrade to a supported browser.Dismiss

 
Comment only
 
 
Still loading...
ABCDEF
1
Neora OffsetArray Offsets
SizeFreeUsageDescription
2
0dmove countersomething to do with walking and running animation
3
4drun counterrecords first button press of run (<0 for left, >0 for right)
4
8dInvinciblevalue = time (value>0 will flash, value<0 will be invisible)
5
Cd
6
10dx positionОкругленная целочисленная версия X
7
14dy positionОкругленная целочисленная версия Y
8
18dz positionОкругленная целочисленная версия Z
9
1Cdсдвиг спрайтов по x (?)
0040E050 MOV EAX,DWORD PTR DS:[ESI+1C]
вроде гдето в отрисовке используется. еще в процессе понимания
10
20dtimes of attackКогда объект атакован, у него появляется в этом поле 1
11
24dunusedНе используется
12
28dPic. x gain
13
2Cfloat dx accl.
14
30float dy accl.
15
38float dz accl.
16
40float qx velocity
17
48float qy velocity
18
50float qz velocity
19
58float qx positionПлавающее значение X
20
60float qy positionПлавающее значение Y
21
68float qz positionПлавающее значение Z
22
70dFrame no.Текущий кадр
23
74dFrame no.Следующий кадр (если весь цикл wait выполнен)
24
78dFrame no.?
25
7CdFrame no.?
26
80bFacing0 - повернут вправо, 1 - влево
27
81bunusedНе используется
28
82bunusedЗарезервировано в Neora 2.00+ для
преобразований уже существующих float стандарта IEEE 754 в double
29
83bunused
30
84d
31
88dwait countercounts up from 0 until current frame's wait
32
8Cdcpoint catcherthe one being caught
33
90dcpoint timerthe one catch self
34
94d?Запись 0 на загрузке. В бою не активно. Не используется?
Картер пометил эту часть как счетчик Arest
35
98dweapon typeHover to see More
36
9Cdobject no. weapon held
37
A0dobject no. holding self
38
A4d?Запись 0 на загрузке. В бою не активно. Не используется?
39
A8d?Запись 0 на загрузке. В бою не активно. Не используется?
40
ACd?Запись 0 на загрузке. В бою не активно. Не используется?
41
B0dFall point
42
B4dShaking0 = тряски нет
value > 0 для атакующего
value < 0 для жертвы
если выставить вручную значение больше 0 - будет что-то вроде заморозки для объекта
43
B8dDefend pointКартер: bdefend & armor
44
BCb?Запись 0 на загрузке. В бою не активно. Не используется?
45
BDbНе используется
46
BEbСчетчик от нажатия AПри нажатии одной их клавиш управления байт заполняется 5, а после начинает потактово уменьшаться обратно до 0.

Почему-то блок занимает два байта, причем отдельно работающих. Первый из них имеет типичный счетчик от 5. Во второй (C1) пишется следующее:
mov byte ptr [esi+000000C1],03
Второй байт даёт Wait 3 задержку, прежде чем вы снова можете нажать блок. Именно по этой причине игрок не может удерживать блок постоянно и всё равно иногда открывается.
47
BFbСчетчик от нажатия J
48
C0bСчетчик от нажатия D
49
C1bСчетчик от нажатия D
50
C2bСчетчик от нажатия >
51
C3bСчетчик от нажатия <
52
C4bСчетчик от нажатия ^
53
C5bСчетчик от нажатия v
54
C6bУдержание ^0 - не удерживается | 1 - удерживается

Фактических отличий в байт-коде от нажатий нет

55
C7bУдержание v
56
C8bУдержание <
57
C9bУдержание >
58
CAbУдержание A
59
CBbУдержание J
60
CCbУдержание D
61
CDb^0 - не нажимается | 1 - нажимается

Фактических отличий в байт-коде от удерживаний нет
62
CEbv
63
CFb<
64
D0b>
65
D1bA
66
D2bJ
67
D3bD
68
D4bD (Блок)
нажат

Все байты
принимают
"01"
означая
готовность
считать
приём.
< \ > нажато
Все байты принимают "02" при >
Все байты принимают "03" при <
остальные ветки 00
A нажато
Байт принимает значение "04" при >
Байт принимает значение "05" при <
69
D5bJ нажато
Байт принимает значение "04" при >
Байт принимает значение "05" при <
70
D6b^ нажато
Все байты принимают "02", остальные ветки 00
A нажато
Байт принимает значение "03", остальные ветки 00
71
D7bJ нажато
Байт принимает значение "03", остальные ветки 00
72
D8bV нажато
Все байты принимают "02", остальные ветки 00
A нажато
Байт принимает значение "03", остальные ветки 00
73
D9bJ нажато
Байт принимает значение "03", остальные ветки 00
74
DAD+A+J1 - сработало, 0 - не сработало
75
DBD+A+A
76
DCD+J+A
77
DDD+J+J
78
DE?Запись 0 на загрузке. В бою не активно. Не используется?
79
DF?Запись 0 на загрузке. В бою не активно. Не используется?
80
E0dcuring hpЗначение равное (лечение хп) + 1000.
Если там значение меньше 1000, то "высасывание" здоровья из значения даже не начнется.
Можно придумывать механику бонусных подлечиваний по стакам! :)
81
E4dcuring flag for HP bar
ячейка для определения и записи информации о подхиле
82
E8b
83
E9b
84
EAbFinisher Flag CheckЕсли перед противником находится кто-то с Kind 6 (состояние в ТБ), то атакующий будет получать значение 3 в данную ячейку, пока перед ним находится подобная цель. Значение обновляется постоянно. Как только цель вышла из кадра ТБ - происходит отсчет по Wait-1
Значение 3 записывается в следующей строке:
mov byte ptr [edi+000000EA],3
Если перезаписать на другое число - персонаж сможет атаковать супер атакой куда более продолжительное время, после того как ввел кого-то в ТБ. Хорошо для механики Power-UP
85
EBbЧто-то связано с переопределением хозяина снаряда? Или таймер?
86
ECdarestСчетчик wait 5 по умолчанию, если значение отсутствует. Ежесекундная перезапись значения в 0 при неиспользовании.
87
F0bobject no.1 vrestКартер: 跳台平面 \ Jumping plane
88
F1bobject no.2 vrest
89
F2bobject no.3 vrest
90
F3bobject no.4 vrest
91
F4d
Картер: 所屬跳台 \ belongs jumping
92
F8d
93
FCb
94
FDb
95
FEb
96
FFbКартер: 1=防禦有效,2=盔甲防禦有效 \ 1 = defense effective, 2 = armor defense effective
Не выглядит соответствующим.
97
100dПоложение по X координате
98
104dПоложение по Y координате
99
108dПоложение по Z координате
100
10CdКартер: 影子所在平面 \ the shadow of the plane
Loading...
 
 
 
1. Individual
Individual II
2. ID
ID II
3. Frame
4. ITR
5. BDY
BG
Исследования
Константы
Karter's Notes
rpg.dat
[LF2 Only] Remarks
effect.dat
system.dat