📄 actor.pas
字号:
ActStand:(Start:0; frame:4; skip:6; ftime:200; usetick:0);
ActWalk:(Start:0; frame:10; skip:0; ftime:200; usetick:3);
ActAttack:(Start:10; frame:6; skip:4; ftime:120; usetick:0);
ActCritical:(Start:40; frame:10; skip:0; ftime:120; usetick:0);
ActStruck:(Start:20; frame:2; skip:0; ftime:100; usetick:0);
ActDie:(Start:30; frame:10; skip:0; ftime:150; usetick:0);
ActDeath:(Start:0; frame:10; skip:0; ftime:200; usetick:3);
);
MA61: TMonsterAction = (//地狱怪物1
ActStand: (start: 0; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 80; frame: 6; skip: 4; ftime: 160; usetick: 3);
ActAttack: (start: 160; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 340; frame: 10; skip: 0; ftime: 160; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 10; skip: 0; ftime: 140; usetick: 0);
ActDeath: (start: 0; frame: 0; skip: 0; ftime: 100; usetick: 0);
);
MA62: TMonsterAction = (//地狱怪物2
ActStand: (start: 0; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 80; frame: 6; skip: 4; ftime: 160; usetick: 3);
ActAttack: (start: 160; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 340; frame: 6; skip: 4; ftime: 160; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 9; skip: 1; ftime: 140; usetick: 0);
ActDeath: (start: 0; frame: 0; skip: 0; ftime: 100; usetick: 0);
);
MA63: TMonsterAction = (//地狱怪物3
ActStand: (start: 0; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 80; frame: 6; skip: 4; ftime: 160; usetick: 3);
ActAttack: (start: 160; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 420; frame: 7; skip: 3; ftime: 160; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 8; skip: 2; ftime: 140; usetick: 0);
ActDeath: (start: 0; frame: 0; skip: 0; ftime: 100; usetick: 0);
);
MA64: TMonsterAction = (//变异新怪物教主
ActStand: (start: 0; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 80; frame: 6; skip: 4; ftime: 160; usetick: 3);
ActAttack: (start: 160; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 420; frame: 20; skip: 0; ftime: 160; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 20; skip: 0; ftime: 140; usetick: 0);
ActDeath: (start: 0; frame: 0; skip: 0; ftime: 100; usetick: 0);
);
MA65: TMonsterAction = (
ActStand: (start: 0; frame: 20; skip: 0; ftime: 150; usetick: 0);
ActWalk: (start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActAttack: (start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 20; frame: 10; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 400; frame: 18; skip: 2; ftime: 120; usetick: 0);
ActDeath: (start: 400; frame: 18; skip: 2; ftime: 120; usetick: 0);
);
MA67: TMonsterAction = (
ActStand: (start: 0; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 0; frame: 0; skip: 0; ftime: 200; usetick: 0);
ActAttack: (start: 10; frame: 4; skip: 1; ftime: 100; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 150; usetick: 0);
ActStruck: (start: 0; frame: 4; skip: 6; ftime: 100; usetick: 0);
ActDie: (start: 0; frame: 0; skip: 0; ftime: 120; usetick: 0);
ActDeath: (start: 0; frame: 0; skip: 0; ftime: 120; usetick: 0);
);
WORDER: Array[0..1, 0..599] of byte = (
(
0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0, 0,0,0,0,1,1,1,1,
0,0,0,0,1,1,1,1, 0,0,0,0,1,1,1,1,
0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,
0,0,0,0,0,0,0,1, 0,0,0,0,0,0,0,1,
0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,1,1,1,1,1,1, 0,0,1,1,1,0,0,1,
0,0,0,0,0,0,0,1, 0,0,0,0,0,0,0,1,
0,1,1,1,0,0,0,0,
1,1,1,0,0,0,1,1, 1,1,1,0,0,0,0,0, 1,1,1,0,0,0,0,0,
1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0, 1,1,1,1,0,0,1,1,
0,1,1,0,0,0,1,1, 0,1,1,0,0,0,1,1, 1,1,1,0,0,0,0,0,
1,1,1,0,0,1,1,1, 1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,
0,0,0,1,1,1,0,0, 0,1,1,1,1,0,1,1,
1,1,0,1,0,0,0,0, 1,1,0,0,0,0,0,0, 1,1,1,1,1,0,0,0,
1,1,0,0,1,0,0,0, 1,1,1,0,0,0,0,1, 0,1,1,0,0,0,0,0,
0,0,0,0,1,1,1,0, 1,1,1,1,1,0,0,0,
0,0,0,0,0,0,1,1, 0,0,0,0,0,0,1,1, 0,0,0,0,0,0,1,1,
1,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,
0,0,1,1,0,0,1,1, 0,0,0,1,0,0,1,1,
0,0,1,0,1,1,1,1, 1,1,0,0,0,1,0,0,
0,0,0,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,0,1,1,1,1,1, 0,0,0,1,1,1,1,1,
0,0,0,1,1,1,1,1, 0,0,0,1,1,1,1,1,
0,0,1,1,1,1,1,1, 0,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,0,1,1,1,1,1, 0,0,0,1,1,1,1,1,
0,0,0,1,1,1,1,1, 0,0,0,1,1,1,1,1
),
(
0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0, 0,0,0,0,1,1,1,1,
0,0,0,0,1,1,1,1, 0,0,0,0,1,1,1,1,
0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,
0,0,0,0,0,0,0,1, 0,0,0,0,0,0,0,1,
0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,1,1,1,1,1,1, 0,0,1,1,1,0,0,1,
0,0,0,0,0,0,0,1, 0,0,0,0,0,0,0,1,
1,1,1,1,0,0,0,0,
1,1,1,0,0,0,1,1, 1,1,1,0,0,0,0,0, 1,1,1,0,0,0,0,0,
1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,0,0,0,0,0,
0,0,0,0,0,0,0,0, 1,1,1,1,0,0,1,1,
0,1,1,0,0,0,1,1, 0,1,1,0,0,0,1,1, 1,1,1,0,0,0,0,0,
1,1,1,0,0,1,1,1, 1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,
0,0,0,1,1,1,0,0, 0,1,1,1,1,0,1,1,
1,1,0,1,0,0,0,0, 1,1,0,0,0,0,0,0, 1,1,1,1,1,0,0,0,
1,1,0,0,1,0,0,0, 1,1,1,0,0,0,0,1, 0,1,1,0,0,0,0,0,
0,0,0,0,1,1,1,0, 1,1,1,1,1,0,0,0,
0,0,0,0,0,0,1,1, 0,0,0,0,0,0,1,1, 0,0,0,0,0,0,1,1,
1,0,0,0,0,1,1,1, 1,1,1,1,1,1,1,1, 0,1,1,1,1,1,1,1,
0,0,1,1,0,0,1,1, 0,0,0,1,0,0,1,1,
0,0,1,0,1,1,1,1, 1,1,0,0,0,1,0,0,
0,0,0,1,1,1,1,1, 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,0,1,1,1,1,1, 0,0,0,1,1,1,1,1,
0,0,0,1,1,1,1,1, 0,0,0,1,1,1,1,1,
0,0,1,1,1,1,1,1, 0,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1, 0,0,0,1,1,1,1,1, 0,0,0,1,1,1,1,1,
0,0,0,1,1,1,1,1, 0,0,0,1,1,1,1,1
)
);
EffDir : array[0..7] of byte = (0, 0, 1, 1, 1, 1, 1, 0);
type
TActor = class//Size 0x240
m_nRecogId :Integer; //角色标识 0x4
m_nCurrX :Integer; //当前所在地图座标X 0x08
m_nCurrY :Integer; //当前所在地图座标Y 0x0A
m_btDir :Byte; //当前站立方向 0x0C
m_btSex :Byte; //性别 0x0D
m_btRace :Byte; //0x0E
m_btHair :Byte; //头发类型 0x0F
m_btDress :Byte; //衣服类型 0x10
m_btHelmet :Byte; //头盔类型
m_btWeapon :Byte; //武器类型
m_btHorse :Byte; //马类型
m_btEffect :Byte; //天使类型
m_btAttatckMode :Byte;
m_btJob :Byte; //职业 0:武士 1:法师 2:道士
m_wAppearance :Word; //0x14
m_btDeathState :Byte;
m_nFeature :Integer; //0x18
m_nFeatureEx :Integer; //0x18
m_nState :Integer; //0x1C
m_boDeath :Boolean; //0x20
m_boSkeleton :Boolean; //0x21
m_boDelActor :Boolean; //0x22
m_boDelActionAfterFinished :Boolean; //0x23
m_sDescUserName :String; //人物名称,后缀
m_sUserName :String; //0x28
m_nNameColor :Integer; //0x2C
m_Abil :TAbility; //0x30
m_nGold :Integer; //金币数量0x58
m_nBankGold :Integer; //银行金币数量
m_nGameGold :Integer; //游戏币数量
m_nGamePoint :Integer; //游戏点数量
m_nHitSpeed :ShortInt; //攻击速度 0: 正常, (-)减速 (+)加速
m_boVisible :Boolean; //0x5D
m_boHoldPlace :Boolean; //0x5E
m_SayingArr :array[0..MAXSAY-1] of String;
m_SayWidthsArr :array[0..MAXSAY-1] of Integer;
m_dwSayTime :LongWord;
m_nSayX :Integer;
m_nSayY :Integer;
m_nSayLineCount :Integer;
m_nShiftX :Integer; //0x98
m_nShiftY :Integer; //0x9C
m_nPx :Integer; //0xA0
m_nHpx :Integer; //0xA4
m_nHepx :Integer;
m_nWpx :Integer; //0xA8
m_nSpx :Integer; //0xAC
m_nPy :Integer;
m_nHpy :Integer;
m_nHepy :Integer;
m_nWpy :Integer;
m_nSpy :Integer; //0xB0 0xB4 0xB8 0xBC
m_nRx :Integer;
m_nRy :Integer;//0xC0 0xC4
m_nDownDrawLevel :Integer; //0xC8
m_nTargetX :Integer;
m_nTargetY :Integer; //0xCC 0xD0
m_nTargetRecog :Integer; //0xD4
m_nHiterCode :Integer; //0xD8
m_nMagicNum :Integer; //0xDC
m_nCurrentEvent :Integer;
m_boDigFragment :Boolean;
m_boThrow :Boolean;
m_nBodyOffset :Integer; //0x0E8 //0x0D0
m_nHairOffset :Integer; //0x0EC
m_nHumWinOffset :Integer; //0x0F0
m_nWeaponOffset :Integer; //0x0F4
m_nHelmetOffset :Integer;
m_boUseMagic :Boolean; //0x0F8 //0xE0
m_boHitEffect :Boolean; //0x0F9 //0xE1
m_boUseEffect :Boolean; //0x0FA //0xE2
m_nHitEffectNumber :Integer; //0xE4
m_dwWaitMagicRequest :LongWord;
m_nWaitForRecogId :Integer;
m_nWaitForFeature :Integer;
m_nWaitForStatus :Integer;
m_nCurEffFrame :Integer; //0x110
m_nSpellFrame :Integer; //0x114
m_CurMagic :TUseMagicInfo; //0x118 //m_CurMagic.EffectNumber 0x110
GlimmingMode: Boolean;
CurGlimmer: integer;
MaxGlimmer: integer;
GlimmerTime: longword;
m_nGenAniCount :Integer; //0x124
m_boOpenHealth :Boolean; //0x140
m_noInstanceOpenHealth :Boolean;//0x141
m_dwOpenHealthStart :LongWord;
m_dwOpenHealthTime :LongWord;//Integer;jacky
//SRc: TRect; //Screen Rect
m_BodySurface :TDirectDrawSurface; //0x14C //0x134
m_boGrouped :Boolean; //0x150 是否组队
m_nCurrentAction :Integer; //0x154 //0x13C
m_boReverseFrame :Boolean; //0x158
m_boWarMode :Boolean; //0x159
m_dwWarModeTime :LongWord; //0x15C
m_nChrLight :Integer; //0x160
m_nMagLight :Integer; //0x164
m_nRushDir :Integer; //0, 1 //0x168
m_nXxI :Integer; //0x16C
m_boLockEndFrame :Boolean; //0x170
m_dwLastStruckTime :LongWord; //0x174
m_dwSendQueryUserNameTime :LongWord; //0x178
m_dwDeleteTime :LongWord;//0x17C
m_nMagicStruckSound :Integer; //0x180 被魔法攻击弯腰发出的声音
m_boRunSound :Boolean; //0x184 跑步发出的声音
m_nFootStepSound :Integer; //CM_WALK, CM_RUN //0x188 走步声
m_nStruckSound :Integer; //SM_STRUCK //0x18C 弯腰声音
m_nStruckWeaponSound :Integer; //0x190 被指定武器攻击弯腰声音
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -