📄 actor.pas
字号:
unit Actor;
interface
uses
svn, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grobal2, DxDraws, CliUtil, magiceff, Wil, ClFunc, SDK;
const
MAXACTORSOUND = 3;
CMMX = 150;
CMMY = 200;
HUMANFRAME = 600;
HUMANFRAME2 = 856;
MONFRAME = 280;
EXPMONFRAME = 360;
SCULMONFRAME = 440;
ZOMBIFRAME = 430;
MERCHANTFRAME = 60;
MAXSAY = 5;
// MON1_FRAME =
// MON2_FRAME =
RUN_MINHEALTH = 10;
DEFSPELLFRAME = 10;
FIREHIT_READYFRAME = 6;
MAGBUBBLEBASE = 3890; //魔法盾效果图位置
MAGBUBBLESTRUCKBASE = 3900; //被攻击时魔法盾效果图位置
CELESTIALBASE = 1890; //阴阳法环效果图位置
CELESTIALSTRUCKBASE = 1893; //被攻击时阴阳法环效果图位置
MAXWPEFFECTFRAME = 5;
WPEFFECTBASE = 3750;
EFFECTBASE = 0;
type
TActionInfo = packed record
start :Word;//0x14
frame :Word;//0x16
skip :Word;//0x18
ftime :Word;//0x1A
usetick :Word;//0x1C
end;
pTActionInfo = ^TActionInfo;
THumanAction = packed record
ActStand: TActionInfo; //1
ActWalk: TActionInfo; //8
ActRun: TActionInfo; //8
ActRushLeft: TActionInfo;
ActRushRight: TActionInfo;
ActWarMode: TActionInfo; //1
ActHit: TActionInfo; //6
ActHeavyHit: TActionInfo; //6
ActBigHit: TActionInfo; //6
ActFireHitReady: TActionInfo; //6
ActSpell: TActionInfo; //6
ActSitdown: TActionInfo; //1
ActStruck: TActionInfo; //3
ActDie: TActionInfo; //4
end;
pTHumanAction = ^THumanAction;
TMonsterAction = packed record
ActStand: TActionInfo; //1
ActWalk: TActionInfo; //8
ActAttack: TActionInfo; //6 0x14 - 0x1C
ActCritical: TActionInfo; //6 0x20 -
ActStruck: TActionInfo; //3
ActDie: TActionInfo; //4
ActDeath: TActionInfo;
end;
pTMonsterAction = ^TMonsterAction;
const
HA: THumanAction = (
ActStand: (start: 0; frame: 4; skip: 4; ftime: 200; usetick: 0);
ActWalk: (start: 64; frame: 6; skip: 2; ftime: 90; usetick: 2);
ActRun: (start: 128; frame: 6; skip: 2; ftime: 120; usetick: 3);
ActRushLeft: (start: 128; frame: 3; skip: 5; ftime: 120; usetick: 3);
ActRushRight:(start: 131; frame: 3; skip: 5; ftime: 120; usetick: 3);
ActWarMode:(start: 192; frame: 1; skip: 0; ftime: 200; usetick: 0);
ActHit: (start: 200; frame: 6; skip: 2; ftime: 85; usetick: 0);
ActHeavyHit:(start: 264; frame: 6; skip: 2; ftime: 90; usetick: 0);
ActBigHit: (start: 328; frame: 8; skip: 0; ftime: 70; usetick: 0);
ActFireHitReady: (start: 192; frame: 6; skip: 4; ftime: 70; usetick: 0);
ActSpell: (start: 392; frame: 6; skip: 2; ftime: 60; usetick: 0);
ActSitdown:(start: 456; frame: 2; skip: 0; ftime: 300; usetick: 0);
ActStruck: (start: 472; frame: 3; skip: 5; ftime: 70; usetick: 0);
ActDie: (start: 536; frame: 4; skip: 4; ftime: 120; usetick: 0)
);
MA9: TMonsterAction = (//4C03D4
ActStand:(Start:0; frame:1; skip:7; ftime:200; usetick:0);
ActWalk:(Start:64; frame:6; skip:2; ftime:120; usetick:3);
ActAttack:(Start:64; frame:6; skip:2; ftime:150; usetick:0);
ActCritical:(Start:0; frame:0; skip:0; ftime:0; usetick:0);
ActStruck:(Start:64; frame:6; skip:2; ftime:100; usetick:0);
ActDie:(Start:0; frame:1; skip:7; ftime:140; usetick:0);
ActDeath:(Start:0; frame:1; skip:7; ftime:0; usetick:0);
);
MA10: TMonsterAction = ( //带刀卫士
ActStand: (start: 0; frame: 4; skip: 4; ftime: 200; usetick: 0);
ActWalk: (start: 64; frame: 6; skip: 2; ftime: 120; usetick: 3);
ActAttack: (start: 128; frame: 4; skip: 4; ftime: 150; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 192; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 208; frame: 4; skip: 4; ftime: 140; usetick: 0);
ActDeath: (start: 272; frame: 1; skip: 0; ftime: 0; usetick: 0);
);
MA11: TMonsterAction = (
ActStand: (start: 0; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 80; frame: 6; skip: 4; ftime: 120; usetick: 3);
ActAttack: (start: 160; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; 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: 340; frame: 1; skip: 0; ftime: 0; usetick: 0);
);
MA12: TMonsterAction = (
ActStand: (start: 0; frame: 4; skip: 4; ftime: 200; usetick: 0);
ActWalk: (start: 64; frame: 6; skip: 2; ftime: 120; usetick: 3);
ActAttack: (start: 128; frame: 6; skip: 2; ftime: 150; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 192; frame: 2; skip: 0; ftime: 150; usetick: 0);
ActDie: (start: 208; frame: 4; skip: 4; ftime: 160; usetick: 0);
ActDeath: (start: 272; frame: 1; skip: 0; ftime: 0; usetick: 0);
);
MA13: TMonsterAction = (
ActStand: (start: 0; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 10; frame: 8; skip: 2; ftime: 160; usetick: 0);
ActAttack: (start: 30; frame: 6; skip: 4; ftime: 120; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 110; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 130; frame: 10; skip: 0; ftime: 120; usetick: 0);
ActDeath: (start: 20; frame: 9; skip: 0; ftime: 150; usetick: 0);
);
MA14: 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: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 10; skip: 0; ftime: 120; usetick: 0);
ActDeath: (start: 340; frame: 10; skip: 0; ftime: 100; usetick: 0);
);
MA15: 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: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 10; skip: 0; ftime: 120; usetick: 0);
ActDeath: (start: 1; frame: 1; skip: 0; ftime: 100; usetick: 0);
);
MA16: 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: 160; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 4; skip: 6; ftime: 160; usetick: 0);
ActDeath: (start: 0; frame: 1; skip: 0; ftime: 160; usetick: 0);
);
MA17: TMonsterAction = (
ActStand: (start: 0; frame: 4; skip: 6; ftime: 60; 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: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 10; skip: 0; ftime: 100; usetick: 0);
ActDeath: (start: 340; frame: 1; skip: 0; ftime: 140; usetick: 0);
);
MA19: 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: 0; frame: 0; skip: 0; ftime: 0; 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: 340; frame: 1; skip: 0; ftime: 140; usetick: 0);
);
MA20: 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: 120; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 10; skip: 0; ftime: 100; usetick: 0);
ActDeath: (start: 340; frame: 10; skip: 0; ftime: 170; usetick: 0);
);
MA21: TMonsterAction = (
ActStand: (start: 0; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActAttack: (start: 10; frame: 6; skip: 4; ftime: 120; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 20; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 30; frame: 10; skip: 0; ftime: 160; usetick: 0);
ActDeath: (start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
);
MA22: TMonsterAction = (
ActStand: (start: 80; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 160; frame: 6; skip: 4; ftime: 160; usetick: 3);
ActAttack: (start: 240; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 320; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 340; frame: 10; skip: 0; ftime: 160; usetick: 0);
ActDeath: (start: 0; frame: 6; skip: 4; ftime: 170; usetick: 0);
);
MA23: TMonsterAction = (
ActStand: (start: 20; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 100; frame: 6; skip: 4; ftime: 160; usetick: 3);
ActAttack: (start: 180; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 260; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 280; frame: 10; skip: 0; ftime: 160; usetick: 0);
ActDeath: (start: 0; frame: 20; skip: 0; ftime: 100; usetick: 0);
);
MA24: 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:240; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActStruck: (start: 320; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 340; frame: 10; skip: 0; ftime: 140; usetick: 0);
ActDeath: (start: 420; frame: 1; skip: 0; ftime: 140; usetick: 0);
);
MA25: TMonsterAction = (//4C080C
ActStand: (Start:0; frame:4; skip:6; ftime:200; usetick:0);
ActWalk: (Start:70; frame:10; skip:0; ftime:200; usetick:3);
ActAttack: (Start:20; frame:6; skip:4; ftime:120; usetick:0);
ActCritical:(Start:10; frame:6; skip:4; ftime:120; usetick:0);
ActStruck: (Start:50; frame:2; skip:0; ftime:100; usetick:0);
ActDie: (Start:60; frame:10; skip:0; ftime:200; usetick:0);
ActDeath: (Start:80; frame:10; skip:0; ftime:200; usetick:3);
);
MA26: TMonsterAction = (
ActStand: (start: 0; frame: 1; skip: 7; ftime: 200; usetick: 0);
ActWalk: (start: 0; frame: 0; skip: 0; ftime: 160; usetick: 0);
ActAttack: (start: 56; frame: 6; skip: 2; ftime: 500; usetick: 0);
ActCritical:(start: 64; frame: 6; skip: 2; ftime: 500; usetick: 0);
ActStruck: (start: 0; frame: 4; skip: 4; ftime: 100; usetick: 0);
ActDie: (start: 24; frame: 10; skip: 0; ftime: 120; usetick: 0);
ActDeath: (start: 0; frame: 0; skip: 0; ftime: 150; usetick: 0);
);
MA27: TMonsterAction = (
ActStand: (start: 0; frame: 1; skip: 7; ftime: 200; usetick: 0);
ActWalk: (start: 0; frame: 0; skip: 0; ftime: 160; usetick: 0);
ActAttack: (start: 0; frame: 0; skip: 0; ftime: 250; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 250; usetick: 0);
ActStruck: (start: 0; frame: 0; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 0; frame: 10; skip: 0; ftime: 120; usetick: 0);
ActDeath: (start: 0; frame: 0; skip: 0; ftime: 150; usetick: 0);
);
MA28: TMonsterAction = (
ActStand: (start: 80; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 160; frame: 6; skip: 4; ftime: 160; usetick: 3);
ActAttack: (start: 0; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 0; frame: 0; skip: 0; ftime: 0; usetick: 0);
ActStruck: (start: 240; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 260; frame: 10; skip: 0; ftime: 120; usetick: 0);
ActDeath: (start: 0; frame: 10; skip: 0; ftime: 100; usetick: 0);
);
MA29: TMonsterAction = (
ActStand: (start: 80; frame: 4; skip: 6; ftime: 200; usetick: 0);
ActWalk: (start: 160; frame: 6; skip: 4; ftime: 160; usetick: 3);
ActAttack: (start: 240; frame: 6; skip: 4; ftime: 100; usetick: 0);
ActCritical:(start: 0; frame: 10; skip: 0; ftime: 100; usetick: 0);
ActStruck: (start: 320; frame: 2; skip: 0; ftime: 100; usetick: 0);
ActDie: (start: 340; frame: 10; skip: 0; ftime: 120; usetick: 0);
ActDeath: (start: 0; frame: 10; skip: 0; ftime: 100; usetick: 0);
);
MA30: TMonsterAction = (//4C0974
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:10; frame:6; skip:4; ftime:120; usetick:0);
ActStruck:(Start:20; frame:2; skip:0; ftime:100; usetick:0);
ActDie:(Start:30; frame:20; skip:0; ftime:150; usetick:0);
ActDeath:(Start:0; frame:10; skip:0; ftime:200; usetick:3);
);
MA31: TMonsterAction = (//4C09BC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -